Problem ten jest trudny do wyeliminowania przez NP w porównaniu z osłoną wierzchołków.
W zadaniu Pokrycia wierzchołków otrzymujemy wykres i liczbę , a naszym zadaniem jest ustalenie, czy istnieje jakiś podzbiór co najwyżej wierzchołków od tak że każda krawędź w jest padająca co najmniej jednego wierzchołka w . (Równoważnie: Czy można zabić każdą krawędź w poprzez usunięcie co najwyżej wierzchołków?)r U r V E U GG = ( V, E)rUrV.miUsolr
Po pierwsze, podział do rozłącznych podzbiorów jest równoważna przypisując każdy element w dokładnie jeden z możliwych etykiet. Podstawową ideą redukcji jest utworzenie etykiety dla każdego wierzchołka w i „umożliwienie” przypisania każdej krawędzi tylko jednej z dwóch etykiet odpowiadających jej punktom końcowym, w następującym znaczeniu: przypisanie krawędzi odpowiadającej etykieta nie wprowadza (prawdziwego) ograniczenia co do innych krawędzi, którym można przypisać tę samą etykietę, a przypisanie krawędzi do nie odpowiadającej etykiecie zapobiega przypisaniu tej samej etykiecie innej krawędzi - co oczywiście powoduje zwiększenie liczby wymagane odrębne etykiety.s A s S j v j VZAsZAsS.jotvjotV.
Aby zbudować instancję problemu z instancji programu Vertex Cover:( G , r )( A , a , s )( G , r )
- Ustaw naI tworzyć element w do każdej krawędzi w . (Te pary można traktować jako liczby całkowite ; zrobi to każdy bijection między nimi).| E |k| mi|A v i v j E 1 , … , k( i , j )ZAvjavjotmi1 , … , k
- Ustaw najeśli lub ; w przeciwnym razie ustaw na 1.za( b , c ) , dd = b d = c a ( b , c ) , d| mi|re= bre= ca(b,c),d
- Ustaw .s=r
Jeśli jest instancją YES dla Cover Vertex, łatwo zauważyć, że właśnie skonstruowana instancja twojego problemu jest również instancją YES: wystarczy wybrać etykiety odpowiadające wierzchołkom w dowolnym rozwiązaniu , i dla każdej krawędzi przypisz odpowiedni element którakolwiek z etykiet lub została wybrana (wybierz dowolnie, jeśli obie etykiety zostały wybrane). To rozwiązanie wykorzystuje podzbiory i jest poprawne, ponieważ jedynymi obowiązującymi są odpowiednieS j v j U v b v c ∈ E ( b , c ) ∈(G,r)SjvjUvbvc∈ES b S c s a i j | E |(b,c)∈ASbScsaijetykiety, które mają (nie) efekt zapobiegania więcej niżkrawędzie mają przypisaną tę samą etykietę.|E|
Pozostaje pokazać, że wystąpienie YES twojego problemu oznacza, że oryginał jest wystąpieniem YES okładki wierzchołka. Jest to nieco bardziej skomplikowana, ponieważ ważnego rozwiązania na mogą w przypisaniu krawędź dla etykiety -corresponding , czyli , co oznacza, że nie może niekoniecznie „odczytać” prawidłową pokrywy wierzchołków z ważnego rozwiązania .( G , r ) Y XX=(A,a,s)(G,r)YXS m m ∉ { i , j } U Y(i,j)Smm∉{i,j}UY
Jednakże, przypisywanie innego niż odpowiednie etykiety ma wysoki koszt, który znacznie ogranicza struktury rozwiązania: gdy krawędź jest przypisana taka etykieta z , fakt że zapewnia, że musi to być jedyna krawędź, której przypisano tę etykietę. Tak więc w każdym rozwiązaniu zawierającym taką nieoznaczoną krawędź , moglibyśmy skonstruować alternatywne rozwiązanie w następujący sposób:S m m ∉ { i , j } a ( i ,(i,j)Smm∉{i,j}Y(i,j)↦ S m Y ′a(i,j),m=1Y(i,j)↦SmY′
- Dowolnie wybierz nową etykietę dla jako lub . ( i , j ) S i S jSz(i,j)SiSj
- Przypisz tę nową etykietę. Jeśli skutkuje to nieprawidłowym rozwiązaniem, musi to być spowodowane tym, że dokładnie jedna inna krawędź , została już przypisana do etykiety . W takim przypadku ustaw i przejdź do kroku 1.( i ′ , j ′ ) z ∉ { i ′ , j ′ } S z ( i , j ) = ( i ′ , j ′ )(i,j)(i′,j′)z∉{i′,j′}Sz(i,j)=(i′,j′)
Powyższy algorytm musi zakończyć się na jeden z dwóch sposobów: albo zostanie znaleziona nowa etykieta która nie wprowadza sprzeczności, albo zostanie znaleziony pełny cykl wierzchołków. W pierwszym przypadku znaleziono prawidłowe nowe rozwiązanie z zestawami , podczas gdy w drugim przypadku znaleziono prawidłowe nowe rozwiązanie z zestawami ; w obu przypadkach stworzyliśmy nowe, poprawne rozwiązanie z co najmniej jedną dodatkową krawędzią przypisaną do odpowiedniej etykiety. Po powtórzeniu całego tego procesu najwyżejrazy, stworzymy prawidłowe rozwiązanie z którego można odczytać rozwiązanie pierwotnego problemu z pokrywą wierzchołków . s - 1 s | E | Y ″Szs−1s|E|Y′′
Ta konstrukcja jest wyraźnie czasem wielomianowym, więc wynika z tego, że twój problem jest trudny do NP.