next up previous
Next: 5.1 迷路問題の記述 Up: ソフトウェア第三 講義資料 行列,リスト操作,グラフ,探索表現 Previous: 4.7 関数定義の編集例

5 状態空間探索による問題解決

迷路を現在位置から目標位置まで移動するロボットや,積木の積み重ね手順を 考えるロボットなどを考えた場合,両方に共通のプログラムでそれぞれの問題 を解くことができれば一般的なプログラムであるといえるが,それぞれの問 題をグラフを用いて表現し,1つの関数でどちらの問題を解けることを見て ゆく. ここで取り上げた問題は,手順を最終的に返すことが目的になるが,その 手順の途中の段階は状態をもった形で表現できる.つまり,最初の状態から いろいろな状態を経て最終状態へ遷移する道を探索するということが 問題を解くというプロセスになる. ここでは,問題空間の状態と遷移をグラフのデータとして 表現してしまい,そのグラフ,初期状態,目標状態を指定して 汎用の探索プログラムに与える形で問題解決プログラムを 作る例を示す. また,(1)のノード状態を表現するのに,集合を使う例, (2)グラフで問題空間を与えるのではなく,状態遷移を計算する 手続きを与える例を積み木の例で紹介し, (3)探索手法として,評価関数を使わないもの,使うもの,見込みの評価で 探索を行うものなどを同じ問題記述グラフに対して適用できる例を示す.



generated through LaTeX2HTML. M.Inaba 平成18年5月7日