| 人工知能概論 2000 Introduction to Artificial Intelligence 2000 |
2000, Sep. 27th, updated
3章 探索: サーチとは何か?
-------------------------------------------------------------
9/13 (水)
今日のポイント
1.横型サーチと縦型サーチとのアルゴリズムの比較
2.横型サーチと縦型サーチの比較 → 3.1.3 縦型 vs 横型
3.3.1.4 反復深化サーチ
4.ヒューリスティク(サーチ)とは? → 9/20 の講義内容
3.1.2 横型サーチ
横型サーチのアルゴリズム
・縦型サーチとの違い
step5 展開して加える子節点のリストL1への追加の位置
if 先頭に加える →縦型 (LIFO → stack)
末尾に加える →横型 (FIFO → quaue)
Q.1 リストL1,L2に名前をつけるとしたら?
リストL1,L2の役割はなにか?
3.1.3 縦型 vs 横型
1.計算量の比較(p41)
(1)空間計算量 (領域 or メモリ)
アルゴリズムが用いるメモリの最大値
max L1・・・リストL1の最大値 ←こちらに注目
max L2・・・全ノード数(各ノードを1度ずつ展開するので)
縦型のL1・・・(深さ)×(各深さでの展開ノード数−1)+1
横型のL1・・・b・exp(d-1)
(2)時間計算量
各アルゴリズムがサーチする(総)ノード数
全サーチ木が深さd、幅bだとすると O(b・exp(d)) (縦型=横型)
注)以上の話は木を探索する場合。
グラフを探索する場合は同一ノードを複数回展開する場合が生じる。
(3)縦型と横型との比較
ex.ネットサーフィン/ネット(で)検索
縦型・・・メモリ量が少なくてよい
どんどん深みにはまるリスクあり
横型・・・メモリ量大
深さより(調べる)幅の広さを重視
初心者は縦型,
エキスパートは横型の傾向
3.1.4 反復深化サーチ
特徴)・ブラインドサーチの1つ→最終的には全検索
・縦型と横型との組み合わせサーチ
縦型の調べる深さ(→cut offパラメータ)を制限
その範囲で全探索を行う
case cut off=1 →横型サーチ
cut off=∞ →縦型サーチ
cut off=n>1 →サーチ木のうち深さnまでを縦型に全探索
§課題
p.37 図3.1のサーチ木に対してp.42のアルゴリズムを用いて
リストL1,L2,cut offの変化をstepごとに表に書け。(cut off=2→3になるまで)
-------------------------------------------------------------------------