优化:关于AMP(Pyomo),Scipy,Matlab

2024-04-24 12:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉优化和代数建模语言(AML)。到目前为止,我在Matlab中解决了一些简单的优化问题。我的问题:像python库“Pyomo”和python这样的AMP包有什么区别scipy.optimize公司"? 我将开始研究工程中的一些混合整数非线性规划-你会推荐使用AML吗?在

谢谢-我期待你的评估


Tags: 公司整数scipy工程规划pyomoampoptimize
1条回答
网友
1楼 · 发布于 2024-04-24 12:23:39

像AMPL和GAMS这样的代数建模语言最接近数学,在编写更复杂的模型时也最简洁。你可以通过下载学生/评估版本来试用。两者都支持多个MINLP解算器。此外,它们还提供了自动微分(在处理更复杂的非线性模型时非常有用)。这些产品的目标是复杂、大型和稀疏的模型,这些模型在较低级别的系统中更难开发和维护。这些系统对MINLP解算器也有最广泛的支持。在

Pyomo和Julia/Jump更接近它们所嵌入的编程语言。Pyomo使用AMPL解算器,这样就可以直接访问一组解算器。如果您是一个经验丰富的Python或Julia程序员,这些工具可能有一个优势。在

在scipy.optimize公司确实更难使用,并且适合于较小的问题。它们只支持一些稠密解算器,并且您需要自己提供渐变(除非您希望依赖于有限差分估计),并且您的模型必须以较低级别的格式表示。这有点类似于Matlab。有一些用于Matlab的第三方工具可以帮助建模(例如Tomlab、Yalmip)。在

最后,您可能想看看NEOS,在那里可以尝试不同的系统。在

在回答这些问题时,我经常说的一件事是:看看你的同事使用了什么。使用同一个软件有很多优点:更容易交换模型和数据,并且可以互相帮助解决问题。在

相关问题 更多 >