IloNumExpr для нескольких ограничений

У меня есть набор ограничений, таких как:

x1> = x2 + x3 + x4; х2> = х3 + х4 + х7; х3> = х4 + х5; и так далее.

Для каждой переменной существует массив, в котором хранится список переменных, которые будут использоваться в ограничении RHS. То есть для переменной 1 массив включает в себя массив [1] = {2, 3, 4}. Чтобы реализовать это в C ++, я использовал IloNumExpr, но он не работал:

IloNumExpr Constraint(env);
for (int i = 0; i < 3; i++){
for(int j = 0; j < array_size[i]; j++)
{
Constraint += x[array[i][j]];
}
model.add(x[i] >= Constraint);
}

Какую ошибку я здесь делаю?

Спасибо

0

Решение

Когда вы говорите, что это не сработало, что вы получаете?
Я могу догадаться, что ваша проблема в том, что вы просто накапливаете все больше и больше вещей в один IloNumExpr. Возможно, вы должны были поместить объявление IloNumExpr внутри вашего внешнего цикла?

Я всегда нахожу, что выгрузка вашей модели в виде LP-файла с использованием cplex.exportModel () очень полезна для просмотра, какую модель вы на самом деле создали.

0

Другие решения


По вопросам рекламы [email protected]