CPLEX通过API获取模型上下界以及gap值的方法

文章目录

  • 1、 问题由来
  • 2、 解决方法
  • 3、问题
  • THE END

1、 问题由来

\qquad 最近在做模型时,使用C++调用CPLEX求解时,设置好最大求解时间之后发现最后模型没有求解完成时,没法输出模型的下界解信息,去查询CPLEX 12.9用户手册也没有找到相关获取模型下界的方法,所以只能自己摸索和尝试(那个用户手册做的是真垃圾,好多接口函数查不到… …)

2、 解决方法

\qquad 最终让我试出来一个获取模型上下界GAP值的函数getMIPRelativeGap,这个函数在用户手册里面搜不到你敢信???
\qquad 之后这个方法被封装在所求解模型对象IloCplex类里面,所以只需要通过IloCplex::getMIPRelativeGap()就可以调用它啦。
\qquad 而大家都熟知模型对象IloCplex类有获取上界解的方法IloCplex::getObjValue(),有了上界解和GAP值,便可以方便得到最优下界值:bestLB = bestUB-bestGAP*bestUB

3、问题

\qquad 这样获得到的最优GAP值是准确的,但是求出来的最优下界比求解过程中显示的最优下界要大一点,这个不大清楚是啥问题,有大神直到可以指教【手动抱拳】!

THE END

你可能感兴趣的:(CPLEX,算法,CPLEX)