java - 优化使用 CPLEX Java 实现高吞吐量

标签 java mathematical-optimization linear-programming cplex ilog

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

IloCplex cplex = new IloCplex();
... add lots of variables and constraints ...
cplex.solve();
cplex.end();

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

有没有更有效的方法来做到这一点? IBM 文档中有类似“将模型添加到模型实例”的语言,这听起来很奇怪,但我认为这是在暗示能够重用东西。

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

最佳答案

如果您只想更改约束系数(或目标函数的系数),您可以修改现有 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

关于java - 优化使用 CPLEX Java 实现高吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134846/

相关文章:

java - 纬度经度对之间的距离精度

r - 如何在 R 中复制 Excel 求解器

python - 如何在 or-tools 中定义复杂的目标函数?

java - 来自 Calendar.getDisplayName() 的错误工作日

java - 如何使用 Selenium 和 xpath 定位元素?

通过优化将一组数字转换为另一组数字的算法

python - 零和游戏16位版

algorithm - 使用 Lingo 进行加权目标编程

c++ - 我应该使用什么算法在流量有下限但没有上限的有向图中找到最小流量?

用于数据库操作的 Java 框架