精確一維搜尋
試探法精確一維搜尋就是通過迭代取減少搜尋區間
對於搜尋區間[a, b]
在這個區間中找連個互不相同的試探點p1 p2獲取f(p1), f(p2), 設p1 < p2
若f(p1) < f(p2) 則丟棄區間 [p2, b]
若f(p1) >= f(p2) 則丟棄區間 [a, p1]
這樣就達到了通過一次迭代減小搜尋區間的目的
當搜尋區間長度< 給定的誤差e時,終止迭代
不同的試探法,其實不同的是選取p1, p2的方法
0.618法
0.618法就是
p1 = a * 0.618 + b * (1-0,618)
p2 = a * (1-0,618) + b * 0.618
斐波那契法:
對與第i次迭代
p1 = fi+1 / (fi + fi+1) * a + fi / (fi + fi+1) * b
p2 = fi / (fi + fi+1) * a + fi+1 / (fi + fi+1) * b
插值法通過已有的條件構造插值函式
通過求插值函式的極小值點去近似已有函式的極小值點
三點二次插值
已有三個點(p1,f(p1)),(p2,f(p2)),(p3,f(p3))
通過拉格朗日插值法獲取插值函式
求得插值函式的倒數為0獲取插值函式的極小值點(p0,f(p0))
現在我們有四個點了,通過這種方法得到四個點後,通過試探法的迭代方法去縮小區間即可
終止準則也同迭代法的終止準則
二點二次插值
給定初始步長alaph和步長縮減因子
我可以獲得x的函式值和他的導數
獲取第乙個點x0,f(x0), f'(x0)
給定步長alaph,往函式下降的方法走alaph得到x1
若f(x1) > f(x0) + f'(x0) * abs(x0 - x1) 則步長不斷以alaph = 2*alaph增加直到不滿足條件
通過f(x1), f(x0), f'(x0)計算插值函式,並求得最優點u
若f『(u) < e 終止迭代
否則將u作為初始點,繼續迭代步長alaph = p * alaph
一般來說 alaph = 2 p = 1/10
二點三次插值
給定初始步長alaph和步長縮減因子
我可以獲得x的函式值和他的導數
獲取第乙個點x0,f(x0), f'(x0)
給定步長alaph,往函式下降的方法走alaph得到x1
計算得到f(x1), f'(x1)
若f'(x1) * f'(x0) > 0 則將x1做為x0 alaph = 2 * alaph的方式迭代直到不滿足條件
通過f(x1),f'(x1), f(x0), f'(x0)計算插值函式,並求得最優點u
若f『(u) < e 終止迭代
否則將u作為初始點,繼續迭代步長alaph = p * alaph
一般來說 alaph = 2 p = 1/10
非精確一維搜尋
goldstein方法
對於函式φ(x) 我能知道在任意一點的函式值與倒數
對於區間[umin, umax],置精度要求0<β1
<β2
<1
一般來說umin= 0 umax = +∞
取初始點u0
若φ(u) > φ(0) + β1 * φ(0)』 * u
umax = u
若φ(0) + β2 * φ(0)『 * u <= φ(u) <= φ(0) + β1 * φ(0)』 * u
達到精度要求,停止計算
若φ(u) < φ(0) + β2 * φ(0)『 * u
umin = u
當 umax = +∞時,置下一步的試探點為u = 2 * umin
否則u = (umin+umax) / 2
armijo方法
取一大於0的數m,0<β1
<1
φ(u) <= φ(0) + β1 * φ(0)『 * u
且φ(u*m) >= φ(0) + β1 * φ(0) 』* u
條件終止
wolfe-powell方法
置精度要求0<β1
<β2
<1
φ(u) <= φ(0) + β1 * φ(0)『 * u
φ』(u) <= β2 * φ(0)'
最優化理論與技術 一維搜尋
目錄 分割法 進退法 二次插值法 拋物線插值法 三次插值法 初始點 x 0 按照某種規則 a 產生下乙個迭代點 x a x k 點列 收斂於最優解 x 初始點 x 0 按照某種規則 a 產生下乙個迭代點 x a x k f x 0 f x 1 f x k 下降迭代演算法步驟 給出初始點 x 0 令 ...
圍欄問題 搜尋 最優化剪枝
on不合法方案的花費一定比最優解大 有了這條隱含資訊,直接搜尋,方法如下 擴張前面所存在的圍欄 只圍住自己 加上最優化剪枝即可 aca c.include define reg register intread while isdigit c s s 10 c 0 c getchar return ...
小白最優化學習(四) 演算法學習 不精確一維搜尋方法
一 什麼是不精確一維搜尋方法 一維搜尋方法是 求函式 二 幾個不精確一維搜尋方法的準則 引用位址 line search 一維搜尋,或線搜尋 是最優化 optimization 演算法中的乙個基礎步驟 演算法。它可以分為精確的一維搜尋以及不精確的一維搜尋兩大類。在本文中,我想用 人話 解釋一下不精確...