Java-Hardware-Implementierungen - Informatik - FB3

Werbung
Universität Bremen
Fachbereich 3
Beweiser für
quantifizierte Boolesche
Ausdrücke - QUAFFLE
Arman Allahyari-Abhari
Leitfaden
Grundlagen (SAT)
 Grundlagen (QBF)
 QUAFFLE-Algorithmik
 Performance
 Zusammenfassung

2
Formalismen (SAT)
Eine CNF hat die Form:
C1C2 ...Cm1C m ,
wobei C i als Klausel bezeichnet wird und
eine Disjunktion von Literalen x j ist, also
die Form x j1  x j2  ...  x jk hat.
Ein Literal ist eine Variable in positiver
oder negativer Phase.
3
SAT-Problem




Sei eine Boolesche Formel f in CNF gegeben.
Das Erfüllbarkeitsproblem (kurz: SAT) stellt die
Frage, ob es eine Belegung gibt, so dass f = 1
ist.
SAT ist NP-Vollständig (Cook, 1971)
Hohe Laufzeitkomplexität
Erst: Davis-Putnam-Algorithmus (Mem. Blowup)
Später: Davis-Logemann-Loveland (CPU)
4
Algorithmus von
Davis, Logemann & Loveland (SAT)
Gegenüber DP-Algorithmus wesentlich
geringerer Speicherbedarf
 Modularer Aufbau (gut erweiterbar)
 Neuer Flaschenhals: CPU
 Reiner DLL-Algorithmus für aktuelle
Probleme noch zu langsam

5
Fortschritte in SAT
Basis: DLL-Algorithmus (Dann: GRASP, Chaff, BerkMin)
Verbesserungen:

Learning durch Konflikte (CBE)

Verbessertes Backtracking (FDA, CDB)

Optimierte Boolean Constraint Propagation

Bessere Entscheidungsheuristiken (VSIDS)

Database Management (Clause Aging/Deletion, …)

Restarts

…
6
Formalismen (QBF)
Eine quantifizierte Boolsche Formel (QBF) hat
die Form: Q1 x1.....Qn xn  ,
wobei  eine aussagenlogische Formel mit den
Variablen xi (i  1....n)
ist. Im Folgenden wird in 
KNF vorliegen.
Q1 x1.....Qn xn C1....Cm
Qi ist entweder ein Existenzquantor  oder ein
Allquantor . Die Quantifizierungsreihenfolge ist
zwingend einzuhalten
7
Formalismen (QBF) #2
Q1 x1.....Qn xn C1....Cm
Da xy  yx und xy  yx , können
gleichquantifizierte Variablen mit der selben
Priorität in disjunkten Mengen X i zusammengefasst werden:
Q1 X 1.....Qk X k C1....Cm , k  n
Für den Quantor Q j haben alle in X j enthaltenen
Variablen das Quantifizierungs-Level j.
8
Augmented CNF

Ein cube Si ist eine Konjunktion von Literalen:
l1l2 ...lk
Eine ACNF ist eine mit (redundanten) cubes
erweiterte Darstellung der CNF für QBF:
Q1 x1.....Qn xn C1....Cm  ( S1  ...  Sm' )
Wenn ein Si erfüllt ist, dann ist auch die CNF
erfüllt
9
Besondere Klauseln/Cubes

Eine tautology clause ist eine Klausel, die
beide Phasen einer Variablen enthält
(Klausel erfüllt)

Ein empty cube ist ein Cube, der beide
Phasen einer Variablen enthält
(Cube unerfüllbar)
10
Weitere Definitionen/Konventionen

E(C) und E(S) stellen die Menge der
existenziellen Literale und U(C) und U(S)
die der universellen Literale in der Klausel
C bzw. dem Cube S dar.

Existenzielle Literale werden durch a,b,c,
usw. und Universelle duch x,y,z, usw.
dargestellt
11
Zusammenhang von SAT & QBF
SAT ist spezieller Fall von QBF, da SATProbleme implizit nur Existenz-Quantoren
enthalten
 Entwicklung im Bereich SAT ist in den
letzten Jahren weit fortgeschritten (DP,
DLL, GRASP, Chaff, BerkMin)
 Ziel: SAT-Techniken erweitern, so dass
diese auch auf QBF anwendbar sind

12
QUAFFLE – Ein QBF-Solver
Release: Sept. 2002
 Authoren: L. Zhang, S. Malik (Chaff)
 Webseite:

http://www.princeton.edu/~chaff/quaffle.html
 Benchmarks: http://www.qbflib.org

Schwerpunkt: effizientes Learning
13
Davis-Logemann-Loveland für QBF



Die Branch-Prozedur muss die Reihenfolge der
Quantifizierungen einhalten
Die deduce-Prozedur muss eine erweiterte
Implikationsregel nutzen
Wurde nun eine erfüllende Belegung gefunden,
so ist die Suche nicht beendet:
Beide Branches von universellen Variablen
müssen erfüllt sein
Backtrack, Flip und weiter
14
Davis-Logemann-Loveland für QBF
//Variable entscheiden
//Implikation
//Konfliktbehandlung
//Behandlung von
//SAT–Fällen
//Ende des
Implikationsdurchlaufs
//Terminierung
15
Konflikt-/SAT-Behandlung
analyse_conflict() sucht die am Konflikt
beteiligte existenzielle Variable mit dem
höchsten decision level, flippt diese und
gibt das decision level zurück
 analyse_SAT() sucht die universelle
Variable mit dem höchsten decision level,
flippt diese und gibt das decision level
zurück

16
Wichtig

Regeln auf Klauseln lassen
ausschließlich Folgerungen auf
existenzielle Literale zu

Regeln auf Cubes lassen ausschließlich
Folgerungen auf universelle Literale zu
17
Konfliktregel für non-tautology
clauses
Gilt für eine non-tautology clause C
(1)
a  E (C ), V (a)  0
(alle existenziellen Literale haben den Wert 0)
(2)
x U (C ), V ( x)  1
(kein universelles Literal hat den Wert 1)
dann ist C eine conflicting clause (aktueller Zweig
unerfüllbar).
18
Implikationsregel für non-tautology
clauses
Gilt für eine non-tautology clause C mit Literal a
(1) a  E (C ), V (a)  X . Für alle b  E (C ), b  a; V(b)  0
alle existenziellen Literale außer a haben
den Wert 0, a ist unzugewiesen.
(2) x U (C ), V ( x)  1. Wenn V ( x)  X , dann L( x)  L(a)
kein universelles Literal hat den Wert 1. Wenn
ein solches Literal unzugewiesen ist, ist sein
Quantifizierungs-Level größer als das von a.
dann muss a den Wert 1 haben.
19
Satisfying rule für non-empty cubes
Gilt für einen non-empty cube S
(1) x U ( S ), V ( x)  1
alle universellen Literale haben den Wert 1
(2) a  E ( S ), V (a )  0
kein existenzielles Literal hat den Wert 0.
dann muss der Klausel-Term erfüllt sein.
20
Implikationsregel für non-empty
cubes
Gilt für einen non-empty cube S mit Literal x
(1) x U ( S ), V ( x)  X . Für alle y U ( S ), y  x; V(y)  1
alle universellen Literale außer x haben den Wert 1, x ist
unzugewiesen.
(2) a  E ( S ), V (a )  0. Wenn V (a )  X , dann L(a )  L( x)
kein existenzielles Literal hat den Wert 0. Wenn ein
solches Literal unzugewiesen ist, ist sein
Quantifizierungs-Level größer als das von x.
dann muss x den Wert 0 zugewiesen bekommen (Immer
universelle Variablen), damit der Zweig abgeschnitten
21
wird (SAT-Learning).
Conflict Driven Learning
Ziel: Gemachte Fehler (falsche Branches) in
Form von neuen Klauseln festhalten, um so
den Suchraum zu verringern
 Verbesserung der analyse_conflict()-Routine
 Lernen durch Resolution der beteiligten
Klauseln

22
Resolution
Gegeben seien zwei Klauseln C1 und C2 .
C1 enthält die Literale l1 , ..., lm , a und C2
die Literale lm1 , lm 2 , ..., ln , a'. Die Literale a
und a' gehören der selben Variablen an,
haben aber verschiedene Phasen.
 Durch Anwendung von Resolution erhält
man eine neue Klausel l1 , ..., lm , lm1 , ..., ln  .

23
Conflict Driven Learning
//Learning
//Konfliktdiagnose
24
SAT-basiertes Lernen

Wenn erfüllende Belegung für Klausel-Term
gefunden, nicht unbedingt Lösung der QBF
(Allquantoren)

Problem: SAT-Ansätze fokussieren auf Konflikte.
Keine Technik für erfüllende Belegungen, die
Allquantoren nicht erfüllen, zu lernen.
Neuer Ansatz: Satisfiability-Directed Learning
25
Cube-Generierung

Wenn erfüllende Belegung für Klausel-Term
gefunden, diese als cube an die ACNF anfügen:
Beispiel:
a, y' ist erfüllende Belegung.
Zugehörigen cube
in die ACNF einfügen:
Heuristiken entscheiden, welche hinzugef. werden
26
Cube-Generierung
//Cube-Generator
//SAT-Analyse
27
Perfomance (1) - Quaffle im
Vergleich mit anderen QBF-Solvern
28
Performance (2)
29
Zusammenfassung



Tritt ein Konflikt auf, wird eine Klausel gelernt,
die unerfüllbare Zweige abschneidet
Tritt ein SAT-Fall ein, wird ein Cube gelernt, der
erfüllbare Zweige abschneidet
Satisfiability-Directed-Learning nur für Instanzen
sinnvoll, die viele erfüllbare Zweige mit vielen
universellen Quantoren haben.
30
Vielen Dank!
31
Herunterladen