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

为什么clingo打印answer1两次?我已经检查了这两个answer1是完全相同的。
我在代码中使用了optimization。这会是问题所在吗?
我已经设置了一个test repo。上面的输出可以通过在测试存储库中运行以下行来生成。
clingo --opt-mode=OptN examples/swap-shift.lp发布于 2018-08-11 16:27:13
下面是我现在所理解的:使用--opt-mode=OptN选项,clingo将尝试多个模型,直到找到所有最优模型,并且它将打印它见证的所有模型,然后打印最优模型。我想这可以解释为什么answer1在我最初的问题中被打印了两次。
在输出中,我认为Models是目击者总数(包括打印两次的第一个最优模型)。Optimal是找到的最佳模型的数量。
我是通过观察this example的输出来进行观察的
clingo --opt-mode=OptN asp/_all.lp asp/examples/scatter.lp看看Optimization是如何减少的,最后打印出了两个最优模型。

发布于 2018-08-13 15:07:12
在寻找最佳答案集的同时,clingo会打印出比以前找到的答案集更好的每个答案集。如果找不到更好的答案集,这意味着已经证明了最后一个答案集的最优性。如果您使用了optN模式,则clingo会枚举具有最佳成本所有答案集。这将再次找到找到的第一个最佳答案集。
就我个人而言,我不知道如何只打印最佳答案集,并且只从命令行打印每个答案集。可以使用Python API实现这样的行为。
https://stackoverflow.com/questions/51796211
复制相似问题