Я построил модель MIP, которую я хочу решить несколько раз, используя набор различных коэффициентов целевой функции (я понимаю, что теплый запуск не очень поможет, я просто пытаюсь избежать времени построения модели).
Я построил модель многократного использования, установив коэффициент obj каждой переменной на 0.0
.
Теперь я хочу добавить объективные коэффициенты всех переменных к std::vector
значениям, а затем оптимизировать смоделируйте и установите все объективные коэффициенты снова на 0.
В настоящее время я делаю это:
auto vars = model.getVars();
auto cols = model.get(GRB_IntAttr_NumVars);
for (int i =0; i < cols; ++i) {
std::cout << vars[i].get(GRB_StringAttr_VarName) << "\n";
vars[i].set(GRB_DoubleAttr_Obj, obj_val[i]);
}
//after doing stuff with the rebuilt-model setting all obj coeffs to 0
for (int i =0; i < cols; ++i) {
vars[i].set(GRB_DoubleAttr_Obj, 0.0);
}
delete[] vars;
Есть ли более быстрый и элегантный способ сделать это?