【发布时间】:2015-06-09 13:44:55
【问题描述】:
我想最小化一个函数,受约束(变量是非负的)。我可以准确地计算梯度和 Hessian。所以我想要类似的东西:
result = scipy.optimize.minimize(objective, x0, jac=grad, hess=hess, bounds=bds)
我需要指定优化方法 (http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html)。不幸的是,我似乎找不到允许用户指定边界和 Hessian 的方法!
这特别烦人,因为方法“TNC”和“Newton-CG”看起来基本相同,但是 TNC 在内部估计 Hessian(在 C 代码中),而 Newton-CG 不允许约束。
那么,如何使用用户指定的 Hessian 进行约束优化?似乎在 scipy 中应该有一个简单的选择——我错过了什么吗?
【问题讨论】:
-
SciPy 的 trust-constr 声称可以做到这一点。不幸的是它实际上没有。它只是忽略了你给它的界限。在此期间您有没有找到任何好的解决方案?
标签: numpy scipy mathematical-optimization