Clingo打印重复的答案?

时间:2018-08-11 03:28:38

标签: clingo

我在解释下面的clingo v 5.2.2输出时遇到问题:

enter image description here

为什么clingo打印两次answer1?我检查了两个answer1是否完全相同。

我在代码中使用optimization。可能是问题所在吗?

我已经设置了test repo。可以通过在测试存储库中运行以下行来生成以上输出。

clingo --opt-mode=OptN examples/swap-shift.lp

2 个答案:

答案 0 :(得分:1)

在寻找最佳答案集的同时,clingo会打印出比先前找到的答案集更好的每个答案集。 如果找不到更好的答案集,则意味着已经证明了最后一个答案集的最优性。 如果您已使用optN模式,则clingo会以最佳成本枚举所有答案集。这将再次找到找到的第一个最佳答案集。

我个人不知道如何仅从命令行打印最佳答案集,而仅打印最佳答案集。使用Python API可以实现这种行为。

答案 1 :(得分:0)

这就是我现在所了解的:使用--opt-mode=OptN选项,clingo将尝试多个模型,直到找到所有最佳模型为止,并打印所有目击过的模型,然后是最佳模型。我认为这可以解释为什么answer1在我的原始问题中被打印两次。

在输出中,我认为Models是见证人总数(包括打印两次的第一个最佳模型)。 Optimal是找到的最佳模型的数量。

我通过观察this example

的输出进行了观察。
clingo --opt-mode=OptN asp/_all.lp asp/examples/scatter.lp

查看Optimization如何减小,并在最后打印出两个最佳模型。

enter image description here