问题标签 [golog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
321 浏览

prolog - 循环中的 Prolog 错误

我需要有关 Prolog 的帮助。我发布了我的代码,问题是我没有获得预期的结果。我想计划行动以在桌子上移动所有块,直到可能为止。为此,我提示:

我希望看到这样的回应:

但 Prolog 仅返回“false”。有人可以帮助我吗??

谢谢你!!!

0 投票
1 回答
131 浏览

eclipse - 将 MIndiGolog 流式转换为 IndiGolog Causes_val 格式

我正在使用带有Prolog 开发工具(PDT) 插件的Eclipse(版本:Kepler Service Release 1)在 Eclipse 中进行 Prolog 开发。使用了这些安装说明:http ://sewiki.iai.uni-bonn.de/research/pdt/docs/v0.x/download 。

我正在使用Multi-Agent IndiGolog (MIndiGolog) 0(MIndiGolog 的初步序言版本)。从这里下载:http ://www.rfk.id.au/ramblings/research/thesis/ 。我想使用 MIndiGolog,因为它很好地表示了动作的时间和持续时间(我想做时间规划),并且它支持多个代理的规划(包括并发)。

MIndiGolog是一种基于情境演算的高级编程语言。语言中的一切都完全根据情况演算。然而,这不适合我正在从事的项目。

这种其他高级编程语言,增量确定性(Con)Golog(IndiGolog)(从这里下载:http: //sourceforge.net/p/indigolog/code/ci/master/tree/)(也是用 Prolog 制作的),也(松散地)基于情境演算,但以非常不同的方式使用流利。它利用cause_val-predicates来表示哪个动作以什么方式改变哪个流利,它不包括流利中的情况!

然而,这正是团队其他人真正想要的。我需要重写 MIndiGolog,使其仍然是一个离线计划器,可以很好地表示动作的时间和持续时间,但使用 IndiGolog 的 cause_val 谓词来更改流利的值。

我发现这很难做到,因为我在 Prolog 和情况演算方面的知识只涵盖了基础知识,但他们认为我是专家。我觉得我在我的头上,可以使用我能得到的所有帮助和/或建议。

我已经从我的 fluents 中删除了这些情况,使用 Cause_val 谓词创建了一个规划域,并尝试将 IndiGolog 代码添加到 MIndiGolog 中。但没有运气。运行规划器只会返回“false”。即使我使用 SWI-Prolog 调试器的 GUI-tracer 版本,或者当我尝试尽可能有策略地放置间谍点时,我也无法理解跟踪。

提前致谢,

最好的,PJ

0 投票
0 回答
55 浏览

prolog - 坚持理解 Golog 解释器 - 我怎样才能避免硬编码?

嗨,我正在尝试使用 Golog 建立一个搜索计划,我已经写出了必要的原始操作,但我坚持弥合在 golog 中编写复杂操作的差距。

例如,我希望能够写出代理人必须做出的一系列动作。

目前我正在对这些动作进行硬编码,如下所示:

作为设计师,我知道这些动作是有效的,因此do(goToLoc(dest),s0,S)会通过。我想要做的是重写这个复杂的动作以能够接受任何变量,我已经尝试过,我认为它需要以某种方式递归,但我坚持如何从递归调用中分配值?

我可能会走得很远,但是当我递归调用proc时状态似乎没有改变,而且我什至不确定我是否提供了足够的信息......因为我有一堆公理用于建立start next1...之间的关系,dest但本质上我只是在寻找一些关于如何在 Golog 中表示一系列动作的概念。