如果当前模型尚未优化(包括其所有组件),我只想重新优化模型。
它尝试使用以下代码:
if (masterProblem.getStatus() == IloCplex.Status.Optimal) {
// do something
} else {
// re-optimize
}这似乎是错误的,因为
masterProblem.getStatus() == IloCplex.Status.Optimal在我向模型中添加新列之后,结果为true。我想要一个声明,这是真的,如果问题是用它的所有元素优化的。
发布于 2014-03-07 02:29:23
这里的问题是我用了
getStatus()而不是
getCplexStatus()发布于 2013-09-01 06:20:56
尽管在手册中对许多函数的描述(例如,IloObjective::setLinearCoef、IloRange::setExpr等)声明:
...并创建未记录的类IloChange的适当实例,以通知算法模型中可提取对象的此更改。
注意:成员函数...通知协调技术算法有关此调用对象的此更改。
由于IloChange是未记录的(并且头文件没有提供任何线索),似乎没有可行的方法,只能保留一个布尔变量来声明模型在最后一次优化后是否被修改(例如bool isThereAnyChangeOnModel = true;)。
https://stackoverflow.com/questions/17245340
复制相似问题