Trong đồ thị có trọng số ở Hình 15, mỗi cạnh biểu diễn một tuyến xe buýt giữa hai bến trong các bến xe A, B, C, D, E và F, trọng số của mỗi cạnh biểu diễn thời gian tính bằng giờ của tuyến xe

Trong đồ thị có trọng số ở Hình 15, mỗi cạnh biểu diễn một tuyến xe buýt giữa hai bến trong các bến xe A, B, C, D, E và F, trọng số của mỗi cạnh biểu diễn thời gian tính bằng giờ của tuyến xe buýt tương ứng. Một người cần ít nhất bao nhiêu thời gian để di chuyển từ bến A đến bến C bằng xe buýt của các tuyến trên? Biết rằng thời gian tại bến để chuyển tiếp từ tuyến này qua tuyến kia là không đáng kể.

Trong đồ thị có trọng số ở Hình 15, mỗi cạnh biểu diễn một tuyến xe buýt giữa hai bến trong các bến xe A, B, C, D, E và F, trọng số của mỗi cạnh biểu diễn thời gian tính bằng giờ của tuyến xe buýt tương ứng. Một người cần ít nhất bao nhiêu thời gian để di chuyển từ bến A đến bến C bằng xe buýt của các tuyến trên? Biết rằng thời gian tại bến để chuyển tiếp từ tuyến này qua tuyến kia là không đáng kể.   (ảnh 1)

Trả lời

Ta tìm khoảng thời gian ít nhất để di chuyển từ bến A đến bến C bằng xe buýt của các tuyến trên bằng cách sử dụng thuật toán Dijkstra như sau:

Trong đồ thị có trọng số ở Hình 15, mỗi cạnh biểu diễn một tuyến xe buýt giữa hai bến trong các bến xe A, B, C, D, E và F, trọng số của mỗi cạnh biểu diễn thời gian tính bằng giờ của tuyến xe buýt tương ứng. Một người cần ít nhất bao nhiêu thời gian để di chuyển từ bến A đến bến C bằng xe buýt của các tuyến trên? Biết rằng thời gian tại bến để chuyển tiếp từ tuyến này qua tuyến kia là không đáng kể.   (ả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 đỉnh A, gồm E, F, B, ta có:

nE = nA + wAE = 0 + 0,8 = 0,8. Vì 0,8 < ∞ nên ta đổi nhãn của E thành 0,8.

nF = nA + wAF = 0 + 2,5 = 2,5. Vì 2,5 < ∞ nên ta đổi nhãn của F thành 2,5.

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

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 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 E gồm D, F, ta có:

nD = nE + wDE = 0,8 + 3 = 3,8. Vì 3,8 < ∞ nên ta đổi nhãn của D thành 3,8.

nF = nE + wEF = 0,8 + 1 = 1,8. Vì 1,8 < 2,5 (2,5 là nhãn hiện tại của F) nên ta đổi nhãn của F thành 1,8.

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ứ hai).

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

nB = nF + wFB = 1,8 + 2 = 3,8. Vì 3,8 > 2 (2 là nhãn hiện tại của B) nên ta giữ nguyên nhãn của B là 2.

nC = nF + wFC = 1,8 + 2,2 = 4. Vì 4 < ∞ nên ta đổi nhãn của C thành 4.

nD = nF + wFD = 1,8 + 1,2 = 3. Vì 3 < 3,8 (3,8 là nhãn hiện tại của D) nên ta đổi nhãn của D thành 3.

Trong các đỉnh chưa được khoanh tròn, đỉnh có nhãn bé nhất là B. Nhưng do trong các đỉnh chưa được khoanh tròn còn lại, ta thấy không có đỉnh nào kề với đỉnh B nên ta chọn lại đỉnh có nhãn bé nhất (ngoại trừ đỉnh B) là đỉnh D (đỉnh gần A thứ ba).

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

nC = nD + wDC = 3 + 3 = 6. Vì 6 > 4 (4 là nhãn hiện tại của C) nên ta giữ nguyên nhãn của C là 4.

Lúc này, ngoại trừ đỉnh B, ta thấy chỉ còn đỉnh C chưa được khoanh tròn nên ta khoanh tròn đỉnh C (đỉnh gần A thứ tư).

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

nC = 4 = nF + wFC

= nE + wEF + wFC

= nA + wAE + wEF + wFC

= wAE + wEF + wFC

= lAEFC.

Vậy người đó cần ít nhất 4 giờ để di chuyển từ bến A đến bến C bằng xe buýt của các tuyến trên.

Câu hỏi cùng chủ đề

Xem tất cả