• Đồ thị mà mỗi cạnh được gán thêm một số được gọi là một đồ thị có trọng số.• Số được gán cho mỗi cạnh được gọi là trọng số của cạnh đó.. Trọng số của cạnh a được kí hiệu là Wa.• Tổng t
Trang 1Bài 3:
BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN
NHẤT
Trang 2VÍ DỤ MINH HỌA
Trang 3• Đồ thị mà mỗi cạnh được gán thêm một số được gọi là
một đồ thị có trọng số.
• Số được gán cho mỗi cạnh được gọi là trọng số của cạnh
đó Trọng số của cạnh a được kí hiệu là Wa.
• Tổng trọng số (hay tổng độ dài) của các cạnh tạo thành đường đi gọi là độ dài của đường đi đó Độ dài của
đường đi m được kí hiệu là lm.
• Trong đồ thị có trọng số, đường đi có độ dài bé nhất
trong tất cả các đường đi từ đỉnh A đến đỉnh B gọi là
đường đi ngắn nhất.
• Đồ thị có trọng số & đường đi ngắn
Trang 4Chú Ý: Khi xét bài toán tìm đường đi ngắn nhất,
ta chỉ xét đồ thị liên thông có trọng số.
Cho đồ thị có trọng số như
hình dưới đây
a) Chỉ ra trọng số các
cạnh AC, EB, DF
b) Tính độ dài của các
đường đi EA, ABCD, DCF
c) EBDF có phải là đường
đi ngắn nhất từ E đến F
không?
Trang 5Bảng dưới đây cho biết
quãng đường di chuyển
( tính bằng km ) từ nhà
các bạn Trâm, Khoa, Đan,
Ân tới trường THPT
chuyên Bảo Lộc và tới
nhà của nhau Hãy vẽ 1
đồ thị có trọng số biểu
diễn quãng đường từ nhà các bạn đến trường và
đến nhà của những người còn lại.
Trang 6Giải
Trang 72 THUẬT
TOÁN TÌM
ĐƯỜNG ĐI
NGẮN NHẤT
TỔ 2 - 11S
Trang 8( SGK/61)
a) Tìm tất cả các đường
đi từ A đến T (đi qua mỗi đỉnh nhiều nhất một lần) và tính độ dài của mỗi đường đi đó.
b) Từ đó, tìm đường đi ngắn nhất từ A đến T.
Trang 9( SGK/61)
a) Tất cả các đường đi từ A đến T (đi qua mỗi đỉnh nhiều nhất một lần) là: ABDT, ACDT, ACET, ACDET, ACEDT, ABDET, ABDCET.
Ta có:
⦁ lABDT = wAB + wBD + wDT = 4 + 7 + 3 = 14;
⦁ lACDT = wAC + wCD + wDT = 2 + 6 + 3 = 11;
⦁ lACET = wAC + wCE + wET = 2 + 12 + 5 = 19;
⦁ lACDET = wAC + wCD + wDE + wET = 2 + 6 + 4 +
5 = 17;
⦁ lACEDT = wAC + wCE + wED + wDT = 2 + 12 + 4 +
3 = 21;
⦁ lABDET = wAB + wBD + wDE + wET = 4 + 7 + 4 +
5 = 20;
⦁ lABDCET = wAB + wBD + wDC + wCE + wET = 4 +
7 + 6 + 12 + 5 = 34.
b) Vì 11 < 14 < 17 < 19 < 20 < 21 < 34.
Nên lACDT < lABDT < lACDET < lACET < lABDET < lACEDT < lABDCET.
Vậy đường đi ngắn nhất từ A đến T là ACDT (có độ dài bằng 11).
Trang 10( SGK/61)
• Gán nhãn cho đỉnh A bằng
0 ( nA = 0) cho các đỉnh khác đều bằng ∞
• Khoanh tròn đỉnh A và viết nhãn của mỗi đỉnh khác bên cạnh đỉnh đó (Hình 7)
• Dưới đây, mỗi lần thay đổi nhãn của đỉnh thì ta gạch nhãn cũ và viết thêm nhãn mới.
Trang 11( SGK/61)
Bước 1
• Tìm đỉnh (khác A) gần A nhất Ta chỉ cần tìm trong các đỉnh kề với A, gồm hai
đỉnh B và C
• Ta tính n A +w AB = 0 + 4 = 4 => Số này nhỏ hơn nhãn hiện tại của B (bằng 0)
=> Đổi nhãn của B thành n B = 4 ( bằng l AB)
• Tương tự, tính n A +w AC =0 + 2 = 2 và đổi nhãn của C thành nC = 2 ( bằng l
AC)
• Ta thấy đỉnh C có nhãn nhỏ nhất trong các đỉnh khác A
=> C là đỉnh gần A nhất Ta cố định nhãn và khoanh tròn đỉnh C (Hình 8)
Trang 12( SGK/61)
Bước 2
• Tìm đình gần A thứ hai Trước hết, xét các đình kề với C ( là đỉnh vừa được khoanh tròn
ở cuối bước trước) trong các đỉnh chưa khoanh tròn, gồm D và E
• Ta tính n C +w CD =2 + 6 = 8
=> Số này nhỏ hơn nhãn hiện tại của D ( là ∞)
=> Đổi nhãn của D thành n D = 8 ( bằng l ACD)
• Tương tự, tính n C +w CE = 2 + 12 = 14 và đổi nhãn E thành nE = 14
• Trong các đình chưa khoanh tròn, đỉnh B có nhãn nhỏ nhất,
=> B là đình gần A thứ hai Ta cố định nhãn và khoanh tròn đỉnh B (Hình 9)
Trang 13( SGK/61)
Bước 3
• Tìm đỉnh gần 4 thứ ba Trước hết, trong các đỉnh chưa khoanh tròn, chỉ có đỉnh
D kề với B
• Tính n B + w BD = 4 + 7 = 11
=> Số này lớn hơn nhãn hiện tại n D = 8 của D
=> Giữ nguyên nhãn này
• Trong các đỉnh chưa khoanh tròn, đỉnh D
có nhãn nhỏ nhất
=> D là đỉnh gần 4 thứ ba
• Ta cố định nhãn và khoanh tròn đỉnh D (Hình 10)
Trang 14( SGK/61)
Bước 4
• Tìm đỉnh gần A thứ tư Trong các đỉnh chưa khoanh tròn, xét các đỉnh kề với D, gồm E và
T
• Tính n D + w DE = 8 + 4 = 12
=> Số này nhỏ hơn nhãn hiện tại của E (là 14).
=> Đổi nhãn của E thành n E= 12.
• Tính n D + w DT = 8 + 3 = 11
=> Số này nhỏ hơn nhãn hiện tại của T( là ∞).
=> Đổi nhãn của T thành n T = 11 - Trong các đỉnh chưa khoanh tròn, đỉnh T có nhãn nhỏ
nhất.
=> T là đỉnh gần A thứ tư
• Ta cố định nhãn và khoanh tròn đỉnh T
• Nhìn ngược lại lên trên ta thấy n T = 11 = w
AC + w CD + w DT = l ACDT.
=> Đường đi ngắn nhất từ A đến T là ACDT, với độ dài bằng 11 (Hình 11).
Trang 15* CHÚ Ý:
• Về sau, khi giải bài toán tìm đường đi ngắn nhất, ta chỉ cần vẽ trên một hình chung cho tất cả các bước Chẳng hạn, trong lời giải trên, ta chỉ cần vẽ lần lượt trên cùng một hình để cuối cùng nhận được Hình 11.
• Từ lời giải trên, ta có thể mô tả khái quát thuật toán (thuật toán Dijkstra) tìm đường đi ngắn nhất từ đỉnh A đến đỉnh T trên một đồ thị có trọng số như sau:
Trang 16Thuật toán (tìm đường đi ngắn nhất từ định 4 đến định T)
Mở đầu (cũng gọi là Bước 0)
Gán nhãn của A bằng 0, các đỉnh khác bằng 0 Khoanh tròn đỉnh A.
Các bước lặp
Trong mỗi bước lặp thực hiện các thao tác dưới đây:
• Gọi U là đỉnh vừa được khoanh tròn ở bước trước Trong các đỉnh chưa khoanh tròn, xét lần lượt từng đình V kề với đỉnh U, tính n U + w UV rồi so sánh số này với nhãn hiện tại n V của V Nếu số đó nhỏ hơn thì đổi nhãn ny bằng số đó.
• So sánh nhãn của tất cả các đỉnh chưa khoanh tròn Đỉnh nào có nhãn nhỏ nhất thì khoanh tròn đỉnh đó (nếu có nhiều đỉnh như vậy thì khoanh một đỉnh tùy ý trong số đó).
• Nếu đỉnh T chưa được khoanh tròn thì thực hiện bước lặp tiếp theo, trái lại thì kết thúc các bước lặp.
Kết luận
• Dò lại các bước lặp để viết được nhãn n T của T dưới dạng tổng độ dài các cạnh Từ
đó nhận được đường đi ngắn nhất từ A đến T cùng với độ dài của nó.
Dưới đây, để hình vẽ dễ nhìn, ta bỏ qua việc ghi
nhãn cơ cho các đỉnh trên hình vẽ.
CHÚ Ý:
Trang 17VD 3 ( sgk/66)
Tìm đường đi ngắn nhất từ đỉnh A đến từng đỉnh (khác A) trong đồ thị có
trọng số ở Hình 19.
Trang 18Tổ 2 - 11
Sinh
Đ Uyên Đan
T HuyềnTrang L
B Quốc Bảo
N
Â
Đăng Khoa
Khánh Trâm Khánh Linh Long Nhật Thiên Ân