Thuật toán tuần tự Prim tìm cây khung cực tiểu

Một phần của tài liệu 28032_1712202001913653NGUYENDANGKHOAK34HTTT (Trang 51 - 53)

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| iT&jT} 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

Một phần của tài liệu 28032_1712202001913653NGUYENDANGKHOAK34HTTT (Trang 51 - 53)

Tải bản đầy đủ (PDF)

(85 trang)