1

我无法解释clingo v 5.2.2下面的输出:

在此处输入图像描述

为什么要clingo打印answer1两次?我已经检查过这两个answer1s 是完全一样的。

我在我的代码中使用优化。这可能是问题吗?

我已经建立了一个测试仓库。可以通过在测试存储库中运行以下行来生成上述输出。

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

2 回答 2

1

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

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

于 2018-08-13T07:07:12.333 回答
1

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

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

我通过观察这个例子的输出进行了观察

clingo --opt-mode=OptN asp/_all.lp asp/examples/scatter.lp

看看最后如何Optimization减少和打印两个最佳模型。

在此处输入图像描述

于 2018-08-11T08:27:13.333 回答