glpsol工具拆分MIP和LP解决方案

时间:2013-07-20 11:04:34

标签: linear-programming glpk

我正在使用glpsol来解决一个相当大的整数优化问题。 Simplex算法在其上运行约30分钟,之后glpsol尝试使用MIP求解器查找整数解。

问题:我可以仅使用glpsol命令工具将其拆分为两个步骤,还是应该使用glpk API?

根据文档

,我尝试了“read”和“nomip”选项
-r filename, --read filename

从提供的文件名中读取解决方案,而不是使用解算器

找到它

采用以下格式:

 glpsol --cpxlp WhiskasModel.lp --write WhiskasSolution.mip --nomip

之后

 glpsol --cpxlp WhiskasModel.lp --read WhiskasSolution.mip

但收到错误:

 Reading MIP solution from `WhiskasModel.mip'...
 WhiskasModel.mip:33702: non-integer column valueUnable to read problem solution

并且它当然是正确的,因为WhiskasModel.mip是具有非int值的LP解决方案。

我发现glpsol toolkit相当强大,我想玩一些MIP选项,但每一步等待30分钟是相当无聊的。我可以告诉它,“使用这个LP解决方案并启动MIP”?

1 个答案:

答案 0 :(得分:1)

要尝试的一件事:将LP基础写入纯文本文件,然后在重新启动时,以该LP解决方案为基础。

尝试

  -w WhiskasBasis.txt

当重新启动以继续作为IP时,请通过添加ini选项让它使用该基础。

--ini WhiskasBasis.txt 

其他建议:

  1. 如果您要经常这样做,我不会使用命令行选项。 GLPK API(用于您选择的语言)和IDE,将为您提供所以更多的灵活性和控制力。 This link提到了几个。

  2. 如果您发布MIP模型公式的目标和约束(可能是一个不同的问题),您可能会得到加快建议的建议。有时可能会有很大的放松和子问题。

  3. 希望有所帮助。