dmeoli / GQSAT

PyTorch implementation of "Can Q-Learning with Graph Networks Learn a Generalizable Branching Heuristic for a SAT Solver?"

Home Page:https://arxiv.org/abs/1909.11830

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GQSAT

Can Q-learning with Graph Networks learn a Generalizable Branching Heuristic for a SAT solver?

How to add metadata for evaluation

python3 add_metadata.py --eval-problems-paths <path_to_folder_with_cnf>

How to train

./train.sh

How to evaluate

  • add the path to the model to the script first
  • choose the evaluation dataset
  • ./evaluate.sh

How to build a solver (you need this only if you changed the C++ code)

Run make && make python-wrap in the minisat folder.

How to build swig code (if you changed minisat-python interface, e.g., GymSolver.i)

Go to minisat/minisat/gym, run swig -fastdispatch -c++ -python3 GymSolver.i and then repeat the building procedure from the previous step.

Individual Contributor License Agreement

Please fill out the following CLA and email to sgodil@nvidia.com: https://www.apache.org/licenses/icla.pdf

Cite

@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}
}

Acknowledgements

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.

About

PyTorch implementation of "Can Q-Learning with Graph Networks Learn a Generalizable Branching Heuristic for a SAT Solver?"

https://arxiv.org/abs/1909.11830

License:Other


Languages

Language:Python 96.6%Language:Shell 3.4%