Thông tin tài liệu
KHOA CÔNG NGHỆ THÔNG TIN Môn: Thuật toán Nhóm: GVHD: Nguyễn Thanh Cẩm SVTH: Trịnh Lâm Vũ Thuật toán PRIM Giới thiệu Trong khoa học máy tính, thuật toán Prim thuật toán tham lam để tìm bao trùm nhỏ đồ thị vô hướng có trọng số liên thông Nghĩa tìm tập hợp cạnh đồ thị tạo thành chứa tất đỉnh, cho tổng trọng số cạnh nhỏ Thuật toán PRIM Mô tả Mô tả: Thuật toán xuất phát từ chứa đỉnh mở rộng bước một, bước thêm cạnh vào cây, bao trùm tất đỉnh đồ thị Còn gọi thuật toán lân cận gần Thuật toán dừng lại n đỉnh thu n đỉnh nhập vào n-1 cạnh Thuật toán PRIM Chi tiết thuật toán Các bước: - Đầu vào: Một đồ thị có tập hợp đỉnh V cạnh E - Khởi tạo: V(mới) = x, x cạnh bất kỳ, E(mới) = {} - Lặp lại V(mới) = V + Chọn cạnh (u,v) có độ dài nhỏ thỏa mãn u thuộc V(mới) v không thuộc V(mới) + Thêm v vào V(mới) thêm cạnh (u,v) vào E(mới) - Xuất V(mới) E(mới) Thuật toán PRIM Ví dụ minh họa Bước 1: Nhập vào đồ thị gồm V E - Tập hợp đỉnh V = {A,B,C,D,E,F} – Đỉnh - Tập hợp cạnh E = {(A,B:5)(B,C:8)(C,D:15)(D,E:10)(E,A:9) (A,F:4)(B,F:7)(C,F:12)(D.F:7)(E,F:3)} – 10 Cạnh * Chú thích O : Cạnh đượct xét O : Cạnh đỉnh chọn Thuật toán PRIM Ví dụ minh họa Bước 2: Khởi tạo V(mới) chứa {B} E(mới) { } (Lựa chọn đỉnh B đỉnh ngẫu nhiên đồ thị đưa vào V(mới)) Bước 3: Lựa chọn cạnh (u,v) nhỏ Có cạnh (B,A), (B,C) (B,F) Chọn cạnh (B,A) có độ dài nhỏ Thêm A vào V(mới) (B,A) vào E(mới) Tiếp tục xét cạnh (u,v) Với điều kiện u thuộc V(mới) v k thuộc V(mới) Lúc V(mới) = {B,A} , E(mới) = {(B,A:5)} Thuật toán PRIM Ví dụ minh họa Bước 3: Tiếp tục xét ta có: (B,C),(A,F),(A,E),(B,F) (A,F) cạnh có độ dài ngắn Thêm F vào V(mới) (A,F) vào E(mới) Lúc V(mới) = {B,A,F}, E(mới) = {(B,A:5)(A,F:4)} Thuật toán PRIM Ví dụ minh họa Bước 3: Tiếp tục xét ta có: (B,C),(F,C),(F,D),(F,E),(A,E) ta thấy cạnh (F,E) có độ dài ngắn nhất, lựa chọn F,E Thêm E vào V(mới) (F,E) vào E(mới) Lúc V(mới) = {B,A,F,E} E(mới) = {(B,A:5)(A,F:4)(F,E:3)} Thuật toán PRIM Ví dụ minh họa Bước 3: Tiếp tục xét ta có: (B,C),(F,C),(F,D),(E,D) ta thấy cạnh (F,D) có độ dài ngắn nhất, lựa chọn F,D Thêm D vào V(mới) (F,D) vào E(mới) Lúc V(mới) = {B,A,F,E,D} E(mới) = {(B,A:5)(A,F:4)(F,E:3)(F,D:7) } Thuật toán PRIM Ví dụ minh họa Bước 3: Tiếp tục xét ta có: (B,C),(F,C),(D,C) ta thấy cạnh (B,C) có độ dài ngắn nhất, lựa chọn B,C Thêm C vào V(mới) (B,C) vào E(mới) Lúc V(mới) = {B,A,F,E,D,C} E(mới) = {(B,A:5)(A,F:4)(F,E:3)(F,D:7) (B,C:8)} V(mới) = V(ban đầu) : đỉnh Ngừng lặp thuật toán Thuật toán PRIM Ví dụ minh họa Bước 4: Xuất kết V(mới) = {B,A,F,E,D,C} – đỉnh E(mới) = {(B,A:5)(A,F:4)(F,E:3)(F,D:7)(B,C:8)} – cạnh Độ dài khung nhỏ nhất: 5+4+3+7+8 = 27 .. .Thuật toán PRIM Giới thiệu Trong khoa học máy tính, thuật toán Prim thuật toán tham lam để tìm bao trùm nhỏ đồ thị vô hướng có trọng số liên... số cạnh nhỏ Thuật toán PRIM Mô tả Mô tả: Thuật toán xuất phát từ chứa đỉnh mở rộng bước một, bước thêm cạnh vào cây, bao trùm tất đỉnh đồ thị Còn gọi thuật toán lân cận gần Thuật toán dừng lại... thuật toán lân cận gần Thuật toán dừng lại n đỉnh thu n đỉnh nhập vào n-1 cạnh Thuật toán PRIM Chi tiết thuật toán Các bước: - Đầu vào: Một đồ thị có tập hợp đỉnh V cạnh E - Khởi tạo: V(mới)
Ngày đăng: 23/06/2017, 18:28
Xem thêm: SLIDE GIỚI THIỆU THUẬT TOÁN THAM LAM, SLIDE GIỚI THIỆU THUẬT TOÁN THAM LAM