Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Learning Rate Branching (LRB) Heuristic #4

Open
danielschemmel opened this issue Apr 9, 2017 · 1 comment
Open

Learning Rate Branching (LRB) Heuristic #4

danielschemmel opened this issue Apr 9, 2017 · 1 comment
Assignees

Comments

@danielschemmel
Copy link
Owner

The Learning Rate Branching (LRB) heuristic, which did rather well in the 2017 SATCOMP has been implemented in the branch lrb. It is initialized with the same static heuristic, as is done on the master branch with the CHB heuristic.

Two major faults remain with the implementation:

  • Instead of considering the whole conflict side, only the literals in the final (!) learned clause are given a boost.
  • The original paper already mentions that the locality decay ("multiply with 0.95 when unused") can be batched, which is currently simply done brute force. This is not that much of a problem with the current test sets, as their number of variables is comparatively small.

Additionally, no fancy data structure is used to find the unassigned variable with the highest score. This must be kept this way for the moment to retain comparability with the CHB heuristic. Improvements can be implemented on master and then applied to the lrb branch when this should be of interest.

Performance

It would seem that for drsat the CHB heuristic results in better performance for SAT benchmarks, but that LRB wins for UNSAT benchmarks. Generally CHB seems to be a stronger choice at the moment.

@danielschemmel
Copy link
Owner Author

A reasonable way to resolve this issue would be to allow the user to choose the heuristic themselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant