42
イントロ SAT SAT ソルバー CSP Sugar Sugar による問題解決 まとめ SAT ソルバーは問題解決のための「銀の弾丸」か? 田村直之,番原睦則,宋剛秀 神戸大学 情報基盤センター 日本 EDA ベンチャー連絡会 (JEVeC) 12 回総会 2016 5 26 1 / 39

SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SATソルバーは問題解決のための「銀の弾丸」か?

田村直之,番原睦則,宋剛秀

神戸大学 情報基盤センター

日本 EDAベンチャー連絡会 (JEVeC) 第 12回総会2016年 5月 26日

1 / 39

Page 2: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

自己紹介

1975年 山口県立山口高等学校 卒業1980年 神戸大学理学部物理学科 卒業1982年 同大学大学院工学研究科修士課程 修了1985年 同大学大学院自然科学研究科博士課程 修了 (学術博士)

逐次実行型 Prolog専用計算機に関する研究1985年 日本 IBM株式会社 JSI (東京基礎研究所)

Prologコンパイラの研究1988年 神戸大学工学部 助手

講師 (1988),助教授 (1992)2003年 同大学 (学術)情報基盤センター 教授 (現在 副センター長)

同大学工学部情報知能工学科 兼任同大学大学院システム情報学研究科 兼任

現在,神戸大学の基盤計算機システムを更新するプロジェクトの PMを担当中. . .

2 / 39

Page 3: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

これまでの研究内容

研究の動機と研究内容

賢いソフトウェアを作りたい! 賢いソフトウェアを作るためのシステムを作りたい!

論理プログラミングPrologマシン, Prologコンパイラ, 線形論理プログラミング

制約プログラミングCream, SAT型制約ソルバー Sugar

制約充足問題 (Constraint Satisfaction Problem; CSP)

整数上の関係式などで記述された制約を満たす解を答える問題

制約ソルバーCSPの解を探索するソフトウェア

SAT型制約ソルバーSATソルバーを利用している制約ソルバー

3 / 39

Page 4: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

講演内容

トピック

SAT型制約ソルバー Sugarによる問題解決方法の紹介

内容1 SATと SATソルバー2 制約充足問題と SAT型制約ソルバー Sugar3 Sugarによる問題解決

ナンバーリンク4 まとめ

参考資料

講演資料http://bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdf

4 / 39

Page 5: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SATとSATソルバー

5 / 39

Page 6: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SATとは

SAT (Boolean satisfiability testing)

与えられた命題論理式を充足する (真にする)値割当てが存在するかどうかを判定する問題

2000年頃から,SAT問題を解く SATソルバーの性能が大幅に向上した.問題を SATに符号化 (変換)し SATソルバーを用いて求解する SAT型システムが様々な分野で成功している.

Intel core I7 プロセッサ設計 [Kaivola+, CAV 2009]

Windows 7 デバイス・ドライバー検証 [De Moura andBjorner, IJCAR 2010] (SMTソルバー Z3)

ソフトウェア要素の依存性解析Eclipse [Le Berre and Rapicault, IWOCE 2009]Fedora Linux (および RedHat, CentOS)の dnf

6 / 39

Page 7: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SAT問題 (SAT Instances)

具体的な SATの問題は,連言標準形 (CNF)で与えられる.

CNF式

CNF式は,複数の節の連言である.

節 (clause)は複数のリテラルの選言である.

リテラル (literal)は,命題変数かあるいはその否定である.

標準的フォーマットとしては DIMACS CNFが用いられる.

p cnf 3 4 ; Number of variables and clauses1 2 3 0 ; p1 ∨ p2 ∨ p3-1 -2 0 ; ¬p1 ∨ ¬p2-1 -3 0 ; ¬p1 ∨ ¬p3-2 -3 0 ; ¬p2 ∨ ¬p3

7 / 39

Page 8: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SATソルバー (SAT Solvers)

SATソルバー

SATソルバーは,与えられた SAT問題が充足可能 (SAT)か充足不能 (UNSAT)かを判定するプログラム.充足可能であればその値割当てを解として出力する.

近代的 SATソルバーでは,DPLLアルゴリズムに様々な技術が導入され大幅な性能向上が実現されている.

矛盾からの節学習 (CDCL), 非時間順バックトラック法, ランダムリスタート, 監視リテラル, 変数選択ヒューリスティック(VSIDS),リテラルブロック距離 (LBD)

近代的 SATソルバーは 106 個の命題変数 107 個の節を含むSAT問題も取り扱うことができる.

2002年以降国際 SAT競技会が開催され,SATソルバーの実装技術の向上に貢献している.オープンソースが義務.

8 / 39

Page 9: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SAT問題のサイズ

2011 SAT competition, Applications Track

9 / 39

Page 10: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

SATソルバーの速度向上

10 / 39

Page 11: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Knuth: “Satisfiability”, TAOCP, 4巻, 第 6分冊

Knuthの有名な教科書 TAOCPの最新分冊は SATに関する章である.

Wow—Section 7.2.2.2 has turned out to be the longest section, by far, inThe Art of Computer Programming. The SAT problem is evidently a killer app,because it is key to the solution of so many other problems.

Satisfiability is important chiefly because Boolean algebra is so versatile.Almost any problem can be formulated in terms of basic logical operations, . . .

The story of satisfiability is the tale of a triumph of software engineering,blended with rich doses of beautiful mathematics.

Section 7.2.2 explains how such a miracle occurred, . . .

11 / 39

Page 12: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Knuth: “Satisfiability” 中の例題

Knuthの教科書は 300ページ以上で 500問以上の練習問題を含んでいる.また,最初の 20ページ余りで以下の例題が紹介されている.

1 ファンデアベルデン数2 厳密被覆3 グラフ彩色4 整数の因数分解5 回路の故障検査 (32ビット乗算回路)

6 ブール関数の学習7 有界モデル検査 (ライフゲーム)

8 相互排除アルゴリズムの検証9 デジタル断層写真

12 / 39

Page 13: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

なぜSAT型システムか? (個人的見解)

様々な探索技術の導入矛盾した原因を節として学習 (CDCL)するなど

実装技術の進歩.SAT競技会の優勝ソルバーはどんどん入れ替わっている.2004年 zChaff, 2005年 SatELiteGTI, 2007年 Rsat, 2009年PrecoSAT, 2011年 glucose, 2013–2014年 lingeling

キャシュを意識した実装 [Zhang & Malik 2003]

例えば,ある 260万節の SAT問題は,MiniSatで 4秒以内で求解でき L2キャッシュへのヒットレートは 99%以上である.

$ valgrind --tool=cachegrind minisat gp10-10-1091.cnf

L2 refs: 42,842,531 ( 31,633,380 rd +11,209,151 wr)

L2 misses: 25,674,308 ( 19,729,255 rd + 5,945,053 wr)

L2 miss rate: 0.4% ( 0.4% + 1.0% )

13 / 39

Page 14: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

なぜSAT型システムか? (個人的見解)

SATソルバーをエンジンとして用いるアプローチは,1980年代に Pattersonらが提唱した RISCアプローチに似ている.

RISC: Reduced Instruction Set ComputerPattersonは “reduced” かつ高速な命令セットの計算機のほうが,“complex” な命令セットの計算機 (CISC)よりも高速になると主張した.

SATソルバー ⇐⇒ RISCSAT符号化 ⇐⇒ 最適化コンパイラ

この意味で,SATソルバーと SAT符号化の双方が重要な研究テーマといえる.

Thus the art of encoding turns out to be just as important asthe art of devising algorithms for satisfiability. — D. E. Knuth

14 / 39

Page 15: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

制約充足問題とSAT型制約ソルバーSugar

15 / 39

Page 16: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

制約充足問題の例: コインの問題

コインの問題例

1円硬貨,5円硬貨,10円硬貨が各 1枚以上,合計で 15枚ある.金額の合計は 90円である.それぞれの硬貨は何枚か?

+ · · · + + · · · + + · · ·︸ ︷︷ ︸15枚

= 90円

制約充足問題 (CSP)

x , y , z ∈ {1, 2, . . . , 15}x + y + z = 15

x + 5y + 10z = 90

16 / 39

Page 17: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

制約充足問題の例: コインの問題

コインの問題例

1円硬貨,5円硬貨,10円硬貨が各 1枚以上,合計で 15枚ある.金額の合計は 90円である.それぞれの硬貨は何枚か?

+ · · · + + · · · + + · · ·︸ ︷︷ ︸15枚

= 90円

制約充足問題 (CSP)

x , y , z ∈ {1, 2, . . . , 15}x + y + z = 15

x + 5y + 10z = 90

16 / 39

Page 18: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

コインの問題例をSugarで解く

Sugarへの入力ファイル coins.csp

(int x 1 15)

(int y 1 15)

(int z 1 15)

(= (+ x y z) 15)

(= (+ x (* 5 y) (* 10 z)) 90)

1 上のファイル coins.csp を作成する.2 Sugarを実行する.

$ sugar coins.csp

3 以下が出力される.答え: 1円 5枚,5円 3枚,10円 7枚.

s SATISFIABLE

a x 5

a y 3

a z 7

17 / 39

Page 19: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

制約充足問題の例: ナップサック問題

ナップサック問題の例

5つの品物のコストと利益が与えられている.コストの合計が 15以下で,利益の合計が 18以上になる場合はあるか?

品物 コスト 利益品物 1 3 4品物 2 4 5品物 3 5 6品物 4 7 8品物 5 9 10

制約充足問題 (CSP)

p1, p2, p3, p4, p5 ∈ {0, 1}3p1 + 4p2 + 5p3 + 7p4 + 9p5 ≤ 15

4p1 + 5p2 + 6p3 + 8p4 + 10p5 ≥ 18

18 / 39

Page 20: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

制約充足問題の例: ナップサック問題

ナップサック問題の例

5つの品物のコストと利益が与えられている.コストの合計が 15以下で,利益の合計が 18以上になる場合はあるか?

品物 コスト 利益品物 1 3 4品物 2 4 5品物 3 5 6品物 4 7 8品物 5 9 10

制約充足問題 (CSP)

p1, p2, p3, p4, p5 ∈ {0, 1}3p1 + 4p2 + 5p3 + 7p4 + 9p5 ≤ 15

4p1 + 5p2 + 6p3 + 8p4 + 10p5 ≥ 18

18 / 39

Page 21: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナップサック問題の例をSugarで解く

Sugarへの入力ファイル knapsack.csp

(int p_1 0 1) (int p_2 0 1)

(int p_3 0 1) (int p_4 0 1) (int p_5 0 1)

(<= (+ (* 3 p_1) (* 4 p_2) (* 5 p_3) (* 7 p_4) (* 9 p_5)) 15)

(>= (+ (* 4 p_1) (* 5 p_2) (* 6 p_3) (* 8 p_4) (* 10 p_5)) 18)

1 上のファイル knapsack.csp を作成する.2 Sugarを実行する.

$ sugar knapsack.csp

3 以下が出力される.答え: 品物 1,3,4の組合せがある.s SATISFIABLE

a p_1 1

a p_2 0

a p_3 1

a p_4 1

a p_5 0

19 / 39

Page 22: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Sugarでの制約充足問題 (CSP)の解法フロー

1 与えられた CSPを SAT問題に符号化 (encode)

2 SATソルバーを呼び出して求解3 SATソルバーの解を CSPの解に復号 (decode)

20 / 39

Page 23: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Sugarの特徴

SAT問題への符号化には,我々が考えた順序符号化の方法を用いている.

さらに,SATソルバーが高速に求解できるように様々な工夫をしている (一種の最適化コンパイラ).

バックエンドに使う SATソルバーは,DIMACS CNF形式に対応している標準的なものならどれでも利用可能.

SATソルバーが速くなれば,Sugarも速くなる点が利点.

制約記述には,以下を利用できる.変数: 命題変数,整数変数 (有限ドメイン)算術演算: +, −, ×, 整数除算, mod, min, max, abs など比較: =, =, <, ≤, >, ≥論理演算: ∧, ∨, ¬, ⇒, xor, iff など外延的制約グローバル制約: alldifferent など

21 / 39

Page 24: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Sugarの国際制約ソルバー競技会での成績

Sugarは,第 3回および第 4回の国際制約ソルバー競技会で優勝した.

第 2回 (2006年 12月–2007年 3月)

第 9位 (13ソルバー中)

第 3回 (2008年 5月–9月)

第 1位 (17ソルバー中)

第 4回 (2009年 5月–9月)2

全 3部門で 第 1位 (11ソルバー中)

田村,丹生,番原: 「SAT変換に基づく制約ソルバーとその性能評価」, コンピュータソフトウェア, 4(27), 2010.

1国際制約ソルバー競技会はいくつかの部門で争われる.上記は,その中で最も難しい問題から成るグローバル制約部門での成績である.

22年連続優勝の後,第 5回は開催されていない...22 / 39

Page 25: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Sugarの応用研究

Sugarの性能を武器として,様々な応用問題に取り組んでいる.

オープンショップ・スケジューリング (OSS)グラフ彩色問題 (GCP)2次元パッキング問題 (2SP)

2次元平面で,与えられた図形を重ならないようできるだけ狭い範囲に配置する問題

組合せテストケース生成問題 (CA, PA)

必要な組合せは含むという条件で,できるだけ少ない回数のテスト方法を求める問題

釣合い型不完備ブロック計画 (BIBD)ハミルトン閉路問題 (HCP)大学時間割問題 (CBCT)

与えられた条件を満たす,最適な大学の時間割を求める問題

ソフトウェア要素最適配置問題パズル

ナンバーリンク, ノノグラム, 倉庫番など

上記の多くで,既存よりも優れた結果を得ている.

23 / 39

Page 26: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

Sugarによる問題解決

ナンバーリンクの例

24 / 39

Page 27: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナンバーリンク 1

1 2 3

5 4 2 1

3 4 5

1 2 3

5 4 2 1

3 4 5

問題例 問題例の解

ナンバーリンクのルール (ニコリによる)

1 同じ数字どうしを線でつなげます.2 線はタテヨコに引き,マスの中央を通ります.3 線は 1マスに 1本だけ通過できます.線をワクの外に出したり,交差や枝分かれさせてはいけません.また,線は数字が入っているマスを通過してもいけません.

1ナンバーリンクはニコリ社の登録商標25 / 39

Page 28: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナンバーリンクをSugarで解く手順

1 ナンバーリンクの制約モデル化を考える.問題を制約充足問題 (CSP)で表す方法を考える.何を変数にするのか,どのような制約を加えるのか.

2 考えた方法で問題を CSPに変換するプログラムを作る.Sugarの CSPはテキスト形式なので,どんなプログラミング言語で作るのでも良い.

3 Sugarで解いてみる.SATソルバーの選択も重要である.

4 制約モデルを改善する.性能が十分でなければ,制約モデルを改善する.余分な制約を加えたほうが速くなる場合もある.SAT問題のサイズが大きくなりすぎる時は,工夫が必要.

26 / 39

Page 29: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナンバーリンクの制約モデル: 初期モデル (1/2)

線を結ぶ条件

各マス (i , j) から下のマスへの線の有無を変数 sij で,右のマスへの線の有無を変数 eij で表す 1.

sij , eij ∈ {0, 1}

数が記入されている数字マスからは 1本だけ線が出る.

s(i−1)j + ei(j−1) + sij + eij = 1

空白の白マスからは 2本または 0本の線が出る.

s(i−1)j + ei(j−1) + sij + eij ≤ 2

s(i−1)j + ei(j−1) + sij + eij = 1

1盤外への辺は 0と考える.27 / 39

Page 30: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナンバーリンクの制約モデル: 初期モデル (2/2)

同じ数字同士を線を結ぶ条件

各マスがどの数字と結ばれているかを変数 xij で表す.

xij ∈ {1, 2, . . . ,m} (mは最大の数字)

数字マスの場合は,記入されている値 a に等しい.

xij = a

線で結ばれているマス同士は同じ値を取る.

(sij = 1) ⇒ (xij = x(i+1)j)

(eij = 1) ⇒ (xij = xi(j+1))

ほとんどの問題が解けたが,解けないものもあった.

28 / 39

Page 31: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

ナンバーリンクの制約モデル: 制約モデルの改善

2014年 DAシンポジウムのアルゴリズムデザインコンテストでの優勝を目指し,制約モデルの改善を行った.

基本モデル無向グラフではなく有向グラフを用いた定式化に変更

改良モデル4分割した領域の出次数と入次数に着目し,条件を追加

追加制約制約を追加することで高速化

田村直之, 宋剛秀, 番原睦則, 鍋島英知: SAT型制約ソルバーを用いたナンバーリンクの解法, 情報処理学会 第 166回システムと LSIの設計技術研究会 (SLDM), 2015. (優秀論文賞)

29 / 39

Page 32: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

基本モデル (1)

基本モデル (1)

各弧 (u, v) ∈ A について

弧 (u, v) ∈ {0, 1}弧 (u, v) +弧 (v , u) ≤ 1

各マス u ∈ V について

入次数 (u) ∈ {0, 1}出次数 (u) ∈ {0, 1}入次数 (u) =弧 (u上, u) + · · ·+弧 (u右, u)

出次数 (u) =弧 (u, u上) + · · ·+弧 (u, u右)

各マス u ∈ V について

数 (u) ∈ {1, 2, . . . ,最大の数 }30 / 39

Page 33: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

基本モデル (2)

基本モデル (2)

白マス u について

入次数 (u) =出次数 (u)

数字マスの一方を u, 他方を v とすると

入次数 (u) = 0 出次数 (u) = 1

入次数 (v) = 1 出次数 (v) = 0

各数字マス u について

数 (u) = i

各弧 (u, v) ∈ A について

弧 (u, v) > 0 ⇒数 (u) =数 (v)31 / 39

Page 34: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

改良モデル

改良モデル

領域を 4分割し,各領域の出次数に関する制約を追加する.

1 2 3 4

2 1 4 3

? -

?

6��

?

?

?-

6- -

?

?

?�

?�

?

左上領域の出次数 = +2

右上領域の出次数 = +2

左下領域の出次数 = −2

右下領域の出次数 = −2

32 / 39

Page 35: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

追加制約

追加制約

解を漏らす可能性はあるが,高速化のための追加制約を検討する

(追加制約 1) 回り道をしない

(追加制約 2) すべてのマスを通る

追加制約 1では,以下の経路を排除する.

追加制約 2では,各白マス u について以下を追加する.

入次数 (u) = 1 出次数 (u) = 1

33 / 39

Page 36: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

性能評価 (予備実験)

問題番号 048 110 127 158 160 190列数 15 42 15 12 12 48行数 15 25 15 12 12 35

基本 551 703 – 335 759 –改良 480 49 – 187 283 –基本+2 36 47 – 26 178 –改良+2 49 23 – 30 140 –基本+1 37 175 – 36 167 –改良+1 70 25 – 24 60 –基本+1+2 6 16 6 4 4 34改良+1+2 6 16 7 4 4 30

www.janko.at サイト中の 280問から最も難しい 6問を使用表中の数は,最初の 5個の解探索に要した時間 (秒)

“–” は,1800秒以内に解探索が終了しなかったことを表す

改良モデルのほうが良い追加制約 1, 2どちらでも速度が向上している両方を追加すると大幅に良くなる

34 / 39

Page 37: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

性能評価 (予備実験)

問題番号 048 110 127 158 160 190列数 15 42 15 12 12 48行数 15 25 15 12 12 35

基本 551 703 – 335 759 –改良 480 49 – 187 283 –基本+2 36 47 – 26 178 –改良+2 49 23 – 30 140 –基本+1 37 175 – 36 167 –改良+1 70 25 – 24 60 –基本+1+2 6 16 6 4 4 34改良+1+2 6 16 7 4 4 30

www.janko.at サイト中の 280問から最も難しい 6問を使用表中の数は,最初の 5個の解探索に要した時間 (秒)

“–” は,1800秒以内に解探索が終了しなかったことを表す改良モデルのほうが良い追加制約 1, 2どちらでも速度が向上している両方を追加すると大幅に良くなる

34 / 39

Page 38: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

アルゴリズムデザインコンテストで用いた戦略と結果

2014アルゴリズムデザインコンテストで用いた戦略

改良モデルを用いた.追加制約 1, 2の両方を追加すると大幅に性能向上するが,解を漏らす可能性がある.そのため以下の戦略を用いた.

1 改良モデル+1+2 で解を求める (数十秒程度で終了する).2 改良モデル+1 で解を求める (既知の解は除く).3 改良モデル で解を求める (既知の解は除く).

2014アルゴリズムデザインコンテストでの結果

2分以内で全解を求められた問題 85分以内で全解を求められた問題 12分以内で解を求められた問題 (全解かどうかは不明) 7

結果的には,全解を求めることができた.幸いにして第 1位になった.

昨年度も学生チームに引継ぎ第 1位になった.

35 / 39

Page 39: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

まとめ

SATソルバーは「銀の弾丸」1か?

多くの問題に対する有効な解決手段であることは間違いない.(配線問題だけではなく,配置問題,割当問題,スケジューリング問題など)もちろん,解けない問題も数多く存在するし,専用プログラムのほうが速い場合もあるだろう.

SAT型制約ソルバーを利用しよう.SAT型制約ソルバーを用いれば,簡単に SAT型システムを実現できる.今どき,直接機械語でプログラムする人はいないだろう.

制約モデルを改善することが重要である.SATソルバーに適したモデルを探す.

1狼男や悪魔などを一発で倒すといわれる弾丸.困難な問題を直ちに解決する手段の比喩として用いられる.

36 / 39

Page 40: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

主要なSATソルバー

MiniSat [Een and Sorensson 2003]

http://minisat.se

Clasp [Gebser+ 2007]

http://www.cs.uni-potsdam.de/clasp/

Glucose [Audemard and Simon 2009]

http://www.labri.fr/perso/lsimon/glucose/

Lingeling [Biere 2010]

http://fmv.jku.at/lingeling/

GlueMiniSat [Nabeshima+ 2011]

http://glueminisat.nabelab.org

Sat4j [Le Berre 2010]

http://www.sat4j.org

37 / 39

Page 41: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

参考資料 (1/2)

特集「最近の SAT技術の発展」, 人工知能学会誌, 第 25巻 1号, 2010.

SATソルバーの基礎,高速 SATソルバーの原理,制約最適化問題とSAT符号化,SMT:個別理論を取り扱う SAT技術,モデル列挙とモデル計数,*-SAT: SATの拡張,SATによるプランニングとスケジューリング,SATによるシステム検証

「私のブックマーク: SATソルバー」, 人工知能学会誌, 第 85巻 2号, 2013.

http://www.ai-gakkai.or.jp/my-bookmark vol28-no2/

特集「SAT技術の進化と応用~パズルからプログラム検証まで~」,情報処理,第 57巻 8号 (2016/7/15発行予定)人工知能学会全国大会

http://www.ai-gakkai.or.jp/jsai2016/オーガナイズド・セッション「OS-2 SAT技術の理論,実装,応用」(2016/6/6, 北九州国際会議場)

その他日本ソフトウェア科学会: 全国大会, PPLワークショップ人工知能学会: SIG-FPAI, AIツール入門講座

38 / 39

Page 42: SAT ソルバーは問題解決のための「銀の弾丸」か - …bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdfイントロ SAT とSAT ソルバー CSP とSugar Sugar による問題解決

イントロ SAT と SAT ソルバー CSP と Sugar Sugar による問題解決 まとめ

参考資料 (2/2)

Handbook of Satisfiability, IOS Press, 2009.

Donald E. Knuth: Satisfiability, The Art of ComputerProgramming, Vol.4, Fascicle 6, 2015.

英語版Wikipediaの “The Art of Computer Programming” のページから draftをダウロード可能

SAT 2016国際会議 (2016/7/5-8, フランス ボルドー)http://sat2016.labri.frIndustrial Day: How to solve it with SAT?

SAT/SMT/AR Summer School 2016 (2016/6/22-25, ポルトガル リスボン)

Sugarhttp://bach.istc.kobe-u.ac.jp/sugar/

講演資料http://bach.istc.kobe-u.ac.jp/papers/pdf/jevec2016.pdf

39 / 39