Sei eine erfüllbare CNF-Formel mit Variablen und Klauseln. Sei der Lösungsraum von . n m S F 1 F 1
Betrachten Sie das Problem, mit andere CNF-Formel mit demselben Satz von Variablen wie bestimmen, mit (demselben Lösungsraum wie ), aber mit möglichst wenigen (einzigen) Klauseln Ziel ist es, die Anzahl der Klauseln zu minimieren. Wie viele Literale eine Klausel enthält, ist also nicht relevant.F 2 F 1 S F 2 = S F 1 F 1
Frage
Hat jemand dieses Problem bereits untersucht? Gibt es irgendwelche Ergebnisse in der Literatur dazu?
Betrachten Sie als Beispiel die folgende CNF-Formel (jede Zeile ist eine Klausel):
x 2 ∨ x 3 ∨ x 4 ¬ x 1 ∨ x 2 ∨ x 4 ¬ x 1 ∨ x 2 ∨ ¬ x 3 ¬ x 1 ∨ x 3 ∨ x 5 ¬ x 1 ∨ x 2 ∨ ¬ x 5
und die folgende Formel :
x 2 ∨ x 3 ∨ x 4 ¬ x 1 ∨ x 3 ∨ x 5 ¬ x 1 ∨ x 2
beide haben den gleichen Lösungsraum, aber während hat Klauseln, hat nur . 6 F 2 4
Betrachten Sie die folgende Formel :
¬ x 1 ∨ x 3 ∨ x 5 ¬ x 1 ∨ x 2
Der Lösungsraum ist wieder derselbe, jedoch mit nur Klauseln.
quelle
Antworten:
Das Problem der Bestimmung, ob es eine äquivalente CNF-Formel mit höchstens einer bestimmten Anzahl von Literalen gibt, ist -complete. Die Version, die die Anzahl der Klauseln minimiert, liegt innerhalb eines Faktors von der Formelgröße, wobei die Anzahl der Variablen ist. Siehe Abschnitt 6 von: n nΠp2 n n
Ein aktuelles Ergebnis zeigt, dass die Berechnung einer bestimmten Untergrenze für die Größe der kürzesten äquivalenten CNF-Formel (gemessen an der Anzahl der Klauseln, wie Sie angeben) NP-vollständig ist. In diesem Artikel heißt es auch, dass Ihr Problem der Minimierung der Anzahl der Klauseln auch -komplett ist, und zitiert das obige Umans-Papier, obwohl mir der Grund dafür nicht sofort klar ist.Πp2
quelle
Das Schaltungsminimierungsproblem ist nicht lösbar (siehe die Kommentare unten). Ich denke, Sie interessieren sich auch für die Technik, die einige SAT-Löser anwenden (zumindest in gewissem Maße) und die als SAT-Vorverarbeitung bezeichnet wird. Beispielsweise verwendet der bekannte MiniSAT-Löser einen CNF-Minimierer SatELite, um eine Instanz vorzuverarbeiten . Google Scholar liefert auch viele Ergebnisse für "Sat Preprocessing".
quelle
Die wichtigste Standard- / bekannte Lösung zur CNF-Minimierung in EE ist der Quine-McCluskey-Algorithmus, für den es viele Implementierungen gibt, einige gemeinfrei. Ich verstehe jedoch, dass (im aktuellen Wikipedia-Artikel nicht erwähnt) die meisten auf Heuristiken und gierige Algorithmen zurückgreifen, um Lösungen zu finden, insbesondere für große Formeln, dh sie sind nicht erforderlich. finde die optimale Lösung esp. für große Eingabeinstanzen.
Quine-MCluskey ist eine Verallgemeinerung des Arbeitens mit Karnough-Karten, wobei Diagramme für kleine Instanzen erfolgreich sein können.
und beachten Sie, dass es mehrere optimale Lösungen in Bezug auf äquivalente Formeln mit derselben (minimalen) Klauselgröße geben kann, worauf in einem guten Verweis auf das Subj hingewiesen wird. Das Finden des Minimums reduziert sich anscheinend auf die Auflistung aller implizierten Primzahlen, die im Vergleich zur Größe der ursprünglichen Formel einen massiven exponentiellen Anstieg des Gedächtnisses / "Raums" zur Folge haben können.
quelle