Neuro-symbolic approaches to the SAT problem.
This code has been developed in the context of Pattern Recognition and Reinforcement Learning courses @ Department of Computer Science @ University of Pisa under the supervision of prof. Davide Bacciu.
-
Reinforcement Learning (Alpha Zero (MCTS)) approach described in [1].
-
Supervised Learning (GNN) + Reinforcement Learning (DQN) approach described in [2].
The experimental results of GraphQSAT and GATQSAT models can be viewed here.
The final presentation of the course project can be found here.
Getting the whole project and all the subprojects updated at the latest version can be done with:
git clone --recurse-submodules https://gitlab.com/smspp/neuroSAT.git
git submodule foreach --recursive "git checkout master"
git submodule foreach --recursive "git pull"
bash train_val_test_split.sh {uniform-random-3-sat | graph-coloring}
This software is released under the MIT License. See the LICENSE file for details.
[1] Wang, Fei, and Tiark Rompf, From Gameplay to Symbolic Reasoning: Learning SAT Solver Heuristics in the Style of Alpha(Go) Zero.
[2] Kurin, Vitaly, et al., Can Q-Learning with Graph Networks Learn a Generalizable Branching Heuristic for a SAT Solver?.