Using Problem Structure for Efficient Clause Learning

1 / 24

# Using Problem Structure for Efficient Clause Learning - PowerPoint PPT Presentation

Using Problem Structure for Efficient Clause Learning. Ashish Sabharwal , Paul Beame, Henry Kautz University of Washington, Seattle April 23, 2003. The SAT Approach. CNF encoding f. SAT solver. Input p 2 D. p : Instance D : Domain graph problem,

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

## PowerPoint Slideshow about 'Using Problem Structure for Efficient Clause Learning' - flo

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

### Using Problem Structure for Efficient Clause Learning

Ashish Sabharwal, Paul Beame, Henry Kautz

University of Washington, Seattle

April 23, 2003

The SAT Approach

CNF encoding f

SAT solver

Input p2D

p : Instance

D : Domaingraph problem,

AI planning, model checking

f SAT

f SAT

p good

University of Washington

Key Facts
• Problem instances typically have structure
• Graphs, precedence relations, cause and effects
• Translation to CNF flattens this structure
• Best complete SAT solvers are
• DPLL based clause learners; branch and backtrack
• Critical: Variable order used for branching

University of Washington

Natural Questions
• Can we extract structure efficiently?
• In translation to CNF formula itself
• From CNF formula
• From higher level description
• How can we exploit this auxiliary information?
• Tweak SAT solver for each domain
• Tweak SAT solver to use general “guidance”

University of Washington

Our Approach

CNF encoding f

Branching sequence

SAT solver

Input p2D

f SAT

f SAT

Encode “structure”

as branching sequence

p good

University of Washington

Related Work
• Exploiting structure in CNF formula
• [GMT’02] Dependent variables
• [OGMS’02] LSAT (blocked/redundant clauses)
• [B’01] Binary clauses
• [AM’00] Partition-based reasoning
• Exploiting domain knowledge
• [S’00] Model checking
• [KS’96] Planning (cause vars / effect vars)

University of Washington

Our Result, Informally
• Branching sequence as auxiliary information can be easily exploited

Given a pebbling graphG, can efficiently generate

a branching sequenceBG that dramatically improves

the performance of current best SAT solvers on fG.

University of Washington

Preliminaries: CNF Formula

Conjunction

of clauses

f = (x1ORx2OR:x9) AND (:x3ORx9)AND (:x1OR:x4OR:x5OR:x6)

University of Washington

Preliminaries: DPLL

DPLL(CNF formula f) {

Simplify(f);

If (conflict) return UNSAT;

If (all-vars-assigned) {return SAT assignment; exit}

Pick unassigned variable x;

Try DPLL(f |x=0), DPLL(f |x=1)

}

University of Washington

Prelim: Clause Learning
• DPLL: Change “if (conflict) return UNSAT”to “if (conflict) {learn conflict clause; return UNSAT}”

x2 = 1, x3 = 0, x6 = 0 ) conflict

“Learn” (:x2ORx3ORx6)

University of Washington

Prelim: Branching Sequence
• B = (x1, x4, :x3, x1, :x8, :x2,:x4, x7, :x1, x2)
• DPLL: Change “Pick unassigned var x”to “Pick next literal xfrom B; delete it from B; if x already assigned, repeat”
• How “good” is B?
• Depends on backtracking process, learning scheme

Different from

“branching order”

University of Washington

Prelim: Pebbling Formulas

Node E is pebbled if(e1ORe2) = 1

fG = Pebbling(G)

Source axioms:A, B, C are pebbled

Pebbling axioms:

A and B are pebbled)E is pebbled

Target axioms:

T is not pebbled

Target(s)

(t1ORt2)

T

(e1ORe2)

E

F

(f1)

A

B

C

(c1ORc2ORc3)

(a1ORa2)

(b1ORb2)

Sources

University of Washington

Prelim: Pebbling Formulas
• Can have
• Multiple targets
• Unbounded fanin
• Large clause labels
• Pebbling(G) is unsatisfiable
• Removing any clause from subgraph of each target makes it satisfiable

University of Washington

Grid vs. Randomized Pebbling

(n1 n2)

m1

(t1 t2)

l1

(h1 h2)

(h1 h2)

(i1 i2)

e1

(i1 i2  i3  i4)

f1

(e1 e2)

(f1 f2)

(g1 g2)

(d1 d2  d3)

(g1 g2)

(a1 a2)

(b1 b2)

(c1 c2)

(d1 d2)

(a1 a2)

(c1 c2  c3)

b1

University of Washington

Why Pebbling?
• Practically useful
• precedence relations in tasks, fault propagation in circuits, restricted planning problems
• Theoretically interesting
• Used earlier for separating proof complexity classes
• “Easy” to analyze
• Hard for current best SAT solvers like zChaff
• Shown by our experiments

University of Washington

Our Result, Again
• Efficient : Q(|fG|)
• zChaff : One of the current best SAT solvers

Given a pebbling graphG, can efficiently generate

a branching sequenceBG such that zChaff(fG, BG) is

empirically exponentially faster than zChaff(fG).

University of Washington

The Algorithm
• Input:
• Pebbling graphG
• Output:
• Branching sequenceBG, |BG| = Q(|fG|), that works well for 1UIP learning scheme and fast backtracking[fG : CNF encoding of pebbling(G)]

University of Washington

The Algorithm: GenSeq(G)
• Compute node heights
• Foreach u2 {unit clause labeled nodes} bottom up
• GenSubseq(u)
• Foreach t2 {targets} bottom up
• GenSubseq(t)

University of Washington

The Algorithm: GenSubseq(v)

// trivial wrapper

• If (|v.preds| > 0)
• GenSubseq(v, |v.preds|)

University of Washington

The Algorithm: GenSubseq(v, i)
• u = v.preds[i] // by increasing height
• if i=1 // lowest pred
• GenSubseq(u) if unvisited non-source
• return
• Output u.labels // higher pred
• GenSubseq(u) if unvisitedHigh non-source
• GenSubseq(v, i-1) // recurse on i-1
• GenPattern(u, v, i-1) // repetitive pattern

University of Washington

Results: Grid Pebbling
• Pure DPLL upto 60 variables
• DPLL + upto 60 variablesbranching seq
• Clause learning upto 4,000 variables(original zChaff)
• Clause learning upto 2,000,000 variables+ branching seq

University of Washington

Results: Randomized Pebl.
• Pure DPLL upto 35 variables
• DPLL + upto 50 variablesbranching seq
• Clause learning upto 350 variables(original zChaff)
• Clause learning upto 1,000,000 variables+ branching seq

University of Washington

Summary
• High level problem description is useful
• Domain knowledge can help SAT solvers
• Branching sequence
• One good way to encode structure
• Pebbling problems: Proof of concept
• Can efficiently generate good branching sequence
• Structure use improves performance dramatically

University of Washington

Open Problems
• Other domains?
• STRIPS planning problems (layered structure)
• Bounded model checking
• Variable ordering strategies from BDDs?
• Other ways of exploiting structure?
• branching “order”
• something to guide learning?
• Domain-based tweaking of SAT algorithms

University of Washington