Bài 3 chuyên đề toán

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Bài 3:

BÀI TOÁN TÌM


ĐƯỜNG ĐI NGẮN
NHẤT
VÍ DỤ MINH HỌA
• Đồ thị có trọng số & đường đi ngắn nhất
Kiến thức trọng tâm

• Đồ 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.
Chú Ý: 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?
Bả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.
Giải
TỔ 2 - 11S

2. THUẬT TOÁN
TÌM ĐƯỜNG ĐI
NGẮN NHẤT
( 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.
( 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).
( 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.
( 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).
( 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).
( 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).
( 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).
* 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:
Thuậ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ó.

CHÚ Ý: 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ẽ.
VD 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.
Tổ 2 - 11 Đ Đăng Khoa T Khánh Trâm

Sinh T HuyềnTrang L Khánh Linh

Đ Uyên Đan N Long Nhật

B Quốc Bảo  Thiên Ân

You might also like