问题标签 [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 投票
1 回答
1426 浏览

constraint-programming - Minizinc:如何将此约束应用于调度模型?

我正在研究一个调度模型,我想弄清楚如何使用这个约束:我正在使用 Minizinc 2.0.2 版本和 MinizincIDE-0.9.7-linux 和 G12-MIP 和 Gecode 求解器。

示例 data.dzn 文件:

使用 G12-MIP 求解器的输出表数组给出以下结果:

该模型适用于 2 点和 48 小时(即 2 天)。我想添加的约束是每个员工每天都有轮班,如果分配有任何休息时间。在这个期望的输出中是:

我试过的方法:

当我使用以下命令通过 Linux 终端运行它时:mzn-g12mip test.mzn data.dzn 它给出了与之前相同的结果。当我通过 MinizincIDE-0.9.7-linux 运行它时,它给出了这个错误:

这段代码有什么问题还是有其他方法可以满足这个约束?

0 投票
1 回答
974 浏览

parsing - 解决 MiniZinc 中的字符串约束

我试图用 MiniZinc 中的字符串连接运算符定义一个约束,求解变量ab

尽管如此,这似乎是一个语法错误:

是否仍然可以使用字符串或数组作为变量来解决 MiniZinc 中的约束?

0 投票
1 回答
605 浏览

arrays - Minizinc - 如何限制数组的每一列只包含一个给定的整数?

我正在尝试填充一个 10 行数组,使每列包含一个“1”、一个“2”、一个“3”和七个“0”。有谁知道如何做到这一点?我尝试将列总数限制为 6,但返回的列有 6 个、2 个 3 等。是否有我不知道的“计数”函数?谢谢!

0 投票
1 回答
940 浏览

constraints - 如何在 MiniZinc 中准确使用谓词

新的 MiniZinc 用户在这里......我在理解计数约束的语法时遇到了问题:

“需要 x 中的 n 个变量来取值 v。”

我想确保我的 10r x 30c 数组中的每一列至少各有一个 1,2 和 3,其余 7 行等于 0。

如果我将我的数组声明为

我怎样才能根据需要准确地使用谓词来填充它?谢谢!

0 投票
1 回答
1668 浏览

minizinc - MiniZinc 类型错误:未找到 all_different(array[int] of var int)

我为我正在解决的标签问题创建了一个模型。除了找不到“all_different”谓词之外,一切都很好。错误出现在“约束”(2) 和 (3) 中,产生以下错误日志:

我已经尝试过'all_different'和'alldifferent',并且键签名'array [int] of var int'与'all_different'的文档相匹配。注释掉 to 约束后,我没有其他问题。

知道有什么问题吗?

我正在使用 MiniZincIDE 0.9.8 版。

0 投票
0 回答
333 浏览

optimization - 运行 Minizinc 模型会产生未知错误

我是 minizinc 和优化的初学者。我试图充实一条只有平均十分位数统计数据可用的点曲线。

这是我的模型:

我认为这将是一个简单的模型,但是从 minizinc IDE(gecode 求解器)运行时,我得到以下输出:

然后是带有标题的弹出窗口:

“执行 MiniZinc 解释器时出现未知错误。”

到目前为止,我遇到的所有其他失败都产生了关于哪里出了问题的指标,但我不知道从哪里开始。谁能帮助或指出我哪里出错了?

0 投票
1 回答
236 浏览

constraint-programming - Minizinc 中回文的有效谓词

为了帮助我学习 Minizinc,我正在尝试解决一个简单的问题。我的代码找到了答案,但令我惊讶的是,运行这么简单的问题需要大约 10 秒。

问题是“什么是最小的回文整数 > 10,所以它的数字之和 > 10 并且也是回文?”。而且我希望代码只做大的假设:答案最多有 8 位数字。

我的代码是(toNum 谓词来自 hakank 网站):

完整版本具有以下附加约束:

我的代码有什么问题/速度慢?

0 投票
1 回答
1101 浏览

minizinc - MiniZinc 2.0.5:“在数组理解中......无法确定界限”

在我用 MiniZincIDE 0.9.9 编写的模型中,以下约束在数组理解期间引发“无法确定边界”错误:

在哪里

adjIndex 和 Diss 是参数数组。

错误本身显示为:

我知道当无法确定变量边界时通常会引发错误(MiniZinc“无法确定边界”),但是,所有约束变量都是绑定的。

我怀疑问题出在 find(a,b,c,d)、coordSolLays[a,b] 和/或它们的相互作用上,因为用整数或简单变量(即 a、b、i)替换它们中的一个或两个产生一个解决方案。

对可能发生的事情有任何想法吗?提前致谢!

0 投票
1 回答
231 浏览

optimization - 如何计算要在 MiniZinc 的下游约束中使用的数组元素子集的中间总和?

我有一个长度为 l 的 int [0,0,0,0,0] 类型的数组

我想计算在下游约束中使用的具有奇数索引的所有元素的总和,这里有一些“伪”MiniZinc 代码:

s = sum(i in 1..l | i mod 2 == 0) (a[i]);

解决最大化;

如何才能做到这一点?

0 投票
1 回答
586 浏览

minizinc - MiniZinc 中的 switch 语句

MiniZinc 教程中,我注意到endif关键字在一系列条件语句的末尾重复了很多次。是否可以在 MiniZinc 中编写 switch 语句来替代这种冗长的语法?

例如,我想把这一系列条件语句写得更简洁: