Thu
Thu
ậ
ậ
t to
t to
á
á
n Dijkstra
n Dijkstra
-
-
Prim
Prim
Ví dụ:
MST Q L
a,b,c,i,f
18
h,d,g,e
<cd=7,ih=7,fe=10,fg=2>
R
ỗ
ng
a,b,c,i,f,g
20
h,d,e
<cd=7,fe=10,gh=1>
R
ỗ
ng
Thu
Thu
ậ
ậ
t to
t to
á
á
n Dijkstra
n Dijkstra
-
-
Prim
Prim
Ví dụ:
MST Q L
a,b,c,i,f,g
20
h,d,e
<cd=7,fe=10,gh=1>
R
ỗ
ng
a,b,c,i,f,g,h
21
d,e
<cd=7,fe=10>
R
ỗ
ng
Thu
Thu
ậ
ậ
t to
t to
á
á
n Dijkstra
n Dijkstra
-
-
Prim
Prim
Ví dụ:
MST Q L
a,b,c,i,f,g,h
21
d,e
<cd=7,fe=10>
R
ỗ
ng
a,b,c,i,f,g,h,d
28
e
<de=8>
R
ỗ
ng
Thu
Thu
ậ
ậ
t to
t to
á
á
n Dijkstra
n Dijkstra
-
-
Prim
Prim
Ví dụ:
MST Q L
a,b,c,i,f,g,h,d
28
e
<de=8>
R
ỗ
ng
a,b,c,i,f,g,h,d,e
36
R
ỗ
ng R
ỗ
ng
Thu
Thu
ậ
ậ
t to
t to
á
á
n Dijkstra
n Dijkstra
-
-
Prim
Prim
Đánh giá giải thuật:
- Độ phức tạp của giải thuật Prim phụ thuộc vào
cách thực hiện độ ưu tiên ở hàng đợi Q
- Nếu Q được thực hiện như một heap nhị phân thì
thời gian tính toán của giải thuật là O (E lgV)
Thu
Thu
ậ
ậ
t to
t to
á
á
n Kruskal
n Kruskal
Giới thiệu:
- Khác với giải thuật Dijkstra-Prim bắt đầu với 1
đỉnh bất kì đê xây dựng MST. Thuật toán Kruskal
tập trung vào các cạnh của đồ thị
Giải thuật:
- Bắt đầu với MST rỗng
- Thêm vào MST các cạnh có thứ tự tăng dần theo
trọng số cho đến khi tất cả các đỉnh được kết nối
Thu
Thu
ậ
ậ
t to
t to
á
á
n Kruskal
n Kruskal
Ví dụ:
MST V
R
ỗ
ng A,B,C,D,E,F,G
FD A,B,C,E,G
FD,AB C,E,G
FD,AB,BE C,G
FD,AB,BE,AC G
FD,AB,BE,AC,AF G
FD,AB,BE,AC,AF,DG R
ỗ
ng
Thu
Thu
ậ
ậ
t to
t to
á
á
n Kruskal
n Kruskal
Độ phức tạp của giải thuật:
- Thuật toán Kruskal có độ phức tạp là O(E lgE)
Bài tập: Sử dụng thuật toán Dijkstra-Prim tìm
MST của đồ thị sau, bắt đầu bắt node C. Trình
bày đầy đủ các bước
Thu
Thu
ậ
ậ
t to
t to
á
á
n Kruskal
n Kruskal
Bài tập: Sử dụng thuật toán Krusal tìm MST của
đồ thị sau.Trình bày đầy đủ các bước
ĐƯ
ĐƯ
Ờ
Ờ
NG ĐI NG
NG ĐI NG
Ắ
Ắ
N NH
N NH
Ấ
Ấ
T
T