3

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

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

4

1 回答 1

2

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

也许用“存在”来模仿它就足够了?这是一个简单的例子(在这个例子中“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]) ];
于 2014-04-01T15:46:00.620 回答