【问题标题】:Solving a Pyomo model with heuristic method (GA or PSO)用启发式方法(GA 或 PSO)求解 Pyomo 模型
【发布时间】:2018-08-14 10:30:12
【问题描述】:

1) 我想知道是否可以集成不同的启发式求解器,例如 GA 和 PSO,可用作 python 包来求解 pyomo 模型。

2) 另外,我想知道如何集成一个完全由我编写的启发式算法(即不能作为 python 包提供)来解决 pyomo 模型

谢谢。

【问题讨论】:

  • 必须针对某个问题专门实施 GA 和 PSO 等启发式过程。虽然有商业启发式黑盒求解器,但您必须实现自己的问题特定代码 e。 G。 GA 以获得最佳性能。您可以使用 GA“骨架”来管理您的人口和一般算法,同时定义邻域和解决方案结构。但我建议您自己实施该过程,特别是如果您正在学习启发式过程。

标签: python optimization genetic-algorithm pyomo particle-swarm


【解决方案1】:

简短的回答是肯定的。

至于如何实现,欢迎查看pyomo.contrib.gdpopt package,它提供了在 Pyomo 中调用SolverFactory('gdpopt').solve(model) 的功能。您可以编写自己的 solve() 函数,该函数与任何可选的关键字参数一起传递给 Pyomo 模型对象。在solve() 函数中,欢迎您集成外部启发式求解器或编写您自己的逻辑。

还有一个问题是如何询问 Pyomo 模型,但这个问题的范围太广,无法在这里回答。您不妨参考Pyomo documentation的高级元素。

【讨论】:

  • 如果我正确理解了您的答案,这似乎是在更改 pyomo 或其组件之一的源代码本身。我希望有一个模块化框架,我可以在正确配置其参数后插入我的求解器。如果没有这样的框架,它是否正在开发中或至少是开发人员组的优先事项?
  • pyomo.contrib 旨在托管您所描述的用户贡献:请参阅contributions guide。您也可以在不将代码放入 pyomo.contrib 的情况下连接到插件系统。目前正在对该系统进行返工:github.com/Pyomo/pyomo/pull/661
猜你喜欢
  • 1970-01-01
  • 2020-07-22
  • 2019-06-13
  • 2018-09-07
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多