minizinc中的(pow)约束力

时间:2014-04-01 06:02:37

标签: constraints minizinc

是否有任何方式(直接或间接)可以在minizinc中支持pow限制。 Gecode支持带有float和int变量的pow constraint,但Minizinc和FlatZinc不支持变量的pow。 Minizinc和Flatzinc仅支持模型参数的pow。 任何关于在MiniZinc中添加支持到Flatzinc(mzn2fzn)解析器的指针都可以做到这一点。

我希望有一个约束,例如 - “pow(4,x)== y”,即4 ^ x == y。

1 个答案:

答案 0 :(得分:2)

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

或许用#34;存在"来模仿它就足够了?这是一个简单的例子(在这个例子中," 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]) ];