Duyệt đồ thị theo chiều sâu

     

Giải thuật tra cứu kiếm theo chiều sâu là gì?

Giải thuật tìm kiếm theo hướng sâu (Depth First search – viết tắt là DFS), nói một cách khác là giải thuật tìm kiếm ưu tiên chiều sâu, là lời giải duyệt hoặc kiếm tìm kiếm trên một cây hoặc một thứ thị và thực hiện stack (ngăn xếp) nhằm ghi lưu giữ đỉnh ngay cạnh để ban đầu việc tra cứu kiếm lúc không gặp được đỉnh gần cạnh trong ngẫu nhiên vòng lặp nào. Lời giải tiếp tục tính đến khi gặp mặt được đỉnh yêu cầu tìm hoặc cho tới một nút không có con. Lúc đó lời giải quay lui về đỉnh vừa mới tìm kiếm ở bước trước.

Bạn đang xem: Duyệt đồ thị theo chiều sâu

*

Trong hình minh họa trên, lời giải tìm tìm theo chiều sâu thứ nhất duyệt từ các đỉnh A cho tới B tới C tới D kế tiếp tới E, sau đó tới F và sau cùng tới G. Giải thuật này tuân thủ theo đúng qui tắc sau:

Qui tắc 1: coi ngó tiếp tới đỉnh gần kề mà không được duyệt. Đánh vết đỉnh nhưng mà đã được duyệt. Hiển thị đỉnh đó và đẩy vào vào một ngăn xếp (stack).

Qui tắc 2: Nếu không kiếm thấy đỉnh tức thì kề, thì lấy một đỉnh từ trong chống xếp (thao tác pop up). (Giải thuật đang lấy toàn bộ các đỉnh tự trong ngăn xếp mà không tồn tại các đỉnh gần cạnh nào)

Qui tắc 3: Lặp lại những qui tắc 1 với qui tắc 2 cho tới khi phòng xếp là trống.

Bảng dưới đây minh họa những qui tắc với hình lấy ví dụ như trên:

BướcDuyệtMô tả
1.
*
Khởi sản xuất ngăn xếp (stack)
2.
*
Đánh vết đỉnh Sđã duyệt cùng đặt đỉnh này vào trong phòng xếp. Tìm kiếm bất kỳ đỉnh tiếp giáp nào mà chưa được duyệt trường đoản cú đỉnh S. Bọn họ có 3 đỉnh và chúng ta có thể lấy bất kỳ đỉnh nào trong các chúng. Ví dụ, chúng ta lấy đỉnh A theo vật dụng tự chữ cái.
3.
*
Đánh vết đỉnh A là đã chú tâm và để vào trong phòng xếp. Tìm kiếm ngẫu nhiên đỉnh giáp nào cùng với đỉnh A. Cả S với D hồ hết là nhị đỉnh giáp A nhưng bọn họ chỉ thân yêu về đỉnh chưa được duyệt.
4.

Xem thêm: Câu 39: Vật Liệu Nào Không Thể Tái Chế ? Vật Liệu Nào Sau Đây Không Thể Tái Chế

*
Duyệt đỉnh D, lưu lại đỉnh này là đã chăm chú và đặt vào trong ngăn xếp. Ở đây, bọn họ có B cùng C là hai đỉnh kề với D cùng cả hai phần đông là không được duyệt. Bọn họ sẽ lựa chọn theo đồ vật tự chữ cái một lần nữa.
5.
*
Chọn B, lưu lại là đã duyệt và để vào trong phòng xếp. Ở trên đây B không có ngẫu nhiên đỉnh liền kề nào mà chưa được duyệt. Do thế họ lấy B thoát ra khỏi ngăn xếp.
6.
*
Kiểm tra thành phần trên thuộc của phòng xếp để trở về nút đã phê duyệt trước đó và soát sổ xem đỉnh này còn có đỉnh nào gần cạnh mà không được duyệt tốt không. Ở đây, họ tìm thấy đỉnh D nằm ở vị trí trên cùng của phòng xếp.
7.
*
Chỉ có một đỉnh sát với D mà chưa được duyệt, chính là đỉnh C. Bọn họ duyệt C, khắc ghi là đã coi ngó và để vào trong ngăn xếp.

Xem thêm: Phân Tích Phần 2 Bình Ngô Đại Cáo Của Nguyễn Trãi, Phân Tích Đoạn 2 Bình Ngô Đại Cáo Của Nguyễn Trãi

C không có bất kỳ đỉnh nào gần kề mà chưa được duyệt, chúng ta tiếp tục lấy những đỉnh từ trong phòng xếp nhằm tìm xem tất cả còn bất kỳ đỉnh nào cạnh bên mà không được duyệt tuyệt không. Trong ví dụ này là không có, và chúng ta vẫn tiếp tục cho tới khi phòng xếp là trống.