繁体   English   中英

使用Hessian矩阵进行有界优化(scipy)

[英]Bounded optimization using the Hessian matrix (scipy)

我正在尝试优化少量变量(从2到10)的函数。 我想做的是在有界超立方体上计算函数的最小值

[0,1] x [0,1] x ... x [0,1]

函数,其梯度和粗麻布的计算相对简单,快速且准确。

现在,我的问题是这样的:

使用scipy ,我可以使用scipy.optimize.minimize(..., method='Newton-CG')scipy.optimize.minimize(..., method='TNC')来计算函数的最小值,然而:

  • 第一种方法使用Hessian矩阵,但是我无法设置要优化的变量的界限
  • 第二种方法允许我设置变量的范围,但是该方法不使用Hessian。

有什么方法可以同时使用两者吗?

以下是一些替代方案:

Mystic ,这是一个通过使用外部约束(我认为是拉格朗日乘数)来实现约束优化的框架。 该软件包使用scipy.optimize,因此应该可以使用带有其他约束的Scipy方法。

Ipopt及其python绑定PyIpoptCyIpopt 您可以研究openopt

lmfit通常为曲线拟合而开发, 提供了添加外部约束的可能性。 它包括来自scipy的大多数求解器。

l-bfgs-b进行有限优化。 像任何准牛顿法一样,它近似于黑森州。 但这通常比使用真正的黑森州更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM