在 Clingo 指南中,有两种模式分别称为谨慎和勇敢,介绍如下:
勇敢计算逻辑程序的勇敢结果(所有答案集的联合)。
谨慎计算逻辑程序的谨慎后果(所有答案集的交集)。
指南中没有提供更多信息。我尝试了一些示例,但无法理解该问题。
我尝试运行以下简单的 ASP 程序:
p :- not q.
q :- not p.
在没有模式参数的情况下运行 Clingo 将给出正确的答案集:
answer 1:{p}
answer 2:{q}
如指南中所述,如果在勇敢模式下运行,它将计算所有答案集的并集,我应该得到结果{p, q}
。
同样,对于谨慎的情况,预期结果为空。
然而,Clingo 勇敢推理的实际结果是:
紧贴版本 5.3.0
从 test/cautious_reasoning.lp 读取
解决...
答案:1
q
后果:[1;2]
答案:2
qp
后果:[2;2]
满意
型号:2
勇敢:是的
后果:2
来电:1
时间:0.006s(求解:0.00s 1st Model:0.00s Unsat:0.00s)
CPU时间:0.002s
对于谨慎的情况:
紧贴版本 5.3.0
从 test/cautious_reasoning.lp 读取
解决...
答案:1
q
后果:[0;1]
答案:2
后果:[0;0]
满意
型号:2
谨慎:是的
后果:0
来电:1
时间:0.001s(求解:0.00s 1st Model:0.00s Unsat:0.00s)
CPU时间:0.001s
那么里面的数字[]
代表什么?如何理解 Clingo 中谨慎勇敢的推理模式?