1 / 31

卒論キックオフ

卒論キックオフ. 2005/7/27 1G02P058-6  塚谷 修平. 発表の流れ. SAT 問題とは これまで読んだ論文の概要説明 SAT solver に対するベンチマークの結果 これからの事. 発表の流れ. SAT 問題とは これまで読んだ論文の概要説明 SAT solver に対するベンチマークの結果 これからの事. SAT 問題とは. 充足可能性問題 『 与えられた論理式を充足する変数の割り当てが、少なくとも一つ存在するかどうか 』 SAT 問題は基本的に論理積標準形 (Conjunctive Normal Form) で表現される

barney
Download Presentation

卒論キックオフ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 卒論キックオフ 2005/7/27 1G02P058-6 塚谷 修平

  2. 発表の流れ • SAT問題とは • これまで読んだ論文の概要説明 • SAT solverに対するベンチマークの結果 • これからの事

  3. 発表の流れ • SAT問題とは • これまで読んだ論文の概要説明 • SAT solverに対するベンチマークの結果 • これからの事

  4. SAT問題とは • 充足可能性問題 『与えられた論理式を充足する変数の割り当てが、少なくとも一つ存在するかどうか』 • SAT問題は基本的に論理積標準形(Conjunctive Normal Form)で表現される • 変数(Variable):TrueもしくはFalseの値をとる • Literal:変数もしくは変数の否定を指す 例.¬a , b など • Clause:Literalが論理和で繋がっている形 例.(¬a∨b∨c) • CNF:Clauseが論理積で繋がっている形 例.(¬a∨b∨c)∧(d∨¬e)

  5. SATの研究意義 • NP完全問題 • 指数的コストがかかる • 総当りで試すと最悪の場合2のn乗のコストがかかる • 探索域の削減を課題とする • 最先端のソルバでも解けない問題が沢山ある • 応用分野 • 人工知能・検証・定理証明など

  6. 発表の流れ • SAT問題とは • これまで読んだ論文の概要説明 • SAT solverに対するベンチマークの結果 • これからの事

  7. 読んだ論文 • The Quest for Efficient Boolean Satisfiability Solvers • 効率的にSAT問題を解くためのフレームワーク • Effective Preprocessing in SAT through Variable and Clause Elimination • CNFを小さくするテクニックの紹介

  8. The Quest for Efficient Boolean Satisfiability Solvers

  9. SATソルバのフレームワーク • Boolean SAT問題を解くために、Davis, Putnam, Logemann and LovelandがDPLLという探索アルゴリズムを考案。 • 命題論理式をCNFに変換して解く • SAT問題を幾つかのフェーズにわけて解く 1.Preprocess(前処理) 2.Decision(変数選択) 3.Deduction(推論) 4.Conflict-analysis(矛盾の解析) • 現在、多くのSATがDPLLに基づいて作られている

  10. Preprocessing • SAT問題を解き始める前に、出来るだけ問題を簡単な形にしたい。 • コストをかけずに探索空間を削減したい • Pure literal rule , recuresive learning, and intverter graphs…

  11. Decision(変数選択) • Free Variableの中から、値を割り当てる変数を選び出すフェーズ • 選択アルゴリズム • MOM:最小Clauseの中で最も多く出現するFVを選択する、貪欲アルゴリズム • DLIS:式全体で最も多く出現するFVを選択 • VSIDS:矛盾解析による学習機能を利用してFVを選択

  12. Deduction(推論) • Decisionの結果を判定する • SATISFIABLE(充足可能) →solver終了 • CONFLICT(矛盾) → Conflict_Analysisフェーズへ • UNKNOWN → Decisionフェーズへ • Deduction Mechanism • Unit Clause Rule(Boolean Constraint Propagation) • Pure Literal Rule • BCP mechanism • Counter, Head Tail list, 2-Literal Watching

  13. Unit Clause Rule 例. (a∨b∨¬c∨¬d)というClauseが存在し、仮にa=False , b=False , c=True という割り当てが成されているとする。すると、このClauseがTrueになるためにはdには必ずFalseが割り当てられる。このルールをUnit Clause Ruleと呼ぶ。

  14. Conflict-analysis • Deductionによって矛盾が検知された場合、Backtrackをする必要がある。 • Chronological backtracking • 幅優先探索の挙動をする • ランダムな問題に成果をあげる可能性 • ランダムじゃない問題には効率的でない • Non-Chronological backtracking • 矛盾が発生した原因を解析 • 学習機能 • 再びDecisionもしくはDeductionフェーズに戻る。

  15. 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; } }

  16. Effective Preprocessing in SAT through Variable and Clause Elimination

  17. CNF Minimizer • CNFのサイズを削減するSatELite • SatELiteにおける4つのテクニック • Variable elimination • Subsumption • Self-subsumption • Definition

  18. 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 }が残る

  19. (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と呼ぶ。

  20. 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と呼ぶ。

  21. SatELiteのまとめ • SatELiteの強み • コストが小さい • Solverに組み込む事が容易 • 実用例:SatELiteGTI • SatELiteによるPreprocessing • SolverにはMiniSATを起用

  22. 発表の流れ • SAT問題とは • これまで読んだ論文の概要説明 • SAT solverに対するベンチマークの結果 • これからの事

  23. Benchmark • 目的 • SAT solverを使ってみたかった • SatELiteによるCNF Minimizerの効果の確認 • SatELiteGTIとMiniSATの速度を比較 • 速いSolverとして有名なzChaffとの比較 • 使用solver • SatELiteGTI:Minisat+SatELite。 • Minisat:SatELiteと開発元が同じ • zChaff:速いことで有名なsolver

  24. 使用Solverの性能 Sat Competition2005より引用

  25. Benchmark • 実行環境 • Pave:VT64 Opteron Workstation 4000

  26. Benchmark結果

  27. Benchmark結果 ⊿variable:元のvariable数に対するSatELite処理後の相対割合 ⊿Clause:意味的にvariableと同じ Sec:SatELite処理にかかった時間

  28. Benchmark結果 • 分かった事 • zChaffが解くのに時間を要している問題を、SatELiteGTIが容易く解いている事も。 • 探索時間の長さは、VariableやClauseの数に依存しているわけではない? • しかしSatELiteプロセスによってsolverの性能向上が見られた。 • SatELiteプロセスは時間がかからない

  29. 発表の流れ • SAT問題とは • これまで読んだ論文の概要説明 • SAT solverに対するベンチマークの結果 • これからの事

  30. これからについて • 卒業論文の方向性 • 既存のSolverの高速化 • SatELiteGTIに興味有り • 夏休み(8月~9月)の方向性 • SatELiteGTIに関するデータを取る • 不得手などの特徴をより詳しく調査する • SatELiteGTIのコード解析 • ボトルネックとなっている部分はないか

  31. 参考文献 [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/

More Related