next up previous
Next: 3 変数を含むパターン同士のマッチングUnifyの定義 Up: ソフトウェア第三 講義資料 パターンマッチ,前向き推論,ユニフィケーション,後向き推論 Previous: 2.11 実行例(3)

$<$後ろ向き推論$>$

プロダクションシステムでは,変数を含むパターンと変数を含まないパターン のマッチングを行なっていた.ここでは,変数を含むパターン同士のマッ チングを取り上げる.このように変数を含むパターン同士の一般化されたマッ チングのことをユニフィケーションと呼ぶ. プロダクションシステムでは,作業記憶に入っているものは変数を含まないと いう特徴があり,各ルールの行動部(結論部),さらに,問題として与えられ るゴール自体にも変数を含まない. しかし,ゴールとして変数を含むパターンが与えられるとするとどうなるか. つまり,変数を含むパターンが作業記憶に入っているパターンとマッチ するならばそのゴールが満たされたとみなすという形である. このようにゴールとして変数を含むパターンが与えられそのパターンがなりた つかどうかを論理的に推論してゆくという形の言語が論理型言語と呼ばれるも のである.論理型言語の代表例がPrologと呼ばれる言語である. ここでは,論理型言語Prologの仕組みの基本を紹介する. Prologは,プログラムとしてあらかじめルールと事実の集合を与えておき,ゴー ルが成り立つかどうかを問い合わせるという形でプログラムの実行が行なわれる. ゴールから,そのゴールが成り立つ条件に向かって推論が進められるた めに,後向き推論と呼ばれる.ゴールとルールの結論部とのマッチングを行 なう際に変数のはいったパターン同士のマッチング(ユニフィケーション)が 必要になる.

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