Wie viele Klauseln sind erforderlich, wenn sie in CNF-Formeln np-hart sein sollen?
-
29-09-2020 - |
Frage
Es ist nicht schwer zu sehen, dass SAT für eine CNF-Formel mit
wir könnten diese formal als $ \ text {cnfsat} -F- \ text {cnfsat} $ , eine Familie von Problemen, die von einer Funktion
Was ist mit $ g=log n $ ? Gibt es einen einfachen Algorithmus für CNFSAT über Formeln, die $ O (\ lg \ lg n) $ -klauseln haben?
Lösung
Die Klausel mit der kleinsten Anzahl von Variablen finden. Sei $ x_1, \ ldots, x_k $ Seien Sie die in dieser Klausel teilnehmenden Variablen.
- .
- Wenn $ k> g $ , dann ist die gesamte Formel erfüllt (wir verarbeiten Klauseln nacheinander und wählen eine Variable aus, die wir vorher nicht ausgewählt haben).
- Ansonsten entfernen wir die Klausel. Wir entfernen auch $ X_1, \ LDOs, X_K $ von allen anderen Klauseln.
Nun müssen wir die entfernten Klauseln zufrieden stellen. Da es höchstens $ G $ Clauses gibt, und jeder von ihnen führt in den meisten $ g $ neue Variablen, Es bedeutet, dass es höchstens $ g ^ 2= c ^ 2 \ cdot \ log n $ Variablen insgesamt gibt. Daher gibt es höchstens $ n ^ {c ^ 2} $ variable Kombinationen, und wir können nur rohe-Force verwenden.
$$ \ alpha ^ {\ frac {\ log ^ {1+ \ Epsilon} n {1+ \ epsilon} n} c}= n ^ {\ frac {\ log ^ \ epsilon n \ cdot \ log \ alpha} {c}}, $$
das ist super-Polynom.