Đồ thị khiến DFS và BFS xử lý các nút theo cùng một thứ tự chính xác


11

Đối với một số biểu đồ, thuật toán tìm kiếm DFS và BFS xử lý các nút theo cùng một thứ tự chính xác với điều kiện là cả hai đều bắt đầu tại cùng một nút. Hai ví dụ là các biểu đồ là các đường dẫn và biểu đồ có hình ngôi sao (cây có độ sâu với số lượng con tùy ý). Có cách nào để phân loại đồ thị thỏa mãn tính chất này không?1


6
Lưu ý rằng trong cả hai trường hợp, điều này chỉ hoạt động nếu bạn bắt đầu tại một số nút cụ thể. Ví dụ, nếu bạn chọn một nút trung tâm trong một đường dẫn dài, bạn sẽ nhận lại các thứ tự khác nhau từ DFS và BFS.
templatetypedef

1
Có bất kỳ khả năng thú vị nào khác ngoài một ngôi sao hoặc một con đường không? Thoạt nhìn, dường như nếu bạn có một đỉnh có cả anh chị em và một đứa trẻ thì bạn ngay lập tức có các đường ngang khác nhau, vì vậy không có đỉnh nào có con (ngoài gốc) và bạn có một ngôi sao, hoặc không có đỉnh nào có anh chị em và bạn có được một con đường. Tôi đoán một cụm cũng hoạt động, nhưng nó có cả ngôi sao và đường dẫn được nhúng.
Luke Mathieson

2
G=(V,E)=vG1G2v1G1v2G2(v1,v2)v1v2

2
Điểm hay, vì vậy có một số loại bố cục đệ quy đúng nơi bạn có thể xác định lá bên phải của biểu đồ đầu tiên với gốc của biểu đồ thứ hai.
Luke Mathieson

vvG=(V,E)xVy,z,wV(y,x),(z,y),(x,w)E(x,z)EG

Câu trả lời:


6

Giả sử BFS và dfs của chúng tôi có một quy tắc để bắt đầu từ nút cụ thể và trong mỗi hai chiều, lần đầu tiên họ truy cập nút với mức độ thấp nhất:

DFS-BFS

bắt đầu từ hầu hết các nút đen bên trái, sau đó (BFS và DFS) được truy cập bên trái hầu hết các nút đỏ, sau đó họ sẽ truy cập nút đen tiếp theo, v.v., để làm cho nó tổng quát hơn, bạn có thể thêm một số đường dẫn ở giữa các tam giác hoặc thêm sao sau khi hoàn thành hình tam giác ...


Điều đó đúng theo giả định của bạn. Bạn đã nêu lên một điểm tốt thực sự; chúng ta nên xác định theo thứ tự các nút được thêm vào chương trình nghị sự (ngăn xếp hoặc hàng đợi) khi phải đối mặt với một lựa chọn.
saadtaame

Lưu ý rằng LIFO và FIFO để lập lịch trình mang lại DFS và BFS tương ứng, người ta có thể lập luận rằng việc lập lịch biểu như thế này (trong đó việc lập lịch có thể không phải là xếp chồng hoặc giống như hàng đợi) không phải là tìm kiếm theo chiều sâu - trong một số trường hợp, bạn có thể mô tả xu hướng của nó giống với cái này hay cái khác.
Niel de Beaudrap

1
Tôi nghĩ rằng nó có thể được thực hiện trong điều khoản của một ngăn xếp hoặc hàng đợi. Nó không thay đổi cách mọi thứ được đưa ra (LIFO hoặc FIFO), nó thay đổi thứ tự mà trẻ em được thêm vào (trong trường hợp này, mức độ thấp nhất trước tiên).
SamM

@NieldeBeaudrap thực sự đây chỉ là một cấu trúc để chỉ ra rằng ở đâu đó cả hai cách đều giống nhau.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.