Eine Art der Umwandlung ist einfach die Umkehrung der Umwandlung von k-sat in 3-sat:
Denken Sie daran, die Umwandlung von k-sat in "j" -sat, :j<k
→(x1∨x2...∨xj∨...∨xk)(x1∨x2...xj∨d)∧(d¯¯¯∨xj+1∨xj+2...xk)
Hier ist eine Dummy-Variable, was so etwas wie "Diese Klausel ist nicht wahr, aber eine andere Klausel, die ich kenne, ist" bedeutet. Die andere Klausel ist die nächste Klausel, die vom Original abgespalten wurde. Das Obige ist ein Beispiel, in dem 2 j ≥ k ist , andernfalls ist der 2. geteilte Knoten immer noch größer als j , und wir müssen diesen auf die gleiche Weise erneut teilen.d2j≥kj
Konvertierung rückgängig machen
, dann können Sie die Klauseln kombinieren in:(x1∨x2...xj)∧(x¯¯¯j∨xj+1∨...xk)
(x1∨x2...xj−1∨xj+1∨xj+2∨...xk)
Beachten Sie das fehlende in dieser neuen Formel.xj
Natürlich ist es nicht garantiert , dass Sie solche Klauseln in einer beliebigen Formel finden, sodass das kleinste garantierte gleich n k ist .nk+mnk
Bei gewöhnlichen Formeln erscheinen jedoch eine Variable und ihre Negation in der Formel. Andernfalls können Sie eine reine wörtliche Eliminierung durchführen ( hier beschrieben ). Nehmen wir der Einfachheit halber auch an, dass . Dann können wir zwei beliebige Klauseln kombinieren, die in einem einen Literal und in dem anderen dessen Negation enthalten. Da jedes Literal eine andere Klausel mit einer Negation haben sollte, kann man empirisch davon ausgehen, dass Sie in der Lage sein sollten, die Anzahl der Klauseln ungefähr zu halbieren (Sie könnten mit einigen Literalen und ihren Negationen in bereits verbundenen Klauseln stecken bleiben, und daher werden Sie mit bleiben einige nicht verbindbare Klauseln am Ende; eine optimale Verbindung solcher Klauseln könnte ein weiteres interessantes Problem sein).k+m≥2k−2
BEARBEITEN:
Nach dem Nachdenken wurde mir klar, dass darf und nicht an anderer Stelle in der Formel verwendet werden muss, um die beiden Klauseln, zu denen es gehört, zu reduzieren. Daher ist diese Art von Klauseln (eine enthält ein Literal und die andere ihre Negation, wobei dieses Literal an keiner anderen Stelle in der Formel verwendet wird) viel seltener als ich oben gedacht habe. Die eigentliche Antwort lautet also: Es gibt keine Garantie dafür, um wie viel wir die Anzahl der Klauseln in der Formel reduzieren können.xj