我正在使用Gecode工具包,我想爲以下情形建模。如何約束一個變量,取決於其他變量的值在Gecode
我有兩個變量x和y。取決於值x,y應該具有一定的值。例如。如果X是1,ÿ應該是3,如果X是2,ÿ應該是5.我應該如何在Gecode模型呢?
我目前使用reified constraints來模擬這種情況,可以在gist中看到。癥結在於使用一個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);
}
我想知道是否有更好的方法來模擬這種情況。
注意,使用布爾表達式是構建具體化的表現只是另一種語法。 – Zayenz