找出上限和下限之间的差异

Find the difference between upper and lower bounds

我有一个名为 "MyModel" 的 MIP 模型,我也使用了这些命令(在 solve 语句之前)。

 file opts cplex option file/ cplex.opt /;

 MyModel.Optfile =1;
 putclose opts /'epgap=0' /'epagap=0';

用CPLEX求解后,状态模型为8,(INTEGER SOLUTION:已找到离散变量问题的可行解法)。

如何获得此可行解的上限和下限之间的差异? 换句话说,我想有差距。

谢谢

您可以在 lst 文件和日志中看到它。在这两种情况下,您都应该找到类似这样的内容:

Solution satisfies tolerances.

MIP Solution:           21.000000    (4720 iterations, 100 nodes)
Final Solve:            21.000000    (0 iterations)

Best possible:          23.000000
Absolute gap:            2.000000
Relative gap:            0.086957

在第一个文件中,这应该直接在 "S O L V E S U M M A R Y" 之后,在日志中,您可以在 Cplex 输出的末尾看到它。

编辑:您也可以像这样在模型中计算它:

Scalar gap;
gap = abs(MyModel.objEst - MyModel.objVal);
Display gap;