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: abc a h b h Infer: ch 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
© Copyright 2026 Paperzz