Pyomo 是不是支持生成多个解决方案?

Posted

技术标签:

【中文标题】Pyomo 是不是支持生成多个解决方案?【英文标题】:Does Pyomo support generation of multiple solutions?Pyomo 是否支持生成多个解决方案? 【发布时间】:2019-11-19 16:35:54 【问题描述】:

我一直在使用 Gurobi 来解决 MILP 问题,并使用 Pyomo 来生成模型。 Gurobi 支持返回一个解决方案池,我希望能够使用这个池生成多个解决方案。 Pyomo 支持吗?

我尝试过使用 model.solCount 和 model.params.SolutionNumber,但我发现它适用于 gurobipy 模型,而不适用于 Pyomo 中的模型。

是否有可能以某种方式将这些解决方案加载(迭代)到模型中? 如果不是,我还有什么其他选择,如果我必须用 Pyomo 做这个?

【问题讨论】:

【参考方案1】:

您应该能够使用 Gurobi 将解决方案文件写入磁盘的功能。只需将参数SolFiles 设置为某个名称,Gurobi 就会保存所有解决方案:

from pyomo.opt import SolverFactory
opt = SolverFactory('gurobi')
opt.options['Solfiles'] = 'solution'

【讨论】:

不返回多个最优解,它返回沿着最优路径找到的可接受变量值 您没有在问题中指定此条件。您需要为PoolSearchMode 使用不同的设置。

以上是关于Pyomo 是不是支持生成多个解决方案?的主要内容,如果未能解决你的问题,请参考以下文章

PyOmo/Ipopt 因“无法评估 pow”而失败

PYOMO:使用集合和参数定义数据集以解决优化问题

在不使用 for 循环的情况下检索 Pyomo 解决方案

如何在 Google Colab 中使用 Pyomo 解决抽象模型

pyomo 列出可用的求解器

在 Flask Web 服务器中使用 Pyomo 时如何解决错误?