next up previous
Next: 6.1 Primitiveな述語 Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 5.8 実行例

6 バックトラッキング

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

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


next up previous
Next: 6.1 Primitiveな述語 Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 5.8 実行例
generated through LaTeX2HTML. M.Inaba 平成18年5月21日