Sei die Variable . Der Abstand zwischen zwei Variablen ist definiert als . Der Abstand zwischen zwei Literalen ist der Abstand zwischen den entsprechenden beiden Variablen.
Angenommen , ich habe eine 3-SAT - Instanz , so dass für jede Klausel haben wir aus irgendeinem festen Wert .
Konzeptionell kann man sich vorstellen, dass alle Literale physisch in einer Zeile stehen und alle Klauseln aus physischen Gründen nicht in der Lage sind, eine bestimmte Länge zu überschreiten.
Gibt es angesichts dieser Einschränkung harte Instanzen von 3-SAT? Wie klein kann ich die Nachbarschaft machen und trotzdem schwierige Instanzen finden? Was ist, wenn ich ein paar Klauseln zulasse, um die Einschränkung zu verletzen?
Mit hart meine ich, dass ein heuristischer Löser auf den schlimmsten Fall zurückgreifen würde.
quelle
Antworten:
Nein. Wenn die 3-SAT-Instanz über Klauseln verfügt, können Sie die Erfüllbarkeit in O ( m 2 N ) -Zeit testen . Da N eine feste Konstante ist, ist dies ein Polynom-Zeit-Algorithmus, der alle Instanzen Ihres Problems löst.m O(m2N) N
Der Algorithmus arbeitet in Stufen. Sei φ i die Formel bestehend aus den Sätzen, die nur Variablen aus x 1 , … , x i verwenden . Sei S i ⊆ { 0 , 1 } n die Menge von Zuordnungen zu x i - N , x i - N + 1 , ... , x i , die zu einer befriedigenden Zuordnung für φ i erweitert werden können . Beachten Sie, dass bei Sm φi x1,…,xi Si⊆{0,1}n xi−N,xi−N+1,…,xi φi , so können wir S i inO( 2 N )Zeitberechnen: für jedeSi−1 Si O(2N) versuchen wir beide Möglichkeiten für x i und prüfen, ob es erfüllt alle Klauseln von φ i , die die Variable x i enthalten ; wenn ja, addieren wir ( x i - N , …(xi−N−1,…,xi−1)∈Si−1 xi φi xi bis S i. Im i- ten Stadium berechnen wir S i . Sobald wir alle fertig sind m Stufen, ist die 3-SATInstanz erfüllbarwenn und nur wenn S m & ne; ∅ . Jede Etappe dauert(xi−N,…,xi) Si i Si m Sm≠∅ Zeit und es gibt m Stufen, sodass die Gesamtlaufzeit O ( m 2 N ) beträgt. Dies ist in der Größe der Eingabe polynomisch und bildet somit einen Polynom-Zeit-Algorithmus.O(2N) m O(m2N)
Selbst wenn Sie zulassen, dass eine feste Anzahl von Klauseln gegen die Einschränkung verstößt, kann das Problem in polynomieller Zeit gelöst werden. Insbesondere wenn die Anzahl der Klauseln zählt, die die Bedingung verletzen, können Sie das Problem in O ( m 2 ( t + 1 ) N ) lösen , indem Sie zuerst alle möglichen Werte für die Variablen in diesen Klauseln auflisten und dann fortfahren der Algorithmus oben. Wenn t eine feste Konstante ist, ist dies die Polynomzeit. Möglicherweise gibt es effizientere Algorithmen.t O(m2(t+1)N) t
quelle
Das Ereignisdiagramm einer SAT-Formel ist ein zweigliedriges Diagramm, das für jede Klausel und jede Variable einen Scheitelpunkt hat. Wir fügen Kanten zwischen einer Klausel und allen ihren Variablen hinzu. Wenn der Vorfallgraph die Baumbreite begrenzt hat, können wir die SAT-Formel in P festlegen, tatsächlich können wir viel mehr tun. Ihr Ereignisdiagramm ist sehr eingeschränkt. ZB ist es ein Diagramm mit begrenzter Pfadbreite, daher ist es polynomiell zeitlösbar. Das obige bekannte strukturelle Ergebnis finden Sie beispielsweise unter: https://www.sciencedirect.com/science/article/pii/S0166218X07004106 .
quelle