Czy Logical Min-Cut NP-Complete?


24

Definicja problemu Logical Min Cut (LMC)

Załóżmy, że jest nieważonym wykresem, i są dwoma wierzchołkami , a jest osiągalne z . LMC Problem badania jak możemy nieosiągalny ze poprzez usunięcie niektórych krawędziach następujących następujące ograniczenia:sG=(V,E)sV t s t s GtVtstsG

  1. Liczba usuniętych krawędzi musi być minimalna.
  2. Nie możemy usunąć każdej krawędzi wyjściowej żadnego wierzchołka (tzn. Żaden wierzchołek z krawędziami wychodzącymi nie może mieć usuniętych wszystkich krawędzi wychodzących).G

To drugie ograniczenie nazywa się usuwaniem logicznym. Szukamy więc logicznego, minimalnego usunięcia niektórych krawędzi tak aby był nieosiągalny dla .t sGts

Próby rozwiązania

Jeśli zignorujemy logiczne ograniczenie usuwania problemu LMC, będzie to problem minimalnego cięcia w nieważonym digrafie , więc będzie on rozwiązywalny wielomianowo (twierdzenie o maksymalnym przepływie dla minimalnego przepływu).G

Jeśli zignorujemy minimalne ograniczenie usuwania problemu LMC, to będzie znowu rozwiązywalne wielomianowo w DAG: znaleźć wierzchołek takie, że jest osiągalny z i nie jest osiągalny z . Następnie rozważ ścieżkę która jest dowolną ścieżką od do . Teraz rozważ ścieżkę jako podrozdział : odpowiedzią będzie każda krawędź wyjściowa podrozdziału . Oczywiste jest, że wierzchołek może być znaleziony przez DFS w w czasie wielomianowym. Niestety ten algorytm ogólnie nie działak s t k p s k p G p k GkkstkpskpGpkG dla dowolnego ukierunkowanego wykresu.

Próbowałem rozwiązać problem LMC za pomocą techniki programowania dynamicznego, ale liczba stanów wymaganych do rozwiązania problemu stała się wykładnicza. Co więcej, próbowałem zredukować niektóre problemy z NP-Complete, takie jak 3-SAT, max2Sat, max-cut i kliknięcie do problemu LMC, ale nie udało mi się znaleźć redukcji.

Osobiście uważam, że problem LMC jest NP-Complete, nawet jeśli jest binarnym DAG (tj. DAG, w którym żaden węzeł nie ma stopnia większego niż 2).G

pytania

  1. Czy problem LMC NP-Complete znajduje się w dowolnym wykreślniku ? (główne pytanie)G
  2. Czy problem LMC NP-Complete występuje w dowolnym DAG ?G
  3. Czy problem LMC NP-Complete występuje w dowolnym binarnym DAG ?G

Jestem prawie pewien, że problem leży w jeśli twój wykres nie jest przekierowany . Czy to byłaby wystarczająca odpowiedź na twoje pytanie? P
Alex ten Brink

@ SaeedAmiri: znajdź skrócenie min dla i . Jeśli rozłącza wierzchołek, wówczas ten wierzchołek musi być lub . Jeśli to jedno i drugie, to nie ma takiego minimalnego cięcia. Załóżmy, że jest odłączonym wierzchołkiem i krawędzią. Usunięcie tej krawędzi i wykonać cięcie na min- i rekurencyjnie. t s t t ( t , v ) s vststt(t,v)sv
Alex ten Brink

Prostą obserwacją można wywnioskować, że jeśli następujący problem jest NP-Complete, to problem LMC również będzie NP-Complete (nie jestemG V S T S T v V v T S TG=(V,E)GVSTSTvVvTST
amirv


2
Amirv, w przypadku problemu z ograniczeniem (2) sugerowany algorytm, jak rozumiem, nie jest całkiem poprawny. Może być rozwiązanie, chociaż dla wszystkich węzłów v istnieje ścieżka od s do v oraz ścieżka od v do t. Rozważmy wykres z i . V = { s , t , a } E = { ( s , t ) , ( s , a ) , ( a , s ) }G=(V,E)V={s,t,a}E={(s,t),(s,a),(a,s)}
Neal Young,

Odpowiedzi:


1

Niech G = (V, E) będzie ważonym DAG, s i t będą dwoma wierzchołkami G, a LSTMC = (G, s, t) będzie wystąpieniem logicznego problemu st min-cut. Oczywistym jest, że problemem LSTMC jest NP. Teraz powinniśmy pokazać, że LSTMC jest NP-Hard. Zmniejszamy problem zestawu uderzeń do problemu LSTMC. Niech S = {s1, s2, ..., sn} będzie podanymi zbiorami, a {a1, a2, ..., am} będzie sumą wszystkich zbiorów. Biorąc pod uwagę liczbę k1, problem decyzyjny problemu trafienia zestawu określa, czy istnieje zestaw A z elementami k1 takimi, że każdy element S (każdy zestaw si st i = 1..n) zawiera co najmniej jeden element A. oznacza problem zestawu uderzeń jako HS (S). Konstruujemy ważoną DAG G 'z zestawu S według algorytmu HS2LSTMC. Algorytm ten uważa s za wierzchołek źródłowy DAG G ′. Dla każdego zestawu si HS st i = 1..n algorytm uwzględnia odpowiedni wierzchołek, si i dodaje krawędź o nieskończonej wadze od s do każdego si. Następnie dla każdego elementu aj unii zbiorów wejściowych st j = 1..m algorytm uwzględnia odpowiedni wierzchołek, aj i dodaje krawędź o zerowej wadze z każdego si do dowolnego aj st aj ∈si w HS. Na koniec algorytm bierze pod uwagę dwa końcowe wierzchołki zwane t i k i dodaje dwie krawędzie z każdego aj st j = 1..m do obu końcowych wierzchołków. Oczywiste jest, że G 'można wykonać w czasie wielomianowym.

Teraz powinniśmy wykazać, że HS (S) ma odpowiedź z elementami k1 wtedy i tylko wtedy, gdy LSTMC = (G ′, s, t) ma odpowiedź z pewnymi logicznie usuniętymi krawędziami, tak że suma wag usuniętych krawędzi wynosi k1.

Dla uproszczenia wykonujemy tę część dowodu, podając przykład:

Na poniższym rysunku załóżmy, że S = {s1, s2, s3} tak, że s1 = {1, 2, 3}, s2 = {1, 4} i s3 = {2, 5}. Ryc. 2 pokazuje ważoną DAG G 'problemu LSTMC odpowiadającego problemowi zestawu uderzeń HS (S). W tym przykładzie zestaw A, a mianowicie suma wszystkich elementów S, wynosi A = {1, 2, 3, 4, 5}. Mamy | S | = 3 i | A | = 5. Ten przykład pokazuje, jak dowolną instancję problemu zestawu uderzeń można rozwiązać za pomocą konkretnej instancji problemu logicznego st min-cut w ważonej DAG. Jeśli obliczymy odpowiedź na LSTMC = (G ′, s, t) i rozważymy te usunięte krawędzie odpowiedzi, które są w postaci (aj, t) o nazwie E1 (1 ≤ j ≤ m), wówczas zestaw ogona E1 jest odpowiedzią na HS (S). Odpowiedzią na problem LSTMC jest zestaw zboczy E1 = {(s1, 2), (s1, 3), (s2, 4), (s3, 5), (1, t), (2, t)}. Tak więc zestaw ogona podzbioru E2 = {(1, t), (2,

Zmniejszenie


0

Oto (próba) algorytm wielomianowy czasu dla LKM arbitralne binarny DAG .G

To odpowiada na pytanie nr 3. (Przepraszam za niechlujny napis z góry. :))

Na początek wyrzuć „na zawsze” każdy wierzchołek nieosiągalny od . Nie dbamy o to, ponieważ nie są one częścią żadnej ścieżki - .s tsst

Następnie zdefiniuj podagony DAG i , początkowo puste. Następnie przez wszystkie wierzchołki ,B v G - { s , t }ABvG{s,t}

Sprawdź, czy istnieje ścieżka od do . Jeśli tak, dodaj do . Jeśli nie, należy dodać do .t v A v BvtvAvB

Niech krawędzie i będą krawędziami indukowanymi przez wierzchołki w obrębie każdego zestawu (na razie zignoruj ​​wszelkie krawędzie od do , od do oraz od do ; zauważ również, że nie ma żadnych krawędzi od do o budowa).B s A A t A B B tABsAAtABBt

Następnie obliczyć przechodni zamknięcie . Mianowicie, jesteśmy zainteresowani w znalezieniu jakiś zbiór wierzchołków , które są „listki” w sub-DAG .{ a } AA{a}A

Napraw dowolne takie . Zauważ, że musi być skierowana krawędź od do . Wynika to z faktu, że z założenia (i) istnieje ścieżka - przez , (ii) nie ma ścieżek od do , oraz (iii), ponieważ sam jest DAG i jest liściem , nie ma ścieżki od przez inny wierzchołek do .a t s t a a B A a A a A taatstaaBAaAaAt

Teraz musi istnieć skierowana krawędź od każdego wierzchołka w do jakiegoś wierzchołka w , lub niektóre z mają pojedynczą krawędź do . W obu przypadkach możemy usunąć dowolną krawędź .B { a } t a t{a}B{a}tat

Jeśli= 1, albo musimy usunąć krawędź z unikalnego , lub istnieje wierzchołek wcześniej na ścieżce - zawierającej która ma dwie ścieżki do - jednej przez i jeden bezpośrednio. W przypadku, gdy ten ostatni może się utrzymać, rejestrujemy i postępujemy „zachłannie wstecz” (szczegóły na ten temat poniżej).|{a}|atstataat

Jeśli> 1, musimy albo usunąć wszystkie krawędzie z , albo istnieje pewna liczba krawędziwcześniej w przejściowym zamknięciu które odłączają wszystkie ścieżki od do do .|{a}|{a}tk<|{a}|As{a}t

Tutaj wykorzystujemy fakt, że wykres jest binarnym DAG.G

Rozważ zestaw poprzedników . Ponieważ każdy z tych wierzchołków ma maksymalnie dwa stopnie, są dokładnie trzy przypadki:{a}

Przypadek 1. prekursor ma na zewnątrz krawędzią do pewnego wierzchołka w oraz na zewnątrz krawędzią do pewnego wierzchołka w .{a}B

W tym przypadku nie ma znaczenia, czy usuwamy krawędź z poprzednika do wierzchołka w czy krawędź od wierzchołka w do . Dlatego możemy „pominąć” ten wierzchołek (i sprawdzić, czy ścieżka wsteczna łączy się ze ścieżką innego wierzchołka w ).{a}{a}t{a}

Przypadek 2. Poprzednik ma krawędź wierzchołka w i inny poprzednik .{a}{a}

W takim przypadku musimy albo usunąć obie krawędzie z do , albo możemy usunąć pojedynczą wcześniejszą krawędź ścieżki od do poprzednika, który rozłącza obie ścieżki.{a}ts

Przypadek 3. Poprzednik ma krawędź do dwóch wierzchołków w .{a}

Jest to identyczne jak w przypadku 2. Nie ma znaczenia, czy usuwamy jedną z krawędzi tego poprzednika i odpowiadające im inne krawędzie z do , czy obie krawędzie z do . Chcemy tylko wiedzieć, czy możemy odłączyć ścieżkę od przez tego poprzednika do jedną krawędzią wcześniej na ścieżce od do poprzednika.{a}t{a}tsts

Podsumowując, gdy przeglądamy wstecz przez poprzedników w przejściowym zamknięciu , możemy zachłannie śledzić „najlepsze jak dotąd” wybory. Oznacza to, że na każdym etapie mamy oczywisty wybór, który polega na usunięciu pewnej liczby krawędzi, ale chcemy poczekać, aby zobaczyć, czy dostępna jest lepsza opcja. Po znalezieniu lepszej opcji możemy „zapomnieć” o poprzedniej opcji. Dlatego wystarczy chciwy wybór na każdej warstwie poprzedników (o ile czekamy do końca, aby dokonać wyboru).A

Dlatego przy niektórych podstawowych zapamiętywaniach czas i przestrzeń złożoności tego procesu wydają się wynosić najwyżej . Pomija to fakt, że chociaż możemy lokalnie / chciwie zidentyfikować, kiedy znaleźliśmy „tańszy wybór”, z góry nie jest jasne, które wcześniej zarejestrowane krawędzie należy usunąć. Dlatego rejestrujemy kolejność sprawdzania krawędzi podczas pracy. Po znalezieniu lepszej opcji powtarzamy wyszukiwanie do tego momentu, aby znaleźć wcześniej zarejestrowane krawędzie do usunięcia. Całkowity czas złożoności tego etapu wynosi a złożoność przestrzeni .O(|E|)O(|E|2)O(|E|)

W sumie złożoność czasu wynosi dla inicjalizacji plus dla zamknięcia przechodniego plus dla poszukiwanie. Całkowity czas wynosi .O(|V|(|V|+|E|))O(|V|3)O(|E|2)O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

Po zakończeniu procesu otrzymujemy minimalny zestaw krawędzi wymagany do odłączenia od , zachowując co najmniej jeden brzeg każdego wierzchołka na wykresie (lub odkrywamy, że rozwiązanie jest niemożliwe po drodze i przerywamy).tst


Nie otrzymuję następującego oświadczenia: „[łuk] z każdego wierzchołka w do jakiegoś wierzchołka w lub niektóre z mają jedną krawędź do . W obu w takim przypadku możemy usunąć dowolny łuk . ” Jeśli ma tylko jeden łuk zewnętrzny, nie możemy go z definicji usunąć! Przy okazji, co jest z notacją ? B { a } t ( a , t ) a { a }{a}B{a}t(a,t)a{a}
Pål GD

Ach - źle odczytałem komentarz na temat drugiego warunku. Nie jest to jednak integralna część algorytmu - jeśli nie możemy usunąć pojedynczych łuków zewnętrznych, po prostu tego nie robimy. Pomiń i przejdź do kolejności odwrotnego przechodzenia-przechodzenia. Albo osiągasz wierzchołek z dwoma łukami zewnętrznymi lub (jeśli tak, wyślij „brak rozwiązania”). notacja dlatego myślę o aktualnej kolekcji maksymalnych wierzchołków (ogólnie rzecz biorąc, nie jest więcej niż 1 taki wierzchołek w czasie, ponieważ czasownik jest częściowym zamknięciem zamawiania). Ponadto, przy użyciu tylko zdawała się sugerować dowolny element , który nie jest przeznaczony. { a } a As{a}aA
Daniel Apon

2
W końcu udało mi się udowodnić, że ten problem jest NP-Complete.
amirv

1
@amirv Och, proszę zrobić dzielić zarys dowodu w postaci odpowiedzi!
Raphael

1
Problemem jest NP-Complete, nawet jeśli bazowy digraf jest nieważonym binarnym DAG.
amirv
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.