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... • Đồ thị đ
Trang 1BÀI TIỂU LUẬN NHÓM 2-46O
TỔ CHỨC MẠNG VIỄN THÔNG
Trang 2DANH 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.
Trang 3N I DUNG TH O LU N : ỘI DUNG THẢO LUẬN : ẢO LUẬN : Ậ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………
Trang 4I 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ể
Trang 53 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.
Trang 6II 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
Trang 7• Đồ 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)
Trang 8• Đường đi trong đồ thị là một dãy các đỉnh
<x1,x2, … , xi, xj+1, … ,xk-1, xk >
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 đó.
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.
trình
Trang 9• 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 e ij = (v i , v j ) 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à E span, sao cho:
C = sum( c ij | e ij E span ) là nhỏ nhất
Trang 10III.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, a =w nếu cạnh/cung (i,j) thuộc E
Trang 11Ví dụ :
Xét đồ thị vô hướng có trọng số :
Ma trận trọng số biểu diễn đồ thị là:
Trang 12IV 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
Trang 13• 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ó
Trang 14• 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
Trang 15V 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.
Trang 16• Kết quả vận dụng lý thuyết vào đề tài:
Nhập vào đồ thị vô hướng sau:
Trang 17• 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)}
Trang 18Cuố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