\qquad最近在做模型时,使用C++调用CPLEX求解时,设置好最大求解时间之后发现最后模型没有求解完成时,没法输出模型的下界解信息,去查询CPLEX 12.9用户手册也没有找到相关获取模型下界的方法,所以只能自己摸索和尝试(那个用户手册做的是真垃圾,好多接口函数查不到… …)
\qquad 最终让我试出来一个获取模型上下界GAP值的函数getMIPRelativeGap
,这个函数在用户手册里面搜不到你敢信???
\qquad之后这个方法被封装在所求解模型对象IloCplex
类里面,所以只需要通过IloCplex::getMIPRelativeGap()
就可以调用它啦。
\qquad而大家都熟知模型对象IloCplex
类有获取上界解的方法IloCplex::getObjValue()
,有了上界解和GAP值,便可以方便得到最优下界值:bestLB = bestUB-bestGAP*bestUB
。
\qquad这样获得到的最优GAP值是准确的,但是求出来的最优下界比求解过程中显示的最优下界要大一点,这个不大清楚是啥问题,有大神直到可以指教【手动抱拳】!