Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
PowerPoint Presentation
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Nội dung
KHOA CÔNG NGHỆ THÔNG TIN Môn: Thuậttoán Nhóm: GVHD: Nguyễn Thanh Cẩm SVTH: Trịnh Lâm Vũ Thuậttoán PRIM Giớithiệu Trong khoa học máy tính, thuậttoán Prim thuậttoánthamlam để 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ậttoá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ậttoán lân cận gần Thuậttoá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ậttoá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ậttoá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ậttoá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ậttoá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ậttoá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ậttoá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ậttoá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ậttoánThuậttoá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)