Frage

Ich weiß, dass Max2sat im Allgemeinen NP-komplett ist, aber ich frage mich, ob es sich um bestimmte eingeschränkte Fälle in P. sicherlich ankennt. Sicherlich die Sprachen

$ l_k:={\ phi \, | \, \ phi \, \ text {ist eine Instanz von 2sat, die einen Auftrag aufweist, der mindestens K-Clauses erfüllt.} \ } $

kann in $ o (n ^ k) $ durch Brute-Kraftsuche seit jeder Sprache $ k $ gelöst werden ist fixiert. Ich frage mich jedoch, dass ein Bruchteil der Klauseln angegeben ist. Führt jeder Fraktion ein NP-Hard-Problem? Insbesondere frage ich mich über den Fall, dass es mindestens die Hälfte der Klauseln einer 2sat-Instanz befriedigt.

Die Reduktion, die ich von 3sat in Max2sat sah, erzeugt 10 Klauseln aus jeder Klausel in 3sat, so dass aus diesen zehn, genau 7 erfüllt sind, wenn die ursprüngliche 3sat-Klausel erfüllt ist und höchstens 6 erfüllt ist, wenn die ursprüngliche Klausel nicht erfüllt ist . Also in dieser Reduktion der Fraktion von $ 7/10 $ arbeitet, aber $ 1/2 $ ist nicht weil unbefriedigende Wahrheit Zuordnungen einer 3SAT-Instanz können immer noch eine Instanz von 2sat ergeben, die mehr als die Hälfte der Klauseln zufriedenstellt. Ich dachte an einen anderen Konstruktion, oder fügte einer Instanz von 2sat zusätzliche Klauseln hinzu, aber bisher bin ich nicht erfolgreich gewesen.

War es hilfreich?

Lösung

Sie können immer mindestens die Hälfte der Klauseln befriedigen: Für jede Variable $ x $ finden Sie die Anzahl der Klauseln, die $ x $ und die Anzahl der Klauseln, die $ \ lnot x $ enthalten. Wählen Sie denjenigen aus, der die meisten Klauseln erfüllt. Entfernen Sie die Klauseln mit $ x $ und $ \ lnot x $ . Wiederholen Sie sich für andere Variablen.

Da für jeden $ x $ mindestens die Hälfte der entfernten Klauseln zufriedenstellend sind, erfüllen wir die Hälfte der Klauseln insgesamt.

Auf der anderen Seite ist es auch eng: Lassen Sie $ \ alpha> \ frac 12 $ der Bruchteil der Klauseln sein, für die wir eine Antwort geben können. Sei $ \ beta> \ frac 12 $ Seien Sie der maximale Bruchteil der Klauseln, den wir in einer bestimmten Klausel befriedigen können. Dann können wir Klauseln hinzufügen, sodass $ \ beta $ (für die neue Klausel) der willkürlichen Klausel zu $ \ alpha $ :

    .
  • Wenn $ \ beta <\ alpha $ , dann können wir Clauses $ (x_i \ ln \ lnot x_i) hinzufügen $ , bis $ \ beta> \ alpha $ (da diese Klauseln immer true sind, $ \ beta $ steigt).
  • Wenn $ \ beta> \ alpha $ , können wir Clauses hinzufügen $ (x_i) $ und $ (\ lnot x_i) $ , bis $ \ beta <\ alpha $ (seit genau Hälfte der Klauseln ist wahr, $ \ beta $ nimmt ab).

ich habe nicht geprüft, aber um $ o (\ frac 1m) $ differenz (dh um die genaue Anzahl von Klauseln) zu bekommen, denke ich, dass es genügt So fügen Sie $ O (M) $ -Klauungen hinzu. Wenn wir mit anderen Worten für einige $ \ alpha> \ frac 12 $ lösen können, können wir auf jeden $ \ \ Beta $ Ob $ \ beta $ Fraktion von Klauseln kann erfüllt sein, und daher können wir MAX2SAT in der Polynomzeit lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top