CHƯƠNG 2 CÁC THUẬT TOÁN TRÊN ĐỒ THỊ
2.2. Thuật toán tuần tự Prim tìm cây khung cực tiểu
2.2.1.Mô tả thuật toán
Đầu vào: Đồ thị G=(V,E) với trọng số. Các đỉnh ký hiệu là 1,2,3,…,n
Trọng số của cạnh (i,j), (i,j)E, ký hiệu là cij, đỉnh nguồn a, 1 bộ xử lý chính và m-1 bộ xử lý phụ.
Đầu ra: Cây phủ nhỏ nhất T, Hoặc kết luận đồ thị không liên thông. Các bước:
(1) Khởi tạo: T là đồ thị gồm một đỉnh 1 và không có cạnh
(2) Kiểm tra điều kiện kết thúc:
Nếu T có n-1 cạnh, kết thúc, kết luận: T là cây phủ nhỏ nhất. Ngược lại sang bước (3)
(3) Thêm cạnh:
Ký hiệu M là tập M ={ (i,j)E| iT&jT} Tìm cạnh (k,h)M sao cho :
ckh=min{cij|(i,j)M }
Nếu ckh<∞, thêm cạnh (k,h) và đỉnh h vào T, sang bước (2). Ngược lại tức M= , kết thúc. Kết luận đồ thị G không liên thông
2.2.2.Ví dụ minh họa
Tìm cây phủ nhỏ nhất của đồ thị
(1) Khởi tạo: T chỉ có đỉnh a không có cạnh T:= ({a},), d(T):=0
(2) Kiểm tra: Số cạnh của T là 0, sang bước (3)
(3) Thêm cạnh: tập M={(a,e),(a,c),(a,b)} Ta có cac=2=min{cij|(i,j)M }
Thêm đỉnh c và cạnh (a,c) vào T, T:= ({a,c},{(a,c)}), d(T):=d(T)+ cac=2
(2) Kiểm tra: Số cạnh của T là 1, sang bước (3)
(3) Thêm cạnh: tập M={(a,e),(a,b),(c,e),(c,f),(c,d)} Ta có ccd=1=min{cij|(i,j)M }
Thêm đỉnh d và cạnh (c,d) vào T, T:= ({a,c,d},{(a,c),(c,d)}), d(T):=d(T)+ ccd=2+1=3 a b d c e f 4 3 3 5 2 2 6 1 6
(2) Kiểm tra: Số cạnh của T là 2, sang bước (3)
(3) Thêm cạnh: tập M={(a,e),(a,b),(c,e),(c,f),(d,b),(d,f)} Ta có cae=3=min{cij|(i,j)M }
Thêm đỉnh e và cạnh (a,e) vào T, T:= ({a,c,d,e},{(a,c),(c,d),(a,e)}), d(T):=d(T)+ cae=3+3=6
(2) Kiểm tra: Số cạnh của T là 3, sang bước (3)
(3) Thêm cạnh: tập M={(a,b),(c,f),(d,b),(d,f),(e,f)}Ta có cef=2=min{cij|(i,j)M
}
Thêm đỉnh f và cạnh (e,f) vào T,
T:= ({a,c,d,e,f},{(a,c),(c,d),(a,e),(e,f)}), d(T):=d(T)+ cef=6+2=8
(2) Kiểm tra: Số cạnh của T là 4, sang bước (3)
(3) Thêm cạnh: tập M={(a,b),(d,b)}Ta có cab=4=min{cij|(i,j)M }
Thêm đỉnh b và cạnh (a,b) vào T, T:=
({a,c,d,e,f,b},{(a,c),(c,d),(a,e),(e,f),(a,b)}), d(T):=d(T)+ cab=8+4=12
(2) Kiểm tra: Số cạnh của T là 5, kết thúc.
Kết luận: Ta có cây phủ nhỏ nhất gồm các cạnh: (a,c),(c,d),(a,e),(e,f),(a,b)
Với tổng trọng số là: d(T):=2+1+3+2+4=12 a b d c e f 4 3 3 5 2 2 6 1 6
CHƯƠNG 3
NGHIÊN CỨU ỨNG DỤNG THUẬT TOÁN SONG SONG TRÊN THƯ VIỆN MPI