Algorytm Kargera

Wykres i dwa jego przekroje. Linia przerywana w kolorze czerwonym to cięcie z trzema przecinającymi się krawędziami. Linia przerywana w kolorze zielonym jest minimalnym wycięciem tego wykresu, przecinającym tylko dwie krawędzie.

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 .

The marked edge is contracted into a single node.

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.

Udane uruchomienie algorytmu Kargera na grafie 10-wierzchołkowym. Minimalny krój ma rozmiar 3.
    
    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 .

Losowe wybory krawędzi w algorytmie Kargera odpowiadają wykonaniu algorytmu Kruskala na grafie z losowymi rangami krawędzi, aż pozostaną tylko dwa składniki.

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

10 powtórzeń procedury skurczu. 5-te powtórzenie znajduje minimalny krój w rozmiarze 3.

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.

  1. ^ 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 .
  2. Bibliografia   _ Wagnera, F. (1997). „Prosty algorytm min-cut” . Dziennik ACM . 44 (4): 585. doi : 10.1145/263867.263872 . S2CID 15220291 .
  3. ^   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 .
  4. ^   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 .