HINWEIS: AFAICT, DW hat ein Loch in dieser Reduzierung gefunden und es ist falsch (siehe Kommentare). Es aus historischen Gründen hier zu behalten.
Intro : Zuerst werde ich das Monotone 3SAT Problem auf unser Problem reduzieren. Obwohl das Monotone 3SAT- Problem trivial befriedigend ist, kann unser Problem das NP-harte Minimum True Monotone 3SAT- Problem weiter lösen ; Somit ist dieses Problem NP-schwer.
Reduktion von Monotone 3SAT auf unser Problem
Wir haben eine monotone Boolesche Formel, die als Folge von Variablen und als Folge von Klauseln ausgedrückt wird. Der CNF hat die Form so dass:Φ=(V,C)
∀(ci∈C) ci=(xj∨xk∨xl)|∣∣∣(xj,xk,xl∈V)
und
⋀ni=1ci∣∣∣ci∈C,n=|C|.
Umwandlung
Wir konstruieren einen Graphen, . Jeder Eckpunkt in hat eine Bezeichnung; Scheitelpunkte mit derselben Bezeichnung können kontrahiert werden.G 'G′=V′,E′G′
Zuerst konstruieren wir das Diagramm wie folgt: Für jedes erstellen wir zwei Knoten mit der Bezeichnung und einer gerichteten Kante von einem zum anderen (klicken Sie auf die Bilder, um eine hochauflösende Ansicht zu erhalten).x ixi∈Vxi
Diese Knoten können natürlich zusammengezogen werden, da sie die gleiche Bezeichnung haben. Wir werden Variablen / Knoten, für die ein Vertrag geschlossen wurde, als falsch und solche, für die kein Vertrag geschlossen wurde, als wahr ansehen :
Nach diesem Schritt sollte enthaltenKnoten. Als nächstes führen wir die Klauseleinschränkungen ein. Für jede Klausel wir einen Knoten und ein die folgenden Kanten:V′2⋅|V|ci∈C, ci=(xj∨xk∨xl)|xj,xk,xl∈Vci
Beachten Sie, dass die Duplizierung von nur zu dient. Es gibt nur Knoten mit der Bezeichnung . (zum Vergrößern auf das Bild klicken)ci1ci
Nach diesem Schritt sollten wirKnoten.2⋅|V|+|C|
Wenn nun , und zusammengezogen werden, führt zu einem Zyklus.xixj xkci→ci
Hier ist eine weitere Visualisierung, die die Klauseleinschränkung auflöst:
Daher erfordert jede Klauseleinschränkung, dass mindestens eine der Variablen, die sie enthält, unkontrahiert bleibt. Da die nicht kontrahierten Knoten als wahr bewertet werden, muss eine der Variablen wahr sein. genau das, was Monotone SAT für seine Klauseln benötigt.
Reduktion von Minimum True Monotone 3SAT
Monotone 3SAT ist einfach zu befriedigen; Sie können einfach alle Variablen auf true setzen.
Da unser DAG-Minimierungsproblem darin besteht, die meisten Kontraktionen zu finden, führt dies dazu, dass die zufriedenstellende Zuordnung gefunden wird, die die meisten falschen Variablen in unserem CNF erzeugt. Das ist das Gleiche wie das Finden der minimalen wahren Variablen. Dieses Problem wird manchmal als Minimum True Monotone 3SAT oder hier (als Optimierungs- oder Entscheidungsproblem) oder k-True Monotone 2SAT (als schwächeres Entscheidungsproblem) bezeichnet. beides NP-harte Probleme. Somit ist unser Problem NP-schwer.
Verweise:
Grafikquellen: