Ten problem, który nazywam CO przy porządkowaniu kolumn, jest trudny do rozwiązania . Oto redukcja z trudnego NP NP Vertex Cover (VC) do niego:
Formularze problemów decyzyjnych VC i CO
Niech wejściowa instancja VC będzie (V,E,k). Reprezentuje pytanie: „Biorąc pod uwagę wykres(V,E), czy można wybrać co najwyżej zestaw k wierzchołki od V tak, że każda krawędź E jest incydent na co najmniej jednym wybranym wierzchołku? ”Zbudujemy instancję ( A ,k′) CO, które reprezentuje pytanie: „Biorąc pod uwagę macierz ZA z elementami w { - 1 , 0 , 1 }, czy można permutować kolumny ZA tak, że 1 pojawia się przed -1 co najmniej k′wiersze? ”Te dwa problemy są określone w formularzu problemu decyzyjnego , przy czym odpowiedź na każdy z nich brzmi TAK lub NIE: formalnie rzecz biorąc, jest to forma problemu NP-zupełna (lub nie). Nie jest zbyt trudne zobacz, że bardziej naturalna forma problemu optymalizacji podana w pytaniu PO jest w przybliżeniu równoważna pod względem złożoności: wyszukiwanie binarne parametru progu może być użyte do rozwiązania problemu optymalizacji za pomocą rozwiązania problemu decyzyjnego, a pojedyncze wywołanie rozwiązania problemu optymalizacji , a następnie pojedyncze porównanie, wystarczy, aby rozwiązać problem decyzyjny.
Konstruowanie instancji CO z instancji VC
Pozwolić n = | V.| i m = | mi|. Zbudujemy macierzZA z ( n + 1 ) m + n wiersze i n + 1kolumny. Szczyt( n + 1 ) m zostaną utworzone rzędy m bloki n + 1rzędy, przy czym każdy blok reprezentuje krawędź, którą należy zakryć . Dółn wiersze zawierają „flagi” wierzchołków, co spowoduje, że kolumna (odpowiadająca wierzchołkowi) poniesie stały koszt, jeśli zostanie uwzględniona po lewej stronie rozwiązania CO (odpowiadającego wierzchołkowi objętemu pokrywą wierzchołków Rozwiązanie VC).
Dla każdego wierzchołka vja, utwórz kolumnę, w której:
- wśród najlepszych ( n + 1 ) m rzędy, jot-ty blok n + 1 wszystkie wiersze zawierają +1, gdy krawędź mijot jest incydent na vja, i 0 w przeciwnym razie, i
- dół n wszystkie wiersze mają wartość 0, z wyjątkiem ja-ty, który wynosi -1.
Utwórz jeszcze jedną kolumnę „ogrodzenia”, która się składa ( n + 1 ) m kopie -1, a następnie n kopie +1.
Na koniec ustaw próg k′ dla skonstruowanej instancji CO: (n+1)m+n−k. Innymi słowy, zezwalamy co najwyżejkwiersze, w których -1 pojawia się przed +1. Nazwijmy tę liczbę naruszających wiersze „kosztem” rozwiązania CO.
Dowód
Odpowiednikiem między rozwiązaniem instancji CO a zestawem wierzchołków w oryginalnej instancji VC jest: Każda kolumna po lewej stronie ogrodzenia odpowiada wierzchołkowi znajdującemu się w zestawie, a każda kolumna po prawej stronie ogrodzenia odpowiada wierzchołek, który nie jest.
Intuicyjnie, -1s na górze kolumny „ogrodzenia” wymuszają wybór podzbioru kolumn, które mają być umieszczone po jego lewej stronie, które razem zawierają + 1 we wszystkich tych pozycjach - odpowiadających podzbiorowi wierzchołków, które padają na każdym krawędź. Każda z tych kolumn, która pojawia się po lewej stronie „ogrodzenia”, ma -1 w odrębnym rzędzie gdzieś na dolenwiersze, ponosząc koszt 1; +1 w dolnej części „ogrodzenia” zapewniają, że wszystkie kolumny umieszczone po jego prawej stronie nie poniosą takich kosztów.
Najwyraźniej rozwiązanie VC wykorzystujące co najwyżej k wierzchołki dają rozwiązanie dla skonstruowanego wystąpienia CO przy maksymalnym koszcie k: Wystarczy dowolnie zamówić kolumny odpowiadające wierzchołkom w pokrywie wierzchołków, następnie kolumnę ogrodzenia, a następnie wszystkie pozostałe kolumny w dowolnej kolejności.
Pozostaje pokazać, że rozwiązanie dla instancji CO ma co najwyżej koszt k odpowiada najwyżej osłonie wierzchołka k wierzchołki.
Załóżmy wręcz przeciwnie, że istnieje rozwiązanie dla instancji CO z najwyżej kosztami k który pozostawia jakiś rząd na górze (n+1)mwiersze z -1 przed +1. Ten wiersz należy do bloku(n+1) rzędy odpowiadające konkretnej krawędzi uv. Każdy wiersz w tym bloku w oryginalnej instancjiAjest identyczny pod względem budowy; permutowanie kolumn może zmienić te wiersze, ale nie wpływa to na fakt, że są one identyczne. Tak więc każdy z nichn+1 identyczne rzędy mają -1 przed +1 w rozwiązaniu, co oznacza koszt co najmniej n+1. Alek≤n<n+1: sprzeczność.
Ponieważ każdy z m bloki rzędów u góry (n+1)mrzędy mają +1 przed -1, każda z odpowiednich krawędzi jest pokryta wierzchołkiem odpowiadającym kolumnie po lewej stronie ogrodzenia: to znaczy ten podzbiór wierzchołków stanowi pokrycie wierzchołków. Ponieważ żaden z najlepszych(n+1)m rzędy mają -1 przed +1, jedynym miejscem, w którym koszty mogą narastać w rozwiązaniu, jest na dole nrzędy, od kolumn umieszczonych na lewo od ogrodzenia. Każda taka kolumna kosztuje dokładnie 1, więc biorąc pod uwagę, że koszt jest co najwyżejk, musi być co najwyżej k takie kolumny i co najwyżej k wierzchołki w okładce.
Wreszcie, jasne jest, że instancja CO może być konstruowana w czasie wielomianowym z instancji VC, co oznacza, że gdyby istniał algorytm wielomianowy do rozwiązywania CO, dowolna instancja VC mogłaby być również rozwiązana w czasie wielomianowym, najpierw konstruując instancję CO zgodnie z opisem powyżej, a następnie rozwiązanie. Ponieważ VC jest trudne dla NP, również CO.