Глубокие копии IloObjective и IloRangeArray.C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Глубокие копии IloObjective и IloRangeArray.

Сообщение Гость »


У меня есть среда и модель для создания модели линейного программирования на C++.

IloEnv testenv; Тестовая модель IloModel (testenv); Я добавляю переменные, целевую функцию и ограничения:

IloNumVarArray x = CreateNumVarArray(testenv); IloObjective testobj = IloMaximize(testenv, IloSum(x)); testmodel.add(testobj); IloRangeArray cnstr = CreateRangeArray(testenv); testmodel.add(cnstr); Чтобы создать глубокую копию testmodel, я использую следующий фрагмент кода:

IloModel testmodel1(testenv); for (IloModel::Iterator it(testmodel); it.ok(); ++it) testmodel1.add(*it); Я могу добавить новые ограничения в testmodel1, это не повлияет на исходную модель, testmodel.

IloRangeArray cnstr1 = CreateRangeArray; testmodel1.add(cnstr1); Однако добавление столбцов только в testmodel1 невозможно:

IloNumColumn col(testenv); col += testobj(int); for (int i = 0; i < cnstr.getSize(); ++i) { col += cnstr(int); } IloNumVar newVar (столбец, 0, 1, ILOFLOAT); testmodel1.add(newVar); Возможно, это связано с тем, что у меня нет копий IloObjective и IloRangeArray. Как я могу создать эти копии? Или вообще, как я могу добавить новые столбцы в testmodel1 без изменения testmodel?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»