Professional Documents
Culture Documents
Chuong05 - Ly Thuyet Do Thi - Bai Toan Toi Uu Tren Do Thi
Chuong05 - Ly Thuyet Do Thi - Bai Toan Toi Uu Tren Do Thi
Chuong05 - Ly Thuyet Do Thi - Bai Toan Toi Uu Tren Do Thi
www.dtu.edu.vn
Chương 5
Các bài toán tối ưu trên đồ thị
(Thời lượng:4g)
www.dtu.edu.vn
NỘI DUNG LOGO
H
N
8 4 3
NT
DL
3
3
3
SG
4
www.dtu.edu.vn Chương 05 - Bài toán tối ưu
Tìm đường đi ngắn nhất LOGO
5
www.dtu.edu.vn Chương 05 - Bài toán tối ưu
Tìm đường đi ngắn nhất LOGO
6
www.dtu.edu.vn Chương 05 - Bài toán tối ưu trên đồ thị
Tìm đường đi ngắn nhất LOGO
Thuật toán Dijkstra có thể tóm tắt như sau:
Bước 1: Gán L(u0):=0. Với mọi đỉnh x u0 gán L(x) = ,
xV. Ký hiệu T := V.// V tập đỉnh
Bước 2: Chọn v T: sao cho L(v) có giá trị nhỏ nhất. Đặt
T := T ˗ {v}
Bước 3: Nếu z T, kết thúc, L(z) là chiều dài đường đi
ngắn nhất từ u0 đến z. (z V)
Từ z lần ngược theo đỉnh được ghi nhớ a có đường đi
ngắn nhất.
Ngược lại, sang Bước 4.
Bước 4: Với mỗi xT kề v gán
L(x) := min{L(x), L(v)+w(v,x)}
Nếu L(x) thay đổi thì ghi nhớ đỉnh v cạnh đỉnh x để sau
này xây dựng đường đi ngắn nhất. Quay lại Bước 2.
7
www.dtu.edu.vn Chương 05 - Bài toán tối ưu
Tìm đường đi ngắn nhất LOGO
Bước 4: Với mỗi xT kề v gán
L(x) := min{L(x), L(v)+w(v,x)}
Nếu L(x) thay đổi thì ghi nhớ đỉnh v cạnh đỉnh x để sau
này xây dựng đường đi ngắn nhất. Quay lại Bước 2.
w(v,x) x
v
L(v)
L(x)
u0
L(x) := min{L(x), L(v)+w(v,x)}
8
www.dtu.edu.vn Chương 05 - Bài toán tối ưu
Tìm đường đi ngắn nhất LOGO
V 7
4
(2)
()
H L
18 2
(2+4)
()
D (7)
()
N
3
8 4
(7+4)
() NT ()
(7+3)
DL
3
3 Truo
3 c
SG
(18)
(7+8)
()
(7+3+3)
9
Đường đi chi phí nhỏ nhất là : HN DN NT SG với chi phí = 7+3+3 = 13
9
www.dtu.edu.vn Chương 05 - Bài toán tối ưu trên đồ thị
Tìm đường đi ngắn nhất LOGO
Ví dụ 2:
Cho đồ thị G=(V,E) liên thông có 5 đỉnh. Tìm đường đi ngắn nhất từ
A đến đỉnh D (áp dụng thuật toán Dijkstra).
8
A E
8
5 1
7
3
B C D
3
(0) ()
(8)
8
Bắt đầu: A, Kết thúc: D
A E
T A B C D E
8
5 1
7
L
B 3 C D
3
()
(7) (7+3)
(8+1)
() (8+8)
()
(8+1+3)
Truoc
Đặt k = 0
Bước 2:Tăng k lên 1, k = 1
Link Youtube
https://www.youtube.com/watch?v=xyAuNHPsq-g
https://www.youtube.com/watch?v=0fTSBIBD7Cs
Giả sử:
4
Mỗi cạnh eE có trọng số 3
D
m(e)0. Ta gọi độ dài m(T) 7
của cây khung T, là tổng B
trọng số của các cạnh của A
5
G
3
nó: D
• m(T) = m(e)
3 C
7
e E T B 3
T1 m(T1) = 13
Bài toán: Làm thế nào tìm A C
được cây khung T2 có m(T2) 3
4
là nhỏ nhất? D
B
T2 m(T2) = 10
3