找出上限和下限之间的差异
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;
我有一个名为 "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;