有用学習節獲得戦略に基づく 産業応用向け高速 sat ソルバー...
TRANSCRIPT
![Page 1: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/1.jpg)
有用学習節獲得戦略に基づく産業応用向け高速 SAT ソルバーの開発
H24/1 ~ H26/3
鍋島 英知[email protected]
山梨大学
財団法人 人工知能研究振興財団 第18回 人工知能研究成果発表会
![Page 2: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/2.jpg)
はじめに
SAT = 命題論理式の充足可能性を判定する問題
計算機科学における最も基本的で本質的な組合せ問題
90年代末頃からSAT ソルバーの性能が飛躍的に向上
数百万変数からなる大規模な問題が求解可能に
システム検証,プランニング,スケジューリング,定理証明,制約充足問題など様々な分野で SAT が活用
2
![Page 3: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/3.jpg)
SAT とは?
命題論理の充足可能性判定 (Boolean satisfiability testing)
与えられた命題論理式を真にする値割当てが存在するか否かを判定する問題 充足可能な真偽値割当が存在する: SAT (充足可能)
充足可能な真偽値割当が存在しない: UNSAT (充足不能)
理論上も実際上も計算機科学の中心的課題
最初に NP 完全性が証明された問題 [Cook 71]
クラス NP に属する問題は,多項式時間で SAT に変換可能
NP 完全問題の例
グラフ彩色の決定問題,ハミルトン閉路問題,素因数分解,生産・配送な
どのスケジューリング,時間割作成,レジスタ割り付け,テストケースの生
成,数独,…
3
![Page 4: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/4.jpg)
4
SAT といえば…
80年代
解けない問題の代表例
SAT に帰着できる ⇒ NP 完全なので求解困難!
現在
解くことのできる可能性が高い問題
SAT に帰着できる ⇒ 高速 SAT ソルバーで求解!
![Page 5: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/5.jpg)
5
研究成果の概要
軽量な動的簡単化手法を提案 [Nabeshima+ 13]
求解中に随時 SAT 問題を簡単化
UNSAT の証明に効果的
国際 SAT 競技会 開発した SAT ソルバ GlueMiniSat の戦績
2013 産業応用部門 Certified UNSAT トラック2位
2014 産業応用部門 SAT+UNSAT トラック4位
情報処理学会 設計自動化 (DA) シンポジウム 2014 アルゴリズムデザインコンテスト 1位 Sugar + GlueMiniSat
田村直之, 宋剛秀, 番原睦則(神戸大学), 鍋島英知(山梨大学)
2015 アルゴリズムデザインコンテスト 1位 iSugar + GlueMiniSat 迫龍哉,川原征大,田村直之,番原睦則,宋剛秀(神戸大学), 鍋島英知(山梨大学)
![Page 6: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/6.jpg)
SAT と CNF SAT 問題は通常,連言標準形 (CNF; Conjunctive
Normal Form) で与えられる
CNF 式 は,複数の節の連言 (AND)
節 (clause) は,複数のリテラルの選言 (OR)
リテラル (literal) は,命題変数またはその否定
6
𝑎 ∨ 𝑏 ∨ 𝑐 ∧ 𝑎 ∨ ¬𝑐 ∧ (¬𝑏 ∨ 𝑐)
命題変数
リテラル
節
CNF 式
![Page 7: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/7.jpg)
SAT ソルバー
90年代末に技術的ブレイクスルーがあり,性能が飛躍的に向上 矛盾からの節学習とバックジャンプ法 [Silva+ 99, Bayardo+ 97]
最新 SAT ソルバーは数百万変数の問題を扱うことが可能 2 の百万乗 ≒ 10301030 (30万桁)
最新 SAT ソルバーの要素技術 DPLL 手続き [Davis+ 62]
矛盾からの節学習とバックジャンプ法 [Silva+ 99, Bayardo+ 97]
監視リテラルによる高速単位伝搬 [Moskewicz+ 01]
優れた変数選択ヒューリスティクス [Moskewicz+ 01]
リスタート戦略 [Gomes+ 98, Luby+ 93, Audemard+ 12]
部分解のキャッシング [Pipatsrisawat+ 07]
充足済節の高速判定 [Jain+ 07][Schubert+ 07][Sorensson+ 08]
学習節の優れた評価尺度 [Audemard+ 09, Nabeshima+ 11]
7
![Page 8: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/8.jpg)
{+1}{+1,+2,+4}{+2,+9}{-1,+4,+9}{-2,+3}{-2,-5,+6}{-1,-4,+5}{-5,-3,+7}{-6,+8}{-7,-8}
SAT ソルバの基本アルゴリズム
Lv 0
Lv 1
Lv 2
+1
+2 +3
+4 +6 +7+5
Decision Stack
単位節があれば,それを充足(単位伝搬)
単位節がなければ,適当な変数を選択し真 or 偽を割り当て
矛盾した場合,その原因を解析し,予防する節を学習
Implication
DecisionConflict!
← 単位節
変数選択ヒューリスティクスにより2を選択し,真とする← 単位節
変数選択ヒューリスティクスにより4を選択し,真とする
← 単位節
← 単位節
← 単位節
8
![Page 9: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/9.jpg)
矛盾からの節学習[Silva 99, Bayardo 97]
Reason Side
Conflict Side
Decision
Variable
{+1}{+1,+2,+4}{+2,+9}{-1,+4,+9}{-2,+3}{-2,-5,+6}{-1,-4,+5}{-5,-3,+7}{-6,+8}{-7,-8}
Conflict!
Lv 0
Lv 1
Lv 2
+1
+2 +3
+4 +6 +7+5
Decision Stack
+1@0
+4@2 +5@2
+6@2
+7@2
+8@2
-8@2
+3@1
+2@1
First UIP
Implication Graph
9
+2 ∧ +5 ∧ +3 がそろうと,必ず矛盾する
節 -2 ∨ -5 ∨ -3 を学習し,探索空間を削減
![Page 10: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/10.jpg)
単位伝搬の重要性
10
環境や問題にも依存するが,1秒間に数百万変数を伝搬
単位伝搬は SAT ソルバの処理時間の大半を占める
単位伝搬80 ~ 90%
頻繁に実行される単位伝搬処理の特長を生かし,求解中に節を簡単化する軽量な手法を提案
![Page 11: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/11.jpg)
11
Bin Resolvents Extraction
BCP is executed very frequently (80 ~ 90% of running time)
We can identify the earliest dominator for each propagated literal with a constant time [Han+ 11]
x1@5 x2@5 x3@5
x4@5
x6@5
x7@5
x8@5
x9@5
y@3
x5@5[x1] [x1] [x1]
[x1]
[x6]
[x6]
[x6]
{ -x1, x2 }
{ -x2, x3 }
{ -x2, x4 }
{ -x2, -x3, -x4, x5 }
𝒙𝟏 → 𝒙𝟐
𝒙𝟏 → 𝒙𝟑
𝒙𝟏 → 𝒙𝟒
𝒙𝟏 → 𝒙𝟓
𝒙𝟔 → 𝒙𝟕
𝒙𝟔 → 𝒙𝟖
𝒙𝟔 → 𝒙𝟗
O(n2) bin resolvents in the worst case
How to manage many bin resolvents?
![Page 12: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/12.jpg)
For each literal, only one dominator is preserved
Dominators are stored to an array premise[] whose size is # lits
premise[q] denotes a dominator of q (that is, premise[q] → q)
When q is propagated in BCP and has the earliest dominator,
premise[q] is updated by the dominator
Key Point
12
Management of Bin Resolvents
In [Han+ 11], bin resolvents are added to clause database
BCP speed decreases when a lot of bin resolvents are generated
Duplicated or redundant bin resolvents should be removed
![Page 13: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/13.jpg)
13
On-The-Fly Probing Probing as preprocessing technique [Berre 01, Lynce 03]
Necessary assignment probing
Equivalent literal probing
Binary clause probing
if (preold[y] = ¬prenew[y]) y = true
if (preold[y] = ¬pre[¬y] or prenew[y] = ¬pre[¬y]) x = y
if (preold[y] == ¬pre[prenew[y]] orprenew[y] == ¬pre[preold[y]) y = true
Applied immediately when pre[y] is updated
Checking cost of probing for y is O(1)
![Page 14: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/14.jpg)
14
On-the-fly Self-Subsuming Resolution
CDCL solvers scan frequently literals in a clause
SSR can be checked simultaneously with such scan
In unit propagation and removal of satisfied clauses,
Unwatched literal elimination with O(1)
In conflict analysis,
Parent clause simplification with O(1)
Learned clause minimization with O(m) m: clause length
if (pre[wi] == xj or pre[¬xj] == ¬wi) remove xj
![Page 15: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/15.jpg)
15
On-Demand Addition of Bin Resolvents
x1@5 x2@5
x3@5
x4@5[x1] [x1] [x1]
[x1]
On-demand binary resolvent addition does not add a duplicate resolvent is executed after every BCP process
![Page 16: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/16.jpg)
16
Experimental Results
Simp Tech # Solved Diff
MINISAT 2.2 - 770 (395 + 375) -
lazy simp 766 (381 + 385) -4 (-14 + 10)
GLUEMINISAT
2.2.7p
- 861 (383 + 478)
check only 860 (382 + 478) -1 ( -1 + 0)
lazy simp 874 (386 + 488) 13 ( 3 + 10)
LINGELING
587f
- 846 (375 + 471) -
unhiding 867 (390 + 477) 21 ( 15 + 6)
Almost no difference between GLUEMINISAT without lazy simp and check only
Checking time of lazy simp takes roughly 1% of total running time
Lazy simp is effective for UNSAT instances
Unhiding is effective for SAT instances
![Page 17: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/17.jpg)
SAT 競技会 SAT ソルバーの性能を理論面ではなく実用面で評価する場とし
て2002年より国際競技会が開催
参加ソルバーのソースコードは基本的に公開
新規参加者が優秀なソルバーのアルゴリズム&実装を参考にできるため
非常に競争が激しい
Applications 部門
モデル検査,プランニング,暗号,バイオインフォマティクスなど,多様な応用問題からなる
最新 SAT ソルバーの実問題における威力を見せることを意図しており,最も重視されている部門
Crafted 部門 ソルバーにとって非常に困難な組合せ問題(パズルゲームなど)
Random 部門 ランダム k-SAT 問題からなる
SAT の計算複雑性へのチャレンジ17
![Page 18: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/18.jpg)
18
SAT 2013 Competition Results
Application SAT 19th (31 solvers)
Application certified UNSAT 2nd (11 solvers)
Application SAT+UNSAT 12th (29 solvers)
Application Hard combinatorial Open
Gold Silver Bronze Gold Silver Bronze Gold Silver Bronze
SAT+UNSAT
Lingeling
aqw
Lingeling
587fZENN0.1.0
BreakIDGlucose
gluebit_clasp 1.0
glucose2.3
CSHCpar8
MIPSatGlucoRed+March
r531
SATLingeling
aqw
ZENN
0.1.0satUZK
48glucose
2.3gluebit_clasp 1.0
BreakIDGlucose
probSATSC13
Sattime2013
Ncca+ V 1.0
Cert.UNSAT
glucose2.3
Glue
MiniSatRiss3g Riss3g
glucose2.3
forl drup-nocaches
tamp- - -
証明つき UNSAT 部門で2位入賞
![Page 19: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/19.jpg)
19
SAT 2014 Competition Results
Application SAT 10th (24 solvers)
Application certified UNSAT (参加せず)
Application SAT+UNSAT 4th (22 solvers)
Application Hard combinatorial Open
Gold Silver Bronze Gold Silver Bronze Gold Silver Bronze
SAT+UNSAT
Lingeling
ayv
SWDiA5
BYRiss
BlackBoxglueSplit_
claspLingeling
SparrowToRiss
- - -
SATminisat_
blbd
Riss
BlackBoxSWDiA5
BYSparrowT
oRissCCAnr+glucose
SGSeqDimetheus
BalancedZ
CSCCSat2014
Cert.UNSAT
Lingeling(druplig)
glucoseSWDiA5
BYRiss
BlackBoxLingeling(druplig)
glucose - - -
軽量な動的簡単化手法を拡張&再実装 SAT+UNSAT 部門で4位
![Page 20: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/20.jpg)
21
アルゴリズムデザインコンテスト
半導体設計技術に関する国内最大級の研究会であるDAシンポジウムの併設イベントとして2012年より開催
ニコリのパズル「ナンバーリンク」を解く競技会
ICやボード上の配線経路を求める1層平面配線問題に相当
http://www.sig-sldm.org/DC2015/ADC2015results1.pdf
![Page 21: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/21.jpg)
22
アルゴリズムデザインコンテスト結果 SAT 型 CSP ソルバ Sugar と SAT ソルバ GlueMiniSat
の組合せで参戦
2014年7チーム中1位 (Sugar + GlueMiniSat) 田村直之, 宋剛秀, 番原睦則(神戸大学), 鍋島英知(山梨大学)
2015年7チーム中1位 (iSugar + GlueMiniSat) 迫龍哉,川原征大,田村直之,番原睦則,宋剛秀(神戸大学), 鍋島英知(山梨大学)
SAT 問題
SAT の解
CSP
CSP の解
符号化
復号化
高速 SAT ソルバー
原問題モデリング
原問題の解解釈
高級言語 低級言語
![Page 22: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1](https://reader033.vdocuments.net/reader033/viewer/2022042921/5f6be727e8e1497ba01be061/html5/thumbnails/22.jpg)
23
研究成果のまとめ
軽量な動的簡単化手法を提案 [Nabeshima+ 13]
「数打てば当たる」を基本方針として,軽量な検査を求解中に頻繁に実行
命題変数の真偽値確定,等価リテラルの検出,制約(節)の強化等
UNSAT の証明に効果的
国際 SAT 競技会 2013 産業応用部門 Certified UNSAT トラック2位
2014 産業応用部門 SAT+UNSAT トラック4位
情報処理学会 設計自動化シンポジウム 2014 アルゴリズムデザインコンテスト 1位 Sugar + GlueMiniSat
田村直之, 宋剛秀, 番原睦則(神戸大学), 鍋島英知(山梨大学)
2015 アルゴリズムデザインコンテスト 1位 iSugar + GlueMiniSat 迫龍哉,川原征大,田村直之,番原睦則,宋剛秀(神戸大学), 鍋島英知(山梨大学)
開発した SAT ソルバはバックエンドの推論エンジンとして利用可能