2014-04-01 1 views
3

minizinc에서 pow 제약 조건을 지원할 수있는 방법이 있습니까 (직접 또는 간접). Gecode는 float 및 int 변수를 사용하여 pow constraint을 지원하지만 Minizinc 및 FlatZinc는 변수에 대한 pow를 지원하지 않습니다. Minizinc 및 Flatzinc은 모델에 대한 매개 변수에 대해서만 pow를 지원합니다. MiniZinc에서 Flatzinc (mzn2fzn) 파서에 대한 지원을 추가 할 위치를 가리키는 포인터입니다.minizinc에서 power-of (pow) 제약

- "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