SAT: Propositional Satisfiability

1 / 37

# SAT: Propositional Satisfiability - PowerPoint PPT Presentation

SAT: Propositional Satisfiability. A tutorial. What is SAT?. Given a propositional formula in CNF, find an assignment to Boolean variables that makes the formula true:.  1 = (x 2  x 3 )  2 = (  x 1  x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1}.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about ' SAT: Propositional Satisfiability' - sakina

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### SAT: Propositional Satisfiability

A tutorial

What is SAT?

Given a propositional formula in CNF, find an assignment to Boolean variables that makes the formula true:

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

A = {x1=0, x2=1, x3=0, x4=1}

SATisfying assignment!

Why SAT?
• Fundamental problem from theoretical point of view
• Cook theorem, 1971: the first NP-complete problem.
• Numerous applications:
• Solving any NP problem...
• Verification: Model Checking, theorem-proving, ...
• AI: Planning, automated deduction, ...
• Design and analysis: CAD, VLSI
• Physics: statistical mechanics (models for spin-glass material)
CNF-SAT
• Conjunctive Normal Form: Conjunction of disjunction of literals. Example:(:x1Ç:x2) Æ (x2Ç x4Ç: x1) Æ ...
• Experience shows that CNF-SAT solving is faster than solving a general propositional formula.
• There exists a polynomial transformation of a general propositional formula  to CNF, with addition of || variables.
(CNF) SAT basic definitions: literals
• A literal is a variable or its negation.
• Var(l) is the variable associated with a literal l.
• A literal is called negative if it is a negated variable, and positive otherwise.
SAT basic definitions: literals
• If var(l) is unassigned, then l is unresolved.
• Otherwise, l is satisfied by an assignment  if (var(l)) = 1 and l is positive, or (var(l)) = 0 and l is negative, and unsatisfied otherwise.
SAT basic definitions: clauses
• The state of an n-literal clause C under a partial assignment  is:
• Satisfied if at least one of C’s literals is satisfied,
• Conflicting if all of C’s literals are unsatisfied,
• Unit if n-1 literals in C are unsatisfied and 1 literal is unresolved, and
• Unresolved otherwise.
SAT basic definitions: the unit clause rule
• The unit clause rule: in a unit clause the unresolved literal must be satisfied.

X

X

X

X

X

A Basic SAT algorithm

Given  in CNF: (x,y,z),(-x,y),(-y,z),(-x,-y,-z)

Decide()

Deduce()

Resolve_Conflict()

Basic Backtracking Search
• Organize the search in the form of a decision tree
• Each node corresponds to a decision
• Depth of the node in the decision tree is called the decision level
• Notation:[email protected] assigned v2 {0,1} at decision level d

x1

x2

Backtracking Search in Action

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

 x4 = [email protected]

 x2 = [email protected]

 x3 = [email protected]

 x3 = [email protected]

{(x1,1), (x2,0), (x3,1) , (x4,0)}

{(x1,0), (x2,0), (x3,1)}

No backtrack in this example, regardless of the decision!

x1

x2

 x3 = [email protected]

{(x1,0), (x2,0), (x3,1)}

Backtracking Search in Action

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

4 = (x1  x2  x3)

 x4 = [email protected]

 x2 = [email protected]

 x3 = [email protected]

conflict

A Basic SAT algorithm(DPLL-based)

Choose the next

variable and value.

Return False if all

variables are assigned

While (true)

{

if (!Decide()) return (SAT);

while (!Deduce())

if (!Resolve_Conflict()) return (UNSAT);

}

Apply unit clause rule.

Return False if reached

a conflict

Backtrack until

no conflict.

Return False if impossible

Decision heuristicsDLIS (Dynamic Largest Individual Sum)
• Maintain a counter for each literal: in how many unresolved clauses it appears ?
• Decide on the literal with the largest counter.
• Requires O(#literals) queries for each decision.

Decision heuristicsMOM (Maximum Occurrence of clauses of Minimum size).

• Let f*(x) be the # of unresolved shortest clauses containing x. Choose x that maximizes:

((f*(x) + f*(!x)) * 2k + f*(x) * f*(!x)

• k is chosen heuristically.
• The idea:
• Give preference to satisfying small clauses.
• Among those, give preference to balanced variables (e.g. f*(x) = 3, f*(!x) = 3 is better than f*(x) = 1, f*(!x) = 5).

4

[email protected]

[email protected]

1

4

3

6

[email protected]

conflict

6

3

2

5

2

5

[email protected]

[email protected]

Implication graphs and learning

Current truth assignment: {[email protected] ,[email protected], [email protected], [email protected], [email protected]}

Current decision assignment: {[email protected]}

[email protected]

1 = (x1  x2)

2 = (x1  x3  x9)

3 = (x2  x3  x4)

4 = (x4  x5  x10)

5 = (x4  x6  x11)

6 = (x5   x6)

7 = (x1  x7  x12)

8 = (x1 x8)

9 = (x7  x8   x13)

[email protected]

[email protected]

[email protected]

We learn the conflict clause10 : (: x1Ç x9Ç x11Ç x10)

and backtrack to the highest (deepest) dec. level in this clause (6).

[email protected]

[email protected]

9

8

9

’

9

7

[email protected]

7

[email protected]

Implication graph, flipped assignment

1 = (x1  x2)

2 = (x1  x3  x9)

3 = (x2  x3  x4)

4 = (x4  x5  x10)

5 = (x4  x6  x11)

6 = (x5  x6)

7 = (x1  x7  x12)

8 = (x1 x8)

9 = (x7  x8   x13)

10 : (: x1Ç x9Ç x11Ç x10)

[email protected]

10

[email protected]

[email protected]

10

10

[email protected]

Due to theconflict clause

We learn the conflict clause11 : (:x13Ç x9Ç x10Ç x11 Ç :x12)

and backtrack to the highest (deepest) dec. level in this clause (3).

Non-chronological backtracking

Which assignments caused

the conflicts ?

Backtrack to decision level 3

3

Decision level

4

5

These assignments

are sufficient for

causing a conflict.

x1

6

’

Non-chronological

backtracking

Non-chronological backtracking (option #1)
• So the rule is: backtrack to the largest decision level in the conflict clause.
• Q: What if the flipped assignment works ? A: continue to the next decision level, leaving the current one without a decision variable.
• Backtracking back to this level will lead to another conflict and further backtracking.
Non-chronological Backtracking

x1 = 0

x2 = 0

x3 = 1

x3 = 0

x4 = 0

x6 = 0

...

x5 = 0

x5 = 1

x7 = 1

x9 = 1

x9 = 0

4

[email protected]

[email protected]

1

4

2

3

6

1

[email protected]

conflict

6

3

2

5

2

5

[email protected]

[email protected]

3

More Conflict Clauses
• Def: A Conflict Clause is any clause implied by the formula
• Let L be a set of literals labeling nodes that form a cut in the implication graph, separating the conflict node from the roots.
• Claim: Çl2L:l is a Conflict Clause.

1. (x10Ç:x1Ç x9Ç x11)

[email protected]

2. (x10Ç:x4Ç x11)

3. (x10Ç:x2Ç:x3Ç x11)

[email protected]

[email protected]

[email protected]

Conflict clauses
• How many clauses should we add ?
• If not all, then which ones ?
• Shorter ones ?
• Check their influence on the backtracking level ?
• The most “influential” ?
• The answer requires two definitions:
• Asserting clauses
• Unique Implication points (UIP’s)
Asserting clauses
• Def: An Asserting Clause is a Conflict Clause with a single literal from the current decision level. Backtracking (to the right level) makes it a Unit clause.
• Modern solvers only consider Asserting Clauses.
Previous method: backtrack to highest decision level in conflict clause (and erase it).

A better method (empirically): backtrack to the second highest decision level in the clause, without erasing it. The asserted literal is implied at that level.

In our example: (x10Ç:x4Çx11)

Previously we backtracked to decision level 6.

Now we backtrack to decision level 3. x4 = [email protected] is implied.

Conflict-driven backtracking (option #2)

3

6

3

Conflict-driven Backtracking

x1 = 0

x2 = 0

x5 = 1

x3 = 1

x7 = 1

x9 = 1

x4 = 0

x3 = 1

x6 = 0

...

x5 = 0

x9 = 0

Conflict-Driven Backtracking
• So the rule is: backtrack to the second highest decision level dl, but do not erase it.
• If the conflict clause has a single literal, backtrack to decision level 0.
• Q: It seems to waste work, since it erases assignments in decision levels higher than dl, unrelated to the conflict.
• A: indeed. But allows the SAT solver to redirect itself with the new information.
Progress of a SAT solver

work invested in refutingx=1

(some of it seems wasted)

C

x=1

Refutation of x=1

C5

C2

Decision

Level

C1

C4

BCP

C3

Decision

Time

Conflict

Conflict clauses and Resolution

The Resolution is a sound inference rule:

Example:

Conflict clauses and resolution
• Consider the following example:
• Conflict clause: c5: (x2 Ç:x4Çx10)
Conflict clauses and resolution
• Conflict clause: c5: (x2 Ç:x4Çx10)
• Resolution order: x4,x5,x6,x7
• T1 = Resolve(c4,c3,x7) = (:x5Ç:x6)
• T2 = Resolve(T1, c2, x6) = (:x4Ç:x5 Ç X10 )
• T3 = Resolve(T2,c1,x5) = (x2Ç:x4Ç x10 )
Finding the conflict clause:

cl is asserting the first UIP

Applied to our example:

GSAT: stochastic SAT solving

Given a CNF formula , choose max_tries and max_flips

for i = 1 to max_tries {

T := randomly generated truth assignment

for j = 1 to max_flips {

if T satisfies  return TRUE

choose v s.t. flipping v’s value gives largest increase in

the # of satisfied clauses (break ties randomly).

T := T with v’s assignment flipped. } }

Many alternative heuristics

Numerous progressing heuristics
• Hill-climbing
• Tabu-list
• Simulated-annealing
• Random-Walk
• Min-conflicts
• ...

Formulation of problems as SAT:

k-Coloring

The K-Coloring problem:

Given an undirected graph G(V,E) and a natural number k, is there an assignment color:

Formulation of problems as SAT:

k-Coloring

xi,j= node i is assigned the ‘color’ j (1 in, 1 jk)

Constraints:

i) At least one color to each node: (x1,1  x1,2 … x1,k …)

ii) At most one color to each node:

iii) Coloring constraints: for each i,j such that (i,j) 2 E: