こんにちは、私は Golog を使用して検索計画を確立しようとしています。必要な基本的なアクションを書き出しましたが、golog で複雑なアクションを記述する際のギャップを埋めることに固執しています。
たとえば、エージェントが行わなければならない一連の動きを書き出せるようにしたいと考えています。
現在、これらの動きを次のようにハードコーディングしています。
proc(goToLoc(dest),
go(start,next1) :
go(next1,next2) :
go(next2,dest)
).
設計者として、私はこれらの動きが有効であり、do(goToLoc(dest),s0,S)
合格することを知っています。私がやりたいのは、この複雑なアクションを書き直して、任意の変数を受け入れることができるようにすることです。試してみましたが、何らかの方法で再帰的である必要があると思いますが、再帰呼び出しから値を割り当てる方法に行き詰まっています?
proc(goToLoc(L),
if(some(a, location(a) & -(a=L)),
pi(a, ?(location(a) & -(a=L) : go(a, L)) : goToLoc(a)),
?(true)
)
).
私はかなり外れている可能性がありますが、procを再帰的に呼び出しても状態は変化していないようで、十分な情報を提供したかどうかさえわかりません...公理がたくさんあるのでstart
next1
...間の関係を確立するために使用しますdest
が、基本的には、Golog 内で一連のアクションを表現する方法について概念的なものを探しています。