Upload
elvin
View
25
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver. Nachum Dershowitz¹ Ziyad Hanna² Alexander Nadel¹ , ² 1 Tel-Aviv University 2 Intel. SAT’07 Conference, Lisbon; 30.05.2007. What is the Motivation behind this Work?. - PowerPoint PPT Presentation
Citation preview
Towards a Better Understanding of the
Functionality of a Conflict-Driven SAT Solver
Nachum Dershowitz¹Ziyad Hanna²
Alexander Nadel¹,²
1Tel-Aviv University2Intel
SAT’07 Conference, Lisbon; 30.05.2007
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
Decision Tree
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
Implication Graph Decision Tree
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
Implication Graph Decision Tree
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
a1
Implication Graph Decision Tree
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
a1
Implication Graph Decision Tree
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
a1
Implication Graph Decision Tree
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
a
e
1
Implication Graph Decision Tree
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
0
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
f
a
e
1
Implication Graph Decision Tree
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
0
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
f
c
c’
a
e
1
0
Implication Graph Decision Tree
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
f
c
c’
a
e
1
0
Implication Graph Decision Tree
dec. level 2
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
f
c
c’
a
e
1
0
1UIP: a’ + b’ + f’
Implication Graph Decision Tree
a’ + b’ + f’
dec. level 2
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
b
e’
f
c
c’
a1
Implication Graph Decision Tree
dec. level 2
dec. level 1
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
e0
f1
a’ + f’ + c’
1UIP: a’ + b’ + f’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
f1 0
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
f1 0g
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1e
g
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1e
c’
c
g
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
g’ + e’
f1 0
1e
c’
c
1UIP:g + e’
g
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1
ge’
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
0
a’ + f’ + c’
a’ + b’ + f’
g’ + e’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1
g
0
e’c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
a’ + b’ + f’
g’ + e’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1
g
f
0
e’c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
1UIP:f
…
a’ + f’ + c’
a’ + b’ + f’
g’ + e’
0 1
0
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e0
Implication Graph Decision Tree
e
f1
1
g
f
0
e’c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
1UIP:f
…
a’ + f’ + c’
a’ + b’ + f’
f
g’ + e’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
Implication Graph Decision Tree
ge’
c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
1UIP:f
…
a’ + f’ + c’
f0 1
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q1: How can one explain to a student the behavior of a Chaff-like SAT solver?
a
bf’
a
e
1
0
Implication Graph Decision Tree
e
f1 0
1
g
f
0
e’c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
1UIP:f
…
f0
a’ + f’ + c’
a’ + b’ + f’
g’ + e’
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q2. Why 1UIP scheme is so much faster than AllUIP scheme?
What is the Motivation behind this Work?
Answering 2 questions that puzzled me for some time
Q2. Why 1UIP scheme is so much faster than AllUIP scheme?
a
b
e’
f
c
c’
a
e
1
0
Implication Graph Decision Tree
f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
…
a’ + f’ + c’
1UIP of dl 1
AllUIP: a’ + f’
a’ + b’ + f’
1UIP: a’ + b’ + f’
Results: 1 / 3 Characterization of decision tree construction and
pruning process by a conflict-driven SAT solver
Results: 1 / 3 Characterization of decision tree construction and
pruning process by a conflict-driven SAT solver Each flipped variable is associated with a left decision sub-
tree, explored while refuting corresponding left subspace A way to create this decision tree for a newly flipped variable
is shown in the paper The solver maintains a forest of left decision subtrees, joined
into one tree after the last conflict It is building and pruning the decision forest on-the-fly Two types of pruning
Forward pruning: conflict clause recording Backward pruning: conflict-directed backjumping
Results: 2 / 3 Explaining why 1UIP is preferable over other schemes
0
Results: 2 / 3 Explaining why 1UIP is preferable over other schemes
1UIP is preferable over AllUIP Better forward pruning
Less decisions & flips will be required in future Fr(b): fraction of all clauses, recorded before flipping b, that
contain b (b is a flipped variable) All such clauses will be satisfied after flipping b; thus they
will not contribute to BCP
b1
c
d
0
c + d b’ + c + d
1b’ + c’
Fr(b) = 2/3
Results: 2 / 3 Explaining why 1UIP is preferable over other schemes
1UIP is preferable over AllUIP Better forward pruning
Less decisions & flips will be required in future Fr(b): fraction of all clauses, recorded before flipping b, that
contain b (b is a flipped variable) All such clauses will be satisfied after flipping b
Average Fr(b) for AllUIP is twice as higher as for 1UIP
1UIP vs. AllUIP (Timeout is 4 hours)
Instance1UIP AllUIP
Time10-3Conf Fr NSk Time
10-3Conf. Fr NSk
4pipe 51 101 0.41 0.19 11930 29985 0.83 0.24
5pipe 50 85 0.40 0.18 t/0 28185 0.84 0.21
8pipe_k 2426 1478 0.37 0.21 t/o 13192 0.81 0.19
9pipe_k 1493 640 0.37 0.20 t/o 6678 0.86 0.26
longmult10 485 237 0.37 0.13 590 379 0.84 0.24
longmult11 559 273 0.37 0.14 690 471 0.83 0.25
rotmul 578 615 0.52 0.16 992 1576 0.84 0.27
term1mul 2173 1585 0.55 0.15 2875 3059 0.86 0.26
Results: 2 / 3 Explaining why 1UIP is preferable over other schemes
1UIP is preferable over AllUIP Better forward pruning
Fr(b): fraction of all clauses, recorded before flipping b, that contain b (b is a flipped variable) All such clauses will be satisfied after flipping b
Fr(b) for AllUIP is twice as higher than for 1UIP 1UIP is preferable over UIP-2 (2nd UIP of the last
decision level) Better backward pruning: more flipped variables and
respective decision tree nodes are skipped 1UIP scheme corrects mistakes on-the-fly
1UIP vs. UIP-2 (Timeout is 4 hours)
Instance1UIP UIP-2
Time10-3Conf Fr NSk Time
10-3Conf. Fr NSk
4pipe 51 101 0.41 0.19 148 308 0.38 0.14
5pipe 50 85 0.40 0.18 347 562 0.33 0.14
8pipe_k 2426 1478 0.37 0.21 t/o 10129 0.26 0.13
9pipe_k 1493 640 0.37 0.20 t/o 6040 0.27 0.16
longmult10 485 237 0.37 0.13 513 261 0.34 0.11
longmult11 559 273 0.37 0.14 756 346 0.35 0.11
rotmul 578 615 0.52 0.16 1186 1371 0.48 0.13
term1mul 2173 1585 0.55 0.15 5213 3750 0.54 0.11
Results: 3 / 3 Local conflict clause recording
If there exists a flipped variable, dominated by the first UIP Suppose last such variable f defines a new decision level (like
GRASP does) Record a 1UIP clause wrt new decision level
Normal 1UIP clause is recorded and used as usual
0a
bf’
a
e
1
0
Implication Graph Decision Tree
e
g + e’
f1
1
g
f
0
e’c
c’f + e + c’
a’ + b
e + f
b’ + f’ + c
f + g
g + e’ + c
g + e’ + c’
g’ + e + c
1UIP:f
…
a’ + f’ + c’
a’ + b’ + f’
fLCC: e
LCC: What Problem are We Aiming to Solve?
a
b
c
d
e
fLTree(B)
•Let P be a path in LTree(a), having N nodes
• Leftmost path is inconsistent with N asserting conflict clauses, recorded while exploring LTree(a)
• Rightmost path is inconsistent with none of the asserting conflict clauses
• If leftmost path of LTree(a) is encountered after backtracking beyond a, it will be immediately pruned away. Rightmost path will not be pruned.
1
1
1
0
0
0
1Asserting clause for flipping b contained b’It is inconsistent with the left-most path. It is consistent with the right-most path
Asserting clause contains e’. It is consistent with the rightmost path
Local Conflict Clause Recording Impact
Family Default Default + LCC
Time in sec. t/o Time in sec. t/o
sat04-maris03-gripper-sat 2238 0 986 0
sat04-goldb03_hard_eq_chk 30336 2 15353 0
sat04-maris03-gripper-unsat 30135 4 17842 2
velev_fvp_unsat.3.0 18199 2 10928 2
velev_fvp_sat.3.0 9041 0 7155 0
velev_vliw_sat.2.0 5970 0 4715 0
barrel 260 0 226 0
velev_pipe_unsat_1.0 15880 0 13094 0
velev_pipe_unsat_4.0 17260 0 14810 0
longmult 5413 0 5076 0
velev_vliw_sat_4.0 5116 0 6882 0
Thanks for your attention!(See you in poster session)