2

我正在使用带有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

4

1 回答 1

1

如果您仍然感兴趣(听起来您可能不感兴趣):这实际上并不难。

如果你看 Reiter 的书,你会发现 Causes_vals 只是效果公理,而提及情况的流利通常是后继状态公理。有一种确定性的方式可以从前者转换为后者,而对cause_vals的正确解释是在回归的实现中完成的。这始终是相同的,您只需将 Prolog 代码的那部分从 indiGolog 复制到您的风格。

于 2013-12-18T01:11:27.783 回答