簡體   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