Глубокие копии 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?

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