Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
目標までのコストが予測できる目標までのコストが予測できる場合の探索場合 探索
ヒューリスティック探索
目標までのコストh(n)を用いた探索
h; heuristicとは?h; heuristicとは?
【発音】hju(э)ri‘stik[形] 発見的な[形] 発見的な
完全に正しいという保証は無いが大部分の場合に対して
ある状態に対するグラフの節点n から)(ˆ nh
完全に正しいという保証は無いが大部分の場合に対して
役に立つ知識をヒュ-リスティックな知識と言う。
……. ある状態に対するグラフの節点n から目標までのコストの推定量。探索の途中で変更されないものとする。
)(nh
探索 中 変更 す 。
1.山登り法(hill-climbing)
最も目標に近づくと予測される節点を選びながら
目標節点 達 ようとする戦略目標節点に達しようとする戦略
procedure hill-climbing
n : =出発節点n : 出発節点
LOOP : if goal(n) then exit(success)
n を展開し、すべての子節点 ni に対して を計算し、その最小値を与える子節点を nextn とする
)(ˆ inh
if then exit(fail)
n : =nextn
)(ˆ)(ˆ nextnhnh <
n : nextn
goto LOOP
注意: 目標を山頂とし、 を n と山頂との標高差とすれば、山登り法はつねに上へ向かって山を上っていくことに相当する。もし山
)(ˆ nh法は ね 向か て山を て く と 相当する。もし山が一つしかなければ、この方法で必ず目標に達することができる。しかし、目標以外に多くの小さな山があれば、その山頂 登 ま それ 上は進めなくなる頂に登ってしまい、それ以上は進めなくなる。
ある場所 n と目標までのコストの推定は次式を用いるものとする……)(ˆ nh =|目標の x 座標 ー n の x 座標|+|目標の y 座標 ー n の y 座標|
D EB G B GEB G BD EB G
A H
B G
CA山登り法による探索例
(S 出発点 G 目標)
EB G
A
B
CA
C F D E H(S:出発点,G:目標)
S I(a)
S F(b)
S S
(a)成功する問題 (b)失敗する問題
S →A → B → E → G S → A → C → B →×
2.最良優先探索(best-first search)
procedure best-first- search
s; 初期接点 open: 未展開節点の集合
出発節点 S を open に入れる open ← { s }
LOOP : if open = 空 then exit(fail) open = { } なら探索は失敗
n : = first(open)
if goal(n) then exit(success) n が目標節点なら成功g ( ) ( ) 目標節点なら成功
(解は n ~ s へポインタを辿って得る。)
remove(n open)remove(n, open)
add(n, closed)
nを展開し すべての子節点を生成する 子節点のうち open あるいはnを展開し、すべての子節点を生成する。子節点のうち、open あるいはclosed に含まれない節点をだけを open の中に入れ、その各々から n へ向かうポインタをつける。 openの節点を の小さい順に並べる)(ˆ nhgoto LOOP
B GB2. 最良優先探索(best-first search)
GB G
CA CA CA CC
D E
S F
H
SS
E HDD E
F
D EE H
(b) )(ˆ nhカッコ内は を示している。
OpenSS(6) AA(4) B C B(2) C(3) C(3) C(3) EC(3) E(3)E(3)E(3) DE(3) D(4)D(4)D(4) HH(2) D(4)D(4)G D(4) FG(0) D(4) F(4)
Closed
( ) ( ) ( )( )( )( ) ( )( )( )( ) ( )( )( )( ) ( )( )( )( ) ( ) ( )
最良優先探索を効率よく行うためには
S(6) A(4) B(2) C(3) E(3) H(2)
最良優先探索を効率よく行うためには…
問題に関する知識を用いて、できるだけ真のコストに近い推定を行う
山登り法
目標以外の山頂( の極小値)が存在すれば、そこから先)(ˆ nh目標以外の山頂( の極小値)が存在すれば、そこから先へ探索を進めることができない。
グラフの中を一人で歩き回りながら 現時点のまわりで最も目
)(nh
グラフの中を 人で歩き回りながら、現時点のまわりで最も目標に近いと思われる節点を選んでいることに相当する。
最良優先探索(b t fi t h)最良優先探索(best-first search)
大局的に状態空間を広く調べて探索を行う手法である。
将来必要な労力を最小にしようとする方式。
が一定)(ˆ nh が 定。
最適解の探索(Optimal-search)
)(nh
その時点までに得られている節点の中から最も出発点に近い節点を選んで展開する。
探索の途中で節点 n までの道のコスト は変化することがある。
)(ˆ ng
【課題5】 システム最適化で習った
最急降下法,共役勾配法と本講義で習った
山登り法の関係を述べなさい山登り法の関係を述べなさい。
【チャレンジ課題】 目的関数が単峰性の場合は、
山登り法で最適解を求めることができるが、多峰性
の場合は どうすればよいかを考えなさいの場合は、どうすればよいかを考えなさい。
3.コストが予測できる場合の最適解の探索
g(n); 出発節点 S から n までの最適な道のコスト
節 適な道
S
h(n); n から目標節点 G までの最適な道のコスト
f(n) ; n を通る最適な道のコスト
g(n)
f( ) )(ˆf( )
もし道がなければ、g(n)あるいはh(n)は無限大とする。
f( ) ( ) + h( )
n
h( )
f(n) )(ng
f(n) = g(n) + h(n); 出発節点 S から n までのコスト推定値)(ˆ ng
G
h(n)
)(ˆ nh)(ˆ nfn までの道の中で最小なものとする
; n から目標節点 G までのコスト推定値)(ˆ nh
G )(nh)(nf
; n から目標節点 G までのコスト推定値
; n を通る最適な道のコスト推定値
)(nh)(ˆ nf
)(ˆ)(ˆ)(ˆ nhngnf += ←これを評価関数として用いるグラフ探索の戦略を
A アルゴリズム(A algorithm)と呼ぶ
A アルゴリズム(A algorithm)procedure A-algorithm
)(ˆ:)(ˆ ShSf =出発節点 S をopenに入れる
LOOP : if open = 空 then exit(fail)
n : = first(open)
if goal(n) then exit(success)
remove(n,open)
add(n,closed)( , )
n を展開し、すべての子節点 ni に対して、S から n を通って ni に至るコストを用いて を計算する。open あるいは closed に含まれない節点を 中 れ 向 うポ タを る 含まれ る節
)(ˆ),(ˆ),(ˆiii nhnngnnf +=
),(ˆ inng
節点を open の中に入れ、 n へ向かうポインタをつける。 open 内に含まれている節点に対しては、 n を展開する前の と を比較し、もし が小さければ とし、 ni から n へ向かうポインタをつける。 もし子節点 ni
)(ˆinf ),(ˆ
innf ),(ˆinnf
),(ˆ)(ˆii nnfnf = i i
が closed に含まれていて、 ならば、 とし、 ni から n へ向かうポインタをつけ、 ni を open 内に入れる。最後に open 内の節点をの小さい順に並べる
),(ˆ)(ˆii nnfnf =)(ˆ),(ˆ
ii nfnnf <)()( ii ff
fの小さい順に並 る
goto LOOP なお、 とすればAアルゴリズムはoptimal-searchと同じ振る舞いをする(closed内の節点を再びopenに入れることは生じない)
0)(ˆ ≡nh
A アルゴリズムによって最適解が得られる保証はない
S (5)ˆ S (5)
2 3532)(ˆ =+=Af
743)(ˆ =+=Bf )(ˆ nh( )…節点 n に対する
A (3) B (4)
743)( =+=Bf
4 2openリストは(A B)
GAをopenリストから取り出して展開
06)(ˆ +=Gf解は S A G
最適な道は S B G06)( +Gf 最適な道は S B Gが より大きいので
openの先頭にこないため
)(ˆ Bf )(Bfopenリストは(G B)
Gが取り出されて終了
openの先頭に ないため最適解が見つけられない
openリストは(G B)
もし が を超えなければ ア ゴリズムによ
A * (Aスター) アルゴリズム(A * algorithm)
)(hもし が h(n) を超えなければ、Aアルゴリズムによって最適解が得られることを証明することができる。
)(nh
推定コスト が真のコストの下界であれば…
)(h ≦ )(h
h
それを用いたAアルゴリズムをA * (Aスタ ) アルゴリズム(A * i )
)(nh ≦ )(nh
A * (Aスター) アルゴリズム(A * algorithm)と呼ぶ。
A * (Aスター) アルゴリズム(A * algorithm)
推定コスト が真のコストの下界であればh
G1(10) C(10) E(10) L(11))(ˆ nh ≦ )(nh
推定コスト が真のコストの下界であればh
S(7)f
S(7)A(8) B(9) Open ( ) ;
S(7) B(9) D(8) B(9) C(10)B(9) C(10)B(9) C(10) H(10) I(10)C(10) H(10) I(10)D(7) C(10) E(10) H(10) I(10)C(10) E(10) H(10) I(10)H(9) I(9) C(10) E(10)I(9) C(10)E(10)I(9) G1(10) C(10) E(10) L(11)G1(10) C(10) E(10) L(11)G2(9) G1(10) C(10) E(10) L(11)
A(6) B (6)
2 3 ClosedS(7) A(8) A(6) D(8) B(9)B (6) D(7) H(9) I(9)
最適解は h(S)=9
A(6) B (6)
33
( ) ( )A(6) ( ) ( )B (6)
1 2
( ) ( ) ( )
節点Dは一度 closed に入れられたが、後でDへ至るよりコス
道が
D(3)C(5) D(3) E (5)D(3)D(3)
トの小さい道が見つけられて再び open に戻されていることに注意
I (2)H (3)
2 3
H (3) I (2)に注意。
4 3 24
L(2)G1目標
G2目標
G2
評価関数を利用した探索順序の決定
1 2 8 31 6 47■5
出発節点 1④ )()(ˆ)(ˆ nWngnf +=
ˆ||
2 8 31 6 47 5 ■
2 8 31■47 6 5
2 8 31 6 4■75
2⑥ ④ ⑥ :スタート節点から節点 n に)(ˆ ng
)(ˆ nh ≦ )(nh
7 5 ■7 6 5■75
2 8 31 4 ■
2■31 8 4
2 8 31■4
3 4⑤⑤
至る経路の長さ
節点 の状態で正しく置か)(W⑥ 1 4 ■
7 6 5 1 8 47 6 5
1■47 6 5
2 3■2 8 3■8 3 ■2 35
⑥ ⑦ ⑤
⑤⑤
⑦
:節点n の状態で正しく置か
れていない番号札の数
)(nW
2 3■1 8 47 6 5
2 8 37 1 4■6 5
■8 32 1 47 6 5
■2 31 8 47 6 5
⑥ ⑦ ⑤ ⑦
1 2 3
例: (スタート地点)= 0 + 4f
6
1 2 31 2 3目標節点
1 2 3■8 47 6 5
⑤
1 2 37 8 4■6 5
1 2 38■4 7 6 5
⑤ ⑦
は確かに h の下界であるから、それを用いる探索(optimal search) はA *アルゴリズムの特殊例である したがっ
0)(ˆ ≡nh(optimal - search) はA アルゴリズムの特殊例である。したがって、 A *アルゴリズムに関する性質はヒューリスティックな知識を用いない最適解の探索アルゴリズムである optimal - search にも用 最 解 探索 あ pあてはまる。
評価関数
P(n): 各番号札が本来の位置から離れている距離の和
S( ) (盤上の周囲の番号札を(時計周りに)順序つけたときS(n): (盤上の周囲の番号札を(時計周りに)順序つけたとき、正しい番号札が次に来ないものの数)×2+(中央の番号札の数)
ˆˆ
*このとき となっている)()(ˆ nhnh >
)(3)()(ˆ)()(ˆ)(
nSnPnh
nhngnf
+=
+=
)()()(
A*アルゴリズムの性質A*アルゴリズムの性質
グラフが無限でも、出発節点から目標節点までグラ 無限 も、出発節点 ら目標節点まの道を持てばA*は必ず最適解を見つけられる。
A * アルゴリズムの性質1
補題3.3 : 出発点 S とすれば、A *が終了する以前には、つねにを満足する節点 n が open の中に存在する。)(ˆ nf ≦ f( S )
証明
1.最初 ;アルゴリズムは終了していないので、open 内には最適( S ) な道の上の節点が存在する
証明:
open( S ) な道の上の節点が存在する。2. open 内にある節点の内、最適な道の節点の系列の最
初に現れるものをnとするn0= S 初に現れるものをnとする。•この節点の祖先点は closed に入っているので、n の親節点までの最適な道は見つけられている。
0
n•n は目標節点までの最適な道の上にあるので、 n までの最適な道は見つけられている。したがって、G
(目標節点) )(ˆ)(ˆ)(ˆ hf )(ˆ)( h(目標節点) )()(ˆ)( nhngnf += )()( nhng +=)()()( nfnhng =+)(ˆ nf ≦A*アルゴリズムでは ≦ h(n)であるから、)(ˆ nh
は目標節点までの最適な道の上にあるので f( ) f( )n は目標節点までの最適な道の上にあるので、 f(n)=f(S)
すなわち を満足する節点 n が存在する。)(ˆ nf ≦ f(S)
•A*アルゴリズムが終了することを証明するA * アルゴリズムの性質2
補題3.4:グラフが出発節点から目標節点までの道を持てば、A*アルゴリズムによって必ず目標節点までの道を得ることができる。ア リ よ 必ず目標節点ま 道を得る きる。
証明:1.A*アルゴリズムが終了しないと仮定する。2.枝の長さを1とし、出発節点から節点 n までの道の長さの最小値をd(n)とすると、一つの節点から出る枝の数は有限であるため、探索が進むとopen内の任意の節点 n に対して探索が進むとopen内の任意の節点 n に対して 、
d(n) > M(任意の数)
3.枝のコストは正であるので、その最小値を とすると、ε3.枝のコストは正であるので、その最小値を とすると、εε)()( ndng >
)()(ˆ ngng ≥ )(ˆ)(ˆ ngnf ≥ であるから4 )()( ngng ≥ )()( ngnf ≥ であるから、
ε)()(ˆ ndnf ≥ ε/)(SfM = とすれば、探索が進めば、
Mnd >)( となるので、
4.
補題3.3と矛盾する。すなわち、A*アルゴリズムが終了する。
Mnd >)( となるので、
)(/)()()(ˆ SfMndSfnf >≧ が成立する。
•A*アルゴリズムが目標節点Gを見つけて終了した時、それが最適解であることを示す
A * アルゴリズムの性質3
定理3.5:グラフが出発節点 S から目標節点までの道を持てば、A*アルゴリズムによって必ず最適解を見つけて終了する。
証明:•補題3.4によって、A*アルゴリズムは終了することがわかっている。•以下では、A*アルゴリズムが終了すれば、必ず目標節点までの最適な道をみつけて以下では、A アルゴリズムが終了すれば、必ず目標節点までの最適な道をみつけていることを証明する。
A*アルゴリズムは 目標点G を見つけて終了した時、それが最適解でないと仮定すればそれが最適解でないと仮定すれば、
)()(ˆ SfGf >
補題3.3より、探索が終了する直前には、open 内にを満足する節点 n が存在し、)()(ˆ Sfnf ≤
となり A*アルゴリズムは G を選ばずに n を選ぶはずである
)(ˆ)(ˆ Gfnf <となり、A アルゴリズムは G を選ばずに n を選ぶはずである。すなわち、G を選んで終了するという仮定に矛盾する。
【課題6】 8パズルにおいて、
)()(ˆ)(ˆ nWngnf += :スタート節点から節点 n に
至る経路の長さ
)(ˆ ng至る経路の長さ
:節点n の状態で正しく置か)(nWをコスト関数としたA*アルゴリズムによって、
れていない番号札の数
)(
例: (スタート地点)= 0 + 4f
ア リ 、以下の初期状態からゴール状態を求める最 例: (スタ ト地点) 0 + 4f状態を求 る最適な手順を求めなさい。
8 1 3
2 4
1 2 3
8 42 4
7 6 5
8 4
7 6 5
初期状態 ゴール状態