卒論キックオフ

Download Report

Transcript 卒論キックオフ

卒論キックオフ
2005/7/27
1G02P058-6 塚谷 修平
1
発表の流れ




SAT問題とは
これまで読んだ論文の概要説明
SAT solverに対するベンチマークの結果
これからの事
2
発表の流れ




SAT問題とは
これまで読んだ論文の概要説明
SAT solverに対するベンチマークの結果
これからの事
3
SAT問題とは

充足可能性問題
『与えられた論理式を充足する変数の割り当てが、少
なくとも一つ存在するかどうか』

SAT問題は基本的に論理積標準形(Conjunctive
Normal Form)で表現される


変数(Variable):TrueもしくはFalseの値をとる
Literal:変数もしくは変数の否定を指す
例.¬a , b など

Clause:Literalが論理和で繋がっている形
例.(¬a∨b∨c)

CNF:Clauseが論理積で繋がっている形
例.(¬a∨b∨c)∧(d∨¬e)
4
SATの研究意義

NP完全問題

指数的コストがかかる




総当りで試すと最悪の場合2のn乗のコストがかか
る
探索域の削減を課題とする
最先端のソルバでも解けない問題が沢山ある
応用分野

人工知能・検証・定理証明など
5
発表の流れ




SAT問題とは
これまで読んだ論文の概要説明
SAT solverに対するベンチマークの結果
これからの事
6
読んだ論文

The Quest for Efficient Boolean
Satisfiability Solvers


効率的にSAT問題を解くためのフレームワーク
Effective Preprocessing in SAT through
Variable and Clause Elimination

CNFを小さくするテクニックの紹介
7
The Quest for Efficient
Boolean Satisfiability Solvers
8
SATソルバのフレームワーク
Boolean SAT問題を解くために、Davis,
Putnam, Logemann and LovelandがDPLLと
いう探索アルゴリズムを考案。



命題論理式をCNFに変換して解く
SAT問題を幾つかのフェーズにわけて解く
1.Preprocess(前処理)
2.Decision(変数選択)
3.Deduction(推論)
4.Conflict-analysis(矛盾の解析)

現在、多くのSATがDPLLに基づいて作られている
9
Preprocessing

SAT問題を解き始める前に、出来るだけ問
題を簡単な形にしたい。


コストをかけずに探索空間を削減したい
Pure literal rule , recuresive learning, and
intverter graphs…
10
Decision(変数選択)


Free Variableの中から、値を割り当てる変
数を選び出すフェーズ
選択アルゴリズム



MOM:最小Clauseの中で最も多く出現するFV
を選択する、貪欲アルゴリズム
DLIS:式全体で最も多く出現するFVを選択
VSIDS:矛盾解析による学習機能を利用して
FVを選択
11
Deduction(推論)

Decisionの結果を判定する




Deduction Mechanism



SATISFIABLE(充足可能) →solver終了
CONFLICT(矛盾) → Conflict_Analysisフェーズへ
UNKNOWN → Decisionフェーズへ
Unit Clause Rule(Boolean Constraint Propagation)
Pure Literal Rule
BCP mechanism

Counter, Head Tail list, 2-Literal Watching
12
Unit Clause Rule
例.
(a∨b∨¬c∨¬d)というClauseが存在し、仮
にa=False , b=False , c=True という割り
当てが成されているとする。すると、この
ClauseがTrueになるためにはdには必ず
Falseが割り当てられる。このルールをUnit
Clause Ruleと呼ぶ。
13
Conflict-analysis

Deductionによって矛盾が検知された場合、
Backtrackをする必要がある。

Chronological backtracking




Non-Chronological backtracking



幅優先探索の挙動をする
ランダムな問題に成果をあげる可能性
ランダムじゃない問題には効率的でない
矛盾が発生した原因を解析
学習機能
再びDecisionもしくはDeductionフェーズに戻る。
14
DPLLコード
status = preprocess();
if (status!=UNKNOWN) return status;
while(1) {
decide_next_branch();
while (true) {
status = deduce();
if (status == CONFLICT) {
blevel = analyze_conflict();
if (blevel == 0)
return UNSATISFIABLE;
else backtrack(blevel);
}
else if (status == SATISFIABLE)
return SATISFIABLE;
else break;
}
}
15
Effective Preprocessing in SAT
through Variable and Clause
Elimination
16
CNF Minimizer


CNFのサイズを削減するSatELite
SatELiteにおける4つのテクニック




Variable elimination
Subsumption
Self-subsumption
Definition
17
Variable Elimination
例題1 (CはClauseとする)
C1={ x ∨ a1 ∨ … ∨ an }
C2={ ¬x ∨ b1 ∨ … ∨ bm }
上記の2つのClauseを伴っているClauseは
C = { a1 ∨ … ∨ an ∨ b1 ∨ … ∨ bm }
と置き換えることができる。
∵仮にxにbool値を入れた場合
x=Trueならば、 { b1 ∨ … ∨ bm } が残る
x=Falseならば、 { a1 ∨ … ∨ an }が残る
18
(Self-)Subsumption
例題2
C1⊆C2 (C1 subsume C2 )の時、 C2を除去する。
この処理をSubsumptionと呼ぶ。
例題3
C1 ={ x ∨ a ∨ b } , C2 ={ ¬x ∨ a}
(C2があと少しでC1をsubsumeしそう)
この時、xのresolveで
C1’={ a ∨ b}
と変換でき、 C1’ はC1をsubsumeしている。
このケースの事をSelf-subsumptionと呼ぶ。 19
Definition

論理回路に関するSAT問題



Tseitin Transformation
入力に対して回路の出力は特定の形を成す
具体例
論理積回路 x=a∧b
{ x ∨ ¬a ∨ ¬b }∧{ ¬x ∨ a }∧{ ¬x ∨ b }
論理和回路 x=a∨b
{ ¬x ∨ a ∨ b }∧{ x ∨ ¬a }∧{ x ∨ ¬b }
このように、xがCNFを回路で表現できる事をxの
definitionと呼ぶ。
20
SatELiteのまとめ

SatELiteの強み



コストが小さい
Solverに組み込む事が容易
実用例:SatELiteGTI


SatELiteによるPreprocessing
SolverにはMiniSATを起用
21
発表の流れ




SAT問題とは
これまで読んだ論文の概要説明
SAT solverに対するベンチマークの結果
これからの事
22
Benchmark

目的


SAT solverを使ってみたかった
SatELiteによるCNF Minimizerの効果の確認



SatELiteGTIとMiniSATの速度を比較
速いSolverとして有名なzChaffとの比較
使用solver



SatELiteGTI:Minisat+SatELite。
Minisat:SatELiteと開発元が同じ
zChaff:速いことで有名なsolver
23
使用Solverの性能
Sat Competition2005より引用
1st Stage
Trials Solved Random Crafted Industrial
zChaff
1657
584
16
266
302
MiniSAT
1657
731
56
299
376
SatELiteGTI
1657
768
50
312
402
2nd Stage
Trials Solved Random Crafted Industrial
zChaff
741
507
0
310
197
MiniSAT
1109
658
78
330
250
SatELiteGTI 1124
696
79
350
267
24
Benchmark

実行環境

Pave:VT64 Opteron Workstation 4000
25
Benchmark結果
1
2
3
4
5
6
7
8
9
variable Clause zChaff
SatELiteGTI MiniSAT
433
1458
0.27
0.15
0.13
1312 16856
2.56
0.94
0.71
4133 31515
3.22
0.39
0.23
1076
3677
25.87
13.15
4.59
11282 69529
49.99
22.91
22.98
47273 153368
151.77
8.25
28.04
1612
9373 1539.73
63.17 134.28
5444 34509 1149.14
272.78 394.11
10316 62943
884.18
366.74 510.15
26
Benchmark結果
1
2
3
4
5
6
7
8
9
SatELiteGTI MiniSAT ⊿variable ⊿Clause sec
0.15
0.13
75%
96% 0.007
0.94
0.71
73%
71% 0.048
0.39
0.23
76%
92% 0.358
13.15
4.59
77%
98% 0.022
22.91
22.98
98%
99% 0.293
8.25
28.04
11%
19% 1.658
63.17 134.28
96%
98% 0.031
272.78 394.11
98%
99%
0.15
366.74 510.15
96%
98% 0.429
⊿variable:元のvariable数に対するSatELite処理後の相対割合
⊿Clause:意味的にvariableと同じ
Sec:SatELite処理にかかった時間
27
Benchmark結果

分かった事


zChaffが解くのに時間を要している問題を、
SatELiteGTIが容易く解いている事も。
探索時間の長さは、VariableやClauseの数に
依存しているわけではない?


しかしSatELiteプロセスによってsolverの性能向上
が見られた。
SatELiteプロセスは時間がかからない
28
発表の流れ




SAT問題とは
これまで読んだ論文の概要説明
SAT solverに対するベンチマークの結果
これからの事
29
これからについて

卒業論文の方向性

既存のSolverの高速化


SatELiteGTIに興味有り
夏休み(8月~9月)の方向性

SatELiteGTIに関するデータを取る


不得手などの特徴をより詳しく調査する
SatELiteGTIのコード解析

ボトルネックとなっている部分はないか
30
参考文献
[1] Lintao Zhang,Sharad Malik: "The Quest for Efficient Boolean
Satisfiability Solvers“
[2] Niklas Eaen and Armin Biere: "Effective Preprocessing in SAT
through Variable and Clause Elimination“
[3] SAT Competitions : http://www.satcompetition.org/
[4] SatELite , Minisat :
http://www.cs.chalmers.se/Cs/Research/FormalMethods/MiniSat
/
[5] zChaff. Boolean Satisfiability Research Group at Princeton:
http://www.princeton.edu/~chaff/zchaff.html/
[6] The Satisfiability Library, SAT-03 Competition Problems :
http://www.satlib.org/
31