The interaction between inference and branching heuristics

The interaction between
inference and branching
heuristics
Lyndon Drake and Alan Frisch
AI Group, Computer Science Department,
University of York
First solver



Runtime in
seconds, before
and after
preprocessing
Points are all on
the line
No real
improvement in
performance
Second solver


Lots of points
below the line
Nice performance
improvement
Second solver (modified)


Points back on the
line
We have the same
performance as
the first solver
Outline





Introduction
Preprocessing with HypBinRes
Using hints to isolate the heuristic
Recent results
Conclusions
Solving SAT problems

Classifying solvers
Inference (e.g. resolution)
 Search


We consider complete search
DLL algorithm
 Can add more inference to the search
procedure

Motivation for adding
inference
Theoretical interest
 Practical applications

Sometimes possible to make useful
inferences based on the structure
 E.g. SAT-encoded CSP instances

When to add inference
Tradeoff between time saved on and
time spent by inference
 Adding inference during search is
possible



Efficient implementations are very
difficult
Before search is easier

I.e. preprocessing
Outline

Introduction

Preprocessing with HypBinRes



Using hints to isolate the heuristic
Recent results
Conclusions
HypBinRes example

From:
abc
a h
b h

Infer:
ch
HypBinRes preprocessing

Apply HypBinRes before search
HypBinRes during search is effective
 HypBinRes can add support clauses to a
directly encoded CSP


Expectation is that HypBinRes
preprocessing will result in improved
performance
Results

Tested on several benchmark sets


Efficient preprocessing algorithm


Using ZChaff as the solver
No significant runtime required
No significant performance
improvement
Often much worse after preprocessing
 Search space correspondingly larger

Analysis

Additional clauses could result in a
larger search space because:
Heuristic is confused
 Different conflict clauses generated


Intuition at this point:

Heuristic at fault
Outline

Introduction
Preprocessing with HypBinRes

Using hints to isolate the heuristic



Recent results
Conclusions
Hints for implied clauses

Before preproc

After preproc
Isolating implied clauses
Hints are used to tag the implied
clauses
 The heuristic is modified to ignore
literal occurrences in implied clauses
 Difficult to prevent conflict clauses
being generated from implied
clauses


Modified a simple non-CR based solver
Results
Implied
Implied
clauses visible clauses hidden
50%
No
improvement
improvement
Analysis

Intuition at least partially correct


Heuristic strongly affected by implied
clause visibility
Heuristic operates best when implied
clauses are visible

VSIDS can discount literals in the
implied clauses
VSIDS heuristic
}
Higher priority
given to conflict
clause literals
Outline



Introduction
Preprocessing with HypBinRes
Using hints to isolate the heuristic
Recent results
 Conclusions

Pruning or guiding?
Do implied clauses prune branches
or guide heuristics?
 Modified solver that gives statistics
on branch pruning



Implied clauses rarely prune
Needs further work to quantify the
size of each branch pruned
Different heuristic
Still possible that the conflict clauses
generated are the problem
 Try a different heuristic with conflict
recording

Heuristic needs to not give higher
priority to conflict clause literals
 Experiments still in progress, but some
evidence of performance improvement

Conclusions
Adding implied clauses can result in
the branching heuristic making poor
decisions
 Tentative: implied clauses improve
performance primarily by guiding
the heuristic
