Skip to content

Commit 4d94f8d

Browse files
committed
added more files
1 parent a5f8e65 commit 4d94f8d

File tree

7,609 files changed

+4612359
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

7,609 files changed

+4612359
-0
lines changed

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.idea
2+
3+
__pycache__
4+
5+
.ipynb_checkpoints

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2021 Donato Meoli
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

NeuroSAT.ipynb

+9,378
Large diffs are not rendered by default.

README.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# neuroSAT
2+
3+
[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](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 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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

Comments
 (0)