1 Agenda Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and resolution More techniques: decision heuristics, deduction. Stochastic SAT solvers: the GSAT approach
40
Embed
1 Agenda Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Agenda
Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and resolution More techniques: decision heuristics, deduction. Stochastic SAT solvers: the GSAT approach
2
Conflict clauses and Resolution
Binary-resolution is a sound inference rule:
Example:
3
Consider the following example:
Conflict clause: c5: (x2 Ç :x4 Ç x10)
We show that c5 is inferred by resolution from c1,…,c4
Linear time transformations “Recycle units” [BFHSS’08]
9
Core compression (smaller core)
A basic approach: run until reaching a fixpoint [chaff]
10
SAT solver
core== last_core ?
corecore
last_core = core
yes
no
initially last_core = ;
11
Remove an unmarked clause c 2
SAT() ?
mark c
yes
:= core
no
Initially ’s clauses are unmarkedReturn
All marked
Core compression (minimal core)
12
Proof compression Example of a linear-time transformation / “Recycle-units” Observation:
When learning (resolving) a new clause in SAT, The resolving clauses are not satisfied Hence, the resolution-variable is unassigned
l l1 :l l2
l1 l2
13
Example (cont’d)
Suppose that the pivot’s constant value is learned later on.
We will use it to simplify the resolution proof.
14
Recycle-units / easy case
1 3 -1 2 5
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
15
Recycle-units / easy case
1 3 -1 2 5
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
16
Recycle-units
1 3
3 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
3
3
17
Recycle-units
1 3
3
-1 4 -1 -4
-1
Reduced proof by 4 clauses Reduced core by 2 clauses
18
Recycle-units / beware of cycles
1 3
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
By making this connection we created
cyclic reasoning
19
Recycle-units / beware of cycles
Solution: mark antecedents of units apply only to unmarked nodes
1 3
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
-1 2 5
3 5
20
Agenda
Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and resolution More techniques: decision heuristics, deduction. Stochastic SAT solvers: the GSAT approach
21
4. Periodically, all the counters are divided by a constant.
3. The unassigned variable with the highest counter is chosen.
2. When a clause is added, the counters are updated.
1. Each variable in each polarity has a counter initialized to 0.
)Implemented in Chaff(
Decision heuristicsVSIDS (Variable State Independent Decaying Sum)
22
• Chaff holds a list of unassigned variables sorted by the counter value.
• Updates are needed only when adding conflict clauses.
• Thus - decision is made in constant time.
Decision heuristicsVSIDS (cont’d)
23
VSIDS is a ‘quasi-static’ strategy:
- static because it doesn’t depend on current assignment
- dynamic because it gradually changes. Variables that appear in recent conflicts have higher priority.
This strategy is a conflict-driven decision strategy.
“..employing this strategy dramatically )i.e. an orderof magnitude( improved performance ... “
Decision heuristicsVSIDS (cont’d)
24
Decision Heuristics - Berkmin
Keep conflict clauses in a stack Choose the first unresolved clause in the stack
If there is no such clause, use VSIDS
Choose from this clause a variable + value according to some scoring (e.g. VSIDS)
This gives absolute priority to conflicts.
25
Berkmin heuristic
tail-first conflict clause
26
Deduction)( allocates new implied variables and conflicts. How can this be done efficiently ?
Observation: More than 90% of the time SAT solvers perform Deduction)(.
More engineering aspects of SAT solvers
27
Hold 2 counters for each clause :
val1( ) - # of negative literals assigned 0 in +
# of positive literals assigned 1 in .
val0(( - # of negative literals assigned 1 in +
# of positive literals assigned 0 in .
Grasp implements Deduction)( with counters
28
Every assignment to a variable x results in updating the counters for all the clauses that contain x.
Grasp implements Deduction)( with counters
is satisfied iff val1)( > 0
is unsatisfied iff val0)( = ||
is unit iff val1)( = 0 val0)( = || - 1
is unresolved iff val1)( = 0 val0)( < || - 1..
Backtracking: Same complexity.
29
Observation: during Deduction(), we are only interested in newly implied variables and conflicts.
These occur only when the number of literals in with value ‘false’ is greater than || - 2
Conclusion: no need to visit a clause unless (val0() > || - 2)
How can this be implemented ?
Chaff implements Deduction)( with 2 observers
30
For each clause ¼, define two ‘observers’: O1(), O2().
O1() and O2(): two literals which are not ‘false’.
is unit if updating one observer leads to O1() = O2().
Visit clause only if O1() or O2() become ‘false’.
Chaff implements Deduction)( with 2 observers
31
1 2 3 4 5
V[1]=0
1 2 3 4 5
V[5]=0, v[4]= 0 1 2 3 4 5 Unit clause
Backtrackv[4] = v[5]= Xv[1] = 1
1 2 3 4 5
Chaff implements Deduction)( with 2 observers
1 2 3 4 5
V[2]=0
O1 O2
32
Complexity of Backtracking: Observers of a unit clause are on the highest decision level
present in the clause. Hence backtracking will un-assign them first.
Conclusion: when backtracking, observers stay in place.
Chaff implements Deduction() with 2 observers
33
Chaff implements Deduction() with 2 observers
Which observing literals? Strategy: the least frequently updated variables
The observers method has a learning curve Initial observers: chosen arbitrarily. Then: shifted from variables that were recently updated
These variables will most probably be reassigned soon.
In our example: the next time v[5] is updated, it will point to a significantly smaller set of clauses.
34
Agenda
Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and resolution More techniques: decision heuristics, deduction. Stochastic SAT solvers: the GSAT approach
35
GSAT: stochastic SAT solving
for i = 1 to max_tries {
T := randomly generated truth assignment
for j = 1 to max_flips {
if T satisfies return TRUE
choose v s.t. flipping v’s value gives largest increase in
the # of satisfied clauses )break ties randomly(.
T := T with v’s assignment flipped. } }
Given a CNF formula , choose max_tries and max_flips