我们可以使用初始可行的解决方案通过MIPCL来“热启动” MILP优化吗?

问题描述

我花了一些时间浏览MIPCL的可用文档,并阅读了似乎提到有待解决的问题的论坛帖子,但是我仍然没有答案:

与许多其他MILP求解器(Gurobi,CPLEX,CBC ...)一样,我们能否为MIPCL提供现有的可行解决方案,以便从中开始优化?

当我得知,即使存在带有MIPCL的Pulp接口时,我也开始怀疑该功能是否存在,但在Pulp允许此类“热启动”的求解器列表中,MIPCL不在其中。再说一次,它不在Pulp中这一事实并不意味着不可能通过本机API进行,但是我在该主题上没有找到任何东西。

谢谢!

解决方法

仅当求解器本身提供热启动选项时,PuLP才能提供热启动。因此,您应该首先查看MIPCL文档,以了解这是否是MIPCL(http://www.mipcl-cpp.appspot.com/)提供的功能。不幸的是,该网站已经关闭了一段时间。

PuLP使用MIPCL的命令行界面,我怀疑至少在此界面中,它不提供“热启动”选项。命令行的参数如下:

C:\Users\pchtsp>mps_mipcl
Usage: mps_pMIPCL/mps_MIPCL [options] filename.mps[.gz]
   -solfile {file name for storing solution}   -threads {number of thread}
   -time {time in seconds}
   -gap {duality gap in percents}
   -objBound {lover or upper bound on the objective}
   -LPmethod {PRIME,DUAL}
   -pricingRule {DANCIG,STEEPEST,PARTIAL}
   -sepRule {DANCIG,PARTIAL}
   -preprocess {0,1}
   -cuts l,h (l,h in {-1,1,...} are #cuts for,resp.,low and high nodes)
   -click {cut pattern}
   -knapsack {cut pattern}
   -gomory {cut pattern}
   -mod2 {cut pattern}
   -mir {cut pattern}
           file_name
----------------------------------------------------------------
cut pattern depth1,mod1,depth2,mod2  where depth1,depth2 in {-1,2,...

这并不意味着MIPCL不通过其他接口(例如python接口)提供“热启动”选项。