1 / 32

ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)

認知システム論 探索( 3 ) 先を読んで知的な行動を選択するエージェント. ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search).  最良優先探索 ( best-first search )  均一コスト探索  欲張り最良優先探索 A * 探索 ヒューリスティック関数について. 最良優先探索の具体的な例. 復習:一般的探索アルゴリズム. 展開する = 子 を産む. A. 未展開 ノードは オープンリスト に並べる. オープンリスト. 子から親へのポインタ. S. T. Z. 必ず先頭から取り除き 展開する. F.

Download Presentation

ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)

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. 認知システム論 探索(3) 先を読んで知的な行動を選択するエージェント ヒューリスティック探索─知識に基づく探索─(Heuristic Search) •  最良優先探索(best-first search) •  均一コスト探索 •  欲張り最良優先探索 • A* 探索 • ヒューリスティック関数について 最良優先探索の具体的な例

  2. 復習:一般的探索アルゴリズム 展開する=子を産む A 未展開ノードはオープンリストに並べる オープンリスト 子から親へのポインタ S T Z 必ず先頭から取り除き展開する F F A O R 戦略に基づいて適切な位置に挿入 子 B

  3. 経路コストの導入 初期状態 O 経路コスト 71 N 87 75 Z 151 I 140 A 92 99 S F V 118 80 最適解 211 T 142 R ゴール 111 97 L P H 70 85 98 146 U 86 101 B M E 75 138 120 90 D C G

  4. 最良優先探索(best-first search) オープンリスト A 5 T7 Z10 O15 R16 評価関数 (evaluation function)f(n) の小さい順になるよう挿入 評価値>0 B8 • 評価関数の決め方によっていろいろなバリエーションがある • 1.均一コスト探索 • 2.欲張り最良優先探索 • 3.A* 探索 ベストに見えるものを優先的に展開

  5. 初期状態 現在状態 a0 b5 n8 5 3 1.均一コスト探索(uniform cost search) 初期状態からそのノードnまでの経路コスト g(n)を評価関数とする最良優先探索 ゴールに向かってのシャープな探索になっていない g(n)= 5+3 = 8 全オペレータのコスト=1なら,幅優先探索と同じ動作となる

  6. 均一コスト探索の実行 オペレータのコスト 経路コスト g(n)の低い順に展開 0 4 1 経路コスト1+2=3 1 4 オープンリスト 2 1 2 3 3 2 6 7 9 2 7 7 12 5 9 9 IN OUT 経路コスト g(n) の昇順になるように挿入 8

  7. 均一コスト探索の最適性 ただし,オペレータのコストは非負とする S 0 A 1 10 15 1 start goal 5 A B C 5 5 1 5 15 S B G 10 5 15 5 G G 11 10 C 展開のために選択してゴールと判定 展開のために選択したときにゴールと判定する

  8. 均一コスト探索の性質 • 完全性(completeness) あり解があれば必ず見つける •  最適性(optimality) あり最適解を最初に見つける • 時間計算量(time complexity)指数的 bd(b:分枝率,d:解の深さ) • 空間計算量(space complexity)指数的 bd 幅優先探索と同じ

  9. 2.欲張り最良優先探索(greedy best-first search) そのノードnからゴールまでの予想コスト h(n)を評価関数とする最良優先探索 初期状態 現在状態 a0 b5 n8 5 3 h(n) ヒューリスティック関数ノードからゴールまでの最短経路コストの見積りこれの小さい順に展開 ゴール g

  10. ヒューリスティック(heuristic)とは? • 語源: アルキメデスが風呂で浮力の法則を発見したときに叫んだ”Heurika !”(ユーリカ!発見した!) • 経験から発見した知識のこと • 最悪ケースの性能は必ずしも上げないが,平均的または典型的にはうまくいく手法

  11. ヒューリスティック関数の例:直線距離 初期状態 Z 374 h(n) = nからゴールまでの直線距離 A S 253 ゴール 329 T B

  12. 欲張り最良優先探索は最適性がない hの値(直線距離) 欲張ってこっちにこだわった (欲張り最良優先探索) 374 Z 253 A 178 99 366 S F しかし多くの場合うまくいく 80 329 T 211 193 R 97 P 101 最短経路はこちら!(最適性がない) B 0

  13. 欲張り最良優先探索は完全性がない 374 Z 253 A 366 S 150 T 不適切なヒューリスティクス 150 T1 B 0 150 T2

  14. 欲張り最良優先探索の性質 • 完全性(completeness) なし  解を見つけないことがある • 最適性(optimality) なし  最適解を見つける保証がない • 時間計算量(time complexity)bm (m: 探索木の最大の深さ) • 空間計算量(space complexity)bm 深さ優先探索と同じ

  15. エイスター 3.A* 探索(A* search) 経路全体の予想コスト f(n)=g(n)+h(n)をコスト関数とする最良優先探索 初期状態 n8 現在状態 5 3 g(n) h(n) ゴール ここまでのコスト ここからの予想コスト f(n)=g(n)+h(n)nを経由する最短経路の見積もりコスト これの小さい順に展開

  16. 許容的ヒューリスティック(admissible heuristic) すべてのノードnについて 予想最小コスト h(n) ≦ 実際の最小コスト h*(n)を満たすヒューリスティック関数のこと 楽観的(optimistic)ヒューリスティックとも言う 初期状態 A 予想最小コスト h(n)直線距離 S 253 ゴール R P 実際の最小コスト h*(n)=278 B

  17. A* 探索の性質 • 完全性(completeness) あり!  解があれば必ず見つける •  最適性(optimality) 許容的(楽観的)ヒューリスティクスの場合,あり!  最初に見つけた解は最適解 •  時間計算量(time complexity) • 空間計算量(space complexity) ヒューリスティックの精度に依存

  18. 経路コスト O h 関数の値(直線距離) 71 380 Z 75 374 151 A S 366 253 F 140 178 118 99 80 T 193 329 R 211 97 P 98 B 146 101 0 138 C 160 許容的ヒューリスティクスによりA*が最初に見つける解は最適解 O 671 380 Z 75 449 374 151 A 366 S 366 253 F 140 393 178 118 417 99 80 T 447 193 329 R 211 413 97 P B 98 415 450 B 146 101 418 0 138 C 526 C 615 最適解 160

  19. A*アルゴリズムの最適性の証明 OPENリスト 初期状態 最適解(コストC*) S n G* 探索木 非最適解 G  探索木を成長させるアルゴリズムの動作から考えて,OPENリストは常に,最適解の経路上にあるノードnを少なくとも1つ含み,非最適解のゴールノードGと次の関係を満たす. f(n) = g(n) + h(n) ≦ g(n) + h*(n) = C* < f(G)  よって,必ず,Gより先に n がOPENリストから選ばれて展開される.したがって,Gは決してOPENリストから選ばれない.

  20. ただし,許容的ヒューリスティック 最良優先探索の比較 幅優先的 深さ優先的 ヒューリスティクス次第 •  つねに h(n)=0とすれば,A*は均一コスト探索と一致する.

  21.  ヒューリスティック関数について • ヒューリスティックの優位性 • 8パズルのヒューリスティック • ヒューリスティック関数の作り方

  22. ヒューリスティックの優位性 実際の値 すべてのノード nにおいてh1(n)≦ h2(n) ≦ h*(n) h2はh1より優位 h1で展開されたノード ⊆ h2で展開されたノード

  23. 8パズルのヒューリスティック関数 初期状態 ゴール 3 1 2 5 4 8 4 6 1 8 7 6 5 3 7 2 • 候補1 h1=ゴールの位置にないタイルの数.上の例では7. • 候補2 h2=各タイルのゴール状態までのマンハッタン距離 の和.上の例では18. 2 +3 +3 +2 +4 +2 +0 +2 =18 ■どちらも許容的(楽観的)  ■h2はh1より優位.

  24. 8パズルの実験結果

  25. ヒューリスティック関数の作り方(1) 緩和問題(relaxed problem) = オペレータに対する制限を減らして  解きやすくした問題 8パズルの場合:となりにタイルが置いてあってもそこに動かせる • 緩和問題の正確な解のコストが元の問題の良いヒューリスティクスになっていることが多い

  26. ヒューリスティック関数の作り方(2) 緩和問題の生成 AからBへタイル を動かせる → AがBのとなり & Bが空 relax h2 AからBへタイル を動かせる → AがBのとなり h1 AからBへタイル を動かせる → (無条件で)

  27. ヒューリスティック関数の作り方(3) h1,h2,…,hmという許容的ヒューリスティクスがあり,どれも他の優位にないとき,どれを選ぶか? h(n) = max (h1(n), h2(n), …, hm(n) ) ■ hは許容的であり,かつ,一つひとつの関数より優位

  28. ヒューリスティック関数の作り方(4) 統計情報の利用 h2(n)=14 → 90%の確率で実際のコスト=18 許容性の保証はなくなるが平均的に効率が向上する h(n)=18

  29. ヒューリスティック関数の作り方(5) 状態の「特徴」の利用 膨大な量のナマ情報を適切に要約した少量の情報 h(n)=α×駒の得点の差 +β×駒の働きの差 +γ×玉の囲いの差 将棋の例 αβ γ:学習アルゴリズムで値を調整する

  30. 付録:A*探索の振る舞い(1) 単調性 526 探索木に沿ったすべての経路で f のコストは非減少 449 366 393 417 447 413 415 450 418 526 615 •  しかし,すべての問題が単調性が成り立つわけではない.

  31. 付録:A*探索の振る舞い(2) 単調性の定義付録:A*探索の振る舞い(2) 単調性の定義 三角不等式に似ている 単調性 •  先へ進んで,情報が得られてくるほど,楽観性が弱くなる n h(n) c(n,n') ゴール n' h(n')

  32. 付録:A*探索の振る舞い(3) 等高線 A*アルゴリズムは f 値の山をゴールに向かって,見落としなく(シャープに)単調に登っていく 449 526 f = 366の等高線 366 393 413 415 417 418 393 417 最適解の等高線 447 413 準最適解 415 • 最適性あり! •  完全性あり! 450 526 418 615 •  実際には,単調性がなくても,最適性と完全性がある.

More Related