最優化問題 三 之 外點法(罰函式法)

2021-10-08 14:21:34 字數 2890 閱讀 2797

罰函式法又稱乘子法,是將約束優化問題轉換為無約束最優化問題的方法之一。其基本思想就是通過在原始的目標函式中新增乙個障礙函式(也可以理解成懲罰函式)來代替約束條件中的不等式約束。如果當前解不滿足約束條件,就在目標項上加上乙個正向的懲罰(這裡考慮的都是最小化問題),強迫當前解往可行域的方向走。至於正向懲罰的力度,取決於所用的對映函式,即懲罰函式。

考慮約束優化問題:

1) 對於等式約束問題,

可採用前面提到的拉格朗日乘子法。這裡我們做一些簡化,對每個約束項採用相同的權重,定義如下輔助函式:

其中,δ

\delta

δ為足夠大的正數。注意,這裡的約束項都加了平方。前面我們提過了,不滿足約束要加上乙個正向的懲罰。為了保證正向這個條件,同時方便後期求導,就給約束項加上了平方。

從而,問題(1)被轉化為無約束問題:

min ⁡f

1(x,

δ)\min f_1(x, \delta)

minf1​

(x,δ

) (3)

顯然,(3)取最優解時,hj(

x)h_j (x)

hj​(x)

趨近於0。因為如果不這樣的話,δ∑h

j2(x

)\delta \sum h_j ^2 (x)

δ∑hj2​

(x)將是非常大的正數,那一定存在更小的值。由此可見,求解問題(3)就能得到問題(1)的近似解。

2)對於不等式約束問題,

思路與上面基本思想一致,也是引入輔助函式:

f (x

,δ)=

f(x)

+∑i=

1mi(

gi(x

))f(x, \delta)=f(x)+\sum_ ^m i(g_i(x))

f(x,δ)

=f(x

)+∑i

=1m​

i(gi

​(x)

) (5)

其中,i(u

)i(u)

i(u)

即為懲罰函式(等式約束時可以理解懲罰函式為平方函式,即i(u

)=u2

i(u)=u^2

i(u)=u

2),其須符合如下特性:

對於不等式約束,引入懲罰函式的意義在於可以將約束條件直接寫入到目標函式裡面,這樣我們直接求新的函式的極小值就可以了,而不必借助於未知乘子。這種方法統稱為罰函式法

可分為兩類:內點法和外點法。主要區別就在於懲罰函式的定義。

3.1 內點法

內點法比較完美主義,思想十分直觀。滿足約束就懲罰為0,不滿足就正無窮大,看你老不老實。其設定的懲罰函式需要滿足如下要求,

i (u

)=\infin & u \leq 0 \\ 0 & u>0 \end

i(u)

= log(-u)

i(u)=−

t1​l

og(−

u)其中 ,t是用於調整近似程度的引數。從圖中可以看出,t越大近似效果越好。

那要怎樣理解這種方法呢?

相當於在可行域的邊界築起一道很高的「圍牆」,當迭代點靠近邊界時,目標函式徒然增大,以示懲罰,阻止迭代點穿越邊界,這樣就可以將最優解「擋」在可行域之內了。

也正因為這一點,使用該方法必須保證初始值在可行域內,這一點也極大的限制了該方法的使用。

3.2 外點法

相比內點法,外點法要成熟的多。既然前面太極端了,那就折中一下:滿足約束的時候懲罰為0沒錯,不滿足的時候,懲罰跟當前的偏離程度呈正相關,畢竟狗急了還跳牆呢,咱也不能逼得太狠了是吧!其設定的懲罰函式需要滿足如下要求,

i (u

)=max⁡

==\begin u & u \leq 0 \\ 0 & u>0 \end

i(u)

=max

= )2

i(u) = \delta (\max\)^2

i(u)=δ

(max)2

其中,δ

\delta

δ為足夠大的正數,為懲罰因子。內點法是不需要懲罰因子的,因為內點法的懲罰為無窮大,乘以乙個正數也還是無窮大。可以看到,外點法的懲罰力度取決於懲罰因子δ

\delta

δ的大小。

相比於內點法,外點法可以從非可行解出發,逐步移動到可行域內,這就意味著使用外點法不需要提供初始可行解。這一點在實際問題求解中十分關鍵,畢竟對於複雜問題,找到一組可行解還是有一定難度的。但是,外點法多了乙個超參:懲罰因子,如何設定合適的懲罰因子也會極大的影響最終的結果。

最優化演算法 三

牛頓方法是現在用的比較廣泛的最優化演算法之一,其特點是收斂速度較快,上一節的梯度下降和隨機梯度下降都是一階收斂,而牛頓方法是二階收斂。回憶高等數學裡面介紹的二階泰勒展開有q x f x0 f x0 x x0 x x0 22 2f x 0 而 q x 取到極值的條件,也就是最優化條件是 q x 0 可...

Lingo解決最優化問題

目錄 三 待更新 前面,我們已經對lingo有了一定的了解,但是要想真正的熟悉lingo在解決優化問題中的強大之處,還需要不斷加強相關訓練,本文主要是使用lingo來解決優化問題,該文的主要目的有以下三點 若您對lingo的安裝及基本操作不是很了解,可暫且移步 lingo安裝 lingo基本操作 優...

無約束最優化三

2.2 a k步長的選擇 了解了a k的合理性之後,就相當於獲得了標尺,在此基礎上我們可以選擇合適的策略來求取a k。所有的line search過程在計算每一步的a k時,均需要提供乙個初始點a 0,然後再此基礎上生成一系列的,直到a i滿足2.1節所規定的條件為止,此時該a k即被確定為a i,...