ヒューリスティック探索 ─ 知識に基づく探索 ─ (heuristic search)
DESCRIPTION
認知システム論 探索( 3 ) 先を読んで知的な行動を選択するエージェント. ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search). 最良優先探索 ( best-first search ) 均一コスト探索 欲張り最良優先探索 A * 探索 ヒューリスティック関数について. 最良優先探索の具体的な例. 復習:一般的探索アルゴリズム. 展開する = 子 を産む. A. 未展開 ノードは オープンリスト に並べる. オープンリスト. 子から親へのポインタ. S. T. Z. 必ず先頭から取り除き 展開する. F. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/1.jpg)
ヒューリスティック探索 ─知識に基づく探索─
(Heuristic Search)
最良優先探索 (best-first search) 均一コスト探索 欲張り最良優先探索 A * 探索 ヒューリスティック関数について
最良優先探索の具体的な例
認知システム論 探索( 3 )先を読んで知的な行動を選択するエージェント
![Page 2: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/2.jpg)
復習:一般的探索アルゴリズム
T Z
A R
A
S
F O
必ず先頭から取り除き
展開する
戦略に基づいて適切な位置に挿入
B
オープンリスト
F
展開する=子を産む未展開ノードはオープンリストに並べる
子
子から親へのポインタ
![Page 3: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/3.jpg)
経路コストの導入
A
Z
O
T
L
M
D
S
R
C
P
B
G
UH
E
V
IN
F
初期状態
ゴール
経路コスト
151
75
71
140
118
111
70
75
99
80
146
120
97
10113
890
85 98 86
142
92
87
211
最適解
![Page 4: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/4.jpg)
T7
Z10
A5
R16
最良優先探索 (best-first search)
O15
B8
オープンリスト
評価関数 (evaluation function) f(n) の小さい順になるよう挿入
評価値> 0
ベストに見えるものを優先的に展開 評価関数の決め方によって
いろいろなバリエーションがある
1.均一コスト探索2.欲張り最良優先探索3.A * 探索
![Page 5: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/5.jpg)
1.均一コスト探索 (uniform cost search)
初期状態からそのノード n までの経路コスト g(n) を評価関数とする最良優先探索
ゴールに向かってのシャープな探索
になっていない
g(n) = 5+3 = 8
a0
初期状態
35
b5
n8
現在状態
全オペレータのコスト=1なら,幅優先探索と同じ動作となる
![Page 6: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/6.jpg)
均一コスト探索の実行
0
1 4
2
9 9
6 73
12 5
1
経路コスト g(n) の低い順に展開
オープンリスト
INOUT
2
9
4
7
3
2 7
2
1
8経路コスト g(n) の昇順になるように挿入
経路コスト
1+2=3
オペレータのコス
ト
![Page 7: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/7.jpg)
均一コスト探索の最適性ただし,オペレータのコストは非負とする
S
A
B
C
Gstart
goal
15 5
15
10
5
0
1 1551
5
15A B C
S
11 10G G
10 5
展開のために選択したときにゴールと判定す
る
展開のために選択してゴールと判定
![Page 8: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/8.jpg)
均一コスト探索の性質
完全性 (completeness) あり 解があれば必ず見つける
最適性 (optimality) あり 最適解を最初に見つける
時間計算量 (time complexity) 指数的 b d (b:分枝率,d:解の深さ)
空間計算量 (space complexity) 指数的 b d
幅優先探索と同じ
![Page 9: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/9.jpg)
2.欲張り最良優先探索 (greedy best-first search)
a0
初期状態
35
b5
n8
現在状態
g
h(n)
ヒューリスティック関数ノードからゴールまでの最短経路コストの見積り
これの小さい順に展開
そのノード n からゴールまでの予想コスト h(n) を評価関数とする最良優先探索
ゴール
![Page 10: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/10.jpg)
ヒューリスティック (heuristic)とは?
語源: アルキメデスが風呂で浮力の法則を発見したときに叫んだ” Heurika !” (ユーリカ!発見した!)経験から発見した知識のこと
最悪ケースの性能は必ずしも上げないが,平均的または典型的にはうまくいく手法
![Page 11: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/11.jpg)
ヒューリスティック関数の例:直線距離
A
Z
T
S
B
初期状態
ゴール
253
374
329
h(n) = nからゴールまでの直線距離
![Page 12: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/12.jpg)
欲張り最良優先探索は最適性がない
A
Z
T
S
R
P
B
F
329
253
374
366
178
193
0
80
97
101
211
99
h の値(直線距離)
最短経路はこちら!(最適性がない)
欲張ってこっちにこだわった(欲張り最良優先探索)
しかし多くの場合うまくいく
![Page 13: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/13.jpg)
欲張り最良優先探索は完全性がない
A
Z
T
S
B
150
253
374
366
0
T1
T2
150150
不適切なヒューリスティクス
![Page 14: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/14.jpg)
欲張り最良優先探索の性質
完全性 (completeness) なし 解を見つけないことがある
最適性 (optimality) なし 最適解を見つける保証がない
時間計算量 (time complexity) bm (m: 探索木の最大の深さ)
空間計算量 (space complexity) bm
深さ優先探索と同じ
![Page 15: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/15.jpg)
3. A* 探索 (A* search)
初期状態
35n8
現在状態
h(n) ここからの予想コスト
経路全体の予想コスト f(n)=g(n)+h(n) をコスト関数とする最良優先探索
ゴール
エイスター
ここまでのコスト
g(n)
f (n) = g(n) + h(n)n を経由する最短経路の見積もりコスト
これの小さい順に展開
![Page 16: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/16.jpg)
許容的ヒューリスティック (admissible heuristic)
A
P
R
S
B
初期状態
ゴール
253
実際の最小コスト h*(n) =278
予想最小コスト h(n)
直線距離
すべてのノードnについて
予想最小コスト h(n) ≦ 実際の最小コスト h*(n)を満たすヒューリスティック関数のこと
楽観的(optimistic)ヒューリスティックとも言う
![Page 17: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/17.jpg)
A* 探索の性質
完全性 (completeness) あり! 解があれば必ず見つける
最適性 (optimality) 許容的(楽観的)ヒューリスティクスの場合,あり! 最初に見つけた解は最適解
時間計算量 (time complexity)
空間計算量 (space complexity)
ヒューリスティックの
精度に依存
![Page 18: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/18.jpg)
経路コスト h 関数の値
(直線距離)
329
253
374
366178
193
0
80
97
101
211
99
75
118140
AS
F
RP
B
T
98
Z
O
380151
160
146C 138
71
許容的ヒューリスティクスによりA* が最初に見つける解は最適解
450B
366449
447
393
413
415
418
417
329
253
374
366178
193
0
80
97
101
211
99
75
118140
AS
F
RP
B
T
98
Z 671O
380151
526160
146C 138
615C 最適解
![Page 19: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/19.jpg)
A *アルゴリズムの最適性の証明
S n G*
G
最適解(コストC* )
非最適解
初期状態OPEN リス
ト
探索木を成長させるアルゴリズムの動作から考えて, OPEN リストは常に,最適解の経路上にあるノードnを少なくとも1つ含み,非最適解のゴールノード G と次の関係を満たす. f(n) = g(n) + h(n) g(n) + h*(n) = ≦C* < f(G) よって,必ず, G より先に n が OPEN リストから選ばれて展開される.したがって, G は決して OPEN リストから選ばれない.
探索木
![Page 20: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/20.jpg)
最良優先探索の比較均一コス
ト欲張り A *
完全 ○ × ○
最適 ○ × ○
時間 × △ △
空間 × △ △
幅優先的 深さ優先的 ヒューリスティクス次第 つねに h(n)=0 とすれば, A* は均一コスト探索と一致する.
ただし,許容的ヒューリスティッ
ク
![Page 21: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/21.jpg)
ヒューリスティック関数について
ヒューリスティックの優位性8パズルのヒューリスティックヒューリスティック関数の作り方
![Page 22: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/22.jpg)
ヒューリスティックの優位性
すべてのノード n において h1(n) ≦ h2(n) ≦h*(n)
実際の値
h2 は h1 より優位
h2 で展開されたノード
h1 で展開されたノード ⊆
![Page 23: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/23.jpg)
8パズルのヒューリスティック関数
5 4
6 1 8
7 3 2
1 2
8
3
4
7 6 5
ゴール初期状態
候補1 h1= ゴールの位置にないタイルの数.上の例では7. 候補2 h2=各タイルのゴール状態までのマンハッタン距離 の和.上の例では18.
2+3+3+2+4+2+0+2
=18
■どちらも許容的(楽観的) ■h2 は h1 より優位.
![Page 24: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/24.jpg)
8パズルの実験結果
解の長さ
展開した平均ノード数
反復深化 A*(h1
)A*(h2)
2 10 6 6
4 112 13 12
6 680 20 18
8 6384 39 25
10 47127 93 39
12 364404 227 73
14 3473941 539 113
16 1301 211
18 3056 363
20 7276 676
22 18094 1219
24 39135 1641
![Page 25: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/25.jpg)
ヒューリスティック関数の作り方(1)
緩和問題(relaxed problem)
= オペレータに対する制限を減らして 解きやすくした問題
緩和問題の正確な解のコストが元の問題の良いヒューリスティクスになっていることが多い
8パズルの場合:となりにタイルが置いてあってもそこに動か
せる
![Page 26: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/26.jpg)
ヒューリスティック関数の作り方(2)
A が B のとなり B が空 & → A から B へタイル を動かせる
緩和問題の生成
A が B のとなり → A から B へタイル を動かせる
→ A から B へタイル を動かせる
relax
h1
h2
(無条件で)
![Page 27: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/27.jpg)
ヒューリスティック関数の作り方(3)
h1,h2,…,hm という許容的ヒューリスティクスがあり,どれも他の優位にないとき,どれを選ぶか?
h(n) = max (h1(n), h2(n), …, hm(n) )
■ hは許容的であり,かつ,一つひとつの関数より優位
![Page 28: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/28.jpg)
ヒューリスティック関数の作り方(4)
状態の「特徴」の利用
h(n)=α×駒の得点の差 + β×駒の働きの差 + γ×玉の囲いの差
将棋の例
α β γ :機械学習アルゴリズムで値を調整する
膨大な量のナマ情報を適切に要約した少量の情報
![Page 29: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/29.jpg)
450
366449
447
393
413
415
418
417
526
526615
付録: A* 探索の振る舞い(1) 単調性
探索木に沿ったすべての経路で f のコストは非減少
しかし,すべての問題で単調性が成り立つわけではない.
![Page 30: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/30.jpg)
付録: A* 探索の振る舞い(2) 単調性の定義
( ) ( ') ( , ')h n h n c n n
n'
n
ゴール
h(n)
h(n')
c(n,n')
単調性三角不等式に似ている
先へ進んで,情報が得られてくるほど,楽観性が弱くなる( ') ( ) ( , ')h n h n c n n
![Page 31: ヒューリスティック探索 ─ 知識に基づく探索 ─ (Heuristic Search)](https://reader036.vdocuments.mx/reader036/viewer/2022081416/56815ab0550346895dc85a16/html5/thumbnails/31.jpg)
450
366
449
447
393
413
415
418
417
526
526615
付録: A* 探索の振る舞い(3) 等高線
A* アルゴリズムは f 値の山をゴールに向かって,見落としなく(シャープに)単調に登っていく
f = 366 の等高線
393 413 415 417 418
準最適解
最適解の等高線
最適性あり!
完全性あり!
実際には,単調性がなくても,最適性と完全性がある.