【问题标题】:power-of (pow) constraints in minizincminizinc 中的幂(pow)约束
【发布时间】:2014-04-01 23:46:00
【问题描述】:

有什么方法(直接或间接)可以在 minizinc 中支持 pow 约束。 Gecode 支持带有 float 和 int 变量的pow constraint,但是 Minizinc 和 FlatZinc 不支持变量的 pow。 Minizinc 和 Flatzinc 仅支持模型参数的 pow。 任何有关在 MiniZinc 中向 Flatzinc (mzn2fzn) 解析器添加支持以执行此操作的位置的指针。

我想要一个约束,例如 - " pow( 4, x ) == y " ,即 4^x == y 。

【问题讨论】:

标签: constraints minizinc


【解决方案1】:

据我所知,在当前版本的 MiniZinc 中不可能将 pow/2 与决策变量一起使用。

也许用“exists”来模仿它就足够了?这是一个简单的例子(这个例子中“i”的域太大了)。

var 0..10000: x;
var 0..10000: y;
solve satisfy;

constraint
      exists(i in lb(x)..ub(x)) (
         i = x /\
         pow(4,i) = y
      )
;

output [ show([x,y]) ];

【讨论】:

  • 鉴于 GECODE 已经支持它,您是否知道任何计划在 MiniZinc 中添加对带有决策变量的 pow 的支持?
  • @user3483760 我不知道任何扩展 pow 功能的计划。即将推出的 MiniZinc 2.0 版将有不少新功能,我们希望它还包括更好的工作 pow。
  • 已确认 minizinc 将包含此功能,但实际求解器的支持显然有所欠缺。见feature request
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多