有用学習節獲得戦略に基づく 産業応用向け高速 sat ソルバー...

22
有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバーの開発 H24/1 H26/3 鍋島 英知 [email protected] 山梨大学 財団法人 人工知能研究振興財団 第18回 人工知能研究成果発表会

Upload: others

Post on 24-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

有用学習節獲得戦略に基づく産業応用向け高速 SAT ソルバーの開発

H24/1 ~ H26/3

鍋島 英知[email protected]

山梨大学

財団法人 人工知能研究振興財団 第18回 人工知能研究成果発表会

Page 2: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

はじめに

SAT = 命題論理式の充足可能性を判定する問題

計算機科学における最も基本的で本質的な組合せ問題

90年代末頃からSAT ソルバーの性能が飛躍的に向上

数百万変数からなる大規模な問題が求解可能に

システム検証,プランニング,スケジューリング,定理証明,制約充足問題など様々な分野で SAT が活用

2

Page 3: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

SAT とは?

命題論理の充足可能性判定 (Boolean satisfiability testing)

与えられた命題論理式を真にする値割当てが存在するか否かを判定する問題 充足可能な真偽値割当が存在する: SAT (充足可能)

充足可能な真偽値割当が存在しない: UNSAT (充足不能)

理論上も実際上も計算機科学の中心的課題

最初に NP 完全性が証明された問題 [Cook 71]

クラス NP に属する問題は,多項式時間で SAT に変換可能

NP 完全問題の例

グラフ彩色の決定問題,ハミルトン閉路問題,素因数分解,生産・配送な

どのスケジューリング,時間割作成,レジスタ割り付け,テストケースの生

成,数独,…

3

Page 4: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

4

SAT といえば…

80年代

解けない問題の代表例

SAT に帰着できる ⇒ NP 完全なので求解困難!

現在

解くことのできる可能性が高い問題

SAT に帰着できる ⇒ 高速 SAT ソルバーで求解!

Page 5: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

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

SAT と CNF SAT 問題は通常,連言標準形 (CNF; Conjunctive

Normal Form) で与えられる

CNF 式 は,複数の節の連言 (AND)

節 (clause) は,複数のリテラルの選言 (OR)

リテラル (literal) は,命題変数またはその否定

6

𝑎 ∨ 𝑏 ∨ 𝑐 ∧ 𝑎 ∨ ¬𝑐 ∧ (¬𝑏 ∨ 𝑐)

命題変数

リテラル

CNF 式

Page 7: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

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

{+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

矛盾からの節学習[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

単位伝搬の重要性

10

環境や問題にも依存するが,1秒間に数百万変数を伝搬

単位伝搬は SAT ソルバの処理時間の大半を占める

単位伝搬80 ~ 90%

頻繁に実行される単位伝搬処理の特長を生かし,求解中に節を簡単化する軽量な手法を提案

Page 11: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

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

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

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

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

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

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

SAT 競技会 SAT ソルバーの性能を理論面ではなく実用面で評価する場とし

て2002年より国際競技会が開催

参加ソルバーのソースコードは基本的に公開

新規参加者が優秀なソルバーのアルゴリズム&実装を参考にできるため

非常に競争が激しい

Applications 部門

モデル検査,プランニング,暗号,バイオインフォマティクスなど,多様な応用問題からなる

最新 SAT ソルバーの実問題における威力を見せることを意図しており,最も重視されている部門

Crafted 部門 ソルバーにとって非常に困難な組合せ問題(パズルゲームなど)

Random 部門 ランダム k-SAT 問題からなる

SAT の計算複雑性へのチャレンジ17

Page 18: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

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

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

21

アルゴリズムデザインコンテスト

半導体設計技術に関する国内最大級の研究会であるDAシンポジウムの併設イベントとして2012年より開催

ニコリのパズル「ナンバーリンク」を解く競技会

ICやボード上の配線経路を求める1層平面配線問題に相当

http://www.sig-sldm.org/DC2015/ADC2015results1.pdf

Page 21: 有用学習節獲得戦略に基づく 産業応用向け高速 SAT ソルバー …有用学習節獲得戦略に基づく 産業応用向け高速SAT ソルバーの開発 H24/1

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

23

研究成果のまとめ

軽量な動的簡単化手法を提案 [Nabeshima+ 13]

「数打てば当たる」を基本方針として,軽量な検査を求解中に頻繁に実行

命題変数の真偽値確定,等価リテラルの検出,制約(節)の強化等

UNSAT の証明に効果的

国際 SAT 競技会 2013 産業応用部門 Certified UNSAT トラック2位

2014 産業応用部門 SAT+UNSAT トラック4位

情報処理学会 設計自動化シンポジウム 2014 アルゴリズムデザインコンテスト 1位 Sugar + GlueMiniSat

田村直之, 宋剛秀, 番原睦則(神戸大学), 鍋島英知(山梨大学)

2015 アルゴリズムデザインコンテスト 1位 iSugar + GlueMiniSat 迫龍哉,川原征大,田村直之,番原睦則,宋剛秀(神戸大学), 鍋島英知(山梨大学)

開発した SAT ソルバはバックエンドの推論エンジンとして利用可能