Fixpoint.SatSolver.VariableSelector.DLIS (fixpoint_sat v0.1.2)

Dynamic Largest Individual Sum.

For a given variable x: – C(x,p) – # of unresolved clauses in which x appears positively – C(x,n) - # of unresolved clauses in which x appears negatively – Let x be the literal for which C(x,p) is maximal – Let y be the literal for which C(y,n) is maximal – If C(x,p) > C(y,n) choose x and assign it TRUE – Otherwise choose y and assign it FALSE

Note: this is equivalent to generic MostConstrained variable selector, except for the cases with both positive and negative literals for the same variable are in the same clause. These could be just filtered out on CNF preprocessing. So DLIS selector is here only to serve as a template for other variable selectors.

Summary

Functions

initialize(data, opts)

Callback implementation for CPSolver.Search.VariableSelector.initialize/2.

update(data, opts)

Callback implementation for CPSolver.Search.VariableSelector.update/2.