0

我曾短暂接触过 CP 和 MiniZinc,但我不是专家。

我有一个 CP 模型,我不能在这里发布 ATM,在 MiniZinc 中实现。我需要为该问题生成所有可行的解决方案。我们预计只有“几个”,比如少于 1000 个,超过 100 个。

我尝试使用传递给 minizinc ver 的 -a 标志来解决模型。1.6 但我注意到打印的很多解决方案都是相同的。

这里他们指的是“投影”。在另一篇论文中,我读到他们使用了一些“回溯机制”。

我还不清楚。

那么我的问题是:

  1. 从 CP 模型仅生成唯一解决方案的最佳方法是什么?
  2. 在 SCIP 或 Gecode 等 CP 库中是否实现了标准机制?它有一个共同的名字吗?
  3. 计算效率高吗?
  4. minizinc 支持吗?如何访问该功能?
4

1 回答 1

4

通常,CP 系统只会为您提供不同的解决方案。我怀疑您有未打印的决策变量(不在输出部分中),并且您看不到如果这些值包含在解决方案中,它将是唯一的解决方案。

在您链接到的问题(最近的讨论)中,提到 Gecode 的 FlatZinc 求解器(至少是 SVN 版本)现在在输出部分给定决策变量的子集时生成不同的解决方案。其他 FlatZinc 求解器似乎没有此功能。

如果这不能回答您的问题,请提供模型的更多详细信息和输出示例(包括输出部分)。

于 2014-09-24T04:38:13.447 回答