230 likes | 240 Views
This research paper explores the impact of adding inference techniques to the search procedure of SAT solvers and how it affects the performance. The study uses HypBinRes preprocessing and hints to isolate the heuristics, and presents recent results and conclusions.
E N D
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
Lots of points below the line Nice performance improvement Second solver
Points back on the line We have the same performance as the first solver Second solver (modified)
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: • Infer:
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 • Using ZChaff as the solver • Efficient preprocessing algorithm • 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
Before preproc After preproc Hints for implied clauses
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
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