W odniesieniu do wątku Udowodnienie, że konwersja z CNF do DNF jest NP-twarda (i powiązany wątek matematyczny ):
Co powiesz na inny kierunek, od DNF do CNF? Czy to jest łatwe czy trudne?
Na stronie 2 tego artykułu wydają się sugerować, że oba kierunki są równie trudne, gdy mówią: „ Jesteśmy zainteresowani maksymalnym powiększeniem wielkości przy zmianie z reprezentacji CNF na reprezentację DNF (lub odwrotnie) ”.
Ale DNF-SAT jest w P, a CNF-SAT jest w stanie NP . Zatem biorąc pod uwagę wyrażenie DNF , powinno istnieć równoważne wyrażenie CNF ϕ 2, którego długość jest wielomianowa o długości ϕ 1 . A konwersję ϕ 1 → ϕ 2 można wykonać w czasie wielokrotnym. Czy to jest poprawne?
Edycja: Zmiana równoważne do equisatisfiable (to znaczy, innych zmiennych są dozwolone ).
źródło
Odpowiedzi:
Jeśli chcesz wprowadzić dodatkowe zmienne, możesz przekonwertować z postaci DNF do CNF w czasie wielomianowym za pomocą transformacji Tseitin . Otrzymana formuła CNF będzie w równym stopniu satysfakcjonująca z oryginalną formułą DNF: formuła CNF będzie zadowalająca wtedy i tylko wtedy, gdy oryginalna formuła DNF będzie zadowalająca. Zobacz także https://en.wikipedia.org/wiki/Conjunctive_normal_form#Conversion_into_CNF .
Jeśli nie chcesz zezwalać na wprowadzanie dodatkowych zmiennych, konwersja z formatu DNF do CNF jest trudna dla NP. W szczególności testowanie, czy formuła DNF jest tautologią, jest trudne dla NP. Jednak sprawdzenie, czy formuła CNF jest tautologią, można przeprowadzić w czasie wielomianowym (wystarczy osobno sprawdzić, czy każda klauzula jest tautologią, co jest łatwe, ponieważ każda klauzula jest rozłączeniem literałów). Dlatego gdybyś mógł konwertować z postaci DNF do postaci CNF w czasie wielomianowym, bez wprowadzania nowych zmiennych, uzyskałby algorytm wielomianowy do testowania, czy formuła DNF jest tautologią - co wydaje się mało prawdopodobne, biorąc pod uwagę, że oczekujemy P nie jest równy co-NP. Innymi słowy, konwersja z formatu DNF do CNF bez wprowadzania dodatkowych zmiennych jest trudna dla NP.
Jest to różnica pomiędzy równoważności vs equisatisfiability . Równoważność wymaga, aby te dwie formuły miały ten sam zestaw rozwiązań (a zatem nie pozwalają na wprowadzenie dodatkowych zmiennych). Zgodność wymaga tylko, aby obie formuły były zadowalające lub obie były niezadowalające (a zatem umożliwia wprowadzenie dodatkowych zmiennych).
źródło