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

31
ヒヒヒヒヒヒヒヒヒヒヒ ヒヒヒヒヒヒヒヒ(Heuristic Search) ヒヒヒヒヒヒ (best-first search) ヒヒヒヒヒ ヒヒヒヒヒヒヒヒヒ * ヒヒ ヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒ ヒヒヒヒヒヒヒヒ ヒヒヒ ヒヒヒヒヒヒヒ ヒヒ3 ヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒ

Upload: september-witt

Post on 04-Jan-2016

134 views

Category:

Documents


7 download

DESCRIPTION

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

TRANSCRIPT

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

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

(Heuristic Search)

 最良優先探索 (best-first search)  

 均一コスト探索 欲張り最良優先探索 A * 探索 ヒューリスティック関数について

最良優先探索の具体的な例

認知システム論 探索( 3 )先を読んで知的な行動を選択するエージェント

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

復習:一般的探索アルゴリズム

T Z

A R

A

S

F O

必ず先頭から取り除き

展開する

戦略に基づいて適切な位置に挿入

B

オープンリスト

F

展開する=子を産む未展開ノードはオープンリストに並べる

子から親へのポインタ

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

経路コストの導入

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)

T7

Z10

A5

R16

 最良優先探索 (best-first search)

O15

B8

オープンリスト

評価関数 (evaluation function) f(n) の小さい順になるよう挿入

評価値> 0

ベストに見えるものを優先的に展開 評価関数の決め方によって

いろいろなバリエーションがある

1.均一コスト探索

2.欲張り最良優先探索

3.A * 探索

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

1.均一コスト探索 (uniform cost search)

初期状態からそのノード n までの経路コスト g(n) を評価関数とする最良優先探索

ゴールに向かってのシャープな探索

になっていない

g(n) = 5+3 = 8

a0

初期状態

35

b5

n8

現在状態

全オペレータのコスト=1なら,幅優先探索と同じ動作となる

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

均一コスト探索の実行

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)

均一コスト探索の最適性ただし,オペレータのコストは非負とする

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)

均一コスト探索の性質

 完全性 (completeness) あり  解があれば必ず見つける

 最適性 (optimality) あり  最適解を最初に見つける

 時間計算量 (time complexity)  指数的 b d  (b:分枝率,d:解の深さ)

 空間計算量 (space complexity)  指数的 b d

幅優先探索と同じ

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

2.欲張り最良優先探索     (greedy best-first search)

a0

初期状態

35

b5

n8

現在状態

g

h(n)

ヒューリスティック関数ノードからゴールまでの最短経路コストの見積り

これの小さい順に展開

そのノード n からゴールまでの予想コスト h(n) を評価関数とする最良優先探索

ゴール

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

ヒューリスティック (heuristic)とは?

語源: アルキメデスが風呂で浮力の法則を発見したときに叫んだ”Heurika !” (ユーリカ!発見した!)経験から発見した知識のこと

最悪ケースの性能は必ずしも上げないが,平均的または典型的にはうまくいく手法

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

ヒューリスティック関数の例:直線距離

A

Z

T

S

B

初期状態

ゴール

253

374

329

h(n) = nからゴールまでの直線距離

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

欲張り最良優先探索は最適性がない

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)

欲張り最良優先探索は完全性がない

A

Z

T

S

B

150

253

374

366

0

T1

T2

150150

不適切なヒューリスティクス

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

欲張り最良優先探索の性質

 完全性 (completeness) なし  解を見つけないことがある

 最適性 (optimality) なし  最適解を見つける保証がない

 時間計算量 (time complexity)  bm (m: 探索木の最大の深さ)

 空間計算量 (space complexity)  bm

深さ優先探索と同じ

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

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)

許容的ヒューリスティック (admissible heuristic)

A

P

R

S

B

初期状態

ゴール

253

実際の最小コスト h*(n) =278

予想最小コスト h(n)

直線距離

すべてのノードnについて

 予想最小コスト h(n) ≦ 実際の最小コスト h*(n)を満たすヒューリスティック関数のこと

楽観的(optimistic)ヒューリスティックとも言う

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

A* 探索の性質

 完全性 (completeness) あり!  解があれば必ず見つける

 最適性 (optimality)   許容的(楽観的)ヒューリスティクスの場合,あり!  最初に見つけた解は最適解

 時間計算量 (time complexity)

 空間計算量 (space complexity)

ヒューリスティックの

精度に依存

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

経路コスト 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)

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)

最良優先探索の比較均一コス

ト欲張り A *

完全 ○ × ○最適 ○ × ○時間 × △ △ 空間 × △ △

幅優先的 深さ優先的 ヒューリスティクス次第 つねに h(n)=0 とすれば, A* は均一コスト探索と一致する.

ただし,許容的ヒューリスティック

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

 ヒューリスティック関数について

ヒューリスティックの優位性8パズルのヒューリスティックヒューリスティック関数の作り方

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

ヒューリスティックの優位性

すべてのノード n において h1(n) ≦ h2(n) ≦h*(n)

実際の値

h2 は h1 より優位

h2 で展開されたノード

h1 で展開されたノード ⊆

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

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)

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)

ヒューリスティック関数の作り方(1)

緩和問題(relaxed problem)

= オペレータに対する制限を減らして  解きやすくした問題

 緩和問題の正確な解のコストが元の問題の良いヒューリスティクスになっていることが多い

8パズルの場合:となりにタイルが置いてあってもそこに動か

せる

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

ヒューリスティック関数の作り方(2)

A が B のとなり B が空 & → A から B へタイル を動かせる

緩和問題の生成

A が B のとなり → A から B へタイル を動かせる

→ A から B へタイル を動かせる

relax

h1

h2

(無条件で)

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

ヒューリスティック関数の作り方(3)

h1,h2,…,hm という許容的ヒューリスティクスがあり,どれも他の優位にないとき,どれを選ぶか?

h(n) = max (h1(n), h2(n), …, hm(n) )

■ hは許容的であり,かつ,一つひとつの関数より優位

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

ヒューリスティック関数の作り方(4)

状態の「特徴」の利用

h(n)=α× 駒の得点の差 + β× 駒の働きの差 + γ× 玉の囲いの差

将棋の例

α β γ :機械学習アルゴリズムで値を調整する

膨大な量のナマ情報を適切に要約した少量の情報

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

450

366449

447

393

413

415

418

417

526

526615

付録:  A* 探索の振る舞い(1) 単調性

探索木に沿ったすべての経路で f のコストは非減少

 しかし,すべての問題で単調性が成り立つわけではない.

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

付録:  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)

450

366

449

447

393

413

415

418

417

526

526615

付録:  A* 探索の振る舞い(3) 等高線

A* アルゴリズムは f 値の山をゴールに向かって,見落としなく(シャープに)単調に登っていく

f = 366 の等高線

393 413 415 417 418

準最適解

最適解の等高線

 最適性あり!

 完全性あり!

 実際には,単調性がなくても,最適性と完全性がある.