DLV交互模式(调试)

时间:2016-09-21 09:35:00

标签: debugging datalog answer-set-programming

我一直在研究DLV一段时间,当程序很大时,我发现很难遵循规则的激活。所以我去了manual并检查是否有什么东西允许我这样做。

我发现的唯一的东西是前端选项-FP但我不确定这是否是我正在寻找的,因为手册没有提供这方面的足够信息。那么,我用这个标志做了什么来运行我的程序但是我收到以下错误:

  

背景知识不得包含聚合

程序在没有此标志的情况下运行,我无法摆脱聚合。我也试过一个愚蠢的程序,但提示不同的警告/错误:

  

警告:没有给出计划长度。计划长度默认为零。   没有指定目标查询。

这是调试DLV程序的正确方法吗?有办法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

不,这不是调试DLV程序的正确方法。

规划前端(由-FP调用)旨在使用DLV来解决规划问题,即一般问题: 这是世界/我的系统的当前状态。这是我能够执行的一系列可能的操作,这是我想要达到的一组目标。 现在我想知道我必须执行哪些操作来实现这些目标? (我不知道有关规划的更多信息的良好来源,我在学习期间有几年的课程 - 正如50秒谷歌搜索的结果可能这是更多信息的有用来源:{{3 }})

DLV的规划前端只是为您提供了一个框架,允许您表达这些类型的计划,然后为您解决(并且它在第二个警告中请求的计划长度是计划的最大步骤数)可能需要)。所以我认为这不是你想要的。

我根本没有调试DLV的经验,但我认为曾经提到ASP IDE http://aima.cs.berkeley.edu/2nd-ed/newchap11.pdf支持某种调试(因此在dlv网站https://www.mat.unical.it/ricca/aspide/download上有说明) ,但我不知道提供了哪些信息以及它是否对您有帮助。 (一般来说,我认为调试并不是那么简单,因为ASP系统的实际实现可能与其语义的声明性定义有很大不同。)

(对不起,如果这是一个评论而非答案,但我仍然不允许写评论,只有答案)