CPLEX获取模型的解池中的解方案
最佳答案 问答题库658位专家为你答疑解惑
文章目录
- 1、前序
- 2、解池中的解方案获取
- 3、CPLEX求解模型的时间
- THE END
1、前序
\qquad CPLEX求解模型C++API继续解读。最近在进行Bender decompostion的实验时,需要获取到CPLEX求解的所有的解方案信息,所以又头大翻了一通“gou pi不通”的CPLEX API官方文档,最终加上自己的一些联想,终于实现了自己的想法。获取到CPLEX求解过程中解方案池中的所有解方案信息,包括可行解方案的数量,每一个解方案信息,CPLEX模型的求解时间。
2、解池中的解方案获取
\qquad 在CPLEX求解完模型之后(这里默认的MIP模型),若模型有可行解方案存在,首先可以采用IloCplex::getSolnPoolNsolns
来获取求解过程中找到的可行解方案的数量,此处不保证找到所有可行的解方案;之后针对于每一个解方案,
\qquad 可以采用IloCplex::getValue
或者IloCplex::getValues
来获取解方案中变量的值,其中,最后一个参数是当前解方案的索引。注意到,若最后一个解方案的索引参数取值为0,则返回的就是最优解的变量值。
\qquad 可以采用IloCplex::getObjValue
来获取某个解方案的目标函数值,缺省值为0,表示最优解的目标函数值。
3、CPLEX求解模型的时间
\qquad 先放一个官方介绍大家看一下,
\qquad 其中,测试发现,里面的getStartTime
测试没有这个函数,可能我使用的类不太对(IloCplex)。最终测试发现,IloCplex::getDetTime
基本上是以毫秒为单位计量的模型求解时间,所以可以直接使用这个作为模型的求解时间。
THE END
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"CPLEX获取模型的解池中的解方案":http://eshow365.cn/6-29616-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 空气质量查询API促使空气数据可视化
- 下一篇: 【C语法学习】8 - puts()函数