Python 和 Pyomo 用于多目标优化

问题描述 投票:0回答:1

我目前正在使用 python 和 pyomo 来解决优化问题,但是我正在研究的问题是多目标优化。它涉及根据节点的地理位置找到节点的最佳 (x,y) 位置,并实现特定的布局(八线)。

我已经使用 pyomo 编写了我的约束和目标函数,并且两个目标函数分别工作,但是当将它们组合在一起时,使用加权和来最小化两个目标函数的惩罚值,我无法得到正确的响应。

我只熟悉使用 pyomo 进行优化,并且想知道是否有人使用过其他软件包,例如 PYAUGMECON?我看到它是近几年才发布的,所以没有太多信息。

我还读到 pymoo 是另一个流行于多目标优化的 python 包,但是与 pyomo 相比,我不熟悉它以及代码布局。

目前我已经定义了我的地理限制以及我想要的具体布局的所有限制。当我实现该特定目标函数时,我能够获得节点定位的正确输出。它是通过最小化布局的惩罚值来实现的。当节点布局不正确时,惩罚值会增加。

我也使用惩罚值实现了类似的节点地理定位方法。但是,当我将这两个目标函数结合起来(将布局和地理位置的惩罚值最小化)时,我无法获得正确的输出。我尝试过调整每个惩罚值的权重值,但没有帮助,并且通常优化后的 x y 坐标最终都是 (0, 0)。我目前正在使用大约 9 个节点的小数据集进行测试。

我还添加了额外的约束以确保它们是线性的,这样我就不会处理非线性问题。

有人可以分享一些这方面的知识或指导吗?我真的很感激!

python optimization linear-programming pyomo gurobi
1个回答
0
投票

我是 PyAUGMECON 的开发者之一。假设您已经有了 pyomo 模型并且知道您的目标函数是什么,那么应该很容易调用 pyaugmecon 来解决您的多目标问题(请参阅“tests”文件夹中的示例)。关于 PyAUGMECON 中实现的优化方法,请查看文档的“有用资源”部分以获取更多详细信息。

如果您有具体疑虑,请随时提出任何问题或提出问题。

© www.soinside.com 2019 - 2024. All rights reserved.