Osiągalność

W teorii grafów osiągalność odnosi się do możliwości przedostania się z jednego wierzchołka do drugiego w obrębie grafu. Wierzchołek osiągnąć wierzchołek (i osiągalny z , jeśli istnieje sekwencja sąsiednich wierzchołków (tj. ) , która jest s zaczyna się i kończy na .

W grafie nieskierowanym osiągalność pomiędzy wszystkimi parami wierzchołków można określić poprzez identyfikację połączonych elementów grafu. Dowolna para wierzchołków takiego grafu może stykać się ze sobą wtedy i tylko wtedy, gdy należą do tego samego połączonego elementu; dlatego na takim wykresie osiągalność jest symetryczna ( osiąga t ) . Połączone elementy grafu nieskierowanego można zidentyfikować w czasie liniowym. Pozostała część tego artykułu skupia się na trudniejszym problemie określania osiągalności parami w a graf skierowany (który, nawiasem mówiąc, nie musi być symetryczny).

Definicja

W przypadku wykresu skierowanego , z zestawem wierzchołków i zestawem krawędzi , osiągalności ( V V jest domknięciem przechodnim czyli zbiorem wszystkich uporządkowanych par wierzchołków ciąg wierzchołków tak, że krawędź jest dla wszystkich mi }

Jeśli jest jego relacja osiągalności jest porządkiem ; w ten sposób można zdefiniować dowolny porządek częściowy, na przykład jako relację osiągalności jego redukcji przechodniej . Godną uwagi konsekwencją tego jest to antysymetryczne, jeśli osiągnąć , to wiemy, że nie mogą osiągnąć . Intuicyjnie, gdybyśmy mogli podróżować od t powrotem do wówczas zawierałby cykl , jest acykliczny Jeżeli ale nie acykliczny (tj. zawiera co najmniej jeden cykl), wówczas jego relacja osiągalności będzie odpowiadać zamówieniu w przedsprzedaży , a nie porządkowi częściowemu.

Algorytmy

Algorytmy określania osiągalności dzielą się na dwie klasy: te, które wymagają przetwarzania wstępnego i te, które tego nie wymagają.

Jeśli masz tylko jedno (lub kilka) zapytań do wykonania, bardziej efektywne może być rezygnacja z używania bardziej złożonych struktur danych i bezpośrednie obliczenie osiągalności żądanej pary. Można to osiągnąć w czasie liniowym przy użyciu algorytmów, takich jak przeszukiwanie wszerz lub iteracyjne przeszukiwanie w pierwszej kolejności w głąb .

Jeśli będziesz zadawać wiele zapytań, możesz zastosować bardziej wyrafinowaną metodę; dokładny wybór metody zależy od charakteru analizowanego wykresu. możemy stworzyć strukturę danych, która będzie następnie odpowiadać na zapytania dotyczące osiągalności na dowolnej parze wierzchołków w . Poniżej opisano trzy różne algorytmy i struktury danych dla trzech różnych, coraz bardziej wyspecjalizowanych sytuacji.

Algorytm Floyda-Warshalla

Algorytm Floyda – Warshalla można zastosować do obliczenia domknięcia przechodniego dowolnego skierowanego grafu, co daje podstawę do relacji osiągalności zgodnie z powyższą definicją.

Algorytm wymaga i w najgorszy przypadek. Algorytm ten nie jest zainteresowany wyłącznie osiągalnością, ponieważ oblicza także najkrótszą odległość ścieżki pomiędzy wszystkimi parami wierzchołków. W przypadku grafów zawierających cykle ujemne najkrótsze ścieżki mogą być niezdefiniowane, ale nadal można zauważyć osiągalność między parami.

Algorytm Thorupa

W przypadku digrafów planarnych dostępna jest znacznie szybsza metoda, opisana przez Mikkela Thorupa w osiągalności na wykresie planarnym w czasie po czas przetwarzania wstępnego w celu utworzenia struktury danych rozmiar. Algorytm ten może również dostarczać przybliżone najkrótsze odległości ścieżek, a także informacje o trasie.

tak że każda ścieżka z wierzchołka do dowolnego innego wierzchołka musi przechodzić przez co najmniej jedną z nich: v separatory powiązane z { . Poniżej znajduje się zarys sekcji związanych z osiągalnością.

graf , algorytm rozpoczyna się od zorganizowania wierzchołków w warstwy, zaczynając od . Warstwy są budowane naprzemiennie, najpierw biorąc pod uwagę wszystkie wierzchołki osiągalne z poprzedniego kroku (zaczynając od a następnie wszystkie wierzchołki, które docierają do poprzedniego kroku, aż wszystkie wierzchołki zostaną przypisane do warstwy. . Dzięki konstrukcji warstw każdy wierzchołek pojawia się co najwyżej w dwóch warstwach i na każdej skierowanej ścieżce lub dipath w warstwach i } Niech najniższą wartością , że .

jako seria gdzie jest skróceniem wszystkich poprzednich poziomów w jeden wierzchołek. Ponieważ każda diścieżka pojawia w co najwyżej dwóch kolejnych warstwach i ponieważ każda utworzona przez dwie kolejne warstwy, każda diścieżka pojawia się w całości w co najmniej jednej (i nie więcej niż 2 kolejne takie wykresy)

Dla każdego trzy separatory, które po usunięciu dzielą wykres na trzy składowe, z których każda . Ponieważ daje łącznie do 6 diścieżek na wszystkich Niech będzie tym zestawem dipathów. Dowód na to, że takie separatory zawsze można znaleźć, jest powiązany z twierdzeniem Liptona i Tarjana o separatorach planarnych , a separatory te można lokalizować w czasie liniowym.

Dla każdego zapewnia naturalne indeksowanie jego końca ścieżki Dla każdego wierzchołka pierwszy wierzchołek w osiągalny dla wierzchołek w Q , który sięga do . Oznacza to, że patrzymy na to, jak wcześnie do jak daleko możemy pozostać w nadal wrócić do . Informacje te są przechowywane . Następnie dla dowolnej pary wierzchołków może osiągnąć w przez , jeśli łączy się z wcześniej niż łączy się z .

każdego kroku rekurencji, . Ponieważ ta rekurencja łącznie dodatkowych informacji tego momentu logarytmiczne zapytanie o czas osiągalności jest tak proste, jak przejrzenie każdej pary etykiet pod kątem wspólnego, . Oryginalny artykuł pracuje następnie nad dostrojeniem czasu zapytania do .

dzieli wierzchołki w taki sposób, że każdy wierzchołek jest rozpatrywany tylko . Faza separatora algorytmu dzieli wykres na elementy, które mają co najwyżej , co daje logarytmiczną głębokość rekurencji Na każdym poziomie rekurencji wystarczy praca liniowa, aby zidentyfikować separatory i możliwe połączenia między wierzchołkami. Ogólny wynik to z informacjami przechowywanymi dla każdego wierzchołka.

Algorytm Kamedy

metody Kamedy z .
Ten sam wykres co powyżej po uruchomieniu algorytmu Kamedy, pokazujący etykiety DFS dla każdego wierzchołka

Jeszcze szybszą metodę wstępnego przetwarzania, zapoczątkowaną przez T. Kamedę w 1975 r., można zastosować, jeśli graf jest planarny , acykliczny i wykazuje również następujące dodatkowe właściwości: wszystkie wierzchołki 0- in Degree i wszystkie 0- stopnie zewnętrzne pojawiają się na tym samym powierzchni (często zakłada się, że jest to ściana zewnętrzna) i możliwe jest podzielenie granicy tej ściany na dwie części w taki sposób, że wszystkie wierzchołki o wartości 0 stopni zewnętrznych pojawiają się na jednej części, a wszystkie wierzchołki o wartości 0 stopni zewnętrznych na drugiej (tzn. dwa typy wierzchołków nie występują naprzemiennie).

Jeśli możemy wstępnie przetworzyć wykres tylko w przechowywać tylko odpowiadając na zapytania o osiągalność dla dowolnej pary wierzchołków w za pomocą prostego porównania

Przetwarzanie wstępne obejmuje następujące kroki. Dodajemy nowy wierzchołek ma krawędź do każdego wierzchołka o stopniu 0 cali i kolejny nowy wierzchołek z każdego wierzchołka o stopniu 0 stopni. Należy zauważyć, że właściwości pozwalają nam to zrobić przy zachowaniu płaskości, to znaczy po tych dodatkach nadal nie będzie żadnych przejść Dla każdego wierzchołka przechowujemy listę przylegań (zewnętrznych krawędzi) w kolejności zgodnej z planarnością grafu (na przykład zgodnie z ruchem wskazówek zegara w odniesieniu do osadzania grafu). Następnie inicjujemy licznik rozpocznij przemierzanie w głąb . Podczas tego przechodzenia lista sąsiedztwa każdego wierzchołka jest odwiedzana w razie potrzeby od lewej do prawej. oznaczane wartością a następnie są zmniejszane. Należy pamiętać, że zawsze oznaczony wartością i zawsze . Następnie powtarzane jest przechodzenie w głąb, ale tym razem lista sąsiedztwa każdego wierzchołka jest odwiedzana od prawej do lewej.

Po zakończeniu ich incydentalne krawędzie dwuwymiarową etykietę z od . Biorąc pod uwagę dwa wierzchołki ich etykiety, i , mówimy, że wtedy i tylko wtedy, gdy , i istnieje co najmniej jeden składnik który jest ściśle mniejszy niż odpowiednio lub

Główny wynik tej metody stwierdza następnie, że jest osiągalny od i tylko wtedy, gdy co można w

Powiązane problemy

Powiązanym problemem jest rozwiązywanie zapytań o osiągalność z pewną liczbą wierzchołków Na przykład: „Czy wierzchołek osiągnąć wierzchołek wierzchołki są zawiodły i nie można ich już używać?” Podobny problem może uwzględniać awarie krawędzi, a nie awarie wierzchołków lub kombinację obu. Technika wyszukiwania wszerz działa równie dobrze w przypadku takich zapytań, ale zbudowanie wydajnej wyroczni jest bardziej wyzywający.

Innym problemem związanym z zapytaniami o osiągalność jest szybkie przeliczanie zmian w relacjach osiągalności w przypadku zmiany jakiejś części wykresu. Na przykład jest to istotny problem w przypadku wyrzucania elementów bezużytecznych , który musi zrównoważyć odzyskiwanie pamięci (aby można było ją ponownie przydzielić) z problemami związanymi z wydajnością działającej aplikacji.

Zobacz też