towards a better understanding of the functionality of a conflict-driven sat solver

40
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

Upload: elvin

Post on 21-Jan-2016

29 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 2: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

What is the Motivation behind this Work?

Answering 2 questions that puzzled me for some time

Page 3: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

Page 4: Towards a Better Understanding of the Functionality of a Conflict-Driven 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

Page 5: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

Implication Graph Decision Tree

Page 6: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 7: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 8: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 9: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 10: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 11: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 12: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 13: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 14: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 15: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 16: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 17: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 18: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 19: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 20: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 21: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 22: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 23: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 24: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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’

Page 25: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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

Page 26: Towards a Better Understanding of the Functionality of a Conflict-Driven 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?

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’

Page 27: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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?

Page 28: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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’

Page 29: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

Results: 1 / 3 Characterization of decision tree construction and

pruning process by a conflict-driven SAT solver

Page 30: Towards a Better Understanding of the Functionality of 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

Page 31: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

Results: 2 / 3 Explaining why 1UIP is preferable over other schemes

Page 32: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 33: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 34: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 35: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 36: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 37: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 38: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 39: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

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

Page 40: Towards a Better Understanding of the Functionality of a Conflict-Driven SAT Solver

Thanks for your attention!(See you in poster session)