Dzięki twierdzeniu o maksymalnym przepływie min-cut wiemy, że możemy użyć dowolnego algorytmu do obliczenia maksymalnego przepływu na grafie sieciowym do obliczenia -min-cut. Dlatego złożoność obliczenia minimum -cięcie jest nie większa niż złożoność obliczenia przepływu maksymalnego .
Czy może być mniej? Czy może istnieć algorytm obliczania cięcia minimalnego szybciej niż jakikolwiek algorytm maksymalnego przepływu?
Próbowałem znaleźć zmniejszenie zmniejszenie ) -max problemu przepływu do problemu -min-cut, ale nie był w stanie znaleźć. Moją pierwszą myślą było użycie algorytmu „dziel i rządź”: najpierw znajdź minimalne cięcie, które dzieli wykres na dwie części; teraz rekurencyjnie znajdź maksymalny przepływ dla lewej części i maksymalny przepływ dla prawej części i połącz je razem ze wszystkimi krawędziami przecinającymi cięcie. To rzeczywiście działałoby, aby uzyskać maksymalny przepływ, ale jego najgorszy czas działania może być tak długi jak razy większy niż czas działania algorytmu cięcia minimalnego. Czy jest lepsza redukcja?
Zdaję sobie sprawę, że twierdzenie o maksymalnym przepływie pokazuje, że złożoność obliczenia wartości maksymalnego przepływu jest taka sama, jak złożoność obliczenia wydajności minimalnego cięcia, ale nie o to pytam. Pytam o problem ze znalezieniem maksymalnego przepływu i znalezienia minimalnego cięcia (jawnie).
Jest to bardzo ściśle związane z Obliczaniem maksymalnego przepływu z minimalnego cięcia , z wyjątkiem: (1) Jestem skłonny zezwolić na redukcje Cooka (redukcje Turinga), nie tylko redukcje Karp (redukcje wielokrotne jeden) i (2) być może biorąc pod uwagę , możemy znaleźć wykres taki, że minimalne cięcie ułatwia obliczenie maksymalnego przepływu , co jest czymś, co jest poza zakresem tego drugiego pytania.
Odpowiedzi:
Oto możliwe podejście:
Załóżmy, że znasz przecięcie S, a następnie znalezienie przepływu od do t jest problemem przepływu sieci o minimalnym koszcie przy zerowym koszcie, ponieważ znasz dokładnie odpływ przy każdym wierzchołku w V ∖ S i napływie w t . Załóżmy, że f oznacza przepływ S - t, a A macierz łuku węzłowego (tj. Rząd i , col j ma 1, jeśli i jest ogonem j , -1 jeśli jego głowa, zero w przeciwnym razie), i niech b będzie takie, że A f = b, jeśli fS. t V.∖ S. t fa S.- t ZA ja jot ja jot b A f= b fa zaspokaja podaż / popyt i ochronę przepływu. Następnie z eliminacją gaussa możemy znaleźć realne rozwiązanie w operacje.| V.|3)
Aby znaleźć wycięcie z przepływu, musimy zbudować wykres resztkowy, który zajmuje najwyżej czas, a następnie potencjalnie trawers | V | wierzchołki.| mi| | V.|
Tak więc dla kompletnych wykresów i minimalnego cięcia będącego tylko źródłem lub tylko zlewem, redukcja zajmuje tyle samo czasu w obu najgorszych przypadkach. Myślę jednak, że znalezienie realnego rozwiązania dla można zrobić szybciej niż | V | 3)A f= b | V.|3) biorąc pod uwagę specjalną strukturę. Nie jestem jednak pewien, jak to udowodnić.
źródło