问题标签 [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 回答
193 浏览

output - 如何编译这个 MiniZinc 输出语句?

我如何修改它以在 MiniZinc 中编译:

我尝试了几种方法。

0 投票
1 回答
1594 浏览

compiler-errors - 如何解决 MiniZinc 错误:“搜索前检测到模型不一致”?

MiniZinc IDE-xossPB 报告:“警告:搜索前检测到模型不一致”。这是什么意思?如何解决这样的错误?

0 投票
1 回答
1539 浏览

floating-point - 在 MiniZinc 中,我该如何解决这个错误?

在 MiniZinc 中,我怎样才能让这段代码编译而不会出现错误“没有找到具有此签名的函数或谓词:`round(var float)'”?

0 投票
0 回答
555 浏览

minizinc - 如何在 MiniZinc 中设置数据文件?

在配置选项卡中我输入的附加参数:C:\data\j.dzn 神秘地回复:错误:无法处理文件扩展名 dzn"。用法:mzn2fzn [] [-I] .mzn [.dzn ...]

0 投票
1 回答
466 浏览

optimization - 如何优化这个 MiniZinc 应用程序?

我有一个 MiniZinc 应用程序,我想通过找到一些输入数据的低成本排列来最小化某些东西的“成本”。所以我有:

然后我根据 Seq 计算成本。该应用程序开始工作,但运行时间过长,超过了一个非常小的数字。显然求解器尝试了所有 n! 可能性。我如何缩放这个?

0 投票
0 回答
218 浏览

constraint-programming - 简化 MiniZinc 约束

我想简化出现在模型中的一组重复约束。
目的是确保为一组专家配备一定数量的技能,每个专家拥有 0..n 项技能。
目前,我必须为集合中的每个技能重复约束,但肯定有一种方法可以通过一个“通用”约束来简化它......

相关位:

0 投票
0 回答
447 浏览

constraints - Minizinc 软约束问题

我遇到了 Minizinc 代码的问题,该代码必须在可用的房间和时段安排一些考试。我跳过了整个问题和代码,因为我在这个软约束的定义中只是一个问题:

有些考试的目标是排他性或非排他性,这意味着他们需要一个单独的空间,这是一个软约束,所以我需要尽量减少违规次数。事实上,在同一房间安排的每次考试和需要专用房间的考试期间都算作一次违规。

对这个约束有用的数据和变量是:

  • 考试(要安排的考试数量)
  • room_exclusive(代表每次考试要求的排他性的布尔向量)
  • room_assignment(分配给每个考试的房间的变量向量)
  • period_assignment(分配给考试的期间的变量向量)
  • roomexclusivity(一个 int 向量,用于计算每个考试的排他性违规行为)
  • roomexclusivity_violations(违规总数)。

例如,如果四个考试共用一个房间,其中两个需要专用房间,则违规总数为六。这两个中的每一个在同一个房间里都有另外三个考试。

我曾考虑对每次考试进行两个周期控制,以便首先找到独家考试,然后检查它是否与其他考试共享房间和时间。问题可能出在sum(e2 in 1..Exams, e1!=e2)中,因为我在不知道在 Minzinc 语法中放置e1!=e2是否正确的情况下编写了它。

我得到的错误是(roomexclusivity[e1]..行:

0 投票
1 回答
646 浏览

constraints - 计划 minizinc 没有重叠

我想做一个没有重叠的时间表,只能在 1 个时间段预订 1 位老师。我想创建一个像教师一样的 2darray 行,时间段是列。

0 投票
1 回答
239 浏览

optimization - 约束规划优化

我想用约束编程语言表达和求解以下方程。

我有变量 t 并试图找到最小化我的目标函数的最佳乘数 k。

时间:t1, t2, t3 ......在输入中给出

倍数 k1, k2, k3...(这是需要找到的连续变量)

c1, c2,.. cN 是常数

主方程k1*sin(c1*x)+k2*sin(c2*x)+k3*sin(c3*x)+k4*cos(c1*x)...

问题是用 (k1, k2, k3..) 的最佳可能值最小化以下所有方程的结果。众所周知,该问题没有确切的解决方案。所以,
当 x 是 t1 --> P1-k1*sin(c1*t1)-k2*sin(c2*t1)-k3*sin(c3*t1)-k4*cos(c1*t1)...

当x 是 t2 --> P2-k1*sin(c1*t2)-k2*sin(c2*t2)-k3*sin(c3*t2)-k4*cos(c1*t2)...

当 x 是 t3 --> P3-k1*sin(c1*t3)-k2*sin(c2*t3)-k3*sin(c3*t3)-k4*cos(c1*t3)...

P1 是时间变量的界值。但是 P(t) 不是解析函数,我只是为它们设置了值,例如当 t1 = 5 P1=0.7 t2= 6 P2= 0.3 等时。

是否有可能在 minizinc 或任何其他 CP 系统中解决这个问题?

0 投票
1 回答
2237 浏览

constraint-programming - Minizinc:if-then-else 语句中的数组赋值问题

我正在尝试在我的 minizinc 程序中应用此约束。目标是最大化成本函数,这是约束之一,但是当我运行此代码时,它显示

如果我将 key2[k]=j 替换为 true ,那么它会编译并运行而不会出现任何错误。我没有在程序中的任何其他地方使用 key2 数组。我正在使用数据文件提供输入,并且我将 key2 数组初始化为 key2=[1,1]。我是 minizinc 的初学者,我不明白为什么在这种情况下为数组分配数字会有问题?