Problem von Boolean satisfiability

In der Informatik, satisfiability (häufig geschrieben in allen Kapitalen oder abgekürzt GESESSEN) ist das Problem der Bestimmung, wenn die Variablen einer gegebenen Formel von Boolean auf solche Art und Weise zugeteilt werden können, um die Formel zum WAHREN bewerten zu lassen. Ebenso wichtig soll bestimmen, ob keine solche Anweisungen bestehen, der andeuten würde, dass die durch die Formel ausgedrückte Funktion für alle möglichen variablen Anweisungen identisch FALSCH ist. In diesem letzten Fall würden wir sagen, dass die Funktion unsatisfiable ist; sonst ist es satisfiable. Zum Beispiel sind die Formel a UND b satisfiable, weil man die Werte = WAHR und b = finden kann STIMMT, die a UND b WAHR machen. Um die binäre Natur dieses Problems zu betonen, wird es oft Boolean oder Satzsatisfiability genannt.

GESESSEN war das erste bekannte Beispiel eines NP-complete Problems. Das bedeutet kurz, dass es keinen bekannten Algorithmus gibt, der effizient alle Beispiele von GESESSENEN löst, und ihm allgemein geglaubt (aber nicht bewiesen wird, sieh P gegen das NP Problem), dass kein solcher Algorithmus bestehen kann. Weiter kann eine breite Reihe anderer natürlich vorkommender Entscheidung und Optimierungsprobleme in Beispiele von GESESSENEN umgestaltet werden. Eine Klasse von Algorithmen genannt GESESSENER solvers kann eine genug große Teilmenge von GESESSENEN Beispielen effizient lösen, um in verschiedenen praktischen Gebieten wie Stromkreis-Design und automatischer Lehrsatz-Beweis, durch das Lösen von GESESSENEN gemachten Beispielen durch das Umwandeln von Problemen nützlich zu sein, die in jenen Gebieten entstehen. Das Verlängern der Fähigkeiten zu GESESSENEN Lösen-Algorithmen ist ein andauerndes Gebiet des Fortschritts. Jedoch kann kein Strom solche Methoden alle GESESSENEN Beispiele effizient lösen.

Grundlegende Definitionen, Fachsprache und Anwendungen

In der Kompliziertheitstheorie ist das satisfiability (GESESSENE) Problem ein Entscheidungsproblem, dessen Beispiel ein Ausdruck von Boolean das schriftliche Verwenden nur UND, ODER, NICHT, Variablen und Parenthesen ist. Die Frage ist: In Anbetracht des Ausdrucks, ist dort eine Anweisung von WAHREN und FALSCHEN Werten zu den Variablen die werden den kompletten Ausdruck wahr machen? Wie man sagt, ist eine Formel der Satzlogik satisfiable, wenn logische Werte seinen Variablen in einem Weg zugeteilt werden können, der die Formel wahr macht. Das Problem von Boolean satisfiability ist NP-complete. Das satisfiability Satzproblem (PSAT), der entscheidet, ob eine gegebene Satzformel satisfiable ist, ist von Hauptwichtigkeit in verschiedenen Gebieten der Informatik, einschließlich theoretischer Informatik, algorithmics, künstlicher Intelligenz, Hardware-Designs, elektronischer Designautomation und Überprüfung.

Ein Druckfehler ist entweder eine Variable oder die Ablehnung einer Variable (die Ablehnung eines Ausdrucks kann auf verneinte Variablen durch die Gesetze von De Morgan reduziert werden). Zum Beispiel, ist ein positiver Druckfehler und ist ein negativer Druckfehler.

Eine Klausel ist eine Trennung von Druckfehlern. Zum Beispiel, ist eine Klausel (gelesen als "x-sub-one oder nicht x-sub-2").

Es gibt mehrere spezielle Fälle des Problems von Boolean satisfiability, in dem die Formel erforderlich sind, Verbindungen von Klauseln (d. h. Formeln in der verbindenden normalen Form) zu sein. Die Bestimmung des satisfiability einer Formel in der verbindenden normalen Form, wo jede Klausel auf höchstens drei Druckfehler beschränkt wird, ist NP-complete; dieses Problem wird "3SAT", "3CNFSAT", oder "3-satisfiability" genannt. Die Bestimmung des satisfiability einer Formel, in der jede Klausel auf höchstens zwei Druckfehler beschränkt wird, ist NL-complete; dieses Problem wird "2SAT" genannt. Die Bestimmung des satisfiability einer Formel, in der jede Klausel eine Klausel von Horn ist (d. h. enthält es am grössten Teil eines positiven Druckfehlers), ist P-complete; dieses Problem wird Horn-Satisfiability genannt.

Der Lehrsatz des Kochs-Levin stellt fest, dass das Problem von Boolean satisfiability NP-complete, und tatsächlich ist, war das das erste Entscheidungsproblem, das herausgestellt ist, NP-complete zu sein. Jedoch, außer dieser theoretischen Bedeutung, haben effiziente und ersteigbare Algorithmen für GESESSENE, die im Laufe des letzten Jahrzehnts entwickelt wurden, zu dramatischen Fortschritten in unserer Fähigkeit beigetragen, Problem-Beispiele automatisch zu lösen, die Zehntausende von Variablen und Millionen von Einschränkungen einschließen. Beispiele solcher Probleme in der elektronischen Designautomation (EDA) schließen formelle Gleichwertigkeitsüberprüfung, Musterüberprüfung, formelle Überprüfung von pipelined Mikroprozessoren, automatische Testmuster-Generation, Routenplanung von FPGAs und so weiter ein. Wie man jetzt betrachtet, ist ein GESESSEN LÖSENDER Motor ein wesentlicher Bestandteil im EDA Werkzeugkasten.

Kompliziertheit und eingeschränkte Versionen

NP-Vollständigkeit

GESESSEN war das erste bekannte NP-complete Problem, wie bewiesen, durch Stephen Cook 1971 (sieh den Lehrsatz von Cook für den Beweis). Bis zu dieser Zeit hat das Konzept eines NP-complete Problems nicht sogar bestanden. Das Problem bleibt NP-complete, selbst wenn alle Ausdrücke in der verbindenden normalen Form mit 3 Variablen pro (3-CNF) Klausel geschrieben werden, 3SAT Problem tragend. Das bedeutet, dass der Ausdruck die Form hat:

: (x ODER x ODER x) UND

: (x ODER x ODER x) UND

: (x ODER x ODER x) UND...

wo jeder x eine Variable oder eine Ablehnung einer Variable ist, und jede Variable mehrmals im Ausdruck erscheinen kann.

Ein nützliches Eigentum der Verminderung des Kochs besteht darin, dass sie die Zahl bewahrt, Antworten zu akzeptieren. Zum Beispiel, wenn ein Graph 17 gültige 3-colorings hat, wird die GESESSENE durch die Verminderung erzeugte Formel 17 befriedigende Anweisungen haben.

NP-Vollständigkeit bezieht sich nur auf die Durchlaufzeit der Grenzfall-Beispiele. Viele der Beispiele, die in praktischen Anwendungen vorkommen, können viel schneller gelöst werden. Sieh Laufzeitverhalten unten.

GESESSEN ist leichter, wenn die Formeln auf diejenigen in der abtrennenden normalen Form eingeschränkt werden, d. h. sind sie Trennung (ODER) von Begriffen, wo jeder Begriff eine Verbindung (UND) von Druckfehlern (vielleicht verneinte Variablen) ist. Solch eine Formel ist tatsächlich satisfiable, wenn, und nur wenn mindestens ein seiner Begriffe satisfiable sind, und ein Begriff satisfiable ist, wenn, und nur wenn es sowohl x als auch NICHT x für eine Variable x nicht enthält. Das kann in der polynomischen Zeit überprüft werden.

2-satisfiability

GESESSEN ist auch leichter, wenn die Zahl von Druckfehlern in einer Klausel auf 2 beschränkt wird, in welchem Fall das Problem 2SAT genannt wird. Dieses Problem kann auch in der polynomischen Zeit behoben werden, und ist tatsächlich für die Klasse NL abgeschlossen. Ähnlich, wenn wir die Zahl von Druckfehlern pro Klausel zu 2 beschränken und uns UND Operationen zu XOR Operationen ändern, ist das Ergebnis exklusiv - oder, ein Problem 2-satisfiability, das für SL = L abgeschlossen ist.

Eine der wichtigsten Beschränkungen von GESESSENEN ist HORNSAT, wo die Formel eine Verbindung von Klauseln von Horn ist. Dieses Problem wird durch den polynomisch-maligen Algorithmus von Horn-Satisfiability behoben, und ist tatsächlich P-complete. Es kann als die Version von P des Problems von Boolean satisfiability gesehen werden.

Vorausgesetzt, dass die Kompliziertheitsklassen P und NP nicht gleich sind, ist keine dieser Beschränkungen NP-complete verschieden vom GESESSENEN. Die Annahme, dass P und NP nicht gleich sind, wird zurzeit nicht bewiesen.

3-satisfiability

3-satisfiability ist ein spezieller Fall von k-satisfiability (k-SAT) oder einfach satisfiability (GESESSEN), wenn jede Klausel genau k = 3 Druckfehler enthält. Es war eines von 21 NP-complete Problemen von Karp.

Hier ist ein Beispiel, wo ¬ Ablehnung anzeigt:

:

E hat zwei Klauseln (angezeigt durch Parenthesen), vier Variablen (x, x, x, x), und k=3 (drei Druckfehler pro Klausel).

Um dieses Beispiel des Entscheidungsproblems zu lösen, müssen wir bestimmen, ob es einen Wahrheitswert gibt (WAHR oder FALSCH), können wir jeder der Variablen (x durch x) solch zuteilen, dass der komplette Ausdruck WAHR ist. In diesem Beispiel gibt es solch eine Anweisung (x = STIMMT, x = STIMMT, x=TRUE, x=TRUE), so ist die Antwort auf dieses Beispiel JA. Das ist eine von vielen möglichen Anweisungen, mit zum Beispiel, jeder Satz von Anweisungen einschließlich x = WAHR genügend seiend. Wenn es keine solche Anweisung (En) gäbe, würde die Antwort NEIN sein.

3 GESESSEN ist NP-complete, und er wird als ein Startpunkt verwendet, um zu beweisen, dass andere Probleme auch NP-hard sind. Das wird durch die polynomisch-malige Verminderung vom 3 GESESSENEN bis das andere Problem getan. Ein Beispiel eines Problems, wo diese Methode verwendet worden ist, ist das Clique-Problem. 3 GESESSEN kann weiter auf Ein in drei 3SAT eingeschränkt werden, wo wir fragen, ob genau einer der Druckfehler in jeder Klausel, aber nicht mindestens ein wahr ist. Diese Beschränkung bleibt NP-complete.

Es gibt einen einfachen randomized Algorithmus wegen dessen Läufe rechtzeitig, wo n die Zahl von Klauseln ist und mit der hohen Wahrscheinlichkeit erfolgreich ist, um 3 gesessen richtig zu entscheiden.

Die Exponentialzeithypothese ist, dass kein Algorithmus 3 gesessen rechtzeitig lösen kann.

Horn-Satisfiability

Eine Klausel ist Horn, wenn sie am grössten Teil eines positiven Druckfehlers enthält. Solche Klauseln sind von Interesse, weil sie im Stande sind, Implikation einer Variable von einer Reihe anderer Variablen auszudrücken. Tatsächlich kann eine solche Klausel als umgeschrieben werden, d. h. wenn alle wahr sind, dann muss y ebenso wahr sein.

Das Problem des Entscheidens, ob eine Reihe von Klauseln von Horn satisfiable ist, ist in P. Dieses Problem kann tatsächlich durch einen Einzelschritt der Einheitsfortpflanzung behoben werden, die das einzelne minimale Modell des Satzes von Klauseln von Horn (w.r.t. der Satz des Druckfehlers erzeugt, der dem wahren zugeteilt ist).

Eine Generalisation der Klasse von Formeln von Horn ist die von Renamable-Hornformeln, die der Satz von Formeln ist, die in die Form von Horn durch das Ersetzen einiger Variablen mit ihrer jeweiligen Ablehnung gelegt werden können. Die Überprüfung der Existenz solch eines Ersatzes kann in der geradlinigen Zeit getan werden; deshalb ist der satisfiability solcher Formeln in P, weil es durch das erste Durchführen dieses Ersatzes und dann die Überprüfung des satisfiability der resultierenden Formel von Horn gelöst werden kann.

XOR-satisfiability

Ein anderer spezieller Fall ist Probleme, wo jede Klausel nur exklusiv oder Maschinenbediener enthält. Weil das exklusive oder die Operation zur Hinzufügung auf einem Feld von Galois der Größe 2 gleichwertig sind (sieh auch Modularithmetik), die Klauseln können als ein System von geradlinigen Gleichungen angesehen werden, und entsprechende Methoden wie Beseitigung von Gaussian können verwendet werden, um die Lösung zu finden.

Der Zweiteilungslehrsatz von Schaefer

Die Beschränkungen oben (CNF, 2CNF, 3CNF, Horn) haben die überlegten Formeln verpflichtet, Verbindung von Subformeln zu sein; jede Beschränkung setzt eine spezifische Form für alle Subformeln fest: Zum Beispiel können nur binäre Klauseln Subformeln in 2CNF sein.

Der Zweiteilungslehrsatz von Schaefer stellt fest, dass für jede Beschränkung Maschinenbedienern von Boolean, die verwendet werden können, um diese Subformeln zu bilden, das entsprechende satisfiability Problem in P oder NP-complete ist. Die Mitgliedschaft in P des satisfiability 2CNF und Formeln von Horn ist spezielle Fälle dieses Lehrsatzes.

Laufzeitverhalten

Wie erwähnt, kurz oben, obwohl das Problem NP-complete ist, können viele praktische Beispiele viel schneller gelöst werden. Viele praktische Probleme sind "wirklich leicht", so kann der GESESSENE solver eine Lösung leicht finden, oder beweisen, dass niemand relativ schnell besteht, wenn auch das Beispiel Tausende von Variablen und Zehntausende von Einschränkungen hat. Andere viel kleinere Probleme stellen Durchlaufzeiten aus, die in der Problem-Größe Exponential-sind, und schnell unpraktisch werden. Leider gibt es keine zuverlässige Weise, die Schwierigkeit des Problems zu erzählen, ohne es zu versuchen. Deshalb haben fast alle GESESSEN solvers schließen Pausen ein, so werden sie enden, selbst wenn sie keine Lösung finden können. Schließlich, verschieden hat GESESSEN solvers wird verschiedene Beispiele leicht oder hart finden, und einige ragen im Beweis unsatisfiability und anderen bei der Entdeckung von Lösungen hervor. Alle diese Handlungsweisen können in den GESESSENEN Lösen-Streiten gesehen werden.

Erweiterungen von GESESSENEN

Eine Erweiterung, die bedeutende Beliebtheit seit 2003 gewonnen hat, ist Theorien von Satisfiability modulo (SMT), die CNF Formeln mit geradlinigen Einschränkungen, Reihe, vollverschiedenen Einschränkungen, uninterpretierten Funktionen usw. bereichern können. Solche Erweiterungen bleiben normalerweise NP-complete, aber sehr effiziente solvers sind jetzt verfügbar, der viele solche Arten von Einschränkungen behandeln kann.

Das satisfiability Problem wird schwieriger (PSPACE-abgeschlossen), wenn wir sowohl "für alle" erlauben als auch, "dort besteht" quantifiers, um die Variablen von Boolean zu binden. Ein Beispiel solch eines Ausdrucks würde sein:

:

GESESSEN sich verwendet nur quantifiers. Wenn wir nur quantifiers erlauben, wird es das Tautologie-Problem von Co-NP-Complete. Wenn wir beiden erlauben, wird das Problem das gemessene Formel-Problem von Boolean (QBF) genannt, der, wie man zeigen kann, PSPACE-abgeschlossen ist. Es wird weit geglaubt, dass PSPACE-ganze Probleme ausschließlich härter sind als jedes Problem in NP, obwohl das noch nicht bewiesen worden ist.

Mehrere Varianten befassen sich mit der Zahl von variablen Anweisungen, die die wahre Formel machen. Gewöhnlich GESESSEN fragt, ob es mindestens eine solche Anweisung gibt. MAJSAT, der fragt, ob die Mehrheit aller Anweisungen die Formel wahr macht, ist für SEITEN, eine probabilistic Klasse abgeschlossen. Das Problem dessen, wie viele variable Anweisungen eine Formel, nicht ein Entscheidungsproblem befriedigen, ist in #P. EINZIGARTIG GESESSEN oder USAT oder Eindeutig GESESSEN ist das Problem der Bestimmung, ob eine Formel, die bekannt ist, entweder Null oder befriedigende Anweisungen zu haben, Null hat oder diejenige hat. Obwohl dieses Problem leichter scheint, ist es dass gezeigt worden, wenn es einen praktischen (randomized polynomisch-malig) Algorithmus gibt, um dieses Problem zu beheben, dann können alle Probleme in NP so leicht behoben werden.

Das Maximum satisfiability Problem, eine FNP Generalisation von GESESSENEN, bittet um die maximale Zahl von Klauseln, die durch jede Anweisung zufrieden sein können. Es hat effiziente Annäherungsalgorithmen, aber ist NP-hard, um genau zu lösen. Schlechter noch ist es APX-abgeschlossen, bedeutend, dass es kein polynomisch-maliges Annäherungsschema (PTAS) für dieses Problem wenn P=NP gibt.

Self-reducibility

Ein Algorithmus, der richtig antwortet, ob ein Beispiel von GESESSENEN lösbar ist, kann verwendet werden, um eine befriedigende Anweisung zu finden. Erstens wird die Frage auf der Formel gestellt. Wenn die Antwort "nein" ist, ist die Formel unsatisfable. Sonst wird die Frage auf gestellt, d. h., wie man annimmt, ist die erste Variable 0. Wenn die Antwort "nein" ist, wird sie das sonst angenommen. Werte anderer Variablen werden nachher gefunden.

Dieses Eigentum wird in mehreren Lehrsätzen in der Kompliziertheitstheorie verwendet:

: (Lehrsatz von Karp-Lipton)

::

Algorithmen, um zu lösen, haben GESESSEN

Es gibt zwei Klassen von Hochleistungsalgorithmen, um Beispiele von GESESSENEN in der Praxis zu lösen: Die konfliktgesteuerte Klausel, die Algorithmus erfährt, der als eine moderne Variante des DPLL Algorithmus angesehen werden kann (weithin bekannte Durchführung schließen Spreu, GRIFF ein), und stochastische lokale Suchalgorithmen, wie WalkSAT.

Ein DPLL hat GESESSEN solver verwendet ein systematisches denselben Weg zurückverfolgendes Suchverfahren, um (exponential nach Größen geordnet) Raum von variablen Anweisungen suchend nach befriedigenden Anweisungen zu erforschen. Das grundlegende Suchverfahren wurde in zwei Samenzeitungen am Anfang der 60er Jahre vorgeschlagen (sieh Verweisungen unten), und wird jetzt allgemein den Algorithmus von Davis Putnam Logemann Loveland ("DPLL" oder "DLL") genannt. Theoretisch sind niedrigere Exponentialgrenzen für die DPLL Familie von Algorithmen bewiesen worden.

Modern hat GESESSEN solvers (entwickelt in den letzten zehn Jahren) kommen in zwei Geschmäcken: "konfliktgesteuert" und "Blick vorn". Konfliktgesteuerte solvers vermehren den grundlegenden DPLL-Suchalgorithmus mit der effizienten Konfliktanalyse, dem Klausel-Lernen, dem nichtchronologischen Zurückverfolgen (auch bekannt als backjumping), sowie Einheitsfortpflanzung "zwei beobachtete Druckfehler", das anpassungsfähige Ausbreiten und die zufälligen Wiederanfänge. Wie man empirisch gezeigt hat, sind diese "Extras" zur grundlegenden systematischen Suche notwendig gewesen, für die großen GESESSENEN Beispiele zu behandeln, die in der elektronischen Designautomation (EDA) entstehen. Schauen Sie vorn solvers haben besonders die Verminderungen gestärkt (Einheitsklausel-Fortpflanzung übertreffend), und die Heuristik, und sie sind allgemein stärker als konfliktgesteuerter solvers auf harten Beispielen (während konfliktgesteuert, solvers kann auf großen Beispielen viel besser sein, die wirklich ein leichtes Beispiel innen haben).

Modern hat GESESSEN solvers haben auch bedeutenden Einfluss auf die Felder der Softwareüberprüfung, des Einschränkungslösens in der künstlichen Intelligenz und der Operationsforschung, unter anderen. Starke solvers sind als freie und offene Quellsoftware sogleich verfügbar. Insbesondere konfliktgesteuerter MiniSAT, der auf der Konkurrenz der 20:05 Uhr SAT relativ erfolgreich war, hat nur ungefähr 600 Linien des Codes. Ein Beispiel für den Blick vorn solvers ist march_dl, der einen Preis auf der Konkurrenz der 20:07 Uhr SAT gewonnen hat.

Bestimmte Typen von großen zufälligen satisfiable Beispielen von GESESSENEN können durch die Überblick-Fortpflanzung (SP) gelöst werden. Besonders im Hardware-Design und den Überprüfungsanwendungen werden satisfiability und den anderen logischen Eigenschaften einer gegebenen Satzformel manchmal gestützt auf einer Darstellung der Formel als ein binäres Entscheidungsdiagramm (BDD) entschieden.

Satzsatisfiability hat verschiedene Verallgemeinerungen, einschließlich satisfiability für das gemessene Formel-Problem von Boolean, für den ersten - und Logik der zweiten Ordnung, Einschränkungsbefriedigungsprobleme, 0-1 Programmierung der ganzen Zahl und Maximum satisfiability Problem.

Viele andere Entscheidungsprobleme, wie Graph-Färben-Probleme, Planung von Problemen und Terminplanung von Problemen, können in den GESESSENEN leicht verschlüsselt werden.

Siehe auch

  • Kern von Unsatisfiable
  • Satisfiability Modulo Theorien
  • Das Zählen hat GESESSEN

Referenzen

Verweisungen werden durch den Tag des Erscheinens bestellt:

Weiterführende Literatur

Siehe auch

  • Stromkreis satisfiability

Links

Mehr Information über den GESESSENEN:

GESESSENE Anwendungen:

  • WinSAT v2.04: Eine Windows-basierte GESESSENE Anwendung gemacht besonders für Forscher.

GESESSENER Solvers:

Internationale Konferenz für die Theorie und Anwendungen der Satisfiability-Prüfung:

Veröffentlichungen:

Abrisspunkte:

DAS GESESSENE Lösen im Allgemeinen:

Einschätzung von GESESSENEM solvers:

----

Dieser Artikel schließt Material aus einer Säule im ACM SIGDA E-Rundschreiben von Prof. Karem Sakallah ein

Ursprünglicher Text ist hier verfügbar


Source is a modification of the Wikipedia article Boolean satisfiability problem, licensed under CC-BY-SA. Full list of contributors here.
Kampf von Tannenberg / Böhme
Impressum & Datenschutz