Wykresy, które powodują, że DFS i BFS przetwarzają węzły w dokładnie tej samej kolejności


11

W przypadku niektórych wykresów algorytmy wyszukiwania DFS i BFS przetwarzają węzły w dokładnie tej samej kolejności, pod warunkiem, że oba rozpoczynają się w tym samym węźle. Dwa przykłady to wykresy będące ścieżkami i wykresy w kształcie gwiazdy (drzewa o głębokości z dowolną liczbą dzieci). Czy istnieje sposób kategoryzowania wykresów spełniających tę właściwość?1


6
Zauważ, że w obu przypadkach działa to tylko wtedy, gdy zaczynasz od określonego węzła. Na przykład, jeśli wybierzesz centralny węzeł na długiej ścieżce, odzyskasz inne porządki z DFS i BFS.
templatetypedef

1
Czy są jakieś inne interesujące możliwości niż gwiazda lub ścieżka? Na pierwszy rzut oka wydaje się, że jeśli masz wierzchołek z rodzeństwem i dzieckiem, natychmiast dostajesz różne przejścia, więc albo żaden wierzchołek nie ma dzieci (oprócz korzenia) i dostajesz gwiazdę, lub żaden wierzchołek nie ma rodzeństwa i dostajesz ścieżkę. Chyba klika również działa, ale ma zarówno gwiazdę, jak i ścieżkę.
Luke Mathieson,

2
@LukeMathieson Mam na myśli gwiazdę z prawym dzieckiem będącą korzeniem innej gwiazdy. Myślę, że to też zadziała. Możemy nawet sformułować ogólne stwierdzenie: jeśli spełnia właściwość, gdy wyszukiwanie rozpoczyna się w węźle v∈V, to robi to również gwiazda, której skrajne prawe dziecko . Jeszcze lepiej, jeśli i spełniać nieruchomość i węzeł jest ostatnim przetwarzane i gdzie rozpoczyna wyszukiwania w , a następnie dodanie krawędzi mostka tworzy wykres, który spełnia nieruchomości. Wymiana przez działa również myślę.= v G 1 G 2 v 1 G 1 v 2 G 2 ( v 1 , v 2 ) v 1 v 2G=(V,E)=vG1G2v1G1v2G2(v1,v2)v1v2
saadtaame

2
Dobra uwaga, więc istnieje pewna rekurencyjna kompozycja, w której można zidentyfikować właściwy liść pierwszego wykresu z pierwiastkiem drugiego.
Luke Mathieson,

@LukeMathieson Wygląda na to, że możesz naprawić przypadek, w którym węzeł ma rodzeństwo i dziecko, dodając krawędź między tym dzieckiem a rodzicem . Oto moja propozycja: Biorąc pod uwagę wykres . , jeśli tak, że , a następnie własność zachodzi dla . Następnym krokiem jest udowodnienie lub obalenie tej propozycji. v G = ( V , E ) x V y , z , w V ( y , x ) , ( z , y ) , ( x , w ) E ( x , z ) EvvG=(V,E)xVy,z,wV(y,x),(z,y),(x,w)E(x,z)EG
saadtaame

Odpowiedzi:


6

Załóżmy, że nasz BFS i dfs mają regułę rozpoczynającą się od określonego węzła i w każdym dwukierunkowym odwiedzają najpierw węzeł o najniższym stopniu:

DFS-BFS

zacznij od lewego najbardziej czarnego węzła, następnie (BFS i DFS) odwiedź lewy najbardziej czerwony węzeł, następnie odwiedzą następny czarny węzeł i tak dalej, dla uogólnienia możesz dodać ścieżki między trójkątami lub gwiazdkę po zakończeniu trójkątów ...


Zgadza się to z twoim założeniem. Właściwie podniosłeś rację; powinniśmy określić, w jakiej kolejności węzły są dodawane do porządku dziennego (stosu lub kolejki) w obliczu wyboru.
saadtaame

Biorąc pod uwagę, że LIFO i FIFO do planowania dają odpowiednio DFS i BFS, można argumentować, że takie planowanie (w którym planowanie może nie być podobne do stosu lub kolejki) nie jest ani wyszukiwaniem głębokości, ani szerokości pierwszego - chociaż w niektórych przypadkach możesz opisać jego tendencję do przypominania jednego lub drugiego.
Niel de Beaudrap,

1
Myślę, że można to zaimplementować w postaci stosu lub kolejki. Nie zmienia sposobu zdejmowania rzeczy (LIFO lub FIFO), zmienia kolejność dodawania dzieci (w tym przypadku najpierw najniższy stopień).
SamM

@NieldeBeaudrap w rzeczywistości jest to tylko struktura pokazująca, że ​​gdzieś oba sposoby są takie same.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.