Gecode 툴킷으로 작업하고 있는데 다음과 같은 시나리오를 모델로하고 싶습니다.Gecode의 다른 변수 값에 따라 변수를 제한하는 방법
나는 두 개의 변수를 가지고 있습니다. x과 y입니다. x의 값에 따라 y이 일정 값이어야합니다. 예 : X가 1이면 X가 2, 는 Y 5. 어떻게 Gecode이 모델링되어야한다 경우 는 Y 3되어야 하는가?
이 gist에서 볼 수 있듯이 현재이 상황을 모델링하기 위해 reified constraints을 사용합니다. 요점은 BoolVar 및 해당 값을 설정하는 두 가지 제약 조건을 사용하는 것입니다.
for (IntVarValues i(x); i(); ++i) {
BoolVar b = BoolVar(*this, 0, 1);
rel(*this, x, IRT_EQ, i.val(), b);
rel(*this, y, IRT_EQ, f(i.val), b);
}
이 상황을 모델링하는 더 좋은 방법이 있는지 궁금합니다.
참고 :
은 예를 들어, 다음 (
invalid
은 INT는y
의 도메인에 있지 않은 가정)를 사용할 수 있습니다. – Zayenz