Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
723,92 KB
Nội dung
CÁC THUẬT TỐN TÌM KIẾM TRÊN ĐỒ THỊ MỤC TIÊU: - Hiểu thuật toán DFS BFS, Kruskal, Prim - Thực duyệt đồ thị thuật toán DFS BFS - Vận dụng thuật toán DFS BFS để tìm đường - Vận dụng Kruskal Prim để tìm đường ngắn 11/21/2022 Các khái niệm DFS ⚫ Thuật toán DFS (Depth First Search) ➢ DFS thuật tốn tìm kiếm hay duyệt qua tất đỉnh thuộc thành phần liên thơng đồ thị ➢ Thuật tốn có nhiều ứng dụng giải tốn liên thơng, khung, đường đi,… 11/21/2022 Các khái niệm DFS ➢ Có thể cài đặt phương pháp lặp cấu trúc stack khử đệ quy ➢ Độ phức tạp thuật tốn : O(n+m) • Với n số đỉnh • Với m số cạnh 11/21/2022 Ý tưởng DFS ⚫ Xuất phát từ đỉnh v cho trước chưa thăm ⚫ Thăm đỉnh v tìm đỉnh u chưa thăm kề với v, thăm u lặp lại trình tất đỉnh thăm ⚫ Nếu đỉnh u mà khơng cịn đỉnh kề chưa thăm quay trở lại đỉnh trước u (có đỉnh kề u đường đến u) tìm đỉnh kề chưa thăm đỉnh 11/21/2022 Thuật toán đệ quy DFS 11/21/2022 Ví dụ thuật tốn DFS Ví dụ: Tìm khung đồ thị với f đỉnh gốc d a i j h k f c e b g 11/21/2022 Ví dụ thuật tốn DFS d a i j f f c e h k g b h g Ta xuất phát từ đỉnh f, tìm đỉnh kề f, ta lấy k đỉnh g tiếp tục k j {f, g, k, j}, sau ta lùi k, khơng them cạnh nào, tiếp tục lùi j h,… 11/21/2022 Ví dụ thuật toán DFS d a i f j g f k c e d e h h b k g j c i a b Thêm i làm thứ hai h lùi f Lại thêm hậu duệ f : {d, e, c, a} Lùi c thêm b làm thứ hai Cây thu khung đồ thị cho 11/21/2022 Các khái niệm BFS ⚫ Thuật toán BFS (Breadth First Search) ➢ Thuật tốn BFS dùng để duyệt tìm kiếm đồ thị tương tự thuật toán DFS thay dùng cấu trúc stack BFS dùng cấu trúc hàng đợi để thực ➢ 11/21/2022 Thuật tốn có độ phức tạp O(m+n) Ý tưởng BFS ❑ Xuất phát từ đỉnh v cho trước chưa thăm, bỏ v vào hàng đợi ❑ Lấy từ hàng đợi đỉnh u, thăm u bỏ đỉnh kề chưa thăm u vào hàng đợi ❑ Lặp lại hàng đợi rỗng 11/21/2022 10 ... làm thứ hai Cây thu khung đồ thị cho 11/21/2022 Các khái niệm BFS ⚫ Thuật toán BFS (Breadth First Search) ➢ Thuật tốn BFS dùng để duyệt tìm kiếm đồ thị tương tự thuật toán DFS thay dùng cấu trúc.. .Các khái niệm DFS ⚫ Thuật toán DFS (Depth First Search) ➢ DFS thuật tốn tìm kiếm hay duyệt qua tất đỉnh thuộc thành phần liên thơng đồ thị ➢ Thuật tốn có nhiều ứng dụng... tất khung đồ thị G tìm khung có độ dài nhỏ nhất, khung gọi khung ngắn đồ thị Ví dụ : Cây khung ngắn đồ thị G vẽ cạnh tô đậm hình bên Hình: Cây khung ngắn đồ thị G 11/21/2022 16 Thuật toán Kruskal