LEARNING A SAT SOLVER FROM SINGLE-BIT SUPERVISION
Abstract
NeuroSAT : a classifier to predict satisfiability of a propositional formula
train NN ,2* LSTM+3* MLP (每个t : literal & variable 相互更新)
监督学习, 二分类器。
contribution:虽然结果一般,但是用监督学习的过程中,运用可视化发现,sat时可以发现解(PCA降维,聚类); generalization
NeuroSAT generalizes to novel distributions
代码:
HTTP://github.com/dselsam/neurosat
Introduction
backtracking search 回溯算法的SAT solver 可以解决millions of(数百万) variables的问题
Can a neural network learn to solve SAT problems?
给 NeuroSAT提供 a single bit of标签(satisfiable or not) supervision 监督学习 for each SAT problem
- encoding any kind of search problem.
test domain is totally different from training. Generalization.- NeuroUNSAT
help construct proofs for unsatisfiable problems, learns to detect contradictions (矛盾的x)
instead of searching for satisfying assignments.
Background
For every formula, there exists an equisatisfiable formula in conjunctive normal form (CNF).
Each conjunct of a formula in CNF is called a clause, and each (possibly negated) variable within a clause is called a literal。
CNF:
SAT problem: the goal is to determine if the formula is satisfiable, and if so, to produce a satisfying assignment of truth values to variables.
Classification Task
learn a classifier that approximates φ.
MODEL
否定不变性:排列不变性:literal,clause,variable各自都可以在自己的范围换位置,
NeuroSAT(神经元SAT)
每轮iteration:
1.clause receives messages from its neighboring literals and updates its embedding accordingly. (2a)
2.each literal receives messages from its neighboring clauses as well as from its complement (2b)
先以较低概率猜测unset, 直到找到satisfy。 否则, 一直low-confidence。 it only guesses sat once it has found one. embeddings L(T) ∈ R^ (2n×d) to the literal votes L(T) ∗ using the MLP L_vote.
L_vote -> L(T) scalar for each literal ; mean(L(T) ) -> y(T)
(vote: 每个变量有个投票, 例如 :经过sigmoid后, 正表示这个variable投问题satisfy票, 负为投unstatisfy票,最后平均)
PCA降维后聚类:一类variable为1,一类为0就是最后的解
FINDING UNSAT CORES
NeuroUNSAT is able to predict satisfiability on the test set with 100% accuracy.
WORD & PHRASE
a boolean expression built using the constants true (1) and false (0), variables, negations(非), conjunctions(and), and disjunctions(or).
substantially: to a great or significant extent. substantially larger: 大的多
in any context 在任何情况下, context:上下文
a satisfying assignment of a propositional formula 一个命题公式的令人满意的赋值
construct an appropriate SAT problem and then call an SAT solver 构造SAT问题,调用solver
has yielded not A: 没有产生A
phase transition相变
evolve == develop (发展/演变)network+~
As we stressed early on 正如我们早期强调的那样
vastly 极大的 very, extremely, remarkably, especially, exceedingly, vastly
A is less reliable than the state-of-the-art. 不如最先进方法可靠
recognize, admit, acknowledge, confess, accept, concede 承认