最佳使用CPLEX Java以实现高吞吐量

Noa*_*ins 5 java mathematical-optimization linear-programming cplex ilog

我正在使用CPLEX Java API解决大型优化问题.目前我只是

IloCplex cplex = new IloCplex();
... add lots of variables and constraints ...
cplex.solve();
cplex.end();
Run Code Online (Sandbox Code Playgroud)

这很有效,但我经常重复这个过程,我只是改变了系数.每次重复我创建一个新cplex对象并重新创建所有变量.

有没有更有效的方法来做到这一点?IBM文档的语言类似于"将模型添加到模型实例中",这听起来很奇怪,但我认为它暗示能够重用事物.

来自更有经验的用户的任何建议都会很棒.谢谢.

Dav*_*hme 7

如果您只想更改约束系数(或目标函数的系数),则可以修改现有IloCplex对象上的系数.您不应该从头开始创建模型.

retval = cplex.solve();
// verify that the solve was successful

// change coeficients on constraints (or in the objective)
cplex.setLinearCoef(constraint, newCoef, variable);
cplex.setLinearCoef(objective, newObjCoef, variable);

// change right bounds on constraints
constraint.setBounds(newLB, newUB);

// change variable bounds
var.setBounds(newLB, newUB);

retval = cplex.solve();
// verify the solve
Run Code Online (Sandbox Code Playgroud)