Problem parametryzowany przez k-FLIP SAT definiuje się jako:
Dane wejściowe: formuła 3-CNF z zmiennymi i przypisaniem prawdy \ sigma: [n] \ to \ {0,1 \} Parametr: k Pytanie: czy możemy przekształcić przypisanie \ sigma w zadowalające przypisanie \ sigma ' dla \ varphi przerzucając wartość prawdy co najwyżej k zmiennych?
Problem jest wyraźnie w FPT ( Stefan Szeider: Sparametryzowana złożoność lokalnego wyszukiwania k-Flip dla SAT i MAX SAT. Optymalizacja dyskretna 8 (1): 139-145 (2011) )
Czy dopuszcza jądro wielomianowe? (przy założeniu rozsądnej złożoności)
Najnowsze techniki krzyżowania kompozycji (patrz Hans L. Bodlaender, Bart MP Jansen, Stefan Kratsch, „Kernelization Lower Bounds By Cross-Composition” ) wydają się nieużyteczne w przypadku tego problemu. Wydają się również nieprzydatne w przypadku podobnych problemów, które pytają, czy dane rozwiązanie problemu trudnego dla NP można znaleźć w danej instancji za pomocą lokalnego wyszukiwania (ograniczając wyszukiwanie do sąsiadów danej instancji, pod pewną naturalną miarą odległości).
źródło
Odpowiedzi:
Problem nie ma wielomianowego jądra, chyba że NP jest w CoNP / poly. Technika kompozycyjna z naszego artykułu ma zastosowanie w sposób niebanalny.
Pokażę, w jaki sposób klasyczny problem Okładki Wierzchołków OR-krzyżuje się w problem k-FLIP-SAT; na podstawie wyników w cytowanej pracy jest to wystarczające. Konkretnie budujemy algorytm czasu wielomianowego, którego dane wejściowe są sekwencją wystąpień pokrywy wierzchołków(G1,k),(G2,k),…,(Gt,k) wszystkie mają tę samą wartość k i wszyscy mają dokładnie n wierzchołki. Dane wyjściowe to instancjak -FLIP SAT z wartością parametru O(k+logt) , który jest wystarczająco mały, aby uzyskać kompozycję krzyżową, taką jak k -Instrukcja FLIP SAT ma odpowiedź tak, jeśli jeden z grafów wejściowych ma rozmiar okładki wierzchołka k . Duplikując jedno wejście (co nie zmienia wartości OR) możemy zapewnić, że liczba wejśćt jest potęgą dwóch.
Kompozycja przebiega w następujący sposób. Ponumeruj wierzchołki na wykresie dla każdego wykresu wejściowegoGi tak jak vi,1,vi,2,…,vi,n . Utwórz odpowiednią zmienną w instancji FLIP-SAT dla każdego wierzchołka każdego wykresu wejściowego. Dodatkowo utwórz zmienną selektoraui dla każdego wejściowego numeru instancji i∈[t] . Dla każdego wykresu wejściowegoGi , dodajemy do formuły kilka klauzul. Dla każdej krawędzi{vi,x,vi,y} wykresu Gi , dodaj klauzulę (vi,x∨vi,y∨¬ui) do formuły, która koduje „albo jeden z punktów końcowych tej krawędzi jest ustawiony na true, albo instancja i jest nieaktywny ". W początkowym przypisaniu wszystkie zmienne wierzchołków są ustawione na false i wszystkie zmienne selektora ui są ustawione na false, aby wszystkie te klauzule były spełnione. Aby wbudować zachowanie OR w kompozycję, wzmocnimy formułę, aby upewnić się, że zadowalające przypisanie ustawia co najmniej jeden selektor na wartość true, a następnie musi również utworzyć osłonę wierzchołka wybranego wykresu.
Aby upewnić się, że możemy dokonać tego wyboru, zachowując niewielką odległość przerzucania w porównaniu do liczby wejśćt , używamy struktury pełnego drzewa binarnego z t liście, które ma wysokość logt . Numeruj liście od1 do t i skojarzyć i -ty liść ze zmienną ui która kontroluje wejście i jest aktywny czy nie. Utwórz nową zmienną dla każdego wewnętrznego węzła drzewa binarnego. Dla każdego węzła wewnętrznego niech będzie odpowiadająca mu zmiennax a zmienne jego dwojga dzieci będą y i z . Dodaj klauzulę(¬x∨y∨z) do formuły, która wychwytuje implikacje (x→(y∨z)) , wymuszając to x może być prawdą tylko wtedy, gdy jedno z jego dzieci jest prawdą. Aby uzupełnić formułę, dodaj klauzulę singleton, mówiącą, że zmienna węzła głównego drzewa binarnego musi być prawdziwa. W początkowym przypisaniu prawdy wartości wszystkich zmiennych dla wewnętrznych węzłów są ustawione na false, co spełnia wszystkie klauzule formuły, z wyjątkiem klauzuli singleton wymagającej, aby węzeł główny drzewa miał zmienną true.
To uzupełnia opis formuły i przypisania prawdy. Ustaw parametrk′ problemu FLIP DISTANCE, który ma być równy (k+logt+1) , która jest odpowiednio ograniczona dla kompozycji krzyżowej. Pozostaje pokazać, że możemy przewrócićk′ zmienne, aby formuła była prawdziwa w niektórych grafach wejściowych Gi ma rozmiar okładki wierzchołka k .
Załóżmy, że w odwrotnym kierunkuGi ma rozmiark pokrywa wierzchołka. Ustawk zmienne odpowiadające k wierzchołki w okładce do prawdziwej, odwracając je. Ustaw zmienną selektoraui na true, aby zakodować to wejście i jest aktywowany i odwraca zmienne logt wewnętrzne binarne węzły drzewa na ścieżce liścia i do korzenia na prawdę. Łatwo jest zweryfikować, czy jest to zadowalające zadanie: wszystkie implikacje w drzewie binarnym są spełnione, wartość węzła głównego jest ustawiona na true, klauzule sprawdzające krawędzieGi′ dla i′≠i pozostają zadowoleni, ponieważ ui′ pozostaje fałszywe, podczas gdy klauzule dotyczące wykresu Gi są zadowoleni, ponieważ dla każdej krawędzi ustawiamy co najmniej jeden punkt końcowy na true.
Dla kierunku do przodu załóżmy, że formuła może być spełniona przez co najwyżej odwróceniek+logt+1 zmienne. Następnie musimy przestawić zmienną węzła głównego na true. Implikacje w drzewie binarnym wymuszają, że przynajmniej jedna zmienna selektora liścia jest ustawiona na true, powiedzmyui . Aby zaspokoić implikacje zakodowane w drzewie binarnym, wszystkie wewnętrzne węzły na ścieżce odui do katalogu głównego ustawiono wartość true, uwzględniając 1+logt przewraca Odui jest ustawione na true, klauzule wykonane dla wykresu Gi nie są usatysfakcjonowani dosłownie ¬ui , więc są zadowoleni, ponieważ jeden z punktów końcowych każdej krawędzi Gi ma wartość true. A przynajmniej1+logt zmienne drzewa binarnego zostały co najwyżej odwrócone k zmienne wierzchołków są odwracane do wartości true w tym rozwiązaniu. To koduje rozmiar okładki wierzchołkak w Gi i dowodzi, że jednym z danych wejściowych jest instancja TAK. To kończy dowód.
źródło