最優化算法確定迭代步長【線搜索技術】


無約束問題最優化算法框架

\(step0:\)

輸入優化函數,確定迭代起始點x0,容許誤差 epsilon;

\(step1:\)

if 容許誤差條件滿足,終止迭代;輸出當前x值;
else 計算迭代方向dk;迭代步長 alpha_k; // dk必須滿足收斂條件;關於迭代步長的計算,就是線搜索技術解決問題
    to step 2;

\(step2:\)

計算x_{k+1}=x_k+alpha_k*dk;
to step 1;

一、精確線搜索技術

之前介紹的黃金分割法就是一種精確線搜索技術
線搜索-黃金分割法

二、非精確線搜索技術

Armijo准則
算法:
\(step0:\)

給定beta屬於(0,1),sigma 屬於(0,0.5),m=0;

\(step1:\)

對於不等式 f(x_k+betam*dk)<=f(x_k)+sigma*betamg_k^Tdk
成立,alpha_k=beta^mk; stop;
不成立,to step 2;

\(step2:\)

m=m+1;to step 1;

精確搜索和非精確搜索比較

  1. 精確搜索所求\(\alpha\) 使得\(f(x_{k+1})\)在搜索區間取得最小值,
    非精確搜索僅僅使得所求\(\alpha\)滿足收斂條件
  2. 非精確搜索計算量小的多

參考資料

《最優化方法及其Matlab程序設計》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM