Algorytm Kargera
W informatyce i teorii grafów algorytm Kargera jest losowym algorytmem do obliczania minimalnego przekroju połączonego wykresu . Został wynaleziony przez Davida Kargera i po raz pierwszy opublikowany w 1993 roku.
Idea algorytmu opiera się na koncepcji krawędzi w grafie nieskierowanym . Mówiąc nieformalnie, skurcz krawędzi łączy węzły v w jeden, zmniejszając całkowitą liczbę węzłów wykresu o jeden. Wszystkie inne krawędzie łączące albo lub są „ponownie do scalonego węzła, skutecznie tworząc multigraf . Podstawowy algorytm Kargera iteracyjnie skraca losowo wybrane krawędzie, aż pozostaną tylko dwa węzły; te węzły reprezentują cięcie w oryginalnym wykresie. Powtarzając ten podstawowy algorytm wystarczającą liczbę razy, z dużym prawdopodobieństwem można znaleźć minimalne cięcie .
Globalny problem minimalnego cięcia
Cięcie grafie nieskierowanym jest podziałem wierzchołków { na dwa niepuste, rozłączne zbiory . Zestaw przekrojów składa się z krawędzi między dwiema częściami. Rozmiar (lub waga ) przekroju w grafie nieważonym to liczność zestawu fragmentów, tj. liczba krawędzi między dwiema częściami ,
Jest sposoby wyboru dla każdego wierzchołka, czy należy on do czy do , ale dwa z tych wyborów sprawiają, że lub puste i nie powodują cięć. Wśród pozostałych opcji zamiana ról i nie zmienia cięcia, więc każde cięcie jest liczone dwukrotnie; dlatego jest wyraźne cięcia. Problem minimalnego cięcia polega na znalezieniu wśród tych cięć cięcia o najmniejszym rozmiarze.
dodatnimi wagami krawędzi waga cięcia jest sumą wag krawędzi
co zgadza się z nieważoną definicją dla .
jest czasami nazywane „cięciem globalnym”, aby odróżnić je od danej pary wierzchołków, które ma dodatkowy wymóg, aby i . Każde cięcie jest cięciem dla pewnego . Zatem problem minimalnego cięcia można rozwiązać w wielomianowym , powtarzając wszystkie wybory i rozwiązując wynikowe minimum problem cięcia przy użyciu twierdzenia o maksymalnym przepływie i minimalnym przecięciu oraz wielomianowym algorytmie czasu dla maksymalnego przepływu , takim jak algorytm push-relabel , chociaż takie podejście nie jest optymalne. Lepsze algorytmy deterministyczne dla globalnego problemu minimalnego cięcia obejmują algorytm Stoera – Wagnera , którego czas działania wynosi .
Algorytm skurczu
Podstawowym działaniem algorytmu Kargera jest forma skrócenia krawędzi . Wynikiem skurczenia krawędzi nowy węzeł . każda krawędź lub dla końcowych skurczonej krawędzi zostaje zastąpione krawędzią nowego węzła Na koniec skurczone węzły wszystkie ich incydentalne krawędzie W szczególności wynikowy wykres nie zawiera pętli własnych. Wynik kurczącej się krawędzi oznaczony .
Algorytm skracania wielokrotnie kurczy losowe krawędzie grafu, aż pozostaną tylko dwa węzły, w którym to momencie następuje tylko jedno cięcie.
Kluczową ideą algorytmu jest to, że znacznie bardziej prawdopodobne jest losowe wybranie krawędzi innych niż minimalne niż krawędzie minimalne i utracone w wyniku skurczu, ponieważ krawędzie minimalne są zwykle znacznie przewyższane liczebnie przez krawędzie inne niż minimalne. Następnie jest prawdopodobne, że krawędzie minimalnego cięcia przetrwają całe skrócenie krawędzi, a algorytm poprawnie zidentyfikuje krawędź minimalnego cięcia.
proceduralny ( ): podczas gdy \ Displaystyle e jedyne cięcie w
Gdy wykres jest reprezentowany za pomocą list sąsiedztwa lub macierzy sąsiedztwa , można zaimplementować operację skrócenia pojedynczej krawędzi z liniową liczbą aktualizacji struktury danych przez całkowity czas działania . Alternatywnie procedurę można postrzegać jako wykonanie algorytmu Kruskala do konstruowania minimalnego drzewa rozpinającego na grafie, w którym krawędzie mają wagi zgodnie z losową permutacją . Usunięcie najcięższej krawędzi tego drzewa daje w wyniku dwie składowe opisujące cięcie. W ten sposób procedurę skracania można zaimplementować jak algorytm Kruskala w czasie .
Najbardziej znane implementacje wykorzystują lub czas i przestrzeń .
Prawdopodobieństwo sukcesu algorytmu kontrakcji
Na _ wierzchołków, algorytm skracania zwraca minimalne cięcie z wielomianowo małym prawdopodobieństwem . Każdy wykres najwyżej mogą być minimalnymi cięciami. Dlatego prawdopodobieństwo sukcesu tego algorytmu jest znacznie większe niż prawdopodobieństwo losowego wybrania cięcia, które wynosi najwyżej .
przykład wykres cyklu na ma dokładnie 2 krawędzi Procedura kontrakcji znajduje każdą z nich z równym prawdopodobieństwem.
granicę prawdopodobieństwa sukcesu, niech oznaczą krawędzie określonego minimalnego cięcia . Algorytm skracania zwraca jeśli żadna z losowych krawędzi nie należy do zestawu cięć z do . szczególności skrócenie pierwszej krawędzi pozwala uniknąć co dzieje się z prawdopodobieństwem . Minimalny stopień wynosi najmniej (w przeciwnym razie minimalnego stopnia wywołałby mniejsze cięcie, w którym jedna z dwóch partycji zawiera tylko wierzchołek minimalnego stopnia) . Zatem prawdopodobieństwo, że algorytm kontrakcji wybierze krawędź z, do
Prawdopodobieństwo że algorytm kontrakcji na wykresie wierzchołków unika spełnia z , który można rozwinąć jako
Powtarzanie algorytmu skurczu
Powtarzając algorytm skrócenia prawdopodobieństwo Minimalne cięcie to
Całkowity czas pracy dla wierzchołkami krawędziami O .
Algorytm Kargera-Steina
Rozszerzenie algorytmu Kargera dzięki Davidowi Kargerowi i Cliffordowi Steinowi zapewnia poprawę o rząd wielkości.
Podstawową ideą jest wykonywanie procedury skracania, aż wykres .
procedura ( , ): podczas wybierz losowo powrót
Prawdopodobieństwo określonego cięcia wykresie wierzchołków, wynosi
wyrażenie jest w przybliżeniu staje się mniejsze niż wokół t . W szczególności prawdopodobieństwo, że krawędź pod koniec. Motywuje to pomysł przejścia na wolniejszy algorytm po określonej liczbie kroków skurczu.
procedura fastmincut ( ): jeśli : return mincut ( ) inaczej : umowa ( , ) umowa ( , ) powrót min {fastmincut ( ), fastmincut ( )}
Analiza
Prawdopodobieństwo, że algorytm znajdzie określony zbiór cięć, określone przez relację powtarzania się
z rozwiązaniem . Czas działania fastmincut jest zadowalający
z rozwiązaniem . Aby osiągnąć prawdopodobieństwo błędu powtórzyć razy, co daje całkowity czas działania . Jest to poprawa o rząd wielkości w stosunku do oryginalnego algorytmu Kargera.
Ograniczenie poprawy
każdej krawędzi wykresu, czyli na gęstym wykresie Algorytm min-cut Kargera-Steina przyjmuje czas działania , czyli ( bardzo blisko tego.
- ^ a b Karger, David (1993). „Globalne minimalne cięcia w RNC i inne konsekwencje prostego algorytmu Mincut” . proc. 4. doroczne sympozjum ACM-SIAM na temat algorytmów dyskretnych .
- Bibliografia _ Wagnera, F. (1997). „Prosty algorytm min-cut” . Dziennik ACM . 44 (4): 585. doi : 10.1145/263867.263872 . S2CID 15220291 .
- ^ Patrignani, Maurizio; Pizzonia, Maurizio (2001), „Złożoność problemu dopasowania dopasowania”, w: Brandstädt, Andreas ; Le, Van Bang (red.), Graph-Theoretic Concepts in Computer Science: 27th International Workshop, WG 2001, Boltenhagen, Niemcy, 14-16 czerwca 2001, Proceedings , Lecture Notes in Computer Science, tom. 2204, Berlin: Springer, s. 284–295, doi : 10.1007/3-540-45477-2_26 , MR 1905640 .
- ^ Karger, David R .; Stein, Clifford (1996). „Nowe podejście do problemu minimalnego cięcia” (PDF) . Dziennik ACM . 43 (4): 601. doi : 10.1145/234533.234534 . S2CID 5385337 .