0

誰かが私を助けてくれることを願っています。PrologとはS異なる状況から推論することは可能ですか?s0

私はs0このような(初期の状況)を持っています:

isoven(oven).
isoff(oven,s0).
ison(X,do(a,S)):- a=switchOn(X),isoven(X); isOff(X,S),\+ a=swicthOff(X). (fluent inon)

プロンプトが表示された場合:

?- isOn(oven,s0).
false.

?- ison(oven,do(swicth(oven)s0)).
true

次のような結果を得るには、「save(do(swicth(oven)s0))toS'」のようなコマンドが存在すると便利です。

?- ison(oven,S').
true. 
4

1 に答える 1

0

Prologは魔法ではありません、あなたは物事を適切に実装する必要があります。状況計算を使用したいようです。オンラインにはたくさんの資料があります。

また:

a=switchOn(X)

これは無意味で、常に失敗します。そこに変数が必要です(最初の文字は大文字でなければなりません)

于 2012-10-31T15:24:00.903 に答える