Я работаю с набором инструментов Gecode и хочу смоделировать следующий сценарий.
У меня есть две переменные x и y. В зависимости от значения x, y должен иметь определенное значение. Например. если x равно 1, y должно быть 3, если x равно 2, y должно быть 5. Каким должно быть Я моделирую это в Gecode?
В настоящее время я использую овеществленные ограничения для моделирования этой ситуации, насколько это возможно. можно увидеть в этой сути. Суть заключается в использовании 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);
}
Мне было интересно, есть ли лучший способ смоделировать эту ситуацию.