问题标签 [minizinc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
298 浏览

constraints - 解决方案的投影

是否有可能告诉 MiniZinc 在一组变量的子集上投影解决方案?或者有没有其他方法可以枚举所有对评估某些变量子集唯一的解决方案?

我曾尝试在 MiniZinc 中直接使用 FlatZinc 注释,但它不起作用,因为扁平化过程添加了更多的 define_var 注释,而我的注释被忽略了。

0 投票
1 回答
818 浏览

minizinc - 在 minizinc 中打印完整解决方案(所有决策变量)的简单方法

锌规格是这样说的:

如果不存在输出项,则实现应以可读格式打印所有全局变量及其值。

但是,这似乎不适用于 minizinc 版本 1.6.0:

G12 MiniZinc 评估驱动程序,1.6.0 版

我已经尝试过默认命令(minizinc)和 mzn-gecode。

我真的很想避免在输出表达式中重复所有变量名。我真正想要的是以某种结构化格式(例如 YAML)输出所有决策变量,但我会采取某种方式来避免这种重复。

澄清一下:我的模型与 CSP 的典型示例不匹配,例如没有大数组或矩阵。它只是一组相当大(相对而言)的个体决策变量。

编辑:错误创建

EDIT2:bug 现在已在 minizinc 2.0 git 存储库中修复,因此它符合规范。

0 投票
1 回答
286 浏览

constraint-programming - 使用约束编程生成独特的解决方案

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

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

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

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

我还不清楚。

那么我的问题是:

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

c++ - 在跳过对角线的向量上映射上三角矩阵

我有一个问题可以归结为找到一种将三角矩阵映射到跳过对角线的向量的方法。

基本上我需要使用 Gecode 库翻译这个 C++ 代码

进入这个 MiniZinc(功能)代码

我需要找出differences[?].

MiniZinc 是一种没有适当 for 循环的函数/数学语言。所以我必须映射那些索引 i 和 j ,它们接触上三角矩阵的所有且仅接触上三角矩阵的单元格,跳过其对角线,将这些单元格从 0 编号到任何值。

如果这是一个规则的三角矩阵(不是),这样的解决方案可以了

我正在处理的矩阵是一个n*n索引从 0 到 n-1 的方阵,但是为矩阵提供更通用的解决方案会很好n*m

这是完整的 Minizinc 代码

谢谢。

0 投票
1 回答
414 浏览

constraints - Minizinc:这种约束可能吗?

我想弄清楚如何写这个约束:我有一个考试清单,每场考试都有一个持续时间;最终输出是显示一个实时时间表,列中有可用时间,早上四点和下午四点,午餐中间有两个小时不可用。所以,让我做这很清楚,如果我有两门考试并且每门考试都有指定的持续时间,我想在时间表中显示与考试持续时间相关的考试编号,因为我的变量是考试。

例如:我有两次考试,第一次需要一个小时,第二次需要三个小时

我想要这个输出: [1,2,2,2] 而不是 [0,0,0,4] (垂直模式) 可以在 Minizinc 中做吗?第二个输出的代码是:

提前致谢

0 投票
1 回答
1885 浏览

constraints - Minizinc:输出五天,有更好灵活的方式吗?

我必须扩展我的项目的输出和解决方案(进行考试安排):

-将结构扩展到五天(我一直在一天工作):我考虑过将slottimes的天数(5 * 10),然后调整输出!有没有更好的办法?

现在整个代码:

Enrollments 会跟踪每个学生的注册情况;从中我得到将要参加考试的学生人数,以便根据容量选择合适的房间

现在的输出,极其沉重且充满了字符串。

我以数据结束:

提前致谢

0 投票
2 回答
1091 浏览

minizinc - 调试 minizinc(无论如何,我发现了一个错误吗?)

我熟悉 MiniZinc 的基础知识。因此,借助 MiniZinc IDE,我编写了如下代码片段

显示

现在,整数列表的 cdr 似乎是错误的。我认为这是我的错误,尽管我无法发现它。

断言可以在这里帮助我吗?由于我将使用 Gecode(然后我有 Gist)将我的代码实际投入生产,我可以遵循这条路线吗?

任何提示表示赞赏...

编辑此片段

报告

0 投票
1 回答
1308 浏览

sat-solvers - 如何安装 minizinc 求解器

在 MiniZinc (windows IDE) 我如何解决:flatzinc:错误:FD 求解器后端不支持“var float”类型的变量。我意识到我需要一个不同的求解器,但找不到安装一个程序的过程,并且 Preferences dlg 似乎不起作用。另外,不清楚哪个求解器可以工作。

0 投票
1 回答
437 浏览

output - Minizinc 无输出

为什么我在 MiniZinc 中没有输出?我的程序这样结束:

我得到的只是:运行 scheduler.mzn 54 毫秒内完成

2/7/15 再次发生。这是精简的代码:

我没有得到任何输出,也没有“不满意”。

0 投票
1 回答
448 浏览

bounds - MiniZinc“无法确定界限”

编写我的第一个重要的 MiniZinc 应用程序时,我一直遇到错误“无法确定边界”。通常如何解决此错误?