|
| 1 | +# neuroSAT |
| 2 | + |
| 3 | +[](https://colab.research.google.com/github/dmeoli/neuro-sat/blob/master/NeuroSAT.ipynb) |
| 4 | + |
| 5 | +Neuro-symbolic approaches to the SAT problem. |
| 6 | + |
| 7 | +This code has been developed in the context of Pattern Recognition and Reinforcement Learning courses @ |
| 8 | +[Department of Computer Science](https://www.di.unipi.it/en/) |
| 9 | +@ [University of Pisa](https://www.unipi.it/index.php/english) |
| 10 | +under the supervision of prof. [Davide Bacciu](http://pages.di.unipi.it/bacciu/). |
| 11 | + |
| 12 | +## Contents |
| 13 | + |
| 14 | +- **Supervised Learning** (*LSTM*) approach described in [1]. |
| 15 | + |
| 16 | +- **Reinforcement Learning** (*DQN* and *AlphaZero (MCTS)*) approach described in [2]. |
| 17 | + |
| 18 | +- **Supervised Learning** (*GNN*) + **Reinforcement Learning** (*DQN*) approach described in [3]. |
| 19 | + |
| 20 | + - [ ] *Graph Convolutional Layer* + *Graph Pooling Layer* (e.g., [*PyTorch Geometric Pooling |
| 21 | + Methods*](https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#pooling-layers) (e.g., |
| 22 | + [*Hierarchical Graph Representation Learning with Differentiable Pooling |
| 23 | + (DiffPool)*](https://arxiv.org/abs/1806.08804), |
| 24 | + [*Self-Attention Graph Pooling (SAGPool)*](https://arxiv.org/abs/1904.08082), |
| 25 | + [*MinCUT Pooling*](https://arxiv.org/abs/1907.00481), etc.), |
| 26 | + [*Hierarchical Graph Pooling*](https://arxiv.org/abs/1911.05954), |
| 27 | + [*K-Plex Cover Pooling*](https://openreview.net/forum?id=PFdGijb9sjx)) |
| 28 | + - [ ] *Graph Attention Mechanism* (e.g., |
| 29 | + [*Graph Attention Networks (GATs)*](https://arxiv.org/abs/1710.10903), |
| 30 | + [*Universal Graph Transformer Self-Attention Networks*](https://arxiv.org/abs/1909.11855)) |
| 31 | + |
| 32 | +## Split dataset |
| 33 | + |
| 34 | +```./train_val_test_split.sh {uniform-random-3-sat | graph-coloring | etc.}``` |
| 35 | + |
| 36 | +## License [](https://opensource.org/licenses/MIT) |
| 37 | + |
| 38 | +This software is released under the MIT License. See the [LICENSE](LICENSE) file for details. |
| 39 | + |
| 40 | +## References |
| 41 | + |
| 42 | +[1] Selsam, Daniel, et al., [*Learning a SAT Solver from Single-Bit Supervision*](https://arxiv.org/abs/1802.03685). |
| 43 | + |
| 44 | +[1] Wang, Fei, and Tiark Rompf, [*From Gameplay to Symbolic Reasoning: Learning SAT Solver Heuristics in the Style of |
| 45 | +Alpha(Go) Zero*](https://arxiv.org/abs/1802.05340). |
| 46 | + |
| 47 | +[1] Kurin, Vitaly, et al., [*Can Q-Learning with Graph Networks Learn a Generalizable Branching Heuristic for a SAT |
| 48 | +Solver?*](https://arxiv.org/abs/1909.11830). |
0 commit comments