Can Q-learning with Graph Networks learn a Generalizable Branching Heuristic for a SAT solver?
python3 add_metadata.py --eval-problems-paths <path_to_folder_with_cnf>
./train.sh
- add the path to the model to the script first
- choose the evaluation dataset
./evaluate.sh
Run make && make python-wrap
in the minisat folder.
Go to minisat/minisat/gym, run swig -fastdispatch -c++ -python3 GymSolver.i
and then repeat the building procedure
from the previous step.
Please fill out the following CLA and email to sgodil@nvidia.com: https://www.apache.org/licenses/icla.pdf
@inproceedings{kurin2019improving,
title={Can Q-Learning with Graph Networks Learn a Generalizable Branching Heuristic for a SAT Solver?},
author={Kurin, Vitaly and Godil, Saad and Whiteson, Shimon and Catanzaro, Bryan},
booktitle = {Advances in Neural Information Processing Systems 32},
year={2020}
}
We would like to thank Fei Wang whose initial implementation of the environment we used as a start, and the creators of Minisat on which it is based on. We would also like to thank the creators of Pytorch Geometric whose MetaLayer and Graph Nets implementation we built upon.