【问题标题】:Optimal use of CPLEX Java for high-throughputCPLEX Java 的最佳使用以实现高吞吐量
【发布时间】:2012-04-25 11:08:42
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您可能会从 IBM 论坛或 Stack Overflow 的姊妹网站 OR-Exchange 获得更好的回复。

标签: java mathematical-optimization linear-programming cplex ilog


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多