模式搜尋法是一種,在計算時不需要目標函式的導數,所以在解決不可導的函式或者求導異常麻煩的函式的最佳化問題時非常有效。
基本介紹
- 中文名:模式搜尋法
- 是什麼:解決最最佳化問題的直接方法
- 套用:計算機 數學
簡介,特性,
簡介
模式搜尋就是尋找一系列的點 X0,X1,X2,…,這些點都越來越靠近最優值點,當搜尋進行到終止條件時則將最後一個點作為本次搜尋的解。 利用模式搜尋法解決一個有 N 個自變數的最最佳化問題。 ①要確定一個初始解 X0,這個值的選取對計算結果影響很大;②確定基向量用於指定搜尋方向,如對於兩個自變數的問題可設為 V(0,1;1,0;-1,0;0,-1)即按十字方向搜尋;③確定搜尋步長它將決定算法的收斂速度,以及全局搜尋能力
特性
具體步驟為:①計算出初始點的目標函式值 f(Xi),然後計算其相鄰的其它各點的值 f(Xi+V(j)*L),j∈(1,2. . .2N);②如果有一點的函式值比 更優則表示搜尋成功,那么 Xi+1=Xi+V(j)*L,且下次搜尋時以 Xi+1 為中心,以 L=L*δ 為步長(δ>1,擴大搜尋範圍),若沒有找到這樣的點則表示搜尋失敗,仍以 Xi 為中心,以 L=L*λ 為步長(λ<1,縮小搜尋範圍);③重複②的操作,結果到終止條件為止,終止條件可以是疊代次數已到設定值或者誤差小於規定值等。
運用Matlab 的工具箱裡的 patternsearch,可實現模式搜尋法。Patternsearch 函式的完整格式為[X FVAL]=PATTERNSEARCH(FUN X0 A b Aeq beq LB UB NONLCON options)