第5講探索手法(2) 今回説明する探索手法 グラフの例(グラフ1)

今回説明する探索手法
第5講 探索手法(2)
• コストを考慮しない探索(しらみつぶし探索)
– 反復深化探索
• コストを考えない探索 (続き)
• コストを考える探索
• コストを考慮した探索
– 経験的知識を用いない探索
• 分枝限定法
– 経験的知識を用いない探索
– 経験的知識を用いる探索
– 経験的知識を用いる探索
• 最良優先探索
• A*アルゴリズム(Aアルゴリズム)
反復深化探索
(iterative deepening search)
反復深化探索
(iterative deepening search)
•
アルゴリズム (繰り返し縦型探索)
1.
2.
3.
4.
5.
6.
7.
•
探索する深さの上限cutoffの初期値を1とする。
初期ノードをOPENリストに入れる。CLOSEDリストを空に
初期化する。
OPENリストが空なら、cutoffを1だけ大きくし、2に戻る。
OPENリストから先頭の要素Nを取り出す。CLOSEDリスト
の最後にNを追加する。
要素Nが目標ノードであるならば、探索は成功し、実行は
終了する。
要素Nの深さがcutoffより小さい場合、Nから1ステップで
到達する子ノードのうちで、OPENリストにもCLOSEDリス
トにも含まれていないものをすべてOPENリストの先頭に
入れる。
3へ戻る。
アルゴリズム (繰り返し横型探索)
1.
2.
3.
4.
5.
6.
7.
探索する深さの上限cutoffの初期値を1とする。
初期ノードをOPENリストに入れる。CLOSEDリストを空に
初期化する。
OPENリストが空なら、cutoffを1だけ大きくし、2に戻る。
OPENリストから先頭の要素Nを取り出す。CLOSEDリスト
の最後にNを追加する。
要素Nが目標ノードであるならば、探索は成功し、実行は
終了する。
要素Nの深さがcutoffより小さい場合、Nから1ステップで
到達する子ノードのうちで、OPENリストにもCLOSEDリス
トにも含まれていないものをすべてOPENリストの最後に
入れる。
3へ戻る。
グラフの例(グラフ1)
A
初期ノード
n=1
n=2
B
E
C
F
D
G
n=3
H
I
n=4
J
K
目標ノード
1
最適解の探索
アルゴリズム
•
1.
2.
3.
4.
5.
6.
初期ノードをOPENリストに入れる。CLOSEDリストを空に初
期化する。コストの初期値g(A)を0にする。
OPENリストが空ならば、探索は失敗し、実行は終了。
OPENリストから先頭の要素Nを取り出し、CLOSEDリストの
最後にNを追加する。
要素Nが目標ノードであれば、探索は成功し、実行を終了す
る。
要素Nから1ステップで到達できる子ノードMのうちで、
CLOSEDリストに含まれていないものについてg(m)を計算す
る。OPENリスト中に既に存在するノードにおいて、今まで保
持してきたコストの値g’(m)と新しいコストの値g(m)を比較し、
小さいほうをノードの値とする。OPENリスト内のすべての
ノードをコストが小さい順に並べ替える。
2へ戻る。
グラフの例 (グラフ2)
評価関数g(N):初期ノードからのノードNまでのコスト
g(N)=cost(A,m)+cost (m,N)
A
g(A)=0
2
アルゴリズム
1.
2.
3.
4.
5.
6.
アルゴリズム
4.
5.
6.
1
J
G
H
I
2
K
目標ノード
グラフの例(グラフ3)
h’(N)を表現し、ここでは、丸で囲んだ数値とする。
A 初期ノード
⑨
⑤
Aアルゴリズム
2.
3.
4
F
4
3
評価関数g(N):各ノードnから目標ノードまでのコストの予測値
初期ノードをOPENリストに入れる。CLOSEDリストを空に初
期化する。コストの初期値g(A)を0にする。
OPENリストが空ならば、探索は失敗し、実行は終了。
OPENリストから先頭の要素Nを取り出し、CLOSEDリストに
Nを追加する。
要素Nが目標ノードであれば、探索は成功し、実行を終了す
る。
要素Nから1ステップで到達できる子ノードMのうちで、
CLOSEDリストに含まれていないものをOPENリストに入れる。
OPENリスト内のすべてのノードを予測コストh’が小さい順に
並べ替える。
2へ戻る。
1.
D
1 4
1
初期ノードをOPENリストに入れる。CLOSEDリストを
空に初期化する。コストの初期値g(A)を0にする。
OPENリストが空ならば、探索は失敗し、実行は終了。
OPENリストから先頭の要素Nを取り出し、CLOSEDリ
ストの最後にNを追加する。
要素Nが目標ノードであれば、探索は成功し、実行を
終了する。
要素Nから1ステップで到達できる子ノードMのうちで、
CLOSEDリストに含まれていないものをOPENリストに
入れる。OPENリスト内のすべてのノードをf’が小さい
順に並べ替える。
2へ戻る。
⑧ C
B
⑦
E
③
•
2
2
最良優先探索
•
C
1
E
1
3
B
3
初期ノード
J
F
D
G
②
K
⑪
⑥ H
⑤
I
⑧
目標ノード
Aアルゴリズム
•
f’(N):初期ノードからノードNを経由して、
目標ノードへ至るコストを表す
f’(N)=g(N) + h’(N)
– g(N): ノードNに至るまでの途中段階での中間
コスト
– h’(N):対象としているノードNから目標ノード
に至るまでの予測コスト
– h(N):対象としているノードNから目標ゴール
に至るまでのコスト
•
評価関数f’(N)の小さなノードを優先的に
探索
2
グラフの例(グラフ4-1)
A
2
⑨
1
⑦
⑤ E
初期ノード
2
2
1
2
D
1 4
4
F
A
1
3
⑧ C
B
3
グラフの例(グラフ4-2)
G
⑪
⑨
4
⑥ H
⑤
I
⑧
⑤
1
⑦
E
2
2
1
③
J
②
K
目標ノード
1
3
⑧ C
B
3
3
初期ノード
2
D
1 3
4
F
1
G
⑪
3
4
⑥ H
⑤
I
⑧
2
1
③
J
②
K
目標ノード
3