7. 充足可能性問題
•論理変数 (いわゆる bool型)
x=True または x=False
•論理式
•論理変数と
NOT(¬x, 𝑥), AND(^, ∧), OR(v, ∨)
でできた式
•¬ 𝑥 ∧ 𝑦 ∧ ⋯ ∧ 𝑧
= ¬𝑥 ∨ ¬𝑦 ∨ ⋯ ∨ ¬𝑧
•x ⇒ y (xならばy) =¬𝑥 ∨ 𝑦
7
x y x⇒y ¬x ¬x v y
T T T F T
T F F F F
F T T T T
F F T T T
15. 簡単に解ける場合
2-SAT
15
a, b, c, ¬d
e, f, ¬g
h, ¬i, ¬j, k
¬l, ¬m, n, o
¬a, ¬b, ¬c, d
¬e, ¬f, g
¬h, i, j, ¬k
l, m, ¬n, ¬o
強連結成分ごとにまとめてDAGをつくると
トポロジカル順序の下から順に割り当てていけて、SAT
16. a v c v e
簡単に解ける場合
Horn-SAT
16
¬c v a v b v d v e
¬b v a
¬a
¬d v ¬e v bNG:
¬ がついている変数
が 1 個以下
¬ がついていない変数
はいくつでも OK
21. 数独
21
AMO(x111, x112,…,x119) V ALO(…) V
…
AMO(x991, x992,…,x999) V ALO(…) V
…
AMO(x121,x221,…,x921) V ALO(…) V
…
AMO(x129,x229,…,x929) V ALO(…) V
…
AMO(x211,x221,…,x291) V ALO(…) V
…
AMO(x219,x229,…,x299) V ALO(…) V
…
AMO(x441,x451,…,x661) V ALO(…) V
…
AMO(x449,x459,…,x669) V ALO(…) V
…
x115 V … V x772 V … V x999
33. Unit Propagation (UP)
33
a=T, b=T, c=F, d=T
¬a v b ¬b v ¬c ¬a v c v da ¬d v ¬e v f … …
a ¬a v b ¬b v c ¬a v c v d
Propagation を起こした節(Reason)を記録しておく
34. CDCL (Conflict Driven Clause Learning)
34
a=T
b=T, c=F, d=T
f=T, g=F
i=T, j=F, k=T
m=T, n=F, o=T, p=T, q=F, r=T, n=T
e=T
h=F
l=T
l ⇒ m
l ⇒ ¬n
¬q ^ r ⇒ n
m ^ f ⇒ r
¬c ^ l ⇒ ¬q
Level = 1
Level = 2
Level = 3
Level = 4
n=F と n=T でコンフリクト → 原因をたどる
→ c=F, f=T, l=T が原因 → (c v ¬f v ¬l) を追加
35. Non-chronological backtracking
35
a=T
b=T, c=F, d=T
f=T, g=F, l=F
e=T
¬c ^ f ⇒ ¬l
Level = 1
Level = 2
(c v ¬f v ¬l)
のうちレベルの2番目のところまで decision をキャンセル
→c=F, f=T と (c v ¬f v ¬l) から Unit propagation を行う
→ l=F が割り当てられる
Lv=0 Lv=1 Lv=3
47. 確率的局所探索
(SLS, Stochastic Local Search)
• WalkSAT: さきほどのアルゴリズムの発展形
• 以下を解が見つかるまで繰り返す
• 満たされていない節Cをランダムにとる
(1) 確率 p で節Cのなかのランダムなリテラルを反転させる
(2) 確率 1-p で節Cのなかから反転させたときに満たされる
節が最も増えるものを反転させる
47
¬𝑎 ∨ ¬𝑏 ∧ (𝑎 ∨ 𝑐) ∧ (¬𝑎 ∨ ¬𝑑) ∧ (𝑏 ∨ ¬𝑐) ∧ (¬𝑏 ∨ ¬𝑑) ∧ (¬𝑐 ∨ ¬𝑑)
F
T
T
T
T
T
F
T
F
T
T
F
F
F
T
a=T→F
b=T→F
F
F
F
a=T b=T c=T d=T
Δscore 2 1 - -
B Selman, H Kautz, and B Cohen. "Local Search Strategies for Satisfiability Testing". Cliques,
Coloring, and Satisfiability: Second DIMACS Implementation Challenge, October 11-13, 1993.
48. 確率的局所探索
(SLS, Stochastic Local Search)
Breakout:
• 節にスコアをつけて、(2) で満たされる節のスコアの
和が最も増えるものを反転させる
• スコアを改善する変数がなくなったとき、満たされ
ていない節のスコアを1増やす
48
¬𝑎 ∨ ¬𝑏 ∧ (𝑎 ∨ 𝑐) ∧ (¬𝑎 ∨ ¬𝑑) ∧ (𝑏 ∨ ¬𝑐) ∧ (¬𝑏 ∨ ¬𝑑) ∧ (¬𝑐 ∨ ¬𝑑)
a=T b=T c=T d=T
Δscore 4 5 - -
F
T
T
T
T
T
F
T
F
T
T
F
F
F
T
a=T→F
b=T→F
F
F
F
2 1 2 3 6 4weight
Paul Morris. "The breakout method for escaping from local minima". In Proceedings of
the eleventh national conference on Artificial intelligence, pp. 40-45, (1993)
52. Incremental SAT solver の応用:
ハミルトン閉路問題
• グラフのすべての頂点を通る閉路を求める問題
• まず、下の制約を満たす𝑥 𝑢𝑣 (u→vの辺を使う)の割当を
もとめる
• 「すべての頂点に対して、入次数=1」
• 「すべての頂点に対して、出次数=1」
• もしすべての頂点を通らない閉路 t→u→v→…→w→u が
存在したら、
(¬𝑥𝑡𝑢 ∨ ¬𝑥 𝑢𝑣 ∨ ⋯ ∨ ¬𝑥 𝑤𝑢) を追加して解く
• これをハミルトン閉路が見つかるまで繰り返す
52
T Soh, DL Berre, S Roussel, M Banbara, and N Tamura. "Incremental sat-
based method with native boolean cardinality handling for the
hamiltonian cycle problem.” In Proceedings of the 14th European
Conference on Logics in Artificial Intelligence, pp. 684–693. (2014)