- 70 Views
- Uploaded on

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

Download Now**An Image/Link below is provided (as is) to download presentation**

Download Now

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:x=v@dxis assigned v2 {0,1} at decision level d

x1 = 0@1

x2

x2 = 0@2

Backtracking Search in Action1 = (x2 x3)

2 = (x1 x4)

3 = (x2 x4)

x1 = 1@1

x4 = 0@1

x2 = 0@1

x3 = 1@1

x3 = 1@2

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

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

No backtrack in this example, regardless of the decision!

x1 = 0@1

x1 = 1@1

x2

x2 = 0@2

x3 = 1@2

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

Backtracking Search in ActionAdd a clause

1 = (x2 x3)

2 = (x1 x4)

3 = (x2 x4)

4 = (x1 x2 x3)

x4 = 0@1

x2 = 0@1

x3 = 1@1

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).

x2=1@6

x5=1@6

1

4

3

6

x4=1@6

conflict

6

3

2

5

2

5

x6=1@6

x3=1@6

Implication graphs and learningCurrent truth assignment: {x9=0@1 ,x10=0@3, x11=0@3, x12=1@2, x13=1@2}

Current decision assignment: {x1=1@6}

x10=0@3

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)

x1=1@6

x9=0@1

x11=0@3

We learn the conflict clause10 : (: x1Ç x9Ç x11Ç x10)

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

x8=1@6

9

8

9

’

9

7

x7=1@6

7

x12=1@2

Implication graph, flipped assignment1 = (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)

x9=0@1

10

x10=0@3

x1=0@6

10

10

x11=0@3

Due to theconflict clause

We learn the conflict clause11 : (: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 ?

x9= 0@1

x10= 0@3

x11= 0@3

x12= 1@2

x13= 1@2

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.

x2=1@6

x5=1@6

1

4

2

3

6

1

x4=1@6

conflict

6

3

2

5

2

5

x6=1@6

x3=1@6

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)

x10=0@3

2. (x10Ç:x4Ç x11)

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

x1=1@6

x9=0@1

x11=0@3

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 = 0@3 is implied.

Conflict-driven backtracking (option #2)3

6

3

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

- 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 )

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 in, 1 jk)

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:

Download Presentation

Connecting to Server..