Theoretische Erklärungen für den praktischen Erfolg von SAT-Lösern?

43

Welche theoretischen Erklärungen gibt es für den praktischen Erfolg von SAT-Lösern, und kann jemand einen Überblick im "Wikipedia-Stil" geben und sie alle zusammenfassen?

Analog dazu liefert die geglättete Analyse ( arXiv-Version ) für den Simplex-Algorithmus eine hervorragende Erklärung dafür, warum sie in der Praxis so gut funktioniert, obwohl sie im schlimmsten Fall exponentielle Zeit in Anspruch nimmt und NP-mächtig ist ( arXiv-Version ).

Ich habe ein bisschen über Dinge wie Hintertüren, Struktur des Klauselgraphen und Phasenübergänge gehört, aber (1) ich sehe nicht, wie diese alle zusammenpassen, um das größere Bild zu ergeben (wenn sie das tun), und (2) Ich weiß nicht, ob dies wirklich erklärt, warum SAT-Löser beispielsweise auf industriellen Instanzen so gut funktionieren. Auch wenn es um Dinge wie die Struktur des Klauselgraphen geht: Warum können aktuelle Löser bestimmte Klauselgraphenstrukturen nutzen?

Die Ergebnisse zu Phasenübergängen finde ich diesbezüglich zumindest nach meinem derzeit eingeschränkten Verständnis nur teilweise befriedigend. Der Phasenübergang Literatur ist über Fälle von zufälligen k-SAT, aber ist das wirklich etwas über reale Fälle erklären? Ich erwarte nicht, dass reale SAT-Instanzen wie zufällige Instanzen aussehen. sollte ich? Gibt es einen Grund zu der Annahme, dass Phasenübergänge auch intuitiv etwas über reale Instanzen aussagen, selbst wenn sie nicht wie zufällige Instanzen aussehen?

Verwandte Fragen, die helfen, aber meine Frage nicht vollständig beantworten, insbesondere die Frage, ob Dinge zu einem zusammenhängenden Bild zusammengefügt werden sollen:

Joshua Grochow
quelle
5
Dies ist keine Antwort, aber ich glaube nicht, dass viele Leute immer noch glauben, dass Graphstrukturen / Backdoors die Leistung von SAT-Solvern erklären können. Sie scheinen für schwierigere Probleme wie #SAT, QBF oder Wissenskompilierung relevanter zu sein, bei denen Sie wirklich clevere Faktorisierungen finden müssen, um die gesamte Struktur irgendwie zu erkunden. Ich bin versucht, auf Ihre Frage zu antworten: "Niemand weiß es wirklich und dies ist ein aktives Forschungsgebiet." Aber ich muss Referenzen sammeln, um zu zeigen, was die Leute versuchen, und vielleicht gibt es jemanden mit einer umfassenderen Sichtweise als ich, der eine bessere Antwort geben kann.
Feiertag
2
@Joshua: Die Simplex-Methode ist sogar PSPACE-mächtig (Fearnley und Savani, STOC 15).
Rahul Savani
1
usually
3
@TayfunPay: Ich habe Ihre Erfahrung nicht in Frage gestellt. Tatsächlich glaube ich zu 100%, dass "echte" Probleme zu SAT-Instanzen führen, die sich nicht in der Nähe des Phasenübergangs befinden. Aber ich denke nicht, dass dies die Leichtigkeit solcher Instanzen erklärt, da diese Instanzen nicht zufällig sind , so dass der Phasenübergang (theoretisch) wenig zu sagen haben sollte (entweder Härte oder Leichtigkeit).
Joshua Grochow
2
Dies wurde bereits an anderer Stelle erwähnt, es ist jedoch zu beachten, dass die Dichte und die Phasenübergänge der Variablen nur für zufälliges k-SAT relevant sind und nichts mit der Härte von Instanzen zu tun haben, die aus industriellen oder kombinatorischen Problemen herrühren. Daher ist der Großteil der obigen Diskussion nicht sachdienlich. Es ist auch anzumerken, dass es in Bezug auf zufälliges k-SAT kein echtes leicht-schwer-leicht-Muster gibt - für die Beweissysteme, in denen wir untere Grenzen für zufällig erzeugte k-CNF-Formeln haben, bleiben Formeln für beliebig große Konstanten exponentiell hart Dichten über der Schwelle.
Jakob Nordstrom

Antworten:

21

Ich gehe davon aus, dass Sie sich bei Benchmark-Datensätzen, wie sie im SAT-Wettbewerb verwendet werden, auf CDCL-SAT-Löser beziehen . Diese Programme basieren auf vielen Heuristiken und vielen Optimierungen. Im Workshop Theoretische Grundlagen des angewandten SAT-Lösens in Banff im Jahr 2014 wurden einige sehr gute Einführungen in ihre Arbeitsweise gegeben ( Videos ).

Diese Algorithmen basieren auf dem DPLL-Backtracking-Algorithmus, der versucht, eine zufriedenstellende Zuordnung zu finden, indem Werte für Variablen und Backtracks festgelegt werden, wenn ein Konflikt festgestellt wird. Die Leute haben sich angesehen, welchen Einfluss diese Heuristiken haben. ZB sehen

Es scheint, dass die Effizienz dieser SAT-Löser in Bezug auf die Benchmarks hauptsächlich von zwei Heuristiken (und ihren Varianten) herrührt:

  1. VSIDS-Heuristik zur Auswahl der Variablen, auf die als Nächstes verzweigt werden soll.
  2. CDCL: Konfliktgetriebene Klausellernheuristik, die eine neue Klausel aus einem Konflikt lernt.

Es ist bekannt, dass DPLL-Beweise Beweisen in der Auflösung entsprechen. Ohne CDCL sind die einzigen Auflösungsnachweise, die wir erhalten können, Baumauflösungsnachweise, die viel schwächer sind als allgemeine Auflösungsnachweise.

Es gibt Ergebnisse, die zeigen, dass wir mit CDCL einen allgemeinen Auflösungsnachweis erhalten können. Es gibt jedoch Vorbehalte, sie erfordern viele künstliche Neustarts, künstliche Verzweigungen und / oder eine bestimmte Vorverarbeitung, so dass nicht klar ist, inwieweit diese dem entsprechen, was diese Programme in der Praxis tun. Siehe zB das folgende Papier für mehr Details:


CDCL schneidet im Wesentlichen Zweige aus dem Suchraum. Es gibt verschiedene Möglichkeiten, eine neu erlernte Klausel aus einem Konflikt abzuleiten. Im Idealfall fügen wir eine Reihe von Minimalklauseln hinzu, die den Konflikt implizieren. In der Praxis kann dies jedoch umfangreich und teuer in der Berechnung sein. Top-SAT-Löser löschen häufig gelernte Klauseln regelmäßig, was in der Praxis hilfreich ist.


αF(v,i)i0<α<1vn

i<nF(v,i)α(ni)

Intuitiv kann man sagen, dass damit versucht wird, Variablen hervorzuheben, die konsequent in aktuelle Konflikte verwickelt waren. Sie können sich das auch als eine vereinfachte, aber äußerst kostengünstige Methode vorstellen, um vorherzusagen, welche Variablen in den nächsten Konflikt verwickelt sein werden. VSIDS verzweigt sich also zuerst zu diesen Variablen. Man kann behaupten, dass der Algorithmus im Wesentlichen ein Fail-Fast-Algorithmus ist, Konflikte finden sich schnell. Fast bezieht sich auf eine geringere Anzahl festgelegter Variablen, was bedeutet, dass große Teilbäume des Suchbaums blockiert werden. Aber dies ist meistens eine Intuition, afaik niemand hat es sehr sorgfältig formalisiert, um es an SAT-Datensätzen zu testen. Das Ausführen eines SAT-Lösers für einen dieser Datensätze ist nicht billig, geschweige denn der Vergleich mit den optimalen Entscheidungen (kleinste Erweiterung der aktuellen Zuordnung zu Variablen, die eine der Klauseln verletzen würden). VSIDS hängt auch davon ab, auf welche Variablen wir bei jedem Konflikt stoßen. Es gibt verschiedene Möglichkeiten, zu definieren, wann eine Variable in einen Konflikt verwickelt ist.


Es gibt Ergebnisse, die zeigen, dass eine bestimmte Implementierung dieser Ideen einer zeitgewichteten Zentralität von Eckpunkten in dynamischen Graphen entspricht.

Es gibt auch Vorschläge, nach denen der Rest der Instanzen, die auf NP-harten Problemen und Krypto-Primitiven sowie auf zufälligen Instanzen basieren (in denen CDCL-SAT-Löser nicht gut sind), von sehr gut strukturierten Dingen wie Software- und Hardwareverifizierung und auf irgendeine Weise von diesen ausgeht Strukturen werden von CDCL-SAT-Solvern ausgenutzt (viele Ideen wurden erwähnt, z. B. Hintertüren, eingefrorene Variablen usw.), aber es handelt sich meistens um Ideen, für deren Sicherung keine soliden theoretischen oder experimentellen Beweise vorliegen. Ich denke, man müsste das genau definieren und zeigen, dass die Instanzen, auf denen diese Algorithmen gut funktionieren, die Eigenschaft haben und dann zeigen, dass diese Algorithmen diese Eigenschaften ausnutzen.


Einige Leute bestehen darauf, dass das Klauselverhältnis und die Schwellenwerte das einzige Spiel in der Stadt sind. Das ist definitiv falsch, wie jeder, der ein wenig mit der Funktionsweise industrieller SAT-Löser vertraut ist oder Kenntnisse über die Komplexität von Beweisen besitzt, wissen würde. Es gibt viele Dinge, die einen SAT-Solver in der Praxis gut oder schlecht funktionieren lassen, und die Klauselquote ist nur eines der Dinge, die möglicherweise eine Rolle spielen. Ich denke, die folgende Umfrage ist ein guter Ausgangspunkt, um die Zusammenhänge zwischen Beweiskomplexität und SAT-Lösern und -Perspektiven zu untersuchen:

Interessanterweise ist sogar das Schwellenphänomen komplizierter als die meisten Leute denken. Moshe Vardi erklärte in seinem Vortrag " Phasenübergänge und rechnerische Komplexität ", dass die mittlere Laufzeit von GRASP für zufällige 3SAT-Formeln nach der Schwelle exponentiell bleibt, der Exponent jedoch abnimmt (afaik, es ist nicht klar, wie schnell es abnimmt).


Warum studieren wir SAT-Löser (als Komplexitätstheoretiker)? Ich denke, die Antwort ist dieselbe wie für andere Algorithmen: 1. Vergleichen Sie sie, 2. Finden Sie ihre Grenzen, 3. Entwerfen Sie bessere, 4. Beantworten Sie grundlegende Fragen der Komplexitätstheorie.

Bei der Modellierung einer Heuristik ersetzen wir die Heuristik häufig durch Nichtdeterminismus. Die Frage wird dann, ob es ein "fairer" Ersatz ist. Und hiermit meine ich fairerweise, wie nah das Modell daran ist, uns bei der Beantwortung der obigen Frage zu helfen.

Wenn wir einen SAT-Löser als Beweissystem modellieren, zeigen wir teilweise seine Einschränkung, da der Algorithmus für Anweisungen mit niedrigeren Grenzen im Beweissystem ineffizient ist. Es besteht jedoch immer noch eine Lücke zwischen dem, was der Algorithmus tatsächlich findet, und dem optimalen Beweis im Beweissystem. Wir müssen also zeigen, dass auch das Gegenteil der Fall ist, dh der Algorithmus kann Beweise finden, die so gut sind wie die im Beweissystem. Wir sind nicht nah dran, diese Frage zu beantworten, aber die Menge an Heuristik, die durch Nichtdeterminismus ersetzt wird, definiert, wie nah das Modell dem Beweissystem ist. Ich erwarte nicht, dass wir die Ersetzung der Heuristik durch Nichtdeterminismus vollständig einstellen, da wir sonst Automatisierbarkeitsergebnisse erhalten, die Konsequenzen für offene Probleme in der Krypto usw. haben.

Bei der Betrachtung eines Modells stellt sich also die Frage: Inwiefern helfen die Modelle zu erklären, warum der SAT-Löser A besser ist als der SAT-Löser B? Wie hilfreich sind sie bei der Entwicklung besserer SAT-Löser? Findet der SAT-Löser in der Praxis Beweise, die nahe an den optimalen Beweisen im Modell liegen? ... Wir müssen auch die praktischen Beispiele modellieren.

In Bezug auf die Intuition, dass CDCL-SAT-Löser "die Struktur praktischer Instanzen ausnutzen" (was auch immer diese Struktur ist), ist die Intuition meines Erachtens allgemein akzeptiert. Die eigentliche Frage ist, eine überzeugende Erklärung zu geben, was das bedeutet, und zu zeigen, dass es tatsächlich wahr ist.

Siehe auch Jakob Nordstroms eigene Antwort für neuere Entwicklungen.

Kaveh
quelle
1
Gilt dies für SAT-Instanzen, die vom Integer-Factoring abgeleitet sind?
Mohammad Al-Turkistany
1
heuristicheuristics
Tayfun Pay
1
@Martin, ohne CDCL bekommen wir nur sehr eingeschränkte Auflösungsformen (ich erinnere mich nicht genau, was mir aus dem Kopf geht). Das sind Ergebnisse von Paul Beame und anderen, die zeigen, dass Sie mit CDCL und Neustarts im Wesentlichen alle allgemeinen Auflösungsnachweise erhalten können (die Auswahl der Neustartpunkte und Zweige ist jedoch künstlich). Weitere Informationen finden Sie in Beames Artikel.
Kaveh
3
@ Martin, siehe auch Jakob Nordstroms Umfrage: csc.kth.se/~jakobn/project-proofcplx/docs/…
Kaveh
1
In Bezug auf Beweiskomplexität und CDCL wurde von Pipatsrisawat und Darwiche sciencedirect.com/science/article/pii/S0004370210001669 und unabhängig von Atserias, Fichte und Thurley gezeigt, dass CDCL als Beweissystem polynomisch angesehen werden kann Auflösung simulieren (die Papiere geben unterschiedliche Ergebnisse an, aber die Proofs in beiden Papieren können verwendet werden, um die Ergebnisse in dem anderen Papier zu erhalten). Ein wichtiger Unterschied zu früheren Arbeiten in dieser Forschungsrichtung besteht darin, dass diese CDCL-Modelle nichts Künstliches enthalten. [Fortsetzung
folgt
17

Ich schreibe das ziemlich schnell, weil die Zeit sehr knapp ist (und ich habe aus demselben Grund nicht einmal früher geantwortet), aber ich dachte, ich würde versuchen, wenigstens mit meinen zwei Cent mitzumachen.

Ich halte dies für eine wirklich gute Frage und habe in den letzten Jahren nicht unwesentlich Zeit darauf verwendet, dies zu untersuchen. (Vollständige Offenlegung: Ich habe einen großen Teil meiner derzeitigen Finanzierung erhalten, um Antworten auf Fragen dieser Art zu finden und möglicherweise tiefere Einblicke in SAT in effizientere SAT-Löser umzuwandeln.)

Wenn man einen Satz beantworten müsste, denke ich

Niemand weiß es wirklich und dies ist ein aktives Forschungsgebiet

ist so ziemlich so gut wie es nur geht. Abgesehen davon, dass es viel mehr Raum für mehr Aktivität gibt, insbesondere von der theoretischen Seite.

Einige vorgeschlagene Erklärungen (die sich nicht gegenseitig ausschließen), die bereits in anderen Antworten und Kommentaren diskutiert wurden, sind

  • (a) Hintertüren,
  • (b) Überlegungen zur parametrisierten Komplexität,
  • (c) Graphstruktur des CNF-Problems,
  • d) Überlegungen zur Beweiskomplexität und
  • (e) Phasenübergänge.

Ab dem Ende (e) scheint es hinsichtlich der Phasenübergänge einige Verwirrung zu geben. Die kurze Antwort lautet: Es gibt keinen Grund zu der Annahme, dass das Verhältnis von Klauseln zu Variablen für angewandte Probleme oder theoretische kombinatorische Probleme (auch als gestaltete Instanzen bezeichnet) relevant ist. Aber aus irgendeinem Grund ist es ein nicht allzu ungewöhnliches Missverständnis im angewandten Teil der SAT-Community, dass das Verhältnis von Klauseln zu Variablen irgendwie eine allgemein relevante Maßnahme sein sollte. Das Verhältnis von Klausel zu Variable ist für zufälliges k-SAT sehr relevant, für andere Modelle jedoch nicht.

Ich habe das Gefühl, dass Hintertüren (a) eine beliebte Erklärung waren, aber ich persönlich habe nicht wirklich überzeugende Beweise dafür gesehen, dass sie erklären, was in der Praxis vor sich geht.

Die parametrisierte Komplexität (b) liefert eine schöne Theorie über einige Aspekte von SAT, und eine sehr attraktive Hypothese ist, dass SAT-Instanzen einfach sind, weil sie dazu neigen, "in der Nähe einer Traktabilitätsinsel" zu sein. Ich denke, diese Hypothese eröffnet viele spannende Forschungsrichtungen. Wie in einigen Antworten erwähnt, gibt es viele Verbindungen zwischen (a) und (b). Bisher sehe ich jedoch keine Belege dafür, dass die parametrisierte Komplexität zu stark mit den tatsächlichen Gegebenheiten in der Praxis korreliert. Insbesondere scheinen Instanzen, die nachvollziehbar sind, in der Praxis sehr, sehr schwierig zu sein, und Instanzen ohne kleine Hintertüren können immer noch sehr einfach sein.

Die Erklärung, die mir für industrielle Fälle am glaubwürdigsten erscheint, ist (c), nämlich dass die (grafische) Struktur der fraglichen CNF-Formeln mit der praktischen SAT-Leistung korreliert werden sollte. Die Idee dabei ist, dass Variablen und Klauseln von industriellen Instanzen zu gut verbundenen Communities mit wenigen Verbindungen zusammengefasst werden können und dass SAT-Löser diese Struktur irgendwie ausnutzen. Leider scheint es ziemlich schwierig zu sein, dies strenger festzulegen, und ebenso leidet dieser Bereich leider unter ziemlich viel Hype. Die vorgeschlagenen Erklärungen, die ich bisher in Zeitungen gesehen habe, sind ziemlich unbefriedigend und die Modelle scheinen leicht abzuschießen zu sein. Das Problem scheint zu sein, dass, wenn man dies wirklich gründlich tun will, Dann wird die Mathematik wirklich schwierig (weil es ein schwieriges Problem ist) und es wird auch extrem chaotisch (weil Sie Ihr Modell nah genug an der Realität haben müssen, um relevante Ergebnisse zu erzielen). Insbesondere die Arbeiten, die ich gesehen habe, um zu erklären, dass die Leistung der VSIDS-Heuristik (Variable State Independent Decaying Sum) für variable Entscheidungen gut funktioniert, weil sie Communities in der Graphendarstellung der Instanzen untersucht, sind ziemlich nicht überzeugend, obwohl die Hypothese als solche immer noch besteht sehr attraktiv.

Ein Forschungsschwerpunkt, den ich persönlich verfolgt habe, ist die Frage, ob die praktische SAT-Leistung in irgendeiner Weise mit den Beweiskomplexitätsmaßen der betreffenden CNF-Formeln korreliert. Leider scheint die kurze Antwort zu sein, dass es wirklich keinen klaren und zwingenden Zusammenhang gibt. Es kann immer noch sein, dass es nichttriviale Zusammenhänge gibt (das untersuchen wir derzeit auf unterschiedliche Weise), aber es scheint, dass die Theorie zu schön und sauber und hübsch und die Realität zu chaotisch ist, um wirklich gut zusammenzupassen. (In Bezug auf die Abhandlung zum Nachweis von Komplexitätsmaßen und der praktischen Härte von SATvon Järvisalo, Matsliah, Nordström und Živný in CP '12 hat sich herausgestellt, dass detailliertere Experimente ein viel komplexeres Bild mit weniger klaren Schlussfolgerungen liefern. aber es ist kompliziert, aber trotzdem hoffentlich interessant.)

Eine weitere verwandte Aufgabe im Bereich der Beweiskomplexität besteht darin, hochmoderne SAT-Löser als Beweissysteme zu modellieren und in diesen Modellen Theoreme zu beweisen, um die Eigenschaften der entsprechenden Löser abzuleiten. Dies ist jedoch ein kleines Minenfeld, da kleine und scheinbar harmlose Konstruktionsentscheidungen auf der theoretischen Modellseite dazu führen können, dass die Ergebnisse aus praktischer Sicht so gut wie völlig irrelevant sind. Wenn man andererseits ein theoretisches Modell haben möchte, das der Realität nahe genug ist, um relevante Ergebnisse zu liefern, wird dieses Modell äußerst chaotisch. (Dies liegt daran, dass die Leistung des SAT-Lösers von der globalen Historie aller bisher nichttrivialen Vorgänge abhängt. Dies bedeutet, dass das Modell nicht so modular sein kann, wie wir es normalerweise in unseren Beweissystemen einrichten. Ob ein bestimmter Ableitungsschritt vorliegt "richtig"

Zwei Arbeiten, die wirklich als Ausnahmen hiervon erwähnt werden sollten, sind [Pipatsrisawat und Darwiche 2011] und [Atserias, Fichte und Thurley 2011], in denen gezeigt wird, dass konfliktgetriebene SAT-Löser mit Klausellernen auf natürliche Weise modelliert sind Potenzial zur polynomialen Simulation einer vollständigen, allgemeinen Auflösung. Es gibt eine ziemlich lange Liste von Artikeln vor [PD11] und [AFT11], die im Wesentlichen dasselbe Ergebnis behaupten, die jedoch alle schwerwiegende Probleme mit der Modellierung haben. (Es ist wahr, dass [PD11] und [AFT11] auch einige Annahmen benötigen, um zu funktionieren, aber sie sind so ziemlich die Minimalannahmen, die Sie erwarten würden, wenn Sie nicht nach Beiträgen fragen, die auch zeigen, dass die parametrisierte Komplexitätshierarchie zusammenbricht.)

Wiederum schreibe ich das alles sehr schnell, aber wenn es ein erhebliches Interesse für irgendetwas oben Genanntes gibt, könnte ich versuchen, es auszuarbeiten (obwohl es eine Weile dauern könnte, bis ich wieder darauf zurückkomme - bitte zögern Sie nicht, mich anzupingen, wenn ich da bin ist alles, was Sie möchten, dass ich kommentiere). Lassen Sie mich zur schnellen Referenzierung einige schamlose Self-Plugs machen (obwohl die Schande etwas nachlässt, wenn ich sehe, dass einige Kommentare auch einige dieser Referenzen zitiert haben):

Tutorial-artiger Vortrag über das Zusammenspiel von Beweiskomplexität und SAT-Lösung , gehalten an der Internationalen Sommerschule für Zufriedenheit, Modulo-Theorien zur Zufriedenheit und automatisiertes Reasoning im Jahr 2016, mit zahlreichen vollständigen Referenzen am Ende der Folien: http://www.csc .kth.se / ~ jakobn / research / TalkInterplaySummerSchool2016.pdf

Etwas jüngerer und kürzerer Umfragegespräch zum Verständnis konfliktbedingter SAT-Lösungen durch die Linse der Beweiskomplexität ab Anfang 2017 (auch mit vollständigen Referenzen am Ende): http://www.csc.kth.se/~jakobn/research /TalkProofComplexityLensCDCL1702.pdf

Übersicht über Zusammenhänge zwischen Beweiskomplexität und SAT-Lösung: http://www.csc.kth.se/~jakobn/research/InterplayProofCplxSAT.pdf [Quellenangabe: Jakob Nordström. Zum Zusammenspiel von Beweiskomplexität und SAT-Lösung. ACM SIGLOG News, Band 2, Nummer 3, Seiten 19-44, Juli 2015. (Leicht bearbeitete Version mit einigen Tippfehlern behoben.)]

SAT '16-Papier mit CDCL, das originalgetreu als Beweissystem modelliert wurde: http://www.csc.kth.se/~jakobn/research/Trade-offsTimeMemoryModelCDCL_SAT.pdf [ Quellenangabe : Jan Elffers, Jan Johannsen, Massimo Lauria, Thomas Magnard , Jakob Nordström und Marc Vinyals. Kompromisse zwischen Zeit und Speicher in einem engeren Modell von CDCL-SAT-Solvern. In Proceedings of the 19. International Conference on Theory and Applications of Satisfiability Testing (SAT '16), Lecture Notes in Computer Science, Band 9710, Seiten 160-176, Juli 2016.]

Jakob Nordstrom
quelle
16

Lassen Sie mich meine zwei Cent Verständnis hinzufügen, obwohl ich noch nie in der Gegend gearbeitet habe.

Sie stellen eine von zwei Fragen: "Welche Ansätze sind bekannt, um die theoretische Effizienz eines SAT-Lösers für bestimmte Instanzen zu beweisen?" Und "Warum sind SAT-Löser in der Realität effizient?".

Bei der ersten Frage möchte ich Sie nur auf die Recherche von Stefan Szeider verweisen. Er scheint mir der derzeit aktivste Bereich im Bereich der Backdoor- und FPT-Parametrisierung von SAT zu sein (der sowohl strukturelle Ansätze wie treewidth-Maßnahmen und sogenannte Backdoor-Sets als auch eine Mischung aus beiden umfasst).

Um ehrlich zu sein, wurde die letzte Frage bei jedem SAT-Lösungsworkshop, an dem ich teilgenommen habe (einschließlich der letzten Jahre), genau erörtert. Aber mein Eindruck ist wie folgt.

Zunächst müssen Sie quantifizieren oder einschränken, was Sie mit "in der Realität" meinen. Es ist nicht wahr, dass SAT-Löser universell gute Löser für jedes Problem sind, auf das Sie sie werfen (natürlich), und zwischen verschiedenen Problemen brauchen Sie am Ende unterschiedliche Strategien. Zum Beispiel gibt es in letzter Zeit mehrere Erfolge, bei denen mathematische Vermutungen durch eine enorme Computersuche mit Hilfe eines SAT-Lösers überprüft oder verschärft wurden. In diesem Fall sind die cleveren Verbesserungen und Heuristiken im CDCL-Stil, die moderne SAT-Löser normalerweise anwenden, anscheinend oftmals nicht sehr leistungsfähig, und das Spiel läuft auf eine clevere Art und Weise ab, Ihr Quellproblem aufzuteilen Teile, gefolgt von (im Wesentlichen) einem Brute-Force-Verzweigungsalgorithmus mit einem kleinen konstanten Faktor in der Laufzeit.

Möglicherweise habe ich diesen Punkt leicht überbewertet, aber mein Punkt war, dass SAT-Löser, als sie beispielsweise die Erdos-Diskrepanz-Vermutung angriffen, aus einem anderen Grund erfolgreich waren als wenn sie industrielle Instanzen lösten, die aus Schaltungstests stammten.

Wir müssen uns also die Frage stellen, warum CDCL-basierte Solver in industriellen Fällen, beispielsweise bei der Verifizierung von Schaltkreisen (Prüfung der Schaltkreisäquivalenz), so gut funktionieren. Denke ichdass die mächtigste Sicht (oder die Konsenssicht) hier die Suchstrategie eines CDCL-Lösers ist, passt sehr gut zur Struktur dieser Instanzen. Dies bedeutet zum Beispiel, dass die Schaltungen aus relativ komplexen Teilen (so genannten Clustern) bestehen, die durch relativ wenige und einfachere Verbindungen, möglicherweise auf hierarchische Weise, miteinander verbunden sind. und dass die CDCL-Löser mit all ihren Heuristiken sehr gut darin sind, dies (de facto) auszunutzen und diese Cluster auf die gemeinsam genutzten Variablen zu "projizieren", wie oder in welcher Reihenfolge dies für die Überprüfung der vorliegenden Schaltung am nützlichsten ist. Es scheint aber auch immer noch Konsens darüber zu bestehen, dass dies keine ausreichenden Erklärungen sind (z. B. können wir die Effizienz von CDCL-SAT-Solvern in diesem Bereich wahrscheinlich nicht theoretisch erklären, indem wir uns nur auf die Graphstruktur der Instanz beziehen).

Erklären die verfolgbaren Parametrisierungen letztere? Um ehrlich zu sein, ich weiß es nicht. Ich denke, es gibt wahrscheinlich einen starken Effekt im Spiel, dass die Instanzen in der realen Welt weder der schlimmste Fall sind, noch (wahrscheinlich) der wirklich durchschnittliche Fall gemäß einer Instanzverteilung, mit der wir umgehen können. Aber es lohnt sich wahrscheinlich immer noch zu fragen.

Magnus Wahlström
quelle
2
Magnus, du hast definitiv mehr Erfahrung auf diesem Gebiet als jeder andere, der bisher versucht hat, diese Frage zu beantworten. Als ich "meine zwei Cent" ansprach, bezog ich mich auf die Tatsache, dass ich in meiner Dissertation nur eine bestimmte Gruppe von NP-Complete-Problemen untersucht habe und wie CSP- und SAT-Löser versuchen, die zahlreichen Fälle dieser Probleme zu lösen. Ich habe auch ungefähr ein Jahr Erfahrung mit CSP- und SAT-Solvern am Arbeitsplatz, aber das entspricht auch nicht einmal Ihrer mehr als 10-jährigen Erfahrung auf diesem Gebiet. Ihre "zwei Cent" sind wahrscheinlich "zwei goldene Nuggets" wert. Eine Frage.
Tayfun Pay
1
Sie geben Folgendes in Ihrer Antwort an: "Es ist nicht wahr, dass SAT-Löser universell gute Löser für jedes Problem sind, auf das Sie sie werfen ...". Konnten Sie das Verhältnis von Klauseln zu Variablen, c = m / n, für diese Instanzen anzeigen? Mit anderen Worten, befanden sie sich im harten Bereich, c = ~ 4,2, oder nicht? Ich habe nämlich festgestellt, dass Sie beim Reduzieren einer CSP-Instanz auf eine SAT-Instanz am Ende viele Variablen haben, und dies liegt normalerweise an diesem Grund und nicht daran, dass der SAT-Solver tatsächlich im harten Bereich liegt. Dies dauert länger Zeit zu lösen.
Tayfun Pay
1
Wenn Sie andererseits wissen, dass diese Instanzen in der harten SAT-Region enden, c = ~ 4.2, kann ich dann wissen, was dieses reale Problem war? Ich wäre sehr daran interessiert zu wissen, welche realen Probleme tatsächlich in der schwierigen SAT-Region auftreten, wenn sie auf diese Region reduziert werden. Vielen Dank
Tayfun Pay
2
Ehrlich gesagt habe ich wenig bis gar keine Erfahrung mit praktischer SAT-Lösung. Meine ganze eigentliche Arbeit war auf der rein theoretischen Seite dieser Frage. Aber wie auch immer, in Bezug auf Ihre Frage: Mein Eindruck ist, dass die Ergebnisse für zufälliges k-SAT und Klauseldichte (die Sie erwähnen) wirklich nur gelten, wenn Ihre Eingabeinstanz buchstäblich eine einheitlich zufällige Formel ist. Beachten Sie auch, dass die Grenze ~ 4.2 nur gilt, wenn die Formel 3-SAT ist, im Gegensatz zu einer CNF-Formel mit gemischter Länge.
Magnus Wahlström
1
Und mit "Problemen, die von SAT-Lösern nicht gut gelöst werden" meine ich meist Probleme, die als wirklich unlösbar gelten, z. B. das Brechen einer guten Krypto. Es gibt jedoch auch Formeln, die kein CDCL-Löser aufgrund beweistheoretischer Untergrenzen effizient lösen kann, z. B. Formeln nach dem Pigeon-Hole-Prinzip. Ich habe mindestens einen Vortrag mit der Meldung "CDCL-SAT-Löser haben mich gescheitert" gesehen, bei dem ein wenig Graben aufdeckt, dass ihre Problemcodierung einen taubenlochartigen Aspekt verbirgt (z. B. eine Variation des Zuweisungsproblems). Leider kann ich mich nicht an die Details erinnern.
Magnus Wahlström
15

In CP '12 gibt es eine Veröffentlichung " Relating Proof Complexity Measures and Practical Hardness of SAT " von Matti Järvisalo, Arie Matsliah, Jakob Nordström und Stanislav Živný, die versucht, die Härte oder Leichtigkeit der Lösung bestimmter Formeln durch CDCL-Löser mit Auflösungsbeweisen zu verknüpfen Komplexitätsmaße, insbesondere Auflösungsbeweisraum. Die Ergebnisse sind etwas uneinheitlich, aber ich denke, es ist ein Schritt in die richtige Richtung.

Jan Johannsen
quelle
Leider scheint die kurze Antwort zu sein, dass es wirklich keinen klaren und zwingenden Zusammenhang mit Beweiskomplexitätsmessungen gibt. Es mag immer noch sein, dass es nichttriviale Zusammenhänge gibt, aber es scheint, dass die Theorie zu sauber und die Realität zu chaotisch ist, als dass es eine wirklich gute Übereinstimmung geben könnte. In Bezug auf das Papier "Relating Proof Complexity Measures" hat sich herausgestellt, dass detailliertere Experimente ein viel komplexeres Bild mit weniger klaren Schlussfolgerungen liefern , obwohl immer noch hoffentlich interessant.
Jakob Nordstrom
15

Ich bin kein Experte auf diesem Gebiet, aber ich denke, dass das zufällige SAT / Phasenübergangs-Zeug fast nichts mit dem industriellen / praktischen Anwendungs-Zeug zu tun hat.

ZB basieren die sehr guten Löser für zufällige Instanzen (wie https://www.gableske.net/dimetheus ) auf den statistischen Methoden der Physik (Glaubensausbreitung usw.), wohingegen die sehr guten "allgemeinen" Löser (wie z Ich glaube, da http://fmv.jku.at/lingeling/ ) nicht verwandte Techniken verwenden (mehr wie das, worüber Kaveh sprach).

Aber wie gesagt, nimm vielleicht nicht mein Wort dafür; Dies kommt von einem bestimmten Nicht-Experten.

Ryan O'Donnell
quelle
Ja. Random SAT und Industrial SAT sind völlig unterschiedliche Spiele, und die verwendeten Methoden sind unterschiedlich. Und wenn Sie wirklich schwierige kombinatorische Instanzen lösen möchten, sind noch andere Techniken erfolgreicher (wenn beispielsweise das Problem schwer genug ist, zahlt sich das Erlernen von Klauseln nicht wirklich aus, außer vielleicht sehr lokal). Aber irgendwie scheint es ein weit verbreitetes Missverständnis zu sein (zumindest auf der angewandten Seite der SAT-Community), dass das Verhältnis von Klauseln zu Variablen für jede CNF-SAT-Instanz relevant sein sollte und nicht nur für zufällige Instanzen.
Jakob Nordström