minizinc中可以支持pow約束的方式(直接或間接)嗎? Gecode支持帶有float和int變量的pow constraint,但是Minizinc和FlatZinc不支持變量的pow。 Minizinc和Flatzinc僅支持模型參數。 任何指針可以在MiniZinc中添加對Flatzinc(mzn2fzn)解析器的支持來執行此操作。minizinc中的power-of(pow)約束
我想要有一個約束,如 - 「pow(4,x)== y」,即4^x == y。
minizinc中可以支持pow約束的方式(直接或間接)嗎? Gecode支持帶有float和int變量的pow constraint,但是Minizinc和FlatZinc不支持變量的pow。 Minizinc和Flatzinc僅支持模型參數。 任何指針可以在MiniZinc中添加對Flatzinc(mzn2fzn)解析器的支持來執行此操作。minizinc中的power-of(pow)約束
我想要有一個約束,如 - 「pow(4,x)== y」,即4^x == y。
我知道在當前版本的MiniZinc中使用pow/2和決策變量是不可能的。
也許用「存在」來模擬它就足夠了?這裏有一個簡單的例子(在這個例子中「我」的域太大了)。
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]) ];
你知道的增加對與MiniZinc決策變量戰俘支持的任何計劃,因爲GECODE已經支持它? – user3483760
@ user3483760我不知道有任何擴展pow函數的計劃。即將推出的MiniZinc 2.0版將具有不少新功能,希望它還包含更好的工作功能。 – hakank
已經確認minizinc會包括這個,但是實際解算器的支持顯然是有點缺乏。請參閱[功能請求](http://www.minizinc.org/trac/ticket/54#comment:1)。 – esl
加入之前,我看到了這個問題的錯誤:http://www.minizinc.org/trac/ticket/54 – esl