Professional Documents
Culture Documents
Chương 3. Tìm kiếm trên đồ thị
Chương 3. Tìm kiếm trên đồ thị
CHƯƠNG 3
1
Nội dung LOGO
2
Bài toán tìm kiếm trên đồ thị (1/2) LOGO
3
Bài toán tìm kiếm trên đồ thị (2/2) LOGO
Yêu cầu 1:
Yêu cầu 2:
4
Thuật toán cho yêu cầu 1 LOGO
Bắt đầu
sai
D khác rỗng
đúng
Không có Lấy v là đỉnh trong danh Nạp các đỉnh kề của v vào
đường đi từ s sách D danh sách D
đến t
sai
v là đỉnh đích t
đúng Có đường đi từ
s đến t
Kết thúc
5
Thuật toán cho yêu cầu 2 LOGO
Bắt đầu
sai
D khác rỗng
Với mỗi đỉnh x kề của v mà
đúng không thuộc D làm:
Không có Lấy v là đỉnh trong danh - Nạp x vào D
đường đi từ s sách D - Truy vết Truoc(x) là v
đến t
sai
v là đỉnh đích t
đúng Có đường đi từ
s đến t
Kết thúc
6
Thuật toán Depth First Search (1/2) LOGO
vTrong quá trình tìm kiếm DFS tổ chức lưu trữ danh
sách các đỉnh theo kiểu LIFO - Last In First Out.
7
Thuật toán Depth First Search (2/2) LOGO
8
Thuật toán Breadth First Search (1/3) LOGO
vTrong quá trình tìm kiếm BFS tổ chức lưu trữ danh
sách các đỉnh theo kiểu FIFO – First In First Out.
9
Thuật toán Breadth First Search (2/3) LOGO
10
Thuật toán Breadth First Search (3/3) LOGO
11
Thảo luận & bài tập (1/5) LOGO
vĐộ phức tạp tính toán của DFS tùy thuộc vào đồ thị
được biểu diễn dưới dạng nào, trong trường hợp xấu
nhất ta có bảng so sánh sau:
12
Thảo luận & bài tập (2/5) LOGO
13
Thảo luận & bài tập (3/5) LOGO
14
Thảo luận & bài tập (4/5) LOGO
Kết
Bài toán Loại đồ thị DFS hoặc BFS Bổ sung
quả
DFS(u)
Xác định Vô
hoặc
có/không hướng
DFS(v) Mỗi khi duyệt xong một đỉnh cần
đường đi từ ?
đổi trạng thái của đỉnh đó
đỉnh u đến đỉnh
Có
v DFS(u)
hướng
DFS(u)
Vô
hoặc
Tìm đường đi hướng
DFS(v) Trong quá trình duyệt cần truy vết
từ đỉnh u đến ?
lại các đỉnh đã đi qua
đỉnh v
Có
DFS(u)
hướng
15
Thảo luận & bài tập (5/5) LOGO
Bài toán Loại đồ thị DFS hoặc BFS Bổ sung Kết quả
Vô hướng ? ? ?
Duyệt mỗi đỉnh
của đồ thị 1 lần Có hướng ? ? ?
16