TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Khoa Toán - Tin học
Bộ môn Ứng dụng Tin học
TOÁN RỜI RẠC 2A
Chương 3. Các thuật toán trên đồ thị
GV: Thị Tuyết Nhung
M c lc I
1Tìm kiếm trên đồ thị
Thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS)
Thuật toán tìm kiếm theo chiều rộng (Breadth-First Search - BFS)
Một số ứng dụng của DFS BFS
Tuyết Nhung Toán rời rạc 2A Chương 3. Các thuật toán trên đồ thị 2 / 20
Tìm kiếm trên đồ th
Một bài toán quan trọng trong thuyết đồ thị bài toán duyệt tất cả các đỉnh
thể đến được từ một đỉnh xuất phát nào đó. Vấn đề y đưa về một bài toán
liệt kê yêu cầu của không được b sót hay lặp lại bất kỳ đỉnh nào.
vậy ta phải y dựng những thuật toán cho phép duyệt một cách hệ
thống các đỉnh, những thuật toán như vậy gọi những thuật toán tìm kiếm
trên đồ thị.
Chúng ta xét hai thuật toán bản nhất:
Thuật toán tìm kiếm theo chiều sâu trên đồ thị.
Thuật toán tìm kiếm theo chiều rộng trên đồ thị.
Tuyết Nhung Toán rời rạc 2A Chương 3. Các thuật toán trên đồ thị 3 / 20
Thut toán tìm kiếm theo chiu sâu
Nguyên
Bắt đầu tìm kiếm từ một đỉnh v0nào đó của đồ thị
Chọn một đỉnh ubất kỳ k với v0 lấy làm đỉnh duyệt tiếp theo.
Lặp lại quá trình y với ucho đến khi không tìm được đỉnh k tiếp theo
nữa thì trở về đỉnh ngay trước đỉnh không thể đi tiếp để tìm qua nhánh
khác.
Tuyết Nhung Toán rời rạc 2A Chương 3. Các thuật toán trên đồ thị 4 / 20
Thut toán tìm kiếm theo chiu sâu
Thuật toán (cài đặt đệ quy)
Bước 1. Lấy s một đỉnh của đồ thị.
Bước 2. Đặt v=s.
Bước 3. Duyệt đỉnh v.
Bước 4. Nếu với mọi đỉnh k của vđều được duyệt, đặt vbằng đỉnh đã được
duyệt trước đỉnh v.
Nếu v=sthì đi đến Bước 6, ngược lại trở lại Bước 3.
Bước 5. Chọn u đỉnh k chưa được duyệt của v, đặt v=u, trở lại Bước 3.
Bước 6. Kết thúc.
Tuyết Nhung Toán rời rạc 2A Chương 3. Các thuật toán trên đồ thị 5 / 20