MILP加速运算技巧(四)——提示模型的初始值(以OR-Tools为例)

文章目录

  • 前言
  • 基于OR-Tools的代码案例
    • 1. 无初始解的双目标问题
    • 2. 传入初始解


前言

有些时候,迭代优化一个模型的效率较高,但生成初始解的时候需要经过相对长的时间,如果我们能得到一个比较好的初始解,或者能知道部分变量的初始值,那么对一些复杂问题而言,能够进行加速。

本文以OR-Tools为例,介绍传入初始解对模型求解速度的影响。特别地,对于在原有模型的基础上添加约束的情况,尽管OR-Tools的CP-SAT无法在Callback当中添加约束来加速求解(对底层SAT算法而言,这种判断后添加约束的方式并不能更好),但CP-SAT在下一次求解时,能够固定前面模型得到的结果,对于CP-SAT求解器而言,能够在很大程度提升效率。

基于OR-Tools的代码案例

这里我们以一个简单地案例做演示,对于更大规模和更加复杂的模型而言,我们测试的结果是:这种传入初始值(解)的方法能极大提升效率,特别是对于可行解较多,但最优性收敛得慢的问题(典型的一个就是FJSP问题)。

你可能感兴趣的:(数学建模,初始解,OR-Tools)