Alpha icon indicating copy to clipboard operation
Alpha copied to clipboard

NoGood Forgetting

Open AntoniusW opened this issue 8 years ago • 7 comments

Alpha uses a CDNL-based solving component which learns new nogoods after running into conflicts. Over time, the number of nogoods becomes very large and many of the learned ones are not helpful to later search. The search almost grinds to a halt due to the massive number of superflous nogoods, which need to be treated during propagation. SAT solvers and other APS solvers therefore implement some form of nogood forgetting in order to speed-up the search and only keep those nogoods that are useful. There is a variety of literature on this topic and Alpha needs some form of nogood forgetting in order to solve the harder instances from the ASP competition.

AntoniusW avatar Nov 13 '17 14:11 AntoniusW

Note: the SAT4J link points to variable forgetting, not clause/nogood forgetting. Those are different things.

AntoniusW avatar Nov 13 '17 15:11 AntoniusW

  1. Predicting Learnt Clauses Quality in Modern SAT Solvers introduces glue clauses and LBD measure as used in the Glucose SAT solver.

AntoniusW avatar Nov 14 '17 10:11 AntoniusW

Good idea but keep in mind forgetting leads to incompleteness.

jblaszczyk avatar Oct 13 '18 15:10 jblaszczyk

Good idea but keep in mind forgetting leads to incompleteness.

@jblaszczyk No, it does not. Learned nogoods that do not imply anything for the current partial assignment can be forgotten without making the search incomplete.

General note regading this issue: We should not forget that we are grounding lazily, so we might not only forget nogoods, but also datastructures in the grounder. This interferes with grounding heuristics.

lorenzleutgeb avatar Nov 13 '18 22:11 lorenzleutgeb

Is this implemented by #197?

rtaupe avatar Dec 11 '19 08:12 rtaupe

Is this implemented by #197?

Ping @AntoniusW

lorenzleutgeb avatar Oct 26 '21 14:10 lorenzleutgeb