Thu ậ t toán Dijkstra-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ờ
Trang 1Thu ậ t toán Dijkstra-Prim
Ví dụ:
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
Trang 2Thu ậ t toán Dijkstra-Prim
Ví dụ:
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
Trang 3Thu ậ t toán Dijkstra-Prim
Ví dụ:
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
Trang 4Thu ậ t toán Dijkstra-Prim
Ví dụ:
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
Trang 5Thu ậ t toán Dijkstra-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)
Trang 6Thu ậ t toá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
Trang 7Thu ậ t toán Kruskal
Ví dụ:
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
Trang 8Thu ậ t toá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
Trang 9Thu ậ t toá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
Trang 10ĐƯỜ NG ĐI NG Ắ N NH Ấ T