问题标签 [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.
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 运行它时,它给出了这个错误:
这段代码有什么问题还是有其他方法可以满足这个约束?
parsing - 解决 MiniZinc 中的字符串约束
我试图用 MiniZinc 中的字符串连接运算符定义一个约束,求解变量a
和b
:
尽管如此,这似乎是一个语法错误:
是否仍然可以使用字符串或数组作为变量来解决 MiniZinc 中的约束?
arrays - Minizinc - 如何限制数组的每一列只包含一个给定的整数?
我正在尝试填充一个 10 行数组,使每列包含一个“1”、一个“2”、一个“3”和七个“0”。有谁知道如何做到这一点?我尝试将列总数限制为 6,但返回的列有 6 个、2 个 3 等。是否有我不知道的“计数”函数?谢谢!
constraints - 如何在 MiniZinc 中准确使用谓词
新的 MiniZinc 用户在这里......我在理解计数约束的语法时遇到了问题:
“需要 x 中的 n 个变量来取值 v。”
我想确保我的 10r x 30c 数组中的每一列至少各有一个 1,2 和 3,其余 7 行等于 0。
如果我将我的数组声明为
我怎样才能根据需要准确地使用谓词来填充它?谢谢!
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 版。
optimization - 运行 Minizinc 模型会产生未知错误
我是 minizinc 和优化的初学者。我试图充实一条只有平均十分位数统计数据可用的点曲线。
这是我的模型:
我认为这将是一个简单的模型,但是从 minizinc IDE(gecode 求解器)运行时,我得到以下输出:
然后是带有标题的弹出窗口:
“执行 MiniZinc 解释器时出现未知错误。”
到目前为止,我遇到的所有其他失败都产生了关于哪里出了问题的指标,但我不知道从哪里开始。谁能帮助或指出我哪里出错了?
constraint-programming - Minizinc 中回文的有效谓词
为了帮助我学习 Minizinc,我正在尝试解决一个简单的问题。我的代码找到了答案,但令我惊讶的是,运行这么简单的问题需要大约 10 秒。
问题是“什么是最小的回文整数 > 10,所以它的数字之和 > 10 并且也是回文?”。而且我希望代码只做大的假设:答案最多有 8 位数字。
我的代码是(toNum 谓词来自 hakank 网站):
完整版本具有以下附加约束:
我的代码有什么问题/速度慢?
minizinc - MiniZinc 2.0.5:“在数组理解中......无法确定界限”
在我用 MiniZincIDE 0.9.9 编写的模型中,以下约束在数组理解期间引发“无法确定边界”错误:
在哪里
adjIndex 和 Diss 是参数数组。
错误本身显示为:
我知道当无法确定变量边界时通常会引发错误(MiniZinc“无法确定边界”),但是,所有约束变量都是绑定的。
我怀疑问题出在 find(a,b,c,d)、coordSolLays[a,b] 和/或它们的相互作用上,因为用整数或简单变量(即 a、b、i)替换它们中的一个或两个产生一个解决方案。
对可能发生的事情有任何想法吗?提前致谢!
optimization - 如何计算要在 MiniZinc 的下游约束中使用的数组元素子集的中间总和?
我有一个长度为 l 的 int [0,0,0,0,0] 类型的数组
我想计算在下游约束中使用的具有奇数索引的所有元素的总和,这里有一些“伪”MiniZinc 代码:
s = sum(i in 1..l | i mod 2 == 0) (a[i]);
解决最大化;
如何才能做到这一点?
minizinc - MiniZinc 中的 switch 语句
在MiniZinc 教程中,我注意到endif
关键字在一系列条件语句的末尾重复了很多次。是否可以在 MiniZinc 中编写 switch 语句来替代这种冗长的语法?
例如,我想把这一系列条件语句写得更简洁: