【问题标题】:Can we "warm start" a MILP optimization with MIPCL with an initial feasible solution?我们可以用 MIPCL 用初始可行的解决方案“热启动”MILP 优化吗?
【发布时间】:2020-08-11 09:59:45
【问题描述】:

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

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

当我了解到即使存在带有 MIPCL 的 Pulp 接口,但 MIPCL 不在 Pulp 允许这种类型的“热启动”的求解器列表中时,我开始怀疑该功能是否存在。再说一次,它不在 Pulp 中的事实并不意味着它不能通过本机 API 实现,但我没有找到关于该主题的任何内容。

谢谢!

【问题讨论】:

    标签: python linear-programming solver pulp mixed-integer-programming


    【解决方案1】:

    如果求解器本身提供热启动选项,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,STEEPEST,PARTIAL}
       -preprocess {0,1}
       -cuts l,h (l,h in {-1,0,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,0,1,2,...
    

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

    【讨论】:

    • 谢谢!我完全同意,并感谢纸浆上的具体例子。我希望有人能够比我更有效地解析直接 MIPCL API 文档页面以查找是否有可能,如果我偶然发现答案,我将继续搜索并更新我的帖子跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多