首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >克林戈语中的勇敢/谨慎推理

克林戈语中的勇敢/谨慎推理
EN

Stack Overflow用户
提问于 2019-04-14 12:54:11
回答 1查看 573关注 0票数 2

在Clingo指南中,有两种称为谨慎和勇敢的模式,如下所示:

勇敢的计算一个逻辑程序的勇敢结果(所有答案集的总和)。 谨慎计算一个逻辑程序的谨慎结果(所有答案集的交集)。

指南中没有提供更多的信息。我试了几个例子,很难理解这个问题。

我尝试运行以下简单的ASP程序:

代码语言:javascript
复制
p :- not q.
q :- not p.

运行没有模式参数的Clingo将给出正确的答案集:

代码语言:javascript
复制
answer 1:{p}
answer 2:{q}

正如指南中所描述的,如果在勇敢模式下运行,这将计算所有答案集的合并,我将得到结果{p, q}

同样,对于谨慎的情况,预期结果为空。

然而,克林戈勇敢推理的实际结果是:

clingo版本5.3.0 从试验中读/谨慎推理 解决..。 答:1 问: 后果: 1;2 答:2 后果: 2;2 萨蒂斯菲尔德 模型:2 勇敢:是的 后果:2 电话:1 时间: 0.006s (解题: 0.00s 1型号: 0.00s Unsat: 0.00s) CPU时间: 0.002s

至于谨慎的情况:

clingo版本5.3.0 从试验中读/谨慎推理 解决..。 答:1 问: 后果: 0;1 答:2 后果: 0;0 萨蒂斯菲尔德 模型:2 谨慎:是的 后果:0 电话:1 时间: 0.001s (解题: 0.00s 1型号: 0.00s Unsat: 0.00s) CPU时间: 0.001s

那么,[]中的数字代表什么呢?如何理解克林戈的谨慎勇敢的推理模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-14 19:36:53

当您使用枚举算法--enum-mode brave--enum-mode cautious调用clingo时,每个枚举模型中出现的原子“会聚”到一组勇敢或谨慎的结果中。即在brave模式下原子单调增加,而在cautious模式下原子单调减少。把它看作是一个“奔跑”的联合或十字路口,为勇敢和谨慎的后果,雷普。

方括号[d;p]中的数字有以下含义: clingo对每个模型调用TextOutput::printMeta,它输出由Output::numCons计算的确定性后果d和剩余可能后果p的一对整数。

编辑:最后一个答案将给出最终结果,即输入程序的勇敢/谨慎的后果。如果您只关心最终的结果,那么您可以像这样调用clingo来获得勇敢的结果(例如,程序a | b | c | d.):

代码语言:javascript
复制
% echo 'a|b|c|d.' | clingo -e brave | grep -A1 '^Answer:' | tail -n -1
b c d a

对于程序a | b | c | d. (即空集)的谨慎后果,只需在谨慎的枚举模式下启动clingo:

代码语言:javascript
复制
% echo 'a|b|c|d.' | clingo -e cautious | grep -A1 '^Answer:' | tail -n -1
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55675488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档