Download - 知識を用いる探索 ─ ヒューリスティック探索 ─ (Heuristic Search)
知識を用いる探索─ ヒューリスティック探索 ─
(Heuristic Search)
最良優先探索 均一コスト探索 欲張り探索 A * 探索 ヒューリスティック関数に
ついて
最良優先探索の具体的な例
人工知能 探索( 3 )先を読んで知的な行動を選択するエージェント
復習:一般的探索アルゴリズム
T Z
A R
A
S
F O
必ず先頭から取り除き
展開する
戦略に基づいて適切な位置に挿入
B
待ち行列
F
展開する=子を産む未展開ノードは待ち行列に並べる
子
子から親へのポインタ
経路コストの導入
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
最適解
T7
Z10
A5
R16
最良優先探索 (best-first search)
O15
B8
待ち行列
コスト関数 (cost function)の小さい順になるよう挿入
コスト> 0
ベストに見えるものを優先的に展開 コスト関数の決め方によっ
ていろいろなバリエーション
がある
1.均一コスト探索
2. 欲張り探索
3. A * 探索
1.均一コスト探索 (unform cost search)
初期状態からそのノード n までの経路コスト g(n) をコスト関数とする最良優先探索
ゴールに向かってのシャープな探索
になっていない
g(n) = 5+3 = 8
a0
初期状態
35
b5
n8
現在状態
全オペレータのコスト=1なら,幅優先探索と同じ動作となる
均一コスト探索の実行
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
オペレータのコス
ト
均一コスト探索の最適性ただし,オペレータのコストは非負とする
S
A
B
C
Gstart
goal
15 5
15
10
5
0
1 1551
5
15A B C
S
11 10G G
10 5
展開のために選択したときにゴールと判定す
る
展開のために選択してゴールと
判定
均一コスト探索の性質
最適性 (optimality) あり 最適解を最初に見つける
完全性 (completeness) あり 解があれば必ず見つける
時間計算量 (time complexity) 指数的 b d (b:分枝率,d:解の深さ)
空間計算量 (space complexity) 指数的 b d
幅優先探索と同じ
2.欲張り探索 (greedy search)
a0
初期状態
35
b5
n8
現在状態
g
h(n)
ヒューリスティック関数ノードからゴールまでの最短経路コストの見積り
これの小さい順に展開
そのノード n からゴールまでの予想コスト h(n) をコスト関数とする最良優先探索
ゴール
ヒューリスティック (heuristic) とは?
語源: アルキメデスが風呂で浮力の法則を発見したときに叫んだ” Heurika !” (ユーリカ!発見した!)経験から発見した知識のこと
最悪ケースの性能は必ずしも上げないが,平均的にはたいていの場合はうまくいく手法
欲張り探索は最適解を見つける保証がない
A
Z
T
S
R
P
B
F
329
253
374
366
178
193
0
80
97
101
211
99
h の値(直線距離)
最短経路はこちら!(最適性がない)
欲張ってこっちにこだわった
(欲張り探索)
しかし多くの場合うまくいく
欲張り探索の性質 最適性 (optimality) なし
最適解を見つける保証がない
完全性 (completeness) なし 解を見つけないことがある
時間計算量 (time complexity) bm (m: 探索木の最大の深さ)
空間計算量 (space complexity) bm
深さ優先探索と同じ
3. A* 探索 (A* search)
初期状態
35n8
現在状態
h(n)
ここからの予想コスト
経路全体の予想コスト f(n)=g(n)+h(n) (ただし, h(n) は許容的なヒューリスティック関数)
をコスト関数とする最良優先探索
ゴール
エイスター
ここまでのコスト
g(n)
f (n) = g(n) + h(n)n 経由の最短経路の見積もりコスト
これの小さい順に展開
許容的ヒューリスティック (admissible heuristic)
A
P
R
S
B
初期状態
ゴール
253
実際の最小コスト h*(n) =278
予想最小コスト h(n)
直線距離
予想最小コスト h(n) ≦ 実際の最小コスト h*(n)を満たすヒューリスティック関数のこと
楽観的 (optimistic)ヒューリスティック
とも言う
ヒューリスティクスが許容的と限らないときは, A アルゴリズムと呼ぶ.
A* 探索の性質
最適性 (optimality) あり! 最初に見つけた解は最適解
完全性 (completeness) あり! 解があれば必ず見つける
時間計算量 (time complexity)
空間計算量 (space complexity)
ヒューリスティックの
精度に依存
経路コスト 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 526O
380151
526160
146C 138
615C 最適解
450
366449
447
393
413
415
418
417
526
526615
A* 探索の振る舞い(1) 単調性
探索木に沿ったすべての経路で f のコストは非減少
しかし,すべての問題が単調性が成り立つわけではない.
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
450
366
449
447
393
413
415
418
417
526
526615
A* 探索の振る舞い(3) 等高線A* アルゴリズムは f 値の山をゴールに向かって,見落としなく(シャープに)単調に登っていく
f = 366 の等高線
393
413
415
417
418
準最適解
最適解の等高線
最適性あり!
完全性あり!
実際には,単調性がなくても,最適性と完全性がある.
最良優先探索の比較均一コス
ト欲張り A *
完全 ○ × ○最適 ○ × ○時間 × △ △ 空間 × △ △
幅優先的 深さ優先的 ヒューリスティクス次第 つねに h(n)=0 とすれば, A* は均一コスト探索と一致する.
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 より優位.
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
ヒューリスティック関数の作り方(1)
弱条件問題緩和問題
(relaxed problem)
= オペレータに対する制限を減らして 解きやすくした問題
弱条件問題の正確な解のコストが元の問題の良いヒューリスティクスになっていることが多い
8パズルの場合:となりにタイルが置いてあってもそこに動か
せる
ヒューリスティック関数の作り方(2)
A が B のとなり B が空& → A から B へタイルを動かせる
弱条件問題の自動生成
A が B のとなり → A から B へタイルを動かせる
B が空 → A から B へタイルを動かせる
relax
h1
h2
ヒューリスティック関数の作り方(3)
h1,h2,…,hm という許容的ヒューリスティクスがあり,どれも他の優位にないとき,どれを選ぶか?
h(n) = max (h1(n), h2(n), …, hm(n) )
■ hは一つひとつの関数より優位