CDCL SAT Solvers. Joao Marques-Silva. Theory and Practice of SAT Solving Dagstuhl Workshop. April INESC-ID, IST, ULisbon, Portugal

Size: px
Start display at page:

Download "CDCL SAT Solvers. Joao Marques-Silva. Theory and Practice of SAT Solving Dagstuhl Workshop. April INESC-ID, IST, ULisbon, Portugal"

Transcription

1 CDCL SAT Solvers Joao Marques-Silva INESC-ID, IST, ULisbon, Portugal Theory and Practice of SAT Solving Dagstuhl Workshop April 2015

2 The Success of SAT Well-known NP-complete decision problem [C71]

3 The Success of SAT Well-known NP-complete decision problem In practice, SAT is a success story of Computer Science Hundreds (even more?) of practical applications [C71]

4 The Success of SAT Well-known NP-complete decision problem In practice, SAT is a success story of Computer Science Hundreds (even more?) of practical applications [C71]

5 SAT Solver Improvement [Source: Le Berre&Biere 2011] CPU Time (in seconds) Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout Limmat (2002) Zchaff (2002) Berkmin (2002) Forklift (2003) Siege (2003) Zchaff (2004) SatELite (2005) Minisat 2 (2006) Picosat (2007) Rsat (2007) Minisat 2.1 (2008) Precosat (2009) Glucose (2009) Clasp (2009) Cryptominisat (2010) Lingeling (2010) Minisat 2.2 (2010) Glucose 2 (2011) Glueminisat (2011) Contrasat (2011) Lingeling 587f (2011) Number of problems solved

6 SAT-Based Problem Solving MBD PBO Eager SMT B&B Search Planning Enumeration BMC Encodings Problem Solving with SAT Embeddings OPT SAT MC: ic3 MaxSAT Lazy SMT LCG CEGAR QBF Oracles MUS CEGAR SMT MCS Enumeration Backbones Min. Models

7 This Talk Review key ideas in implementing CDCL SAT solvers Review standard concepts Unit propagation Resolution Proof traces... Outline organization of DPLL/CDCL SAT solvers Survey most effective techniques Clause learning & non-chronological bakctracking UIPs Clause minimization Search restarts Several heuristics...

8 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

9 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

10 Preliminaries Variables: w, x, y, z, a, b, c,... Literals: w, x, ȳ, a,..., but also w, y,... Clauses: disjunction of literals or set of literals Formula: conjunction of clauses or set of clauses Model (satisfying assignment): partial/total mapping from variables to {0, 1} that satisfies formula Formula can be SAT/UNSAT

11 Preliminaries Variables: w, x, y, z, a, b, c,... Literals: w, x, ȳ, a,..., but also w, y,... Clauses: disjunction of literals or set of literals Formula: conjunction of clauses or set of clauses Model (satisfying assignment): partial/total mapping from variables to {0, 1} that satisfies formula Formula can be SAT/UNSAT Example: F (r) ( r s) ( w a) ( x b) (ȳ z c) ( b c d) Example models: {r, s, a, b, c, d} {r, s, x, y, w, z, ā, b, c, d}

12 Resolution Resolution rule: [DP60,R65] (α x) (β x) (α β) Complete proof system for propositional logic

13 Resolution Resolution rule: [DP60,R65] (α x) (β x) (α β) Complete proof system for propositional logic (x a) ( x a) (ȳ ā) (y ā) (a) (ā) Extensively used with (CDCL) SAT solvers

14 Resolution Resolution rule: [DP60,R65] (α x) (β x) (α β) Complete proof system for propositional logic (x a) ( x a) (ȳ ā) (y ā) (a) (ā) Extensively used with (CDCL) SAT solvers Self-subsuming resolution (with α α): [e.g. SP04,EB05] (α x) (α x) (α) (α) subsumes (α x)

15 Unit Propagation F = (r) ( r s) ( w a) ( x ā b) (ȳ z c) ( b c d)

16 Unit Propagation F = (r) ( r s) ( w a) ( x ā b) (ȳ z c) ( b c d) Decisions / Variable Branchings: w = 1, x = 1, y = 1, z = 1

17 Unit Propagation Level Dec. Unit Prop. F = (r) ( r s) ( w a) ( x ā b) 0 1 w r a s (ȳ z c) ( b c d) 2 x b Decisions / Variable Branchings: w = 1, x = 1, y = 1, z = y z c d

18 Unit Propagation Level Dec. Unit Prop. F = (r) ( r s) ( w a) ( x ā b) (ȳ z c) ( b c d) w x r a b s Decisions / Variable Branchings: w = 1, x = 1, y = 1, z = y z c d Additional definitions: Antecedent (or reason) of an implied assignment ( b c d) for d Associate assignment with decision levels w = 1, x = 2, y = 3, z = 4 r = 0, d = 4,...

19 Resolution Proofs Refutation of unsatisfiable formula by iterated resolution operations produces resolution proof An example: F = ( c) ( b) (ā c) (a b) (a d) (ā d) Resolution proof: (a b) (ā c) ( c) (b c) ( b) (b) A modern SAT solver can generate resolution proofs using clauses learned by the solver [ZM03]

20 Unsatisfiable Cores & Proof Traces CNF formula: F = ( c) ( b) (ā c) (a b) (a d) (ā d) Level Dec. Unit Prop. 0 b a c Implication graph with conflict

21 Unsatisfiable Cores & Proof Traces CNF formula: F = ( c) ( b) (ā c) (a b) (a d) (ā d) Level Dec. Unit Prop. 0 b a c Proof trace : (ā c) (a b) ( c) ( b)

22 Unsatisfiable Cores & Proof Traces CNF formula: F = ( c) ( b) (ā c) (a b) (a d) (ā d) Level Dec. Unit Prop. (a b) (ā c) 0 b a ( c) (b c) c ( b) (b) Resolution proof follows structure of conflicts

23 Unsatisfiable Cores & Proof Traces CNF formula: F = ( c) ( b) (ā c) (a b) (a d) (ā d) Level Dec. Unit Prop. (a b) (ā c) 0 b a ( c) (b c) c ( b) (b) Unsatisfiable subformula (core): ( c), ( b), (ā c), (a b)

24 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

25 The DPLL Algorithm Unassigned variables? N Y Assign value to variable Satisfiable Unit propagation N Conflict? Y N Can undo decision? Unsatisfiable Y Backtrack & flip variable Optional: pure literal rule

26 The DPLL Algorithm Unassigned variables? N F = (x y) (a b) (ā b) (a b) (ā b) Y Assign value to variable Satisfiable Unit propagation N Conflict? Y N Can undo decision? Unsatisfiable Y Backtrack & flip variable Optional: pure literal rule

27 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x Unit propagation 2 3 y a b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

28 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x Unit propagation 2 3 y ā b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

29 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x Unit propagation 2 3 ȳ a b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

30 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x Unit propagation 2 3 ȳ ā b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

31 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x y Unit propagation 2 a b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

32 The DPLL Algorithm F = (x y) (a b) (ā b) (a b) (ā b) Unassigned variables? Y Assign value to variable N Satisfiable Level Dec. Unit Prop. 0 1 x y Unit propagation 2 ā b N Conflict? Unsatisfiable N Y Can undo decision? Y Backtrack & flip variable a y ā a x ȳ ā x a ā Optional: pure literal rule

33 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

34 What is a CDCL SAT Solver? Extend DPLL SAT solver with: [DP60,DLL62] Clause learning & non-chronological backtracking [MSS96,BS97,Z97] Search restarts [GSK98,BMS00,H07,B08] Lazy data structures Conflict-guided branching...

35 What is a CDCL SAT Solver? Extend DPLL SAT solver with: [DP60,DLL62] Clause learning & non-chronological backtracking [MSS96,BS97,Z97] Exploit UIPs [MSS96,SSS12] Minimize learned clauses [SB09,VG09] Opportunistically delete clauses [MSS96,MSS99,GN02] Search restarts [GSK98,BMS00,H07,B08] Lazy data structures Watched literals [MMZZM01] Conflict-guided branching Lightweight branching heuristics [MMZZM01] Phase saving [PD07]...

36 How Significant are CDCL SAT Solvers? CPU Time (in seconds) GRASP DPLL Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout Limmat (2002) Zchaff (2002) Berkmin (2002) Forklift (2003) Siege (2003) Zchaff (2004) SatELite (2005) Minisat 2 (2006) Picosat (2007) Rsat (2007) Minisat 2.1 (2008) Precosat (2009) Glucose (2009) Clasp (2009) Cryptominisat (2010) Lingeling (2010) Minisat 2.2 (2010) Glucose 2 (2011) Glueminisat (2011) Contrasat (2011) Lingeling 587f (2011) Number of problems solved??

37 Outline Basic Definitions DPLL Solvers CDCL Solvers Clause Learning, UIPs & Minimization Search Restarts & Lazy Data Structures What Next in CDCL Solvers? CNF Encodings

38 Clause Learning Level Dec. Unit Prop. 0 1 x 2 y 3 z a b

39 Clause Learning Level Dec. Unit Prop. 0 1 x 2 y 3 z a b Analyze conflict

40 Clause Learning Level Dec. Unit Prop. 0 1 x 2 y 3 z a b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels

41 Clause Learning Level Dec. Unit Prop. 0 1 x 2 y 3 z a b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels Create new clause: ( x z)

42 Clause Learning Level Dec. Unit Prop. 0 1 x (ā b) ( z b) ( x z a) 2 y (ā z) 3 z a ( x z) b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels Create new clause: ( x z) Can relate clause learning with resolution

43 Clause Learning Level Dec. Unit Prop. 0 1 x (ā b) ( z b) ( x z a) 2 y (ā z) 3 z a ( x z) b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels Create new clause: ( x z) Can relate clause learning with resolution

44 Clause Learning Level Dec. Unit Prop. 0 1 x (ā b) ( z b) ( x z a) 2 y (ā z) 3 z a ( x z) b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels Create new clause: ( x z) Can relate clause learning with resolution

45 Clause Learning Level Dec. Unit Prop. 0 1 x (ā b) ( z b) ( x z a) 2 y (ā z) 3 z a ( x z) b Analyze conflict Reasons: x and z Decision variable & literals assigned at lower decision levels Create new clause: ( x z) Can relate clause learning with resolution Learned clauses result from (selected) resolution operations

46 Clause Learning After Backtracking Level Dec. Unit Prop. 0 1 x z 2 y 3 z a b

47 Clause Learning After Backtracking Level Dec. Unit Prop. 0 1 x z 2 y 3 z a b Clause ( x z) is asserting at decision level 1

48 Clause Learning After Backtracking Level Dec. Unit Prop. 0 1 x z Level Dec. Unit Prop. 0 1 x z 2 y 3 z a b Clause ( x z) is asserting at decision level 1

49 Clause Learning After Backtracking Level Dec. Unit Prop. 0 1 x z Level Dec. Unit Prop. 0 1 x z 2 y 3 z a b Clause ( x z) is asserting at decision level 1 Learned clauses are always asserting [MSS96,MSS99] Backtracking differs from plain DPLL: Always bactrack after a conflict [MMZZM01]

50 Unique Implication Points (UIPs) Level Dec. Unit Prop. 0 1 w 2 x 3 y 4 z a c b

51 Unique Implication Points (UIPs) Level Dec. Unit Prop. 0 1 w ( b c) ( w ā c) ( x ā b) (ȳ z a) ( w ā b) 2 x ( w x ā) 3 y ( w x ȳ z) 4 z a c b Learn clause ( w x ȳ z)

52 Unique Implication Points (UIPs) Level Dec. Unit Prop. 0 1 w ( b c) ( w ā c) ( x ā b) (ȳ z a) ( w ā b) 2 x ( w x ā) 3 y ( w x ȳ z) 4 z a c b Learn clause ( w x ȳ z) But a is an UIP Dominator in DAG for level 4

53 Unique Implication Points (UIPs) Level Dec. Unit Prop. 0 1 w ( b c) ( w ā c) ( x ā b) (ȳ z a) ( w ā b) 2 x ( w x ā) 3 y ( w x ȳ z) 4 z a c b Learn clause ( w x ȳ z) But a is an UIP Dominator in DAG for level 4 Learn clause ( w x ā)

54 Multiple UIPs Level Dec. Unit Prop. 0 1 w 2 x 3 y 4 z r a c s b

55 Multiple UIPs Level Dec. Unit Prop. 0 1 w First UIP: Learn clause ( w x ā) 2 x 3 y 4 z r a c s b

56 Multiple UIPs Level Dec. Unit Prop w x First UIP: Learn clause ( w x ā) But there can be more than 1 UIP 3 y 4 z r a c s b

57 Multiple UIPs Level Dec. Unit Prop w x y First UIP: Learn clause ( w x ā) But there can be more than 1 UIP Second UIP: Learn clause ( x z a) 4 z r a c s b

58 Multiple UIPs Level Dec. Unit Prop w x y z r a c First UIP: Learn clause ( w x ā) But there can be more than 1 UIP Second UIP: Learn clause ( x z a) In practice smaller clauses more effective Compare with ( w x ȳ z) s b

59 Multiple UIPs Level Dec. Unit Prop w x y z r a c First UIP: Learn clause ( w x ā) But there can be more than 1 UIP Second UIP: Learn clause ( x z a) In practice smaller clauses more effective Compare with ( w x ȳ z) s b Multiple UIPs proposed in GRASP [MSS96] First UIP learning proposed in Chaff [MMZZM01] Not used in recent state of the art CDCL SAT solvers

60 Multiple UIPs Level Dec. Unit Prop w x y z r a c First UIP: Learn clause ( w x ā) But there can be more than 1 UIP Second UIP: Learn clause ( x z a) In practice smaller clauses more effective Compare with ( w x ȳ z) s b Multiple UIPs proposed in GRASP [MSS96] First UIP learning proposed in Chaff [MMZZM01] Not used in recent state of the art CDCL SAT solvers Recent results show it can be beneficial on current instances [SSS12]

61 Clause Minimization I Level Dec. Unit Prop. 0 1 x b 2 y 3 z c a

62 Clause Minimization I Level Dec. Unit Prop. 0 1 x b (ā c) ( z b c) ( x ȳ z a) ( z b ā) 2 y ( x ȳ z b) 3 z c a Learn clause ( x ȳ z b)

63 Clause Minimization I Level Dec. Unit Prop. 0 1 x b (ā c) ( z b c) ( x ȳ z a) ( z b ā) ( x b) 2 y ( x ȳ z b) 3 z c a Learn clause ( x ȳ z b) Apply self-subsuming resolution (i.e. local minimization) [SB09]

64 Clause Minimization I Level Dec. Unit Prop. 0 1 x b (ā c) ( z b c) ( x ȳ z a) ( z b ā) ( x b) 2 y ( x ȳ z b) 3 z c ( x ȳ z) a Learn clause ( x ȳ z b) Apply self-subsuming resolution (i.e. local minimization)

65 Clause Minimization I Level Dec. Unit Prop. 0 1 x b (ā c) ( z b c) ( x ȳ z a) ( z b ā) ( x b) 2 y ( x ȳ z b) 3 z c ( x ȳ z) a Learn clause ( x ȳ z b) Apply self-subsuming resolution (i.e. local minimization) Learn clause ( x ȳ z)

66 Clause Minimization II Level Dec. Unit Prop. 0 1 w a c b 2 x e d

67 Clause Minimization II Level Dec. Unit Prop. 0 1 w a c Learn clause ( w x c) b 2 x e d

68 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) 2 x e d

69 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b 2 x e c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) Can apply recursive minimization d

70 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b 2 x e c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) Can apply recursive minimization d Marked nodes: literals in learned clause [SB09]

71 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b 2 x e c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) Can apply recursive minimization d Marked nodes: literals in learned clause Trace back from c until marked nodes or new decision nodes Drop literal c if only marked nodes visited [SB09]

72 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b 2 x e d c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) Can apply recursive minimization Learn clause ( w x) Marked nodes: literals in learned clause Trace back from c until marked nodes or new decision nodes Drop literal c if only marked nodes visited [SB09]

73 Clause Minimization II Level Dec. Unit Prop. 0 1 w a b 2 x e d c Learn clause ( w x c) Cannot apply self-subsuming resolution Resolving with reason of c yields ( w x ā b) Can apply recursive minimization Learn clause ( w x) Marked nodes: literals in learned clause Trace back from c until marked nodes or new decision nodes Drop literal c if only marked nodes visited Complexity of recursive minimization? [SB09]

74 Outline Basic Definitions DPLL Solvers CDCL Solvers Clause Learning, UIPs & Minimization Search Restarts & Lazy Data Structures What Next in CDCL Solvers? CNF Encodings

75 Search Restarts I Heavy-tail behavior: [GSK98] runs, branching randomization on industrial instance Use rapid randomized restarts (search restarts)

76 Search Restarts II Restart search after a number of conflicts cutoff cutoff solution

77 Search Restarts II Restart search after a number of conflicts Increase cutoff after each restart Guarantees completeness Different policies exist (see refs) cutoff cutoff solution

78 Search Restarts II Restart search after a number of conflicts Increase cutoff after each restart Guarantees completeness Different policies exist (see refs) Works for SAT & UNSAT instances. Why? cutoff cutoff solution

79 Search Restarts II Restart search after a number of conflicts Increase cutoff after each restart Guarantees completeness Different policies exist (see refs) Works for SAT & UNSAT instances. Why? Learned clauses effective after restart(s)

80 Data Structures Basics Each literal l should access clauses containing l Why?

81 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation

82 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause

83 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L

84 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n)

85 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n) Worst-case number of literals: O(m n)

86 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n) Worst-case number of literals: O(m n) In practice, Unit propagation slow-down worse than linear as clauses are learned!

87 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n) Worst-case number of literals: O(m n) In practice, Unit propagation slow-down worse than linear as clauses are learned! Clause learning to be effective requires a more efficient representation:

88 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n) Worst-case number of literals: O(m n) In practice, Unit propagation slow-down worse than linear as clauses are learned! Clause learning to be effective requires a more efficient representation: Watched Literals

89 Data Structures Basics Each literal l should access clauses containing l Why? Unit propagation Clause with k literals results in k references, from literals to the clause Number of clause references equals number of literals, L Clause learning can generate large clauses Worst-case size: O(n) Worst-case number of literals: O(m n) In practice, Unit propagation slow-down worse than linear as clauses are learned! Clause learning to be effective requires a more efficient representation: Watched Literals Watched literals are one example of lazy data structures But there are others

90 Watched Literals [MMZZM01] Important states of a clause

91 Watched Literals [MMZZM01] Important states of a clause Associate 2 references with each clause

92 Watched Literals [MMZZM01] Important states of a clause Associate 2 references with each clause Deciding unit requires traversing all literals

93 Watched Literals [MMZZM01] Important states of a clause Associate 2 references with each clause Deciding unit requires traversing all literals References unchanged when backtracking

94 Watched Literals, in Practice [ES03,G13] In practice, first two positions of clause are watched Fixed Assign watched Swap Assign watched Swap

95 Watched Literals, in Practice [ES03,G13] In practice, first two positions of clause are watched May require to traverse already assigned literals, multiple times Assign watched Fixed Swap Assign watched Swap

96 Watched Literals, in Practice [ES03,G13] In practice, first two positions of clause are watched May require to traverse already assigned literals, multiple times Worst-case time of unit propagation is quadratic on clause size and so on number of literals Assign watched Swap Fixed Assign watched Swap

97 Watched Literals, in Practice [ES03,G13] In practice, first two positions of clause are watched May require to traverse already assigned literals, multiple times Worst-case time of unit propagation is quadratic on clause size and so on number of literals In practice, no gains observed from considering alternative implementations (see previous slide) Assign watched Swap Assign watched Swap Fixed

98 Additional Key Techniques Lightweight branching Use conflict to bias variables to branch on, associate score with each variable Prefer recent bias by regularly decreasing variable scores [e.g. MMZZM01]

99 Additional Key Techniques Lightweight branching Use conflict to bias variables to branch on, associate score with each variable Prefer recent bias by regularly decreasing variable scores [e.g. MMZZM01] Clause deletion policies Not practical to keep all learned clauses Delete larger clauses [e.g. MSS96] Delete less used clauses [e.g. GN02,ES03]

100 Additional Key Techniques Lightweight branching Use conflict to bias variables to branch on, associate score with each variable Prefer recent bias by regularly decreasing variable scores [e.g. MMZZM01] Clause deletion policies Not practical to keep all learned clauses Delete larger clauses [e.g. MSS96] Delete less used clauses [e.g. GN02,ES03] Proven recent techniques: Phase saving [PD07] Luby restarts [H07] Literal blocks distance [AS09]

101 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

102 CDCL A Glimpse of the Future Clause learning techniques Clause learning is the key technique in CDCL SAT solvers Many recent papers propose improvements to the basic clause learning approach [e.g. ABHJS08]

103 CDCL A Glimpse of the Future Clause learning techniques Clause learning is the key technique in CDCL SAT solvers Many recent papers propose improvements to the basic clause learning approach [e.g. ABHJS08] Preprocessing & inprocessing Many recent papers [e.g. JHB12,HJB11] Essential in some applications

104 CDCL A Glimpse of the Future Clause learning techniques Clause learning is the key technique in CDCL SAT solvers Many recent papers propose improvements to the basic clause learning approach [e.g. ABHJS08] Preprocessing & inprocessing Many recent papers [e.g. JHB12,HJB11] Essential in some applications Application-driven improvements Incremental SAT Handling of assumptions due to MUS extractors [LB13] Changing SAT solvers to better suit applications [AS13]

105 But Also, SAT-Based Problem Solving MBD PBO Eager SMT B&B Search Planning Enumeration BMC Encodings Problem Solving with SAT Embeddings OPT SAT MC: ic3 MaxSAT Lazy SMT LCG CEGAR QBF Oracles MUS CEGAR SMT MCS Enumeration Backbones Min. Models

106 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

107 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings

108 Encoding to CNF What to encode? Boolean formulas Tseitin s encoding Plaisted&Greenbaum s encoding... Cardinality constraints Pseudo-Boolean (PB) constraints Can also translate to SAT: Constraint Satisfaction Problems (CSPs) Answer Set Programming (ASP) Model Finding... Key issues: Encoding size Arc-consistency?

109 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings Boolean Formulas Cardinality Constraints Pseudo-Boolean Constraints Encoding CSPs

110 Representing Boolean Formulas / Circuits I Satisfiability problems can be defined on Boolean circuits/formulas Can represent circuits/formulas as CNF formulas [T68,PG86] For each (simple) gate, CNF formula encodes the consistent assignments to the gate s inputs and output Given z = OP(x, y), represent in CNF z OP(x, y) CNF formula for the circuit is the conjunction of CNF formula for each gate F c = (a c) (b c) (ā b c) a b NAND c F t = ( r t) ( s t) (r s t) r s OR t

111 Representing Boolean Formulas / Circuits II a b NAND ab c c a b c F c (a,b,c) F c = (a c) (b c) (ā b c)

112 Representing Boolean Formulas / Circuits III CNF formula for the circuit is the conjunction of the CNF formula for each gate Can specify objectives with additional clauses a b NAND x c AND y d OR z = 1? F = (a x) (b x) (ā b x) (x ȳ) (c ȳ) ( x c y) (ȳ z) ( d z) (y d z) (z)

113 Representing Boolean Formulas / Circuits III CNF formula for the circuit is the conjunction of the CNF formula for each gate Can specify objectives with additional clauses a b NAND x c AND y d OR z = 1? F = (a x) (b x) (ā b x) (x ȳ) (c ȳ) ( x c y) (ȳ z) ( d z) (y d z) (z) Note: z = d (c ( (a b))) No distinction between Boolean circuits and formulas

114 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings Boolean Formulas Cardinality Constraints Pseudo-Boolean Constraints Encoding CSPs

115 Cardinality Constraints How to handle cardinality constraints, n j=1 x j k? How to handle AtMost1 constraints, n j=1 x j 1? General form: n j=1 x j k, with {<,, =,, >} Solution #1: Use native PB solver, e.g. BSOLO, PBS, Galena, Pueblo, etc. Difficult to keep up with advances in SAT technology For SAT/UNSAT, best solvers already encode to CNF E.g. Minisat+, WBO, etc.

116 Cardinality Constraints How to handle cardinality constraints, n j=1 x j k? How to handle AtMost1 constraints, n j=1 x j 1? General form: n j=1 x j k, with {<,, =,, >} Solution #1: Use native PB solver, e.g. BSOLO, PBS, Galena, Pueblo, etc. Difficult to keep up with advances in SAT technology For SAT/UNSAT, best solvers already encode to CNF E.g. Minisat+, WBO, etc. Solution #2: Encode cardinality constraints to CNF Use SAT solver

117 Equals1, AtLeast1 & AtMost1 Constraints n j=1 x j = 1: encode with ( n j=1 x j 1) ( n j=1 x j 1) n j=1 x j 1: encode with (x 1 x 2... x n ) n j=1 x j 1 encode with: Pairwise encoding Clauses: O(n 2 ) ; No auxiliary variables Sequential counter [S05] Clauses: O(n) ; Auxiliary variables: O(n) Bitwise encoding [P07,FP01]... Clauses: O(n log n) ; Auxiliary variables: O(log n)

118 Bitwise Encoding Encode n j=1 x j 1 with bitwise encoding: An example: x 1 + x 2 + x 3 1

119 Bitwise Encoding Encode n j=1 x j 1 with bitwise encoding: Auxiliary variables v 0,..., v r 1 ; r = log n (with n > 1) If x j = 1, then v 0... v r 1 = b 0... b r 1, the binary encoding of j 1 x j (v 0 = b 0)... (v r 1 = b r 1) ( x j (v 0 = b 0)... (v r 1 = b r 1)) An example: x 1 + x 2 + x 3 1 j 1 v 1 v 0 x x x

120 Bitwise Encoding Encode n j=1 x j 1 with bitwise encoding: Auxiliary variables v 0,..., v r 1 ; r = log n (with n > 1) If x j = 1, then v 0... v r 1 = b 0... b r 1, the binary encoding of j 1 x j (v 0 = b 0)... (v r 1 = b r 1) ( x j (v 0 = b 0)... (v r 1 = b r 1)) Clauses ( x j (v i b i )) = ( x j l i ), i = 0,..., r 1, where l i v i, if b i = 1 l i v i, otherwise An example: x 1 + x 2 + x 3 1 j 1 v 1 v 0 x x x ( x 1 v 1 ) ( x 1 v 0 ) ( x 2 v 1 ) ( x 2 v 0 ) ( x 3 v 1 ) ( x 3 v 0 )

121 Bitwise Encoding Encode n j=1 x j 1 with bitwise encoding: Auxiliary variables v 0,..., v r 1 ; r = log n (with n > 1) If x j = 1, then v 0... v r 1 = b 0... b r 1, the binary encoding of j 1 x j (v 0 = b 0)... (v r 1 = b r 1) ( x j (v 0 = b 0)... (v r 1 = b r 1)) Clauses ( x j (v i b i )) = ( x j l i ), i = 0,..., r 1, where l i v i, if b i = 1 l i v i, otherwise If x j = 1, assignment to v i variables must encode j 1 All other x variables must take value 0 If all x j = 0, any assignment to v i variables is consistent O(n log n) clauses ; O(log n) auxiliary variables An example: x 1 + x 2 + x 3 1 j 1 v 1 v 0 x x x ( x 1 v 1 ) ( x 1 v 0 ) ( x 2 v 1 ) ( x 2 v 0 ) ( x 3 v 1 ) ( x 3 v 0 )

122 General Cardinality Constraints General form: n j=1 x j k (or n j=1 x j k) Sequential counters Clauses/Variables: O(n k) BDDs Clauses/Variables: O(n k) Sorting networks [S05] [ES06] [ES06] Clauses/Variables: O(n log 2 n) Cardinality Networks: [ANORC09,ANORC11a] Clauses/Variables: O(n log 2 k) Pairwise Cardinality Networks: [CZI10]...

123 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings Boolean Formulas Cardinality Constraints Pseudo-Boolean Constraints Encoding CSPs

124 Pseudo-Boolean Constraints General form: n j=1 a j x j b Operational encoding [W98] Clauses/Variables: O(n) Does not guarantee arc-consistency BDDs [ES06] Worst-case exponential number of clauses Polynomial watchdog encoding [BBR09] Let ν(n) = log(n) log(a max) Clauses: O(n 3 ν(n)) ; Aux variables: O(n 2 ν(n)) Improved polynomial watchdog encoding [ANORC11b] Clauses & aux variables: O(n 3 log(a max))...

125 Encoding PB Constraints with BDDs I Encode 3x 1 + 3x 2 + x 3 3 Construct BDD E.g. analyze variables by decreasing coefficients Extract ITE-based circuit from BDD x x x x x

126 Encoding PB Constraints with BDDs I Encode 3x 1 + 3x 2 + x 3 3 Construct BDD E.g. analyze variables by decreasing coefficients Extract ITE-based circuit from BDD x x x x x x 2 s x 3 s s x 1 z ITE 0 1 ITE 0 1 a b 0 a 1 z ITE 1 0 b s x 2 s x 3 ITE 0 1 a b a b 0 1 z z z ITE 0 1 a b 1 1 0

127 Encoding PB Constraints with BDDs II Encode 3x 1 + 3x 2 + x 3 3 Extract ITE-based circuit from BDD Simplify and create final circuit: x 1 1 z s ITE 1 0 a b NOR NAND x 2 x 3 x 3 x 2

128 More on PB Constraints How about n j=1 a j x j = k?

129 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint)

130 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) Cannot find all consequences in polynomial time [S03,FS02,T03]

131 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) Cannot find all consequences in polynomial time [S03,FS02,T03] Example: 4x 1 + 4x 2 + 3x 3 + 2x 4 = 5

132 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) Cannot find all consequences in polynomial time [S03,FS02,T03] Example: 4x 1 + 4x 2 + 3x 3 + 2x 4 = 5 Replace by (4x 1 + 4x 2 + 3x 3 + 2x 4 5) (4x 1 + 4x 2 + 3x 3 + 2x 4 5)

133 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) Cannot find all consequences in polynomial time [S03,FS02,T03] Example: 4x 1 + 4x 2 + 3x 3 + 2x 4 = 5 Replace by (4x 1 + 4x 2 + 3x 3 + 2x 4 5) (4x 1 + 4x 2 + 3x 3 + 2x 4 5) Let x 3 = 0

134 More on PB Constraints How about n j=1 a j x j = k? Can use ( n j=1 a j x j k) ( n j=1 a j x j k), but... n j=1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) Cannot find all consequences in polynomial time [S03,FS02,T03] Example: 4x 1 + 4x 2 + 3x 3 + 2x 4 = 5 Replace by (4x 1 + 4x 2 + 3x 3 + 2x 4 5) (4x 1 + 4x 2 + 3x 3 + 2x 4 5) Let x 3 = 0 Either constraint can still be satisfied, but not both

135 Outline Basic Definitions DPLL Solvers CDCL Solvers What Next in CDCL Solvers? CNF Encodings Boolean Formulas Cardinality Constraints Pseudo-Boolean Constraints Encoding CSPs

136 CSP Constraints Many possible encodings: Direct encoding [dk89,gj96,w00] Log encoding Support encoding [W00] [K90,G02] Log-Support encoding [G07] Order encoding for finite linear CSPs [TTKB09]...

137 Direct Encoding for CSP w/ Binary Constraints Variable x i with domain D i, with m i = D i Represent values of x i with Boolean variables x i,1,..., x i,mi Require m i k=1 x i,k = 1 Suffices to require m i k=1 x i,k 1 [W00] If the pair of assignments x i = v i x j = v j is not allowed, add binary clause ( x i,vi x j,vj )

138 Thanks!

CDCL SAT Solvers & SAT-Based Problem Solving

CDCL SAT Solvers & SAT-Based Problem Solving CDCL SAT Solvers & SAT-Based Problem Solving Joao Marques-Silva 1,2 & Mikolas Janota 2 1 University College Dublin, Ireland 2 IST/INESC-ID, Lisbon, Portugal SAT/SMT Summer School 2013 Aalto University,

More information

EECS 219C: Formal Methods Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Formal Methods Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Formal Methods Boolean Satisfiability Solving Sanjit A. Seshia EECS, UC Berkeley The Boolean Satisfiability Problem (SAT) Given: A Boolean formula F(x 1, x 2, x 3,, x n ) Can F evaluate to 1

More information

CS-E3220 Declarative Programming

CS-E3220 Declarative Programming CS-E3220 Declarative Programming Lecture 5: Premises for Modern SAT Solving Aalto University School of Science Department of Computer Science Spring 2018 Motivation The Davis-Putnam-Logemann-Loveland (DPLL)

More information

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Sanjit A. Seshia EECS, UC Berkeley Project Proposals Due Friday, February 13 on bcourses Will discuss project topics on Monday Instructions

More information

Learning Techniques for Pseudo-Boolean Solving and Optimization

Learning Techniques for Pseudo-Boolean Solving and Optimization Learning Techniques for Pseudo-Boolean Solving and Optimization José Faustino Fragoso Fremenin dos Santos September 29, 2008 Abstract The extension of conflict-based learning from Propositional Satisfiability

More information

QuteSat. A Robust Circuit-Based SAT Solver for Complex Circuit Structure. Chung-Yang (Ric) Huang National Taiwan University

QuteSat. A Robust Circuit-Based SAT Solver for Complex Circuit Structure. Chung-Yang (Ric) Huang National Taiwan University QuteSat A Robust Circuit-Based SAT Solver for Complex Circuit Structure Chung-Yang (Ric) Huang National Taiwan University To appear: DATE 27 2/1/27 Fact Sheet (Background) Boolean Satisfiability (SAT)

More information

Normal Forms for Boolean Expressions

Normal Forms for Boolean Expressions Normal Forms for Boolean Expressions A NORMAL FORM defines a class expressions s.t. a. Satisfy certain structural properties b. Are usually universal: able to express every boolean function 1. Disjunctive

More information

Practical SAT Solving

Practical SAT Solving Practical SAT Solving Lecture 5 Carsten Sinz, Tomáš Balyo May 23, 2016 INSTITUTE FOR THEORETICAL COMPUTER SCIENCE KIT University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz

More information

Towards More Effective Unsatisfiability-Based Maximum Satisfiability Algorithms

Towards More Effective Unsatisfiability-Based Maximum Satisfiability Algorithms Towards More Effective Unsatisfiability-Based Maximum Satisfiability Algorithms Joao Marques-Silva and Vasco Manquinho School of Electronics and Computer Science, University of Southampton, UK IST/INESC-ID,

More information

Circuit versus CNF Reasoning for Equivalence Checking

Circuit versus CNF Reasoning for Equivalence Checking Circuit versus CNF Reasoning for Equivalence Checking Armin Biere Institute for Formal Models and Verification Johannes Kepler University Linz, Austria Equivalence Checking Workshop 25 Madonna di Campiglio,

More information

SAT Solvers. Ranjit Jhala, UC San Diego. April 9, 2013

SAT Solvers. Ranjit Jhala, UC San Diego. April 9, 2013 SAT Solvers Ranjit Jhala, UC San Diego April 9, 2013 Decision Procedures We will look very closely at the following 1. Propositional Logic 2. Theory of Equality 3. Theory of Uninterpreted Functions 4.

More information

Zchaff: A fast SAT solver. Zchaff: A fast SAT solver

Zchaff: A fast SAT solver. Zchaff: A fast SAT solver * We d like to build a complete decision procedure for SAT which is efficient. Generalized D-P-L algorithm: while (true) { if (! decide( )) /* no unassigned variables */ return (sat) while (! bcp ( ))

More information

New Encodings of Pseudo-Boolean Constraints into CNF

New Encodings of Pseudo-Boolean Constraints into CNF New Encodings of Pseudo-Boolean Constraints into CNF Olivier Bailleux, Yacine Boufkhad, Olivier Roussel olivier.bailleux@u-bourgogne.fr boufkhad@liafa.jussieu.fr roussel@cril.univ-artois.fr New Encodings

More information

Efficient satisfiability solver

Efficient satisfiability solver Graduate Theses and Dissertations Iowa State University Capstones, Theses and Dissertations 2014 Efficient satisfiability solver Chuan Jiang Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/etd

More information

Modern SAT Solvers. Part B. Vienna Winter School on Verification. 9 February TU Vienna, Austria

Modern SAT Solvers. Part B. Vienna Winter School on Verification. 9 February TU Vienna, Austria Modern SAT Solvers Part B Vienna Winter School on Verification 9 February 2012 TU Vienna, Austria Armin Biere Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria http://fmv.jku.at

More information

ESE535: Electronic Design Automation CNF. Today CNF. 3-SAT Universal. Problem (A+B+/C)*(/B+D)*(C+/A+/E)

ESE535: Electronic Design Automation CNF. Today CNF. 3-SAT Universal. Problem (A+B+/C)*(/B+D)*(C+/A+/E) ESE535: Electronic Design Automation CNF Day 21: April 21, 2008 Modern SAT Solvers ({z}chaff, GRASP,miniSAT) Conjunctive Normal Form Logical AND of a set of clauses Product of sums Clauses: logical OR

More information

2 Decision Procedures for Propositional Logic

2 Decision Procedures for Propositional Logic 2 Decision Procedures for Propositional Logic 2.1 Propositional Logic We assume that the reader is familiar with propositional logic, and with the complexity classes NP and NP-complete. The syntax of formulas

More information

Constraint Reasoning Part 2: SAT, PB, WCSP

Constraint Reasoning Part 2: SAT, PB, WCSP Constraint Reasoning Part 2: SAT, PB, WCSP Olivier ROUSSEL roussel@cril.univ-artois.fr CRIL-CNRS UMR 8188 Université d Artois Lens, France Tutorial ECAI 2012 Montpellier August, 22 2012 Constraint Reasoning

More information

SAT. ReRiSE 14 Winter School Reasoning for Rigorous System Enineering. Johannes Kepler University Linz, Austria

SAT. ReRiSE 14 Winter School Reasoning for Rigorous System Enineering.   Johannes Kepler University Linz, Austria SAT ReRiSE 14 Winter School Reasoning for Rigorous System Enineering http://fmv.jku.at/rerise14 Johannes Kepler University Linz, Austria Armin Biere Institute for Formal Models and Verification http://fmv.jku.at

More information

Lingeling Essentials POS 2014

Lingeling Essentials POS 2014 Lingeling Essentials Design and Implementation Aspects Armin Biere Johannes Kepler University Linz, Austria POS 2014 5th Workshop on Pragmatics of SAT 2014 SAT 2014 / FLoC 2014 Vienna Summer of Logic Vienna,

More information

SAT Solver and its Application to Combinatorial Problems

SAT Solver and its Application to Combinatorial Problems SAT Solver and its Application to Combinatorial Problems Naoyuki Tamura Kobe University 2014 December 14th, 2014 1 / 46 Contents 1 SAT Problems and SAT Solvers SAT Problems SAT Solvers Don Knuth s TAOCP

More information

DPLL(T ):Fast Decision Procedures

DPLL(T ):Fast Decision Procedures DPLL(T ):Fast Decision Procedures Harald Ganzinger George Hagen Robert Nieuwenhuis Cesare Tinelli Albert Oliveras MPI, Saarburcken The University of Iowa UPC, Barcelona Computer Aided-Verification (CAV)

More information

Heuristic Backtracking Algorithms for SAT

Heuristic Backtracking Algorithms for SAT Heuristic Backtracking Algorithms for SAT A. Bhalla, I. Lynce, J.T. de Sousa and J. Marques-Silva IST/INESC-ID, Technical University of Lisbon, Portugal fateet,ines,jts,jpmsg@sat.inesc.pt Abstract In recent

More information

Boolean Satisfiability Solving Part II: DLL-based Solvers. Announcements

Boolean Satisfiability Solving Part II: DLL-based Solvers. Announcements EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Part II: DLL-based Solvers Sanjit A. Seshia EECS, UC Berkeley With thanks to Lintao Zhang (MSR) Announcements Paper readings will be

More information

Boolean Satisfiability: From Theoretical Hardness to Practical Success. Sharad Malik Princeton University

Boolean Satisfiability: From Theoretical Hardness to Practical Success. Sharad Malik Princeton University Boolean Satisfiability: From Theoretical Hardness to Practical Success Sharad Malik Princeton University SAT in a Nutshell Given a Boolean formula, find a variable assignment such that the formula evaluates

More information

SAT/SMT Solvers and Applications

SAT/SMT Solvers and Applications SAT/SMT Solvers and Applications University of Waterloo Winter 2013 Today s Lecture Lessons learnt so far Implementation-related attacks (control-hazard, malware,...) Program analysis techniques can detect

More information

Deductive Methods, Bounded Model Checking

Deductive Methods, Bounded Model Checking Deductive Methods, Bounded Model Checking http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Deductive methods Pavel Parízek Deductive Methods, Bounded

More information

Study of efficient techniques for implementing a Pseudo-Boolean solver based on cutting planes

Study of efficient techniques for implementing a Pseudo-Boolean solver based on cutting planes DEGREE PROJECT IN COMPUTER ENGINEERING, FIRST CYCLE, 15 CREDITS STOCKHOLM, SWEDEN 2017 Study of efficient techniques for implementing a Pseudo-Boolean solver based on cutting planes ALEIX SACREST GASCON

More information

Decision Procedures and SMT

Decision Procedures and SMT Decision Procedures and SMT #342.255 http://fmv.jku.at/kv WS 2016/2017 Johannes Kepler University Linz, Austria Prof. Dr. Armin Biere Institute for Formal Models and Verification http://fmv.jku.at Overview

More information

Chapter 2 PRELIMINARIES

Chapter 2 PRELIMINARIES 8 Chapter 2 PRELIMINARIES Throughout this thesis, we work with propositional or Boolean variables, that is, variables that take value in the set {true, false}. A propositional formula F representing a

More information

Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation

Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation Ruben Martins, Inês Lynce, and Vasco Manquinho IST/INESC-ID, Technical University of Lisbon, Portugal {ruben,ines,vmm}@sat.inesc-id.pt

More information

Learning Techniques for Pseudo-Boolean Solving

Learning Techniques for Pseudo-Boolean Solving José Santos IST/UTL, INESC-ID Lisbon, Portugal jffs@sat.inesc-id.pt Vasco Manquinho IST/UTL, INESC-ID Lisbon, Portugal vmm@sat.inesc-id.pt Abstract The extension of conflict-based learning from Propositional

More information

Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation

Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation Preprocessing in Pseudo-Boolean Optimization: An Experimental Evaluation Ruben Martins Inês Lynce Vasco Manquinho IST/INESC-ID, Technical University of Lisbon, Portugal 20/09/2009 Lisbon, Portugal Motivation

More information

Practical SAT Solving

Practical SAT Solving Practical SAT Solving Lecture 5 Carsten Sinz, Tomáš Balyo May 22, 2018 INSTITUTE FOR THEORETICAL COMPUTER SCIENCE KIT University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz

More information

EXTENDING SAT SOLVER WITH PARITY CONSTRAINTS

EXTENDING SAT SOLVER WITH PARITY CONSTRAINTS TKK Reports in Information and Computer Science Espoo 2010 TKK-ICS-R32 EXTENDING SAT SOLVER WITH PARITY CONSTRAINTS Tero Laitinen TKK Reports in Information and Computer Science Espoo 2010 TKK-ICS-R32

More information

Satisfiability (SAT) Applications. Extensions/Related Problems. An Aside: Example Proof by Machine. Annual Competitions 12/3/2008

Satisfiability (SAT) Applications. Extensions/Related Problems. An Aside: Example Proof by Machine. Annual Competitions 12/3/2008 15 53:Algorithms in the Real World Satisfiability Solvers (Lectures 1 & 2) 1 Satisfiability (SAT) The original NP Complete Problem. Input: Variables V = {x 1, x 2,, x n }, Boolean Formula Φ (typically

More information

CS-E3200 Discrete Models and Search

CS-E3200 Discrete Models and Search Shahab Tasharrofi Department of Information and Computer Science, Aalto University Lecture 7: Complete and local search methods for SAT Outline Algorithms for solving Boolean satisfiability problems Complete

More information

Symbolic Methods. The finite-state case. Martin Fränzle. Carl von Ossietzky Universität FK II, Dpt. Informatik Abt.

Symbolic Methods. The finite-state case. Martin Fränzle. Carl von Ossietzky Universität FK II, Dpt. Informatik Abt. Symbolic Methods The finite-state case Part I Martin Fränzle Carl von Ossietzky Universität FK II, Dpt. Informatik Abt. Hybride Systeme 02917: Symbolic Methods p.1/34 What you ll learn How to use and manipulate

More information

Combining forces to solve Combinatorial Problems, a preliminary approach

Combining forces to solve Combinatorial Problems, a preliminary approach Combining forces to solve Combinatorial Problems, a preliminary approach Mohamed Siala, Emmanuel Hebrard, and Christian Artigues Tarbes, France Mohamed SIALA April 2013 EDSYS Congress 1 / 19 Outline Context

More information

Improving Glucose for Incremental SAT Solving with Assumptions: Application to MUS Extraction. Gilles Audemard Jean-Marie Lagniez and Laurent Simon

Improving Glucose for Incremental SAT Solving with Assumptions: Application to MUS Extraction. Gilles Audemard Jean-Marie Lagniez and Laurent Simon Improving Glucose for Incremental SAT Solving with Assumptions: Application to MUS Extraction Gilles Audemard Jean-Marie Lagniez and Laurent Simon SAT 2013 Glucose and MUS SAT 2013 1 / 17 Introduction

More information

Solving Constraint Satisfaction Problems by a SAT Solver

Solving Constraint Satisfaction Problems by a SAT Solver SAT Encodings Sugar Examples Demo Summary Solving Constraint Satisfaction Problems by a SAT Solver Kobe University, JAPAN CICLOPS-WLPE-2010 SAT Encodings Sugar Examples Demo Summary Contents 3 A SAT-based

More information

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems Tuomas Sandholm Carnegie Mellon University Computer Science Department [Read Chapter 6 of Russell & Norvig] Constraint satisfaction problems (CSPs) Standard search problem:

More information

Boolean Representations and Combinatorial Equivalence

Boolean Representations and Combinatorial Equivalence Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving

More information

Seminar decision procedures: Certification of SAT and unsat proofs

Seminar decision procedures: Certification of SAT and unsat proofs Seminar decision procedures: Certification of SAT and unsat proofs Wolfgang Nicka Technische Universität München June 14, 2016 Boolean satisfiability problem Term The boolean satisfiability problem (SAT)

More information

Combinational Equivalence Checking

Combinational Equivalence Checking Combinational Equivalence Checking Virendra Singh Associate Professor Computer Architecture and Dependable Systems Lab. Dept. of Electrical Engineering Indian Institute of Technology Bombay viren@ee.iitb.ac.in

More information

SAT Solver. CS 680 Formal Methods Jeremy Johnson

SAT Solver. CS 680 Formal Methods Jeremy Johnson SAT Solver CS 680 Formal Methods Jeremy Johnson Disjunctive Normal Form A Boolean expression is a Boolean function Any Boolean function can be written as a Boolean expression s x 0 x 1 f Disjunctive normal

More information

Improving Unsatisfiability-based Algorithms for Boolean Optimization

Improving Unsatisfiability-based Algorithms for Boolean Optimization Improving Unsatisfiability-based Algorithms for Boolean Optimization Vasco Manquinho, Ruben Martins, and Inês Lynce IST/INESC-ID, Technical University of Lisbon, Portugal {vmm,ruben,ines}@sat.inesc-id.pt

More information

Solving 3-SAT. Radboud University Nijmegen. Bachelor Thesis. Supervisors: Henk Barendregt Alexandra Silva. Author: Peter Maandag s

Solving 3-SAT. Radboud University Nijmegen. Bachelor Thesis. Supervisors: Henk Barendregt Alexandra Silva. Author: Peter Maandag s Solving 3-SAT Radboud University Nijmegen Bachelor Thesis Author: Peter Maandag s3047121 Supervisors: Henk Barendregt Alexandra Silva July 2, 2012 Contents 1 Introduction 2 1.1 Problem context............................

More information

arxiv: v1 [cs.lo] 17 Oct 2013

arxiv: v1 [cs.lo] 17 Oct 2013 Effectiveness of pre- and inprocessing for CDCL-based SAT solving Andreas Wotzlaw, Alexander van der Grinten, and Ewald Speckenmeyer Institut für Informatik, Universität zu Köln, Pohligstr. 1, D-50969

More information

SAT Solvers: A Condensed History. Sharad Malik Princeton University COS 598d 3/1/2010

SAT Solvers: A Condensed History. Sharad Malik Princeton University COS 598d 3/1/2010 SAT Solvers: A Condensed History Sharad Malik Princeton University COS 598d 3/1/2010 Where are we today? Intractability of the problem no longer daunting Can regularly handle practical instances with millions

More information

Satisfiability. Michail G. Lagoudakis. Department of Computer Science Duke University Durham, NC SATISFIABILITY

Satisfiability. Michail G. Lagoudakis. Department of Computer Science Duke University Durham, NC SATISFIABILITY Satisfiability Michail G. Lagoudakis Department of Computer Science Duke University Durham, NC 27708 COMPSCI 271 - Spring 2001 DUKE UNIVERSITY Page 1 Why SAT? Historical Reasons The first NP-COMPLETE problem

More information

Course Summary! What have we learned and what are we expected to know?

Course Summary! What have we learned and what are we expected to know? Course Summary! What have we learned and what are we expected to know? Overview! Introduction Modelling in MiniZinc Finite Domain Constraint Solving Search Linear Programming and Network Flow Mixed Integer

More information

MajorSat: A SAT Solver to Majority Logic

MajorSat: A SAT Solver to Majority Logic MajorSat: A SAT Solver to Majority Logic Speaker : Ching-Yi Huang Authors: Yu-Min Chou, Yung-Chih Chen *, Chun-Yao Wang, Ching-Yi Huang National Tsing Hua University, Taiwan * Yuan Ze University, Taiwan

More information

Adding New Bi-Asserting Clauses for Faster Search in Modern SAT Solvers

Adding New Bi-Asserting Clauses for Faster Search in Modern SAT Solvers Proceedings of the Tenth Symposium on Abstraction, Reformulation, and Approximation Adding New Bi-Asserting Clauses for Faster Search in Modern SAT Solvers Saïd Jabbour 1 and Jerry Lonlac 1,2 and Lakhdar

More information

Nina Narodytska Samsung Research/CMU

Nina Narodytska Samsung Research/CMU Recent trends in MaxSAT solving Nina Narodytska Samsung Research/CMU Outline 1. Boolean satisfiability 2. Boolean (un)satisfiability (MaxSAT) 3. Counting (un)satisfiability 2 Outline Boolean satisfiability

More information

A Scalable Algorithm for Minimal Unsatisfiable Core Extraction

A Scalable Algorithm for Minimal Unsatisfiable Core Extraction A Scalable Algorithm for Minimal Unsatisfiable Core Extraction Nachum Dershowitz 1, Ziyad Hanna 2, and Alexander Nadel 1,2 1 School of Computer Science, Tel Aviv University, Ramat Aviv, Israel {nachumd,

More information

PROPOSITIONAL LOGIC (2)

PROPOSITIONAL LOGIC (2) PROPOSITIONAL LOGIC (2) based on Huth & Ruan Logic in Computer Science: Modelling and Reasoning about Systems Cambridge University Press, 2004 Russell & Norvig Artificial Intelligence: A Modern Approach

More information

Practical SAT algorithms

Practical SAT algorithms Practical SAT algorithms Computer Science Department University of Wales Swansea methods Complexity of Constraints Dagstuhl, October 3, 2006 SAT algorithms for boolean : and DPLL Introduction SAT algorithms

More information

Exploring A Two-Solver Architecture for Clause Learning CSP Solvers. Ozan Erdem

Exploring A Two-Solver Architecture for Clause Learning CSP Solvers. Ozan Erdem Exploring A Two-Solver Architecture for Clause Learning CSP Solvers by Ozan Erdem A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of Computer

More information

Boolean Functions (Formulas) and Propositional Logic

Boolean Functions (Formulas) and Propositional Logic EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Part I: Basics Sanjit A. Seshia EECS, UC Berkeley Boolean Functions (Formulas) and Propositional Logic Variables: x 1, x 2, x 3,, x

More information

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2013 Soleymani Course material: Artificial Intelligence: A Modern Approach, 3 rd Edition,

More information

Solving Constraint Satisfaction Problems by a SAT Solver

Solving Constraint Satisfaction Problems by a SAT Solver SAT Encodings Systems Summary Solving Constraint Satisfaction Problems by a SAT Solver Kobe University, JAPAN Osaka Workshop for Verification and Validation Feb 28, 2011 at AIST Amagasaki SAT Encodings

More information

SAT Solver Heuristics

SAT Solver Heuristics SAT Solver Heuristics SAT-solver History Started with David-Putnam-Logemann-Loveland (DPLL) (1962) Able to solve 10-15 variable problems Satz (Chu Min Li, 1995) Able to solve some 1000 variable problems

More information

CSP- and SAT-based Inference Techniques Applied to Gnomine

CSP- and SAT-based Inference Techniques Applied to Gnomine CSP- and SAT-based Inference Techniques Applied to Gnomine Bachelor Thesis Faculty of Science, University of Basel Department of Computer Science Artificial Intelligence ai.cs.unibas.ch Examiner: Prof.

More information

Memory Hierarchy Utilization of a SAT Solver

Memory Hierarchy Utilization of a SAT Solver Belegarbeit Memory Hierarchy Utilization of a SAT Solver Norbert Manthey March 31, 2010 Technische Universität Dresden Fakultät Informatik Betreuende Hochschullehrer: Prof. Dr. rer. nat. Hermann Härtig,

More information

Splatz SAT Solver POS 16

Splatz SAT Solver POS 16 Splatz SAT Solver Armin Biere Johannes Kepler Universität Linz Pragmatics of SAT 2016 POS 16 Université de Bordeaux Bordeaux, France Monday, 4th July, 2016 Motivation 1 What do you really want to have

More information

Solving Constraint Satisfaction Problems with SAT Technology

Solving Constraint Satisfaction Problems with SAT Technology SAT Encodings Sugar Nonogram OSS Summary Solving Constraint Satisfaction Problems with SAT Technology Kobe University, JAPAN SAT Encodings Sugar Nonogram OSS Summary Contents A SAT-based CSP Solver 1 SAT

More information

Combinational Equivalence Checking Using Incremental SAT Solving, Output Ordering, and Resets

Combinational Equivalence Checking Using Incremental SAT Solving, Output Ordering, and Resets ASP-DAC 2007 Yokohama Combinational Equivalence Checking Using Incremental SAT Solving, Output ing, and Resets Stefan Disch Christoph Scholl Outline Motivation Preliminaries Our Approach Output ing Heuristics

More information

Satisfiability Solvers

Satisfiability Solvers Satisfiability Solvers Part 1: Systematic Solvers 600.325/425 Declarative Methods - J. Eisner 1 Vars SAT solving has made some progress 100000 10000 1000 100 10 1 1960 1970 1980 1990 2000 2010 Year slide

More information

Unrestricted Nogood Recording in CSP search

Unrestricted Nogood Recording in CSP search Unrestricted Nogood Recording in CSP search George Katsirelos and Fahiem Bacchus Department of Computer Science, University Of Toronto, Toronto, Ontario, Canada [gkatsi,fbacchus]@cs.toronto.edu Abstract.

More information

A Branch and Bound Algorithm for Extracting Smallest Minimal Unsatisfiable Subformulas

A Branch and Bound Algorithm for Extracting Smallest Minimal Unsatisfiable Subformulas A Branch and Bound Algorithm for Extracting Smallest Minimal Unsatisfiable Subformulas Mark Liffiton 1 Maher Mneimneh 1 Inês Lynce 2 Zaher Andraus 1 João Marques-Silva 3 Karem Sakallah 1 1 University of

More information

DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs

DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler, Marijn J. H. Heule, and Warren A. Hunt, Jr. The University of Texas at Austin Abstract. The DRAT-trim tool is

More information

DM841 DISCRETE OPTIMIZATION. Part 2 Heuristics. Satisfiability. Marco Chiarandini

DM841 DISCRETE OPTIMIZATION. Part 2 Heuristics. Satisfiability. Marco Chiarandini DM841 DISCRETE OPTIMIZATION Part 2 Heuristics Satisfiability Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Outline 1. Mathematical Programming Constraint

More information

Parallel Search for Boolean Optimization

Parallel Search for Boolean Optimization Parallel Search for Boolean Optimization Ruben Martins, Vasco Manquinho, and Inês Lynce IST/INESC-ID, Technical University of Lisbon, Portugal {ruben,vmm,ines}@sat.inesc-id.pt Abstract. The predominance

More information

Example: Map coloring

Example: Map coloring Today s s lecture Local Search Lecture 7: Search - 6 Heuristic Repair CSP and 3-SAT Solving CSPs using Systematic Search. Victor Lesser CMPSCI 683 Fall 2004 The relationship between problem structure and

More information

On Applying Cutting Planes in DLL-Based Algorithms for Pseudo-Boolean Optimization

On Applying Cutting Planes in DLL-Based Algorithms for Pseudo-Boolean Optimization On Applying Cutting Planes in DLL-Based Algorithms for Pseudo-Boolean Optimization Vasco Manquinho and João Marques-Silva Technical University of Lisbon, IST/INESC-ID, Lisbon, Portugal {vmm, jpms}@sat.inesc-id.pt

More information

ABC basics (compilation from different articles)

ABC basics (compilation from different articles) 1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node

More information

HySAT. what you can use it for how it works example from application domain final remarks. Christian Herde /12

HySAT. what you can use it for how it works example from application domain final remarks. Christian Herde /12 CP2007: Presentation of recent CP solvers HySAT what you can use it for how it works example from application domain final remarks Christian Herde 25.09.2007 /2 What you can use it for Satisfiability checker

More information

Decision Procedures. An Algorithmic Point of View. Decision Procedures for Propositional Logic. D. Kroening O. Strichman.

Decision Procedures. An Algorithmic Point of View. Decision Procedures for Propositional Logic. D. Kroening O. Strichman. Decision Procedures An Algorithmic Point of View Decision Procedures for Propositional Logic D. Kroening O. Strichman ETH/Technion Version 1.0, 2007 Part I Decision Procedures for Propositional Logic Outline

More information

CAV Verification Mentoring Workshop 2017 SMT Solving

CAV Verification Mentoring Workshop 2017 SMT Solving CAV Verification Mentoring Workshop 2017 SMT Solving Alberto Griggio Fondazione Bruno Kessler Trento, Italy The SMT problem Satisfiability Modulo Theories Given a (quantifier-free) FOL formula and a (decidable)

More information

Full CNF Encoding: The Counting Constraints Case

Full CNF Encoding: The Counting Constraints Case Full CNF Encoding: The Counting Constraints Case Olivier Bailleux 1 and Yacine Boufkhad 2 1 LERSIA, Université de Bourgogne Avenue Alain Savary, BP 47870 21078 Dijon Cedex olivier.bailleux@u-bourgogne.fr

More information

Checking Satisfiability of a Conjunction of BDDs

Checking Satisfiability of a Conjunction of BDDs 48. Checking Satisfiability of a Conjunction of BDDs Robert Damiano Advanced Technology Group Synopsys, Inc. Hillsboro, OR robertd@synopsys.com James Kukula Advanced Technology Group Synopsys, Inc. Hillsboro,

More information

Planning as Search. Progression. Partial-Order causal link: UCPOP. Node. World State. Partial Plans World States. Regress Action.

Planning as Search. Progression. Partial-Order causal link: UCPOP. Node. World State. Partial Plans World States. Regress Action. Planning as Search State Space Plan Space Algorihtm Progression Regression Partial-Order causal link: UCPOP Node World State Set of Partial Plans World States Edge Apply Action If prec satisfied, Add adds,

More information

Validating SAT Solvers Using an Independent Resolution-Based Checker: Practical Implementations and Other Applications

Validating SAT Solvers Using an Independent Resolution-Based Checker: Practical Implementations and Other Applications Validating SAT Solvers Using an Independent Resolution-Based Checker: Practical Implementations and Other Applications Lintao Zhang Department of Electrical Engineering Princeton University lintaoz@ee.princeton.edu

More information

Chaff: Engineering an Efficient SAT Solver

Chaff: Engineering an Efficient SAT Solver Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Slides: Tamir Heyman Some are from Malik s presentation Last

More information

Formally Certified Satisfiability Solving

Formally Certified Satisfiability Solving SAT/SMT Proof Checking Verifying SAT Solver Code Future Work Computer Science, The University of Iowa, USA April 23, 2012 Seoul National University SAT/SMT Proof Checking Verifying SAT Solver Code Future

More information

Better test results for the graph coloring and the Pigeonhole Problems using DPLL with k-literal representation

Better test results for the graph coloring and the Pigeonhole Problems using DPLL with k-literal representation Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 127 135. Better test results for the graph coloring and the Pigeonhole Problems using

More information

ABT with Clause Learning for Distributed SAT

ABT with Clause Learning for Distributed SAT ABT with Clause Learning for Distributed SAT Jesús Giráldez-Cru, Pedro Meseguer IIIA - CSIC, Universitat Autònoma de Barcelona, 08193 Bellaterra, Spain {jgiraldez,pedro}@iiia.csic.es Abstract. Transforming

More information

Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints

Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints Mark H. Liffiton and Karem A. Sakallah Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor

More information

On Computing Minimum Size Prime Implicants

On Computing Minimum Size Prime Implicants On Computing Minimum Size Prime Implicants João P. Marques Silva Cadence European Laboratories / IST-INESC Lisbon, Portugal jpms@inesc.pt Abstract In this paper we describe a new model and algorithm for

More information

Searching for Autarkies to Trim Unsatisfiable Clause Sets

Searching for Autarkies to Trim Unsatisfiable Clause Sets Searching for Autarkies to Trim Unsatisfiable Clause Sets Mark Liffiton and Karem Sakallah Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor 48109-2121 {liffiton,karem}@eecs.umich.edu

More information

SAT-Based Area Recovery in Technology Mapping

SAT-Based Area Recovery in Technology Mapping SAT-Based Area Recovery in Technology Mapping Bruno Schmitt Ecole Polytechnique Federale de Lausanne (EPFL) bruno@oschmitt.com Alan Mishchenko Robert Brayton Department of EECS, UC Berkeley {alanmi, brayton}@berkeley.edu

More information

An Introduction to SAT Solvers

An Introduction to SAT Solvers An Introduction to SAT Solvers Knowles Atchison, Jr. Fall 2012 Johns Hopkins University Computational Complexity Research Paper December 11, 2012 Abstract As the first known example of an NP Complete problem,

More information

1 Model checking and equivalence checking

1 Model checking and equivalence checking 978--52-85972- - Practical Design Verification Model checking and equivalence checking Masahiro Fujita. Introduction Owing to the advances in semiconductor technology, a large and complex system that has

More information

Translating into SAT

Translating into SAT Translating into SAT Armin Biere Johannes Kepler Universität Linz SAT 16 Industrial Day Université de Bordeaux Bordeaux, France Saturday, 9th July, 2016 SAT Example: Equivalence Checking if-then-else Chains

More information

Reasoning over Biological Networks using Maximum Satisfiability

Reasoning over Biological Networks using Maximum Satisfiability Reasoning over Biological Networks using Maximum Satisfiability João Guerra and Inês Lynce INESC-ID/Instituto Superior Técnico, Technical University of Lisbon, Portugal CP 2012, Québec João Guerra and

More information

Solving Non-clausal Formulas with DPLL search

Solving Non-clausal Formulas with DPLL search Solving Non-clausal Formulas with DPLL search Christian Thiffault 1, Fahiem Bacchus 1, and Toby Walsh 2 1 Department of Computer Science, University of Toronto, Toronto, Ontario, Canada [cat fbacchus]@cs.toronto.edu

More information

An Improved Separation of Regular Resolution from Pool Resolution and Clause Learning

An Improved Separation of Regular Resolution from Pool Resolution and Clause Learning An Improved Separation of Regular Resolution from Pool Resolution and Clause Learning Maria Luisa Bonet and Sam Buss Theory and Applications of Satisfiability Testing SAT 2012 Trento, Italy July 17, 2012

More information

versat: A Verified Modern SAT Solver

versat: A Verified Modern SAT Solver Computer Science, The University of Iowa, USA Satisfiability Problem (SAT) Is there a model for the given propositional formula? Model: assignments to the variables that makes the formula true. SAT if

More information

Master s Project Proposal: Enhancements of SAT-Solvers for Some Combinatorial NAE-SAT Problems

Master s Project Proposal: Enhancements of SAT-Solvers for Some Combinatorial NAE-SAT Problems Master s Project Proposal: Enhancements of SAT-Solvers for Some Combinatorial NAE-SAT Problems Nicolette Nicolosi Department of Computer Science Rochester Institute of Technology Rochester, NY 14623 nan2563@cs.rit.edu

More information