1. Trang chủ
  2. » Công Nghệ Thông Tin

bài thảo tiểu luận thuật toán prim

18 723 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 1,09 MB

Nội dung

BÀI TIỂU LUẬN NHÓM 2-46O TỔ CHỨC MẠNG VIỄN THÔNG 1 DANH SÁCH THÀNH VIÊN: 1. Lương Văn Hải. 2. Đặng Thị Như. 3. Nguyễn Thị Uyên. 4. Nguyễn Thị An. 5. Dương Thị Thảo. 6. Đoàn Thị Nhung. 2 NỘI DUNG THẢO LUẬN : I. Giới thiệu về thuật toán Prim………1 II. Các khái niệm chính……………………..6 III.Các cách biểu diễn đồ thị…………….10 IV.Duyệt các đỉnh của đồ thị……………12 V. Giải thuật Prim…………………………… 3 I. Giới thiệu về thuật toán Prim. Giải thuật Prim dựa trên cấu trúc của giải thuật tìm cây bao trùm theo chiều rộng hoặc chiều sâu, chỉ thay đổi về tiêu chuẩn chọn đỉnh sẽ bổ sung vào cây ở từng bước. 1. Bài toán Cho G = (X,E) là một đồ thị liên thông. Ngoài ra, một hàm trọng số W(e), xác định trên tập các cạnh E của G. Thuật toán Prim Ở mỗi bước của thuật toán ta dựa trên tư tưởng của các giải thuật tham ăn: Chọn và bổ sung vào cây cạnh có trọng số nhỏ nhất có thể. 4 3. Mô tả 1.Gọi T là cây bao trùm sẽ xây dựng 2.Chọn một đỉnh s bất kỳ của G cho vào cây T. 3.Khi đó T là một cây chỉ có một đỉnh và chưa có cạnh nào. 4.Nếu T đã gồm tất cả các đỉnh của G thì T là cây bao trùm cần tìm. Kết thúc. 5.Nếu G còn có các đỉnh không thuộc T, vì G liên thông nên có các cạnh nối một đỉnh trong T với một đỉnh ngoài T, chọn một cạnh có trọng số nhỏ nhất trong số đó cho vào T. 6.Quay lại 2. 5 II. Các khái niệm chính. •Một đồ thị G bao gồm một tập hợp V các đỉnh và một tập hợp E các cạnh, ký hiệu G=(V,E). •Các đỉnh còn được gọi là nút (node) hay điểm (point). Các cạnh nối giữa hai đỉnh, hai đỉnh này có thể trùng nhau. 6 • Đồ thị được gọi là liên thông nếu với mỗi cặp đỉnh i,j bất kỳ luôn tìm được đường đi nối i với j. • Hai đỉnh có cạnh nối nhau gọi là hai đỉnh kề (adjacency). Một cạnh nối giữa hai đỉnh v, w có thể coi như là một cặp điểm (v,w). • Nếu các cạnh trong đồ thị G có thứ tự thì G gọi là đồ thị có hướng (directed graph). 7 • Đường đi trong đồ thị là một dãy các đỉnh sao cho, mỗi đỉnh trong dãy (không kể đỉnh đầu tiên) kề với đỉnh trước nó bằng một cạnh nào đó, nghĩa là: ∀ i = 2, 3, … , k-1, k : (xi-1, xi) ∈ E. Ta nói rằng đường đi này đi từ đỉnh đầu x1 đến đỉnh cuối xk. Số cạnh của đường đi được gọi là độ dài của đường đi đó. • Đường đi đơn là đường đi mà các đỉnh trên nó khác nhau từng đôi. • Đồ thị vô hướng G=(V,E) được gọi là liên thông nếu với mỗi cặp đỉnh i, j bất kỳ thì luôn tìm được đường đi nối i và j. Đường đi nối i và j cũng là đường đi nối j và i. • Cây là đồ thị vô hướng, liên thông, không có chu trình 8 • Cây là đồ thị vô hướng, liên thông, không có chu trình Cây khung: Cho G là một đơn đồ thị. Một cây được gọi là cây khung của G nếu nó là một đồ thị con của G và chứa tất cả các đỉnh của G. Cây khung nhỏ nhất: Nói chung, ta có thể định nghĩa cây khung nhỏ nhất cho một đồ thị G như sau: Nếu mỗi cạnh eij = (vi, vj) có một trọng số cij, thì cây khung nhỏ nhất là một tập hợp các cạnh ký hiệu là Espan, sao cho: C = sum( cij | eij ∈ Espan ) là nhỏ nhất 9 III.Các cách biểu diễn đồ thị. Có khá nhiều cách biểu diễn đồ thị như biểu diễn bằng ma trận đỉnh-cung, ma trận đỉnh-cạnh, ma trận trọng số, danh sách liên kết, ….Ở đây chúng ta chỉ nghiên cứu cách biểu diễn đồ thị bằng ma trận trọng số như sau : Với đồ thị G=(V,E) , người ta thường gán cho mỗi cung hay cạnh (i,j) một giá trị cij gọi là trọng số của cung hay cạnh đó. Ma trận A biểu diễn đồ thị G=(V,E) có dạng : A=[aij] với i,j V Trong đó : aij=0 nếu cạnh/cung (i,j) không thuộc E, aij=wij nếu cạnh/cung (i,j) thuộc E 10 Ví dụ : Xét đồ thị vô hướng có trọng số : Ma trận trọng số biểu diễn đồ thị là: 11 IV. DUYỆT CÁC ĐỈNH CỦA ĐỒ THỊ. Xét đồ thị G=(V,E) . Gọi i là một đỉnh nào đó của G. Ký hiệu L là cấu trúc dữ liệu kiểu danh sách lưu trữ các đỉnh của G. Thuật toán duyệt các đỉnh của G được trình bày một cách tổng quát như sau : • Nạp đỉnh i vào danh sách L • Lấy đỉnh x ra khỏi đầu danh sách • Nếu x chưa được duyệt thì duyệt đỉnh x • Nạp các đỉnh kề với x chưa được duyệt vào danh sách L • Nếu L khác rỗng thì quay lên bước 2 • Dừng 12 • Duyệt đồ thị theo chiều sâu DFS (Depth-First Search) Nếu trong thuật toán duyệt các đỉnh của đồ thị, danh sách L được tổ chức theo kiểu ngăn xếp (vào trước ra sau) thì ta có phương pháp duyệt theo chiều sâu. Trong phương pháp này mỗi lần duyệt một đỉnh ta duyệt đến tận cùng mỗi nhánh rồi mới chuyển sang duyệt nhánh khác. • Duyệt đồ thị theo chiều rộng BFS (Breadth-First Search) Nếu trong thuật toán duyệt các đỉnh của đồ thị, danh sách L được tổ chức theo kiểu hàng đợi (vào trước ra trước) thì ta có phương pháp duyệt theo chiều rộng. Trong phương pháp này việc duyệt có tính chất lan rộng. Một đỉnh được duyệt xong ngay sau khi đã xét hết tất cả các đỉnh kề với nó. 13 • Kiểm tra tính liên thông của đồ thị : Hai giải thuật duyệt theo chiều sâu DFS và duyệt theo chiều rộng BFS thường được sử dụng để kiểm tra tính liên thông của đồ thị. Khi duyệt các đỉnh của đồ thị tập hợp các đỉnh đã được đánh số tạo thành một bộ phận liên thông của đồ thị. Nếu tất cả các đỉnh của đồ thị đều được đánh số thì kết luận đồ thị liên thông, ngược lại thì bắt đầu từ một đỉnh chưa được duyệt, áp dụng lại giải thuật trên tập hợp các đỉnh chưa được duyệt để tìm bộ phận liên thông kế tiếp. 14 V. Giải thuật Prim. Mô tả: Gọi T là cây bao trùm sẽ xây dựng 1. Chọn một đỉnh s bất kỳ của G cho vào cây T. Khi đó T là một cây chỉ có một đỉnh và chưa có cạnh nào. 2. Nếu T đã gồm tất cả các đỉnh của G thì T là cây bao trùm cần tìm. Kết thúc. 3. Nếu G còn có các đỉnh không thuộc T, vì G liên thông nên có các cạnh nối một đỉnh trong T với một đỉnh ngoài T, chọn một cạnh có trọng số nhỏ nhất trong số đó cho vào T. 4. Quay lại 2. 15 • Kết quả vận dụng lý thuyết vào đề tài: Nhập vào đồ thị vô hướng sau: 16 • Kiểm tra tính liên thông của đồ thị : đồ thị liên thông Bước khởi đầu: U={1},T=∅ Bước kế tiếp ta chọn cạnh (1,3) = 1 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim. Ta có U={1,3},T={(1,3)}. Kế tiếp thì cạnh (3,6) = 4 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim. Ta có U={1,3,6},T={(1,3) (3,6)}. Kế tiếp thì cạnh (6,4) = 2 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim. Ta có U={1,3,6,4},T={(1,3) (3,6)(6,4)}. Tiếp tục, cạnh (3,2) = 5 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim. Ta có U={1,3,6,4,2},T={(1,3), (3,6), (6,4),(3,2)}. 17 Cuối cùng là cạnh (2,5)=3 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim. Ta có U={1,3,6,4,2,5},T={(1,3), (3,6), (6,4),(3,2),(2,5),}. Giải thuật dừng và ta có cây bao trùm như hình bên dưới. 18 [...]... ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3},T={(1,3)} Kế tiếp thì cạnh (3,6) = 4 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3,6},T={(1,3) (3,6)} Kế tiếp thì cạnh (6,4) = 2 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3,6,4},T={(1,3) (3,6)(6,4)} Tiếp tục, cạnh (3,2) = 5 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3,6,4,2},T={(1,3),... đánh số tạo thành một bộ phận liên thông của đồ thị Nếu tất cả các đỉnh của đồ thị đều được đánh số thì kết luận đồ thị liên thông, ngược lại thì bắt đầu từ một đỉnh chưa được duyệt, áp dụng lại giải thuật trên tập hợp các đỉnh chưa được duyệt để tìm bộ phận liên thông kế tiếp 14 V Giải thuật Prim Mô tả: Gọi T là cây bao trùm sẽ xây dựng 1 Chọn một đỉnh s bất kỳ của G cho vào cây T Khi đó T là một cây... lưu trữ các đỉnh của G Thuật toán duyệt các đỉnh của G được trình bày một cách tổng quát như sau : • Nạp đỉnh i vào danh sách L • Lấy đỉnh x ra khỏi đầu danh sách • Nếu x chưa được duyệt thì duyệt đỉnh x • Nạp các đỉnh kề với x chưa được duyệt vào danh sách L • Nếu L khác rỗng thì quay lên bước 2 • Dừng 12 • Duyệt đồ thị theo chiều sâu DFS (Depth-First Search) Nếu trong thuật toán duyệt các đỉnh của... BFS (Breadth-First Search) Nếu trong thuật toán duyệt các đỉnh của đồ thị, danh sách L được tổ chức theo kiểu hàng đợi (vào trước ra trước) thì ta có phương pháp duyệt theo chiều rộng Trong phương pháp này việc duyệt có tính chất lan rộng Một đỉnh được duyệt xong ngay sau khi đã xét hết tất cả các đỉnh kề với nó 13 • Kiểm tra tính liên thông của đồ thị : Hai giải thuật duyệt theo chiều sâu DFS và duyệt... ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3,6,4,2},T={(1,3), (3,6), (6,4),(3,2)} 17 Cuối cùng là cạnh (2,5)=3 là cạnh ngắn nhất thỏa điều kiện của giải thuật Prim Ta có U={1,3,6,4,2,5},T={(1,3), (3,6), (6,4),(3,2),(2,5),} Giải thuật dừng và ta có cây bao trùm như hình bên dưới 18 ... Thị Thảo Đoàn Thị Nhung NỘI DUNG THẢO LUẬN : I Giới thiệu thuật toán Prim ……1 II Các khái niệm chính…………………… III.Các cách biểu diễn đồ thị…………….10 IV.Duyệt đỉnh đồ thị……………12 V Giải thuật Prim …………………………... Prim ………………………… I Giới thiệu thuật toán Prim Giải thuật Prim dựa cấu trúc giải thuật tìm bao trùm theo chiều rộng chiều sâu, thay đổi tiêu chuẩn chọn đỉnh bổ sung vào bước Bài toán Cho G = (X,E) đồ... đồ thị liên thông Ngoài ra, hàm trọng số W(e), xác định tập cạnh E G Thuật toán Prim Ở bước thuật toán ta dựa tư tưởng giải thuật tham ăn: Chọn bổ sung vào cạnh có trọng số nhỏ Mô tả 1.Gọi T bao

Ngày đăng: 03/10/2015, 08:40

TỪ KHÓA LIÊN QUAN

w