使用 Python/MATLAB 进行优化

计算科学 优化
2021-12-10 17:59:57

给定以下优化问题:给定正整数和实数除此之外,给定正实数对于 ,,我们试图找到实数最小化 n1,n2,,nmP1,P2,Pmai,j,l1inl1lm0jk(β1,β2,,βk)

l=1m(i=1nlai,0,lai,1,lβ1ai,2,lβ2ai,k,lβkPl)2

您认为哪种方法可以在 MATLAB/Python 中实现高效?

2个回答

看起来您的问题是一个无约束的非线性优化问题。如果您有Matlab 优化工具箱,那么我建议您使用它来解决您的问题。使用相同的界面尝试多种算法很容易。只需确保将您的代码矢量化以使其快速运行。

中的 Matlab 全局优化工具箱也可以使用,尽管可能需要更长的时间才能找到解决方案。正如@Mark L. Stone 所建议的那样,使用 BARON 和/或 YALMIP 界面进行优化也可以。

如果您正在寻找一种在 Matlab 中获得答案的简单方法并且没有优化工具箱,那么您可以尝试使用CMA-ES

就 python 而言,您可能会查看 SciPy 包中包含的非线性求解器列表。

如果您想要全局最优,请尝试使用 BARON http://www.minlp.com/baron的 matbar(在 MATLAB 下)接口。或者你可以使用YALMIP接口(在MATLAB下)调用BARON,这可能更简单。但是,如果您确实使用 YALMIP,请遵循https://groups.google.com/forum/#!topic/yalmip/Z1-oYiknijU中的建议,以避免扩大正方形。