木探索によるCSPの解法 (Tree search algorithms for solving CSPs) 認知システム論 制約充足( 2 ) 制約をみたす組合せを探すエージェント バックトラック法 フォワードチェック 動的変数順序.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

List decoding for Reed-Muller codes and its application to polar codes 安永 憲司 東京工業大学 大学院情報理工学研究科 数理・計算科学専攻 1.
一階述語論理 (first-order predicate logic) 一階述語論理入門 構文論(論理式の文 法) 意味論(論理式の解 釈) 認知システム論 知識と推論(4) 知識と論理でを組み合わせて問題を解決する.
Problem J: いにしえの数式 問題作成・解説: 北村 解答作成協力: 八森.
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
タスクスケジューリング    .
融合原理による推論 (resolution)
アルゴリズムとデータ構造 2013年6月18日
アルゴリズムとデータ構造1 2005年7月8日
Ex7. Search for Vacuum Problem
Ex8. Search for Vacuum Problem(2)
    有限幾何学        第8回.
Constraint Networks 2.2~2.3 5月7日 上田研究室 M2 西村 光弘.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
卒論キックオフ 2005/7/27 1G02P058-6 塚谷 修平.
アルゴリズムとデータ構造 2012年7月23日
アルゴリズムとデータ構造 2012年6月14日
整数計画法を用いた ペグソリティアの解法 ver. 2.1
アルゴリズムとデータ構造 補足資料4-2 「線形探索」
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
アルゴリズムとデータ構造 2011年7月14日
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
ベイジアンネットワーク概説 3.6 構造の探索アルゴリズム
アルゴリズムとデータ構造 補足資料10-2 「nクイーン」
アルゴリズムとデータ構造 2011年6月14日
アルゴリズムとデータ構造 2011年6月20日
充足可能性問題SAT (Satisfiability Problem)
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
大域的データフロー解析 流れグラフ 開始ブロック 基本ブロックをnodeとし、 基本ブロック間の制御関係をedgeとするグラフを、
第7回 条件による繰り返し.
局所探索によるCSPの解法 (Local search algorithms for solving CSPs)
局所整合と局所探索 (Local Consistency and Local Search)
局所探索によるCSPの解法 (Local search algorithms for solving CSPs)
制約充足問題 (Constraint Satisfaction Problems)
制約充足と反復改良 (Constraint Satisfaction and Iterative Improvement)
シャノンのスイッチングゲームにおけるペアリング戦略について
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
九州大学大学院 情報学専攻特別講義 (9) ブーリアンネットワークの 解析と制御
動的スライスを用いた バグ修正前後の実行系列の比較
制約処理に関する ミニサーベイ 栗 原 正 仁.
アルゴリズムとデータ構造 2013年7月25日
PROGRAMMING IN HASKELL
アルゴリズムとデータ構造1 2006年7月4日
離散数学 08. グラフの探索 五島.
第7回 条件による繰り返し.
制約充足問題(つづき) (Constraint Satisfaction Problems)
レジスタの割付け 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第12章5節.
木探索によるCSPの解法 (Tree search algorithms for solving CSPs)
制約充足問題 (Constraint Satisfaction Problems)
A Simple Algorithm for Generating Unordered Rooted Trees
離散数学 07. 木 五島.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
ファジィ制約充足問題への 連続領域の導入 Introducing continuous domains to
任意数の制約階層化 2007/10/31 上田研究室 M2 西村 光弘.
アルゴリズムとデータ構造 2011年7月21日
Ex7. Search for Vacuum Problem
再帰的手続き.
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
アルゴリズムとデータ構造 2011年7月8日課題の復習
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造1 2009年7月2日
述語論理式の構文と意味 一階述語論理式の構文 一階述語論理式の意味 述語,限量記号 自然言語文の述語論理式表現 解釈 妥当,充足不能
分枝カット法に基づいた線形符号の復号法に関する一考察
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
アルゴリズムとデータ構造 2012年6月21日
参考:大きい要素の処理.
ソフトウェア制作論 平成30年10月17日.
Static Enforcement of Security with Types
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

木探索によるCSPの解法 (Tree search algorithms for solving CSPs) 認知システム論 制約充足( 2 ) 制約をみたす組合せを探すエージェント バックトラック法 フォワードチェック 動的変数順序

制約充足問題 (CSP) とは(復 習) 変数 (variable) の集合 各変数の領域 (domain) 変数間の制約 (constraint) の集合 CSP すべての制約を満たすよう な変数への値の割当て 解 x 1 x 2 … x n D 1 D 2 … D n C ij ={(a,b),(c,d),…} 変数 x i -x j 間で許される値の組の集合. 与えられた組 (u,v) が許されるか否か を判定する関数 allowed(i,j,u,v) でも良 い. x 1 = a 1 x 2 = a 2 … x n = a n

制約充足問題の例(復習) n クイーン問題 (n queens problem) クロスワードパズル (crossword puzzles) グラフ彩色問題 (graph coloring) 線画解釈 (interpretation of line drawings) レイアウト (layout) スケジューリング (scheduling)

制約充足アルゴリズム (Constraint Solving) バックトラック法 + フォワードチェック + 動的変数順序

バックトラック法 (1) 深さ優先探索 各レベルで1つの変数の 値を選択する 解となる可能性のない経 路を早めに検出して後戻 り (backtrack) する フォワードチェック (forward checking) 動的な変数順序付け (dynamic variable ordering) などと組み 合わせると 効果的 Backtracking

バックトラック法 (2) 概要 前進 これまでの部分解との間に 制約違反がないように部分解を拡張 後退 a1a1 x1x1 a2a2 x2x2 a3a3 x3x3 a4a4 x4x4 部分解 a1a1 x1x1 a2a2 x2x2 a3a3 x3x3 a’ 4 x4x4 x1x1 x2x2 x3x3 x4x4 x5x5 a1a1 a2a2 a3a3 a4a4 a5a5 O K! 拡張できないときは, 後戻りをして直前の選択をやりなおす 前 進後 退 a1a1 x1x1 a2a2 x2x2 a3a3 x3x3 a4a4 x4x4 x5x5

バックトラック法 (3) 4クイーンでの動作 Q Q Q Q Q Q 1234 Q 解 1234 1234 1234 x1x1 x2x2 x3x3 x4x4

バックトラック法 (4) アルゴリズ ム /* メイン */ すべての変数 x[ i ] の値を⊥(未設定)にする. BACKTRACK( 1 ); boolean BACKTRACK(int depth) { if( すべての i について x[ i ] ≠ ⊥ ) return true; int j ← x[j]= ⊥であるような変数番号 j から任意の1 つ;... x1x1 x2x2 x3x3 x4x4 x5x5 a1a1 a2a2 a7a7 a4a4 ⊥ x6x6 ⊥ x7x7 ⊥ x8x8 ⊥ j = 5

バックトラック法 (5) アルゴリズム (続き) boolean BACKTRACK(int depth) { if( すべての i について x[ i ] ≠ ⊥ ) return true; int j ← x[j]= ⊥であるような変数番号 j から任意の1 つ; for each b in list D[j] { if(x[j]=b と現在の x の設定間に制約違反がない ) { x[j]←b ; if(BACKTRACK(depth+1)) return true; x[j]← ⊥ ; } } return false; } LOOK BACK

boolean BACKTRACK(int depth) { if(depth > n) return true; int j ← depth ; for each b in list D[j] { OK ← true; for i ← 1 to j - 1 { if(!allowed(i,j,x[i],b)) { OK ← false; break; } } if(OK){ x[j]←b ; if(BACKTRACK(depth+1)) return true; x[j]← ⊥ ; } } return false; } LOOK BACK X 1 , X 2, … , X n の順序で値を割り当てていく. x1x1 x2x2 x3x3 x4x4 x5x5 a1a1 a2a2 a3a3 a4a4 ⊥ x6x6 ⊥ x7x7 ⊥ x8x8 ⊥ j = depth = 5

制約充足アルゴリズム (Constraint Solvers) バックトラック法 + フォワードチェック + 動的変数順序

フォワードチェック (1) a1a1 x1x1 a2a2 x2x2 a3a3 x3x3 a4a4 x4x4 部分解 前進 部分解を拡張 すでにOKと なっている これ以降の変数の領域から a 5 と矛盾するすべての値を削除 a1a1 x1x1 a2a2 x2x2 a3a3 x3x3 a4a4 x4x4 a5a5 x5x5 x6x6 x7x7 xnxn いずれかの領域が 空になったら 後戻り 先読みにより前方をチェック する Forward Checking

フォワードチェック (2) うまくいく例 AFT ALE EEL HEEL HIKE HOSES KEEL KNOT LASER LEE LINE SAILS SHEET STEER TIE x1x1 x2x2 x 8 に入 る 単語が ない! HOSE E E T H S

フォワードチェック (3) アルゴリズ ム boolean BACKTRACK-FC(int depth) { if( すべての i について x[i] ≠ ⊥ ) return true; int j ← x[j]= ⊥であるような変数番号 j から任意の1 つ; for each b in list D[j] { x[i] = ⊥であるすべての変数 x[i] の領域 D[i] から x[j] = b と矛盾する値を削除する ; if( 空の領域が生じなかった ) { x[j]←b ; if(BACKTRACK-FC(depth+1)) return true; x[j]← ⊥ ; } 変数の領域を,値の削除前の状態に戻す; } return false; } LOOK FORWARD

制約充足アルゴリズム (Constraint Solvers) バックトラック法 + フォワードチェック + 動的変数順序

動的変数順序 (1) Dynamic Variable Ordering boolean BACKTRACK-FC(int depth) { if ( 全変数に値の割当てがある ) return true; int j ← x[j]= ⊥であるような変数番号 j から任意の1 つ; どの変数を選んだらよいか? 最小領域ヒューリスティック 領域に含まれる値の個数が最小である変数を選ぶ 最大制約ヒューリスティック まだ値の割当てられていない変数との間の制約の個 数が最大である変数を選ぶ 1 2 タイブレイク(引き分けの とき)

動的変数順序 (2) グラフ彩色の例(3 色) RGB 領域 =3 制約 =2 RGB RGB RGB RGB 領域 =3 制約 =4 領域 =3 制約 =3 領域 =3 制約 =4 領域 =2 制約 =1 RGB 領域 =3 制約 =2 領域 =2 制約 =2 領域 =2 制約 =3 領域 =3 制約 =2

実験による性能比較 ProblemBTBT+DVOBT+FCBT +FC +DVO USA>1,000,000 2,00060 n-Queens>40,000,00013,500,00040,000,000817,000 Zebra3,859,0001,00035, Random 1415,0003,00026,0002,000 Random 2942,00027,00077,00015,000 BT=backtracking FC=forward checking DVO=dynamic variable ordering 数値は制約のチェック回数