1 / 30

Chaff: Engineering An Efficient SAT Solver

Chaff: Engineering An Efficient SAT Solver. Presented by Monissa Mohan. Two Strategies that make Chaff work better:. A highly optimized BCP algorithm Two watched literals Fast Backtracking Efficient Decision Heuristic Focused on recently added clauses Highly optimized for speed.

kovit
Télécharger la présentation

Chaff: Engineering An Efficient SAT Solver

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chaff: Engineering An Efficient SAT Solver Presented by Monissa Mohan

  2. Two Strategies that make Chaff work better: • A highly optimized BCP algorithm • Two watched literals • Fast Backtracking • Efficient Decision Heuristic • Focused on recently added clauses • Highly optimized for speed

  3. Some Definitions • Boolean Constraint Propagation (BCP): Identify all the variable assignments required by the current variable state to satisfy f • For f to be sat, every clause must be sat

  4. Implication • Unit Clause rule: • All literals are False(F) with one unassigned literal • These clauses are called UNIT CLAUSES • This literal has to take on the value of True(T) to make fsat f= v1+v2+v3 Now v1 and v2 has been assigned to false(F) • f=F+F+v3 Now f is called a unit clause v3 takes the value of True(T) to make f sat.

  5. Implication for N-literal clause Implication occurs after N-1 assignments of False to its literals • Goal of BCP: • Visit the clause only when the number of zero literals goes from N-2 to N-1 • How is this done? • Theoretically, we could ignore the first N-2 assignments to this clause • The first N-2 assignments won’t have any effect on the BCP (…….+x+y+…….) N literals

  6. Watched Literals • Each clause has two watched literals • Ignore any assignments to the other literals in the clause. • BCP Maintains the following rule • By the end of BCP, one of the watched literal is true or both are undefined. • Guaranteed to find all implications (…….+x+y+…….) N literals

  7. Advantages of Watched Literals • While backtracking, no need to modify watched literals • Variable may be watched only in a small subset of clauses. This reduces the total number of memory accesses which is critical for SAT solvers

  8. Example(1/13) Four clauses are present: • v2 + v3 + v1 + v4 • v1 + v2 + v3’ • v1 + v2’ • v1’+ v4

  9. Example(2/13) Watched Literals: • v2 + v3 + v1 + v4 • v1 + v2+ v3’ • v1 + v2’ • v1’+ v4

  10. Example (3/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) • Assume we decide to set v1 the value F

  11. Example (4/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) • Ignore clauses with a watched literal whose value is T

  12. Example (5/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) • Ignore clauses where neither watched literal value changes

  13. Example (6/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) • Examine clauses with a watched literal whose value is F

  14. Example (7/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) Stack:(v1=F) • In the second clause, replace the watched literal v1 with v3’

  15. Example (8/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F) Pending: (v2=F) Stack:(v1=F) • The third clause is a unit and implies v2=F • We record the new implication, and add it to a • queue of assignments to process.

  16. Example (9/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F) Pending: (v3=F) Stack:(v1=F, v2=F) • Next, we process v2. • We only examine the first 2 clauses

  17. Example (10/13) v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 v2 + v3 + v1 + v4 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F) Pending: (v3=F) Stack:(v1=F, v2=F) • In the first clause, we replace v2 with v4 • The second clause is a unit and implies v3=F • We record the new implication, and add it to the queue

  18. Example (11/13) v2 +v3+ v1 + v4 v1 +v2+ v3’ v1 + v2’ v1’+ v4 v2 +v3+ v1 + v4 v1 +v2+ v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F, v3=F) Pending: () Stack:(v1=F, v2=F, v3=F) • Next, we process v3’. We only examine the first clause.

  19. Example (12/13) v2 +v3+ v1 + v4 v1 +v2+ v3’ v1 + v2’ v1’+ v4 v2 +v3+ v1 + v4 v1 +v2+ v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F, v3=F) Pending: (v4=T) Stack:(v1=F, v2=F, v3=F) • The first clause is a unit and implies v4=T. • We record the new implication, and add it to the queue.

  20. Example (13/13) v2 +v3+ v1 + v4 v1 +v2+ v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F, v3=F, v4=T) • There are no pending assignments, and no conflict • Therefore, BCP terminates and so does the SAT solver

  21. Identify Conflicts v2+v3+ v1 v1 +v2+ v3’ v1 + v2’ v1’+ v4 Stack:(v1=F, v2=F, v3=F) • What if the first clause does not have v4? • When processing v3’, we examine the first clause. • This time, there is no alternative literal to watch. • BCP returns a conflict

  22. Backtrack v2 + v3 + v1 v1 + v2 + v3’ v1 + v2’ v1’+ v4 Stack:() • We do not need to move any watched literal

  23. Chaff Decision Heuristics • Variable State Independent Decaying Sum(VSIDS) • Rank variables based on literal count in the initial clause database. • Only increment counts as new clauses are added. • Periodically, divide all counts by a constant.

  24. VSIDS Example (1/2) New clause added x1 + x4 x1 + x3’ + x8’ x1 + x8 + x12 x2 + x11 x7’ + x3’ + x9 x7’ + x8 + x9’ x7 + x8 + x10’ x7 + x10 + x12’ Scores: 4: x8,x7 3: x1 2: x3,x10,x12 1: x2,x4,x9,x11 Initial data base x1 + x4 x1 + x3’ + x8’ x1 + x8 + x12 x2 + x11 x7’ + x3’ + x9 x7’ + x8 + x9’ x7 + x8 + x10’ Scores: 4: x8 3: x1,x7 2: x3 1: x2,x4,x9,x10,x11,x12 watch what happens to x8, x7 and x1

  25. VSIDS Example (2/2) Counters divided by 2 x1 + x4 x1 + x3’ + x8’ x1 + x8 + x12 x2 + x11 x7’ + x3’ + x9 x7’ + x8 + x9’ x7 + x8 + x10’ x7 + x10 + x12’ Scores: 2: x8,x7 1: x3,x10,x12,x1 0: x2,x4,x9,x11 New clause added x1 + x4 x1 + x3’ + x8’ x1 + x8 + x12 x2 + x11 x7’ + x3’ + x9 x7’ + x8 + x9’ x7 + x8 + x10’ x7 + x10 + x12’ x12’ + x10 Scores: 2: x8,x7,x12,x10 1: x3,x1 0: x2,x4,x9,x11 watch what happens to x8, x10

  26. Features of Chaff(1/2) • Clause Deletion • Avoids memory explosion • Determines when a clause can be deleted • When more than N literals in the clause becomes unassigned for the first time, the clause will be marked as deleted

  27. Features of Chaff(2/2) • Restarts • Halt in the procedure and a restart of the analysis using some previous information • Clearing the state and decisions of all variables and proceeding as normal • The clauses learned prior to the restart are still there after the restart and can help pruning the search space

  28. Experimental Results • One to two orders of magnitude faster than the best public domain solvers • Works equally good on difficult problems prevalent in EDA domain • Speedup simply comes because of efficient engineering in basic search algorithm

  29. References • Chaff: Engineering an Efficient SAT Solver Matthew W. Moskewicz , Conor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik • Boolean Satisfiability in Electronic Design Automation João P. Marques-Silva Karem A. Sakallah

  30. Thank you!Questions?

More Related