我正在使用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”?
答案 0 :(得分:1)
要尝试的一件事:将LP基础写入纯文本文件,然后在重新启动时,以该LP解决方案为基础。
尝试
-w WhiskasBasis.txt
当重新启动以继续作为IP时,请通过添加ini
选项让它使用该基础。
--ini WhiskasBasis.txt
如果您要经常这样做,我不会使用命令行选项。 GLPK API(用于您选择的语言)和IDE,将为您提供所以更多的灵活性和控制力。 This link提到了几个。
如果您发布MIP模型公式的目标和约束(可能是一个不同的问题),您可能会得到加快建议的建议。有时可能会有很大的放松和子问题。
希望有所帮助。