Câu hỏi:

13/07/2024 883 Lưu

Phần mềm chỉ đường thường chỉ ra đường đi ngắn nhất khi người dùng muốn tìm đường đi từ một địa điểm đến một địa điểm khác.

Làm thế nào để tìm ra đường đi đó?

Phần mềm chỉ đường thường chỉ ra đường đi ngắn nhất khi người dùng muốn tìm đường đi từ một địa điểm đến một địa điểm khác. Làm thế nào để tìm ra đường đi đó?   (ảnh 1)

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

Sau bài học này, chúng ta sẽ giải quyết được bài toán trên như sau:

Người ta đã xây dựng những thuật toán giải bài toán tìm đường đi ngắn nhất trong đồ thị có trọng số một cách hiệu quả (cụ thể trong bài học này, chúng ta tìm hiểu về thuật toán Dijkstra).

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Tìm đường đi ngắn nhất từ đỉnh A đến đỉnh I trong đồ thị có trọng số ở Hình 14.   (ảnh 2)

– Gán nhãn cho A bằng 0 (tức là, nA = 0), các đỉnh khác bằng ∞. Khoanh tròn đỉnh A.

– Tại các đỉnh kề với A, gồm B, C, D, ta có:

nB = nA + wAB = 0 + 3 = 3. Vì 3 < ∞ nên ta đổi nhãn của B thành 3.

nC = nA + wAC = 0 + 6 = 6. Vì 6 < ∞ nên ta đổi nhãn của C thành 6.

nD = nA + wAD = 0 + 5 = 5. Vì 5 < ∞ nên ta đổi nhãn của D thành 5.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là B nên ta khoanh tròn đỉnh B (đỉnh gần đỉnh A nhất, chỉ tính các đỉnh khác đỉnh A).

– Trong các đỉnh chưa được khoanh tròn, đỉnh kề với đỉnh B gồm C, E, ta có:

nC = nB + wBC = 3 + 2 = 5. Vì 5 < 6 (6 là nhãn hiện tại của C) nên ta đổi nhãn của C thành 5.

nE = nB + wBE = 3 + 10 = 13. Vì 13 < ∞ nên ta đổi nhãn của E thành 13.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là C, D (đều có nhãn là 5) nên ta tùy ý khoanh tròn đỉnh C (đỉnh gần đỉnh A thứ hai).

– Trong các đỉnh chưa được khoanh tròn, đỉnh kề với đỉnh C gồm E, D, F, I, ta có:

nE = nC + wCE = 5 + 5 = 10. Vì 10 < 13 (13 là nhãn hiện tại của E) nên ta đổi nhãn của E thành 10.

nD = nC + wCD = 5 + 3 = 8. Vì 8 > 5 (5 là nhãn hiện tại của D) nên ta giữ nguyên nhãn của D là 5.

nF = nC + wCF = 5 + 6 = 11. Vì 11 < ∞ nên ta đổi nhãn của F thành 11.

nI = nC + wCI = 5 + 8 = 13. Vì 13 < ∞ nên ta đổi nhãn của I thành 13.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là D nên ta khoanh tròn đỉnh D (đỉnh gần đỉnh A thứ ba).

– Trong các đỉnh chưa được khoanh tròn, đỉnh kề với đỉnh D chỉ có đỉnh F, ta có:

nF = nD + wDF = 5 + 7 = 12.

Vì 12 > 11 (11 là nhãn hiện tại của F) nên ta giữ nguyên nhãn của F là 11.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là E nên ta khoanh tròn đỉnh E (đỉnh gần đỉnh A thứ tư).

– Trong các đỉnh chưa được khoanh tròn, đỉnh kề với đỉnh E chỉ có đỉnh I, ta có:

nI = nE + wEI = 10 + 2 = 12.

Vì 12 < 13 (13 là nhãn hiện tại của I) nên ta đổi nhãn của I thành 12.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là F nên ta khoanh tròn đỉnh F (đỉnh gần A thứ năm).

– Trong các đỉnh chưa được khoanh tròn, đỉnh kề với đỉnh F chỉ còn đỉnh I, ta có:

nI = nF + wFI = 11 + 4 = 15.

Vì 15 > 12 (12 là nhãn hiện tại của I) nên ta giữ nguyên nhãn của I là 12.

Lúc này, ta thấy chỉ còn đỉnh I chưa được khoanh tròn nên ta khoanh tròn đỉnh I (đỉnh gần A thứ sáu).

– Nhìn ngược lại các bước trên, ta thấy:

nI = 12 = nE + wEI

= nC + wCE + wEI

= nB + wBC + wCE + wEI

= nA + wAB + wBC + wCE + wEI

= wAB + wBC + wCE + wEI

= lABCEI.

Vậy ABCEI là đường đi ngắn nhất từ A đến I, với độ dài bằng 12.

Lời giải

Đồ thị có trọng số như hình vẽ sau thỏa mãn yêu cầu bài toán, trong đó các đỉnh biểu diễn các bến xe, các cạnh biểu diễn các tuyến xe buýt giữa các bến xe (nếu có), trọng số của mỗi cạnh biểu diễn thời gian di chuyển tính bằng giờ của tuyến xe buýt tương ứng.

Bảng 2 cho biết thời gian di chuyển tính bằng giờ của các tuyến xe buýt giữa các bến xe A, B, C, D, E (số nằm tại ô giao của hàng và cột là số giờ cần để xe buýt đi từ bến này đến bến kia, dấu  biểu thị giữa hai bến này không có tuyến xe buýt). Hãy vẽ một đồ thị có trọng số biểu diễn các tuyến xe buýt cùng thời gian di chuyển của mỗi tuyến.   (ảnh 2)

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP