Xử lý song song tìm đường đi ngắn nhất GRAPH ALGORITHMS MINIMUM-COST SPANNING TREE
Trang 1GRAPH ALGORITHMS
MINIMUM-COST SPANNING TREE
Nhóm 8:
Trang 2NỘI DUNG
• Đặt vấn đề.
• Một số khái niệm liên quan đến đồ thị.
• Ý tưởng của 3 thuật toán:
o PRIM
o KRUSKAL
o SOLLIN
• Xử lí song song.
Trang 5THUẬT TOÁN
PRIM PRIM KRUSKAL KRUSKAL
SOLLIN SOLLIN
Trang 6Đồ thị G = (V, E) liên thông, có n đỉnh.
Chọn một cạnh bất kỳ có trọng số nhỏ nhất,
đặt nó vào cây khung
Lần lượt ghép vào cây các cạnh có trọng số nhỏ nhất liên thuộc với một đỉnh của cây và không tạo ra chu trình trong cây
Thuật toán dừng lại khi n 1 cạnh được ghép vào
PRIM PRIM
Trang 7Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Cây khung của G Trọng số: 12
Trang 8Đồ thị G = (V, E) liên thông, có n đỉnh.
Chọn một cạnh bất kỳ có trọng số nhỏ nhất,
đặt nó vào cây khung
Lần lượt ghép vào cây các cạnh có trọng số
nhỏ nhất mà không tạo ra chu trình trong cây
Thuật toán dừng lại khi n 1 cạnh được ghép vào cây
KRUSKAL KRUSKAL
Trang 9Ví dụ: Dùng thuật toán Kruskal tìm cây khung nhỏ nhất của đồ thị
B 4
Trang 10 Tiến trình này tiếp tục cho đến khi chỉ còn một cây (tất cả các đỉnh đã được kết nối).
SOLLIN SOLLIN
Trang 11Ví dụ: Dùng thuật toán Sollin tìm cây khung nhỏ nhất của đồ thị sau:
Cây khung của G Trọng số: 12
B 4
Trang 12XỬ LÍ SONG SONG
Trang 13Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 14Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 15Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 16Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 17Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 18Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 19Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
Trang 20Ví dụ: Dùng thuật toán Prim tìm cây khung nhỏ nhất của đồ thị sau:
THUẬT TOÁN PRIM
3
4 2
D
Trang 21//Song song hóa
GIẢ THUẬT PRIM
Trang 22SONG SONG HÓA
THUẬT TOÁN PRIM
Trang 23SONG SONG HÓA
THUẬT TOÁN PRIM
P0 P1 P2
E
F 2
Trang 24SONG SONG HÓA
THUẬT TOÁN PRIM
P0 P1 P2
E
F 2
Trang 25SONG SONG HÓA
THUẬT TOÁN PRIM
P0 P1 P2
E
F 2
Trang 26• 1 A = ; ∅;
• 2 Với mỗi v V do:
Make-Set(v);
• 3 Sắp xếp các cạnh theo thứ tự không giảm của trọng số.
• 4 Với mỗi e = (u; v) đã sắp xếp:
• 5 if Find-Set(u) ̸= Find-Set(v) then
• 6 A = A U e;
• 7 Union(u; v);
• 8 Với mỗi v V do:
Make-Set (v);// cài đặt lại
GIẢ THUẬT KRUSKAL
Trang 27THUẬT TOÁN KRUSKAL
(C,D) (A,C) (E,F) (A,E) (C,F) (A,B) (B,D) (F,D) (C,E)
A B
E
F 2
2
4
Trang 28SONG SONG HÓA
THUẬT TOÁN KRUSKAL
• BXL chính kiểm tra tuần tự.
• Các BXL Helper chạy đồng
thời với BXL chính:
Trong mỗi bước của BXL
chính: kiểm tra các cạnh
trong chúng xem có tạo chu
trình với cây khung hiện tại
không?
Trang 29THUẬT TOÁN KRUSKAL
(C,D) (A,C) (E,F) (A,E) (C,F) (A,B) (B,D) (F,D) (C,E)
Trang 30THUẬT TOÁN SOLLIN
Trang 31ĐÁNH GIÁ, NHẬN XÉT