next up previous
Next: 6.1 Primitiveな述語 Up: ソフトウェア第三 講義資料 パターンマッチ,前向き推論,ユニフィケーション,後向き推論 Previous: 5.8 実行例

6 バックトラッキング

上に上げた処理系の実現例では,すべての可能性を拾いあげてそれを返すよう に作られていた. しかし,

<cl> (?- (member 2 ?x))
のような問い合わせを行なうと無限の候補を作りはじめるため 答えが返ってこなくなる. そこで,答えがひとつ出たところで表示し, その後さらに答えを求めるかどうかを人間に 聞いてくるように作ることを考える. このような対話処理は別の見方をすれば, 人間がさらに答えを求めたということは, そのゴールが失敗したとみなして,またゴールの証明探索を継続する ということを意味すると考えるとすっきりする. このようにゴールが失敗した時に後戻りすることをバックトラキングと呼 ぶ.バックトラッキングでは,ゴールに与えられた変数の値がゴールを満たさ なかったとみなして別の値を探しにゆくことになる.



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