在相同的ilp问题上运行cplex时(完全相同的输入文件):
MIPEmphasis = 3时,我得到的目标值为6.81613e-06
MIPEmphasis = 4时,我得到的目标值为1.03858
在这两种情况下,cplex都返回OPTIMAL状态。
从CPLEX用户手册:
为了澄清一个已经被提及的点:每一个选择我是不是丢了什么东西?我不仅要面对MIPEmphasis参数的问题,还要面对其他参数的问题(例如,MIPEmphasis),通过改变参数,我可以得到不同的ScaInd解决方案,它们的质量差别很大。
这里还有一些我无法破译的信息。
对于OPTIMAL

Maximum condition number = 5.03484e+12,
Attention level = 0.290111,
Suspicious bases: 0.0111111,
Unstable bases = 0.966667,
Ill-posed bases = 0,
CPLEX Status = `OptimalTol`

对于MIPEmphasis = 3
Maximum condition number = 4.73342e+08,
Attention level = 0.00925,
Suspicious bases: 0.925,
Unstable bases = 0,
Ill-posed bases = 0,
CPLEX Status = `Optimal`

最佳答案

这看起来像是常见的数值问题,很大程度上取决于您的建模(例如使用big-M常数)。
我从未使用过CPLEX,但这篇文章谈到了病态的MIP模型。
与此相关的小摘录:
如果CPLEX报告任何不适定基或超过5%的不稳定基,您应该重新考虑您的模型。
在你的案例A中,你有超过95%的不稳定碱基:

For MIPEmphasis = 3: .... Unstable bases = 0.966667 ...

所以很有可能,A的结果不可信。此外,我会尝试重新制定我的模式。
如果我们看B,你有超过92.5%的可疑基地,所以即使在这种情况下,模型也可能是自找麻烦。
由于我不熟悉所有的调整和默认值,所以我无法深入了解这些与mipephasis和co完全不同的计算结果的来源(可能由于mipephasis生成更多的切割平面会导致更稳定的问题;只是猜测)。

关于algorithm - CPLEX提供具有不同目标值的不同OPTIMAL解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45331766/

10-14 01:44