CPLEX 给出具有非常不同 objective 值的不同 OPTIMAL 解决方案
CPLEX giving different OPTIMAL solutions with very different objective values
当 运行 CPLEX 在同一 ILP 问题上(完全相同的输入文件)时:
- 使用
MIPEmphasis = 3
我得到 objective 值 6.81613e-06
- 使用
MIPEmphasis = 4
我得到 objective 值 1.03858
在这两种情况下,CPLEX returns 一个 OPTIMAL
状态。
来自 CPLEX 用户手册:
To make clear a point that has been alluded to so far: every choice of MIPEmphasis
results in the search algorithm proceeding in a manner that eventually will find and prove an optimal solution, or will prove that no integer feasible solution exists. The choice of emphasis only guides CPLEX to produce feasible solutions in a way that is in keeping with the user's particular purposes, but the accuracy and completeness of the algorithm is not sacrificed in the process.
我是不是漏掉了什么?我不仅面临这个问题 MIPEmphasis
参数,而且还有其他参数(例如 ScaInd
),通过改变参数我得到不同的 OPTIMAL
解决方案,这些解决方案在质量。
这里还有一些我似乎无法破译的信息。
对于MIPEmphasis = 3
:
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 = 4
:
Maximum condition number = 4.73342e+08,
Attention level = 0.00925,
Suspicious bases: 0.925,
Unstable bases = 0,
Ill-posed bases = 0,
CPLEX Status = `Optimal`
这看起来像是常见的数值问题,并且在很大程度上取决于您的建模(例如大 M 常量的使用)。
我从未使用过 CPLEX,但这篇 official page 讨论了病态 MIP 模型。
此处相关的小摘录:
You should reconsider your model if CPLEX reports any ill-posed bases or more than 5% unstable bases.
在你的情况 A 中,你有超过 95% 的不稳定碱基:
For MIPEmphasis = 3: .... Unstable bases = 0.966667 ...
所以很有可能 A 的结果不可信。此外,我会尝试重新制定我的模型。
如果我们看 B,你有 > 92.5% 的可疑碱基,所以即使在这种情况下,模型也可能是自找麻烦。
由于我不熟悉所有调整和默认设置,因此我无法深入了解关于您的 MIPEmphasis 和合作伙伴的这些截然不同的计算结果的来源。 (也许由于 MIPEmphasis 生成更多的切割平面会导致更稳定的问题;只是猜测)。
当 运行 CPLEX 在同一 ILP 问题上(完全相同的输入文件)时:
- 使用
MIPEmphasis = 3
我得到 objective 值 6.81613e-06 - 使用
MIPEmphasis = 4
我得到 objective 值 1.03858
在这两种情况下,CPLEX returns 一个 OPTIMAL
状态。
来自 CPLEX 用户手册:
To make clear a point that has been alluded to so far: every choice of
MIPEmphasis
results in the search algorithm proceeding in a manner that eventually will find and prove an optimal solution, or will prove that no integer feasible solution exists. The choice of emphasis only guides CPLEX to produce feasible solutions in a way that is in keeping with the user's particular purposes, but the accuracy and completeness of the algorithm is not sacrificed in the process.
我是不是漏掉了什么?我不仅面临这个问题 MIPEmphasis
参数,而且还有其他参数(例如 ScaInd
),通过改变参数我得到不同的 OPTIMAL
解决方案,这些解决方案在质量。
这里还有一些我似乎无法破译的信息。
对于MIPEmphasis = 3
:
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 = 4
:
Maximum condition number = 4.73342e+08,
Attention level = 0.00925,
Suspicious bases: 0.925,
Unstable bases = 0,
Ill-posed bases = 0,
CPLEX Status = `Optimal`
这看起来像是常见的数值问题,并且在很大程度上取决于您的建模(例如大 M 常量的使用)。
我从未使用过 CPLEX,但这篇 official page 讨论了病态 MIP 模型。
此处相关的小摘录:
You should reconsider your model if CPLEX reports any ill-posed bases or more than 5% unstable bases.
在你的情况 A 中,你有超过 95% 的不稳定碱基:
For MIPEmphasis = 3: .... Unstable bases = 0.966667 ...
所以很有可能 A 的结果不可信。此外,我会尝试重新制定我的模型。
如果我们看 B,你有 > 92.5% 的可疑碱基,所以即使在这种情况下,模型也可能是自找麻烦。
由于我不熟悉所有调整和默认设置,因此我无法深入了解关于您的 MIPEmphasis 和合作伙伴的这些截然不同的计算结果的来源。 (也许由于 MIPEmphasis 生成更多的切割平面会导致更稳定的问题;只是猜测)。