Ich werde versuchen zu zeigen, dass dieses Problem NP-schwer ist, durch Reduktion von .Planar- 3- SAT
Reduktion aus Planar- 3- SAT
Einige grundlegende Geräte
Gadgets sind interne Geometriekonfigurationen, mit denen wir Gates zur Verwendung in einer Schaltung konstruieren können, auf die wir reduzieren .Planar- 3- SAT
4X3-Gadget
Dieses Gadget verfügt über zwei gültige Minimalquadrat-Partitionszustände :
Links Ein 4X3-Gadget . Mitte und rechts: Zwei mögliche Minimalquadrat-Teilungszustände .
5X4-Gadget
Dieses Gerät ist genau wie ein 4X3-Gerät , nur mit größeren Abmessungen.
Links Ein 5X4-Gerät . Mitte und rechts: Zwei mögliche Minimalquadrat-Teilungszustände .
Endpunkt-Gadget
TF
Links: Drahtmodell des Endpunkt-Gadgets . Mitte: Endpunkt mit wahrem Wert. Richtig: Endpunkt mit falschem Wert.
i-wire Gadget
Ein i-wire-Gadget ist die Abkürzung für Implication Wire .
Regeln:
Beispiel:
72
So wird es verwendet:
Abbildung 8.9 , links: Drahtgitter- I-Wire über zwei Endpunkte . Richtig: Union.
Befindet sich nun ein Endpunkt im richtigen Zustand, wird der andere Endpunkt in eine gedrückte Position gebracht. Beispiel:
Links: Quadratisches Partitionsdiagramm; linker Schalter ist unten, „drückt“ alle Quadrate auf dem i-Draht und schließlich schiebt den anderen Schalter ( Endpunkt ). Rechts: Quadratisches Partitionsdiagramm; Der linke Endpunkt ist voll, "drückt" alle Quadrate auf dem i-wire nach unten und zwingt den linken Endpunkt , "oben" zu sein.
EIN⟹¬ BEIN⟹B
Dies lässt jedoch den uneingeschränkten Fall:
Wenn wir zwei I-Drähte kombinieren , können wir eine bidirektionale Implikation erhalten, im Wesentlichen eine boolesche (in) Gleichheit:
Zwei I-Drähte können also eine vollständige Gleichheitsbeziehung aufweisen, ähnlich wie ein Stromkreis - tatsächlich handelt es sich um einen Stromkreis. Wir werden diese Paare verwenden, um einen verwendbaren Draht zu konstruieren .
l - 12+ 2
i-drähte können nach bedarf ausgerichtet werden.
Draht
Ein Draht besteht aus zwei I-Drähten , die an jedem Endpunkt mit denselben Gattern verbunden sind.
- Die I-Drähte sind rot und grün gefärbt.
- 3
- Jeder Gate-Pin hat einen grünen und einen roten Kontakt. Ein Kabel muss korrekt angeschlossen sein.
- Invariante Regel: Ein I-Wire wird in die entgegengesetzte Richtung zum anderen I-Wire geschoben, jedes Gate übernimmt dies und stellt dies sicher (sofern nicht anders angegeben).
- Da jeder Draht eine Zweiwege-Implikation enthält, überträgt er die Werte von Gate zu Gate wie ein Draht in einer Schaltung.
- Jeder Draht muss an beiden Enden mit einem Tor verbunden werden. . Gelingt dies nicht, können die Annahmen einiger Tore, die ich beschreibe, und die obige Invariantenregel zerstört werden. Gates mit Endpunkten an den Anschlüssen sind jedoch sicher - Sie können Streudrähte an diese Endpunkte anschließen, ohne sich Sorgen machen zu müssen, dass das Gate zerstört wird.
- Die Drähte müssen ungerade lang sein, einschließlich der Leitungen zu allen Stromkreisen, an die sie angeschlossen sind. Im Folgenden werde ich jedoch ein ungerades Sprungtor beschreiben , mit dem ein gerader Draht ungerade lang werden kann.
Bilder :
Oben: Ein Draht .
Links und rechts: Zwei mögliche Minimalquadrat-Teilungszustände eines Drahtes . Beachten Sie, dass der Draht, wenn er nur diese Länge hat, nicht nach rechts oder links verschoben werden kann und ein Quadrat in kleinere Stücke zerbrechen muss.
Drähte können nach Bedarf ausgerichtet werden.
Biegetor : Biegen eines Drahtes
Links: Drahtmodellansicht. Rechts: Union View.
Beachten Sie die Verwendung des 4X3-Gadgets . Es wird verwendet, um das rote Kabel auf eine ungerade Länge zu bringen.
Es folgen die zwei möglichen quadratischen Minimal-Teilungszustände der Biegung:
Links und rechts: Zwei mögliche Minimalquadratquadrat-Teilungszustände eines Biegedrahtes.
Das Tor kann nach Bedarf ausgerichtet werden. Offensichtlich kann dieses Tor gespiegelt werden, um für die andere Richtung zu arbeiten.
Draht verdrehen
Es ist leicht, einen Draht zu verschieben. Drahtmodell-Abbildung:
Named-Value-Gate
Ein Named-Value-Gate ist im Wesentlichen ein Endpunkt als Gate mit einem Drahtkontakt:
odd-skip-gate : Seltsames Überspringen eines Drahtes
Manchmal ist es unpraktisch, nur Drähte mit ungerader Länge zu verwenden. Beispielsweise:
Wie Sie sehen, ist diese kleine Erweiterung etwas nervig. Hier ist eine entsprechende Lösung unter Verwendung des 4X3-Gatters :
Wenn wir daraus ein Gate machen, erhalten wir das Odd-Skip-Gate (im Drahtgitter):
Das Tor kann nach Bedarf ausgerichtet werden.
Twist-Gate : Verdrillen eines Drahtes
Manchmal befinden sich die roten und schwarzen I-Drähte auf der falschen Seite, um mit einem Tor verwendet zu werden . In diesem Fall ist ein Twist-Gate vorgesehen, um die roten und schwarzen I-Drähte zu verdrillen zu den gegenüberliegenden Seiten .
Drahtmodell-Abbildung:
Überzeugen Sie sich selbst, dass es funktioniert:
Beginne von EINFolgen Sie den Pfeiltasten, alles andere sollte erzwungen und konsequent sein.
Das Tor kann nach Bedarf ausgerichtet werden.
split-gate : Draht spalten
Draht teilen, Drahtgitter:
Überzeugen Sie sich davon, dass es funktioniert:
Abbildung: Beginnen Sie mitEINFolgen Sie den Pfeiltasten. Alles sollte erzwungen und konsequent sein.
Abbildung: Beginnen Sie mitEINFolgen Sie den Pfeiltasten. Alles sollte erzwungen und konsequent sein.
Hinweis: Jeder Draht, der in den Verteiler hinein- und aus ihm herauskommt, muss unbedingt vorhanden sein mit einem Endpunkt verbunden sein, um die Invariante aufrechtzuerhalten. Alternativ können Sie jedem Leitungspaar des Splitters Endpunkte hinzufügen.
Das Tor kann nach Bedarf ausgerichtet werden.
Nicht-Tor
Das Not-Gate nimmt einen Draht und gibt einen Draht aus, der die umgekehrten Auswirkungen hat. Grundsätzlich handelt es sich um ein Twist-Gate , mit der Ausnahme, dass es die Farben der Drähte neu kennzeichnet. Das Not-Gate sieht so aus:
Und ein Blick auf die beiden möglichen Zustände:
Das Tor kann nach Bedarf ausgerichtet werden.
Klausel-Tor
Für das Klausel-Gate führen wir zuerst das Klausel-Gadget ein :
Von links nach rechts: 1 Klausel-Gadget . 2-4: 3verschiedene Minimalquadrat-Teilungszustände .
So sieht das Tor aus:
Wir können die verschiedenen Zustände dieses Tores demonstrieren (Erklärung unter allen 3 Abbildungen):
Erläuterung:
- Beginnen Sie mit dem Klausel-Gadget und folgen Sie den Pfeilen.
- Nicht-Pfeillinien bedeuten, dass es Teil eines Stromkreises ist, aber nicht durch das Tor in einen Zustand gezwungen wird.
- Der Status des Klausel-Gadgets erzwingt, dass einer der Endpunkte als wahr bewertet wird .
Wie Sie sehen, muss mindestens eine der Eingaben als wahr bewertet werden . Das ist genau das, was a3 -CNF Klausel erfordert.
Das Tor kann nach Bedarf ausgerichtet werden.
Die Ermäßigung
Lassen Φ ( x ) sei ein Planar- 3- SAT Formel, wo
Φ ( x ) = ∧nichCich,C= { ( xj∨ xk∨ xl) }
Eine visuelle Hilfe (Originalquelle: Terrain Guarding ist NP-Hard (PDF) , reproduziert in tikz):
Dann:
- Für jede Variable xich∈ x, platziere zwei benannte-variable-Tore nebeneinander, benenne eines von ihnenxich und der andere ¬ xich.
- Verbinden Sie die Gates mit einem Nicht-Gate miteinander , so dass sie die Werte des anderen logisch negieren.
- Platzieren Sie die Polygone der Variablen "Gates" an ihren Positionen in der planaren Einbettung.
- Platzieren Sie für jede Klausel ein Klausel-Gate an der Position der Klausel in der planaren Einbettung.
- Verbinden Sie mit den oben beschriebenen Gates alle Variablen mit ihren Klauseln.
- Führen Sie einen Minimum-Square-Paritioning-Algorithmus für die resultierende Vereinigung aller Polygone des Gates (der gesamten Schaltung) aus.
- Wenn der Algorithmus die Summe aller minimalen quadratischen Partitionszustandsgrößen des Gatters zurückgibt (Subtrahieren für gemeinsame Ecken), ist er erfüllbar. Wenn dies nicht befriedigend ist, wird ein eingeschränktes Gadget gezwungen, sich in kleinere Quadrate aufzuteilen, wodurch die Anzahl der zum Aufteilen der Schaltung erforderlichen Quadrate erhöht wird.
Warum es funktioniert
- Jedes Gadget hat eine minimale Größe für den quadratischen Partitionsstatus . Das heißt, eine Minimalquadrat-Partition dieses Gadgets hat eine bestimmte Größe.
- Einige Minianwendungen haben mehrere Status mit dieser Größe. Jeder dieser Zustände sind gültige Minimalquadrat-Partitionen .
- Wenn Minianwendungen nur in den Ecken kombiniert werden, ist die Summe der minimalen quadratischen Teilungszustände der Minianwendungen * immer noch der minimale quadratische Teilungszustand der Vereinigung von ihnen; Sie können dies intuitiv sehen: Wenn Sie an der Ecke verbinden, hat ein Quadrat nicht genügend Platz, um es zu erweitern bzw. mit einem Quadrat eines anderen Gadgets zu verbinden.
- Das Kombinieren von Minianwendungen an der Ecke verringert zwar nicht die Gesamtgröße der quadratischen Mindestpartition , beschränkt jedoch die Beziehung zwischen den Minianwendungen.
- Mit den oben gezeigten Gates können Sie die Zustände ausreichend einschränken, sodass ein oder mehrere Gadets in noch kleinere Quadrate zerfallen und die Partitionsgröße für das Minimum an Quadraten erhöhen müssen, wenn die logische Formel nicht erfüllt werden kann .
Graphquellen
Sie können auch größere Bilder sehen, indem Sie die Suffixe "s", "m", "l" der imgur-URLs entfernen. Zum Beispiel können Sie ein größeres Bild davon sehen: http://i.stack.imgur.com/6CKlGs.jpg, indem Sie
http://i.stack.imgur.com/6CKlG.jpg aufrufen . Beachten Sie die fehlenden "s" vor dem .jpg
.