1
Chương 3
Các Thuật Toán Duyệt Đồ Thị
(Graph Searching, Graph Traversal)
2
Các thuật tn duyệt đồ th
Duyệt đồ thị: Graph Searching hoặc Graph Traversal
Duyệt qua mỗi đỉnh và mỗi cạnh của đồ thị
ng dụng:
Cần để khảo sát các tính chất của đồ th
thành phần bản của nhiều thuật toán trên đồ th
Hai thuật toán duyệt bản:
Tìm kiếm theo chiều rộng (Breadth First Search – BFS)
Tìm kiếm theo chiều sâu (Depth First Search – DFS)
3
Ý tưởng chung của các thuật toán duyệt
Ý tưởng chung:
Trong quá trình thực hiện thuật toán, mỗi đỉnh một trong ba trạng thái:
Chưa thăm, thể hiện bởi màu trắng
Đã thăm (nhưng chưa duyệt xong), thể hiện bởi màu xám
Đã duyệt xong, thể hiện bởi màu đen
Trạng thái của đỉnh sẽ biến đổi theo qui tắc sau:
Thoạt đầu mỗi đỉnh đều có màu trắng (chưa thăm - not visited).
Đỉnh đã được thăm sẽ chuyển thành màu xám (tr thành đã thăm nhưng chưa duyệt
xong - visited).
Khi tất cả các đỉnh k của một đỉnh v đã được thăm, đỉnh vsẽ màu đen (đã
duyệt xong discovered).
4
Tìm kiếm theo chiều rộng
Breadth-first Search (BFS)
5
Tìm kiếm theo chiều rộng
Breadth-first Search
Input: Đồ thị G = (V, E),vô hướng hoặc có hướng.
Output:
d[v]=khoảng cách (độ dài của đường đi ngắn nhất) từ s(là
đỉnh xuất phát tìm kiếm) đến v, với mọi vV.d[v]=nếu v
không đạt tới được từ s.
[v]=uđỉnh đi trước vtrong đường đi từ s(là đỉnh xuất phát
tìm kiếm) đến v độ dài d[v].
y dựng cây BFS với gốc tại schứa tất c các đỉnh đạt tới được
từ s.