2014-04-01 4 views
3

Есть ли способ (прямой или косвенный), с помощью которого ограничения pow могут поддерживаться в minizinc. Gecode поддерживает pow constraint с переменными float и int, однако Minizinc и FlatZinc не поддерживают pow для переменных. Minizinc и Flatzinc поддерживают pow только для параметров модели. Любые указатели на то, где искать, чтобы добавить поддержку в парктронике MiniZinc to Flatzinc (mzn2fzn), чтобы сделать это.Ограничения мощности (pow) в minizinc

Я хочу иметь ограничение, такое как - "pow (4, x) == y", то есть 4^x == y.

+0

Добавлена ​​ошибка, прежде чем я увидел этот вопрос: http://www.minizinc.org/trac/ticket/54 – esl

ответ

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]) ]; 
+0

вы знаете о каких-либо планах добавления поддержки мощн с переменными решения в MiniZinc ли, учитывая, что GECODE уже поддерживает его? – user3483760

+0

@ user3483760 Я не знаю никаких планов по расширению функции pow. Предстоящая версия MiniZinc 2.0 будет иметь немало новых функций, будем надеяться, что она также включает в себя лучшую рабочую силу. – hakank

+0

Было подтверждено, что minizinc будет включать это, однако поддержка от фактических решателей, по-видимому, несколько отсутствует. См. [Запрос функции] (http://www.minizinc.org/trac/ticket/54#comment:1). – esl

 Смежные вопросы

  • Нет связанных вопросов^_^