最優化方法四:線性規劃與非線性規劃

1 線性規劃與非線性規劃的區別

線性規劃問題:目標函數與約束條件均爲優化變量的線性函數,不涉及變量的耦合與高次。注意線性規劃的約束條件也可以是不等式約束。表達式如下:

                                               

非線性規劃問題:目標函數或約束函數是優化變量的非線性函數。根據目標函數和約束函數的不同可以分爲:二次規劃、幾何規劃、最小二乘。

2 線性規劃求解方法

2.1 圖解法:

線性規劃問題的約束條件都是線性的,多個約束條件組成的求解域組成凸集。以二維線性規劃問題爲例:

                              

四個約束條件組成一個閉合域,並且該閉合域一定位凸集。如果極值點存在,則極值點必然在凸集合的頂點處。

爲什麼一定位凸集合?直觀理解:因爲約束條件均爲線性,二維約束條件爲直線某一側的部分,滿足多個約束條件即求解多個約束條件的交集,即兩條直線相交求交集。直線角度180°,交集組成的區域在交點處的角度一定小於180°,因此多個約束條件組成的可行域一定爲凸集。

爲什麼極值點一定在凸集合的頂點處?因爲線性規劃的目標函數爲變量的線性函數,該函數組成的是一個平面,二維變量的目標函數爲三維平面,三維變量的目標函數是四維平面,必定沿某一方向單調。因此極值點必然落於邊界的頂點處(也可能是邊界的一條邊)。

並且對於多維變量,約束條件組成的可行域也是凸集,只不過是凸多面體,極值點在凸多面體的頂點處。二維三維如下:

                                 
 

因此圖解法的基本過程爲:找出n+1頂點(假設爲n維變量),將每個頂點的變量代入函數值,逐個比較即可計算得到最優解。

2.2 單純形法:

對於n維變量組成的凸多面體有n+1個定點,幾何學上稱該多面體爲單純形,並將迭代尋優的方法稱爲單純形法。

單純形法適用於滿足以下情況的優化問題:

                                   

上圖中,左邊的不等式的右邊不一定必須是1,並且不等式約束需要轉化爲等式約束。同時一定要有x大於等於0這個條件。原因後序講解。

2.2.1 單純形法計算過程:

(0)不等式約束轉化爲等式約束(1)確定初始可行基並求解(2)最優性檢驗(3)換基變換(4)迭代運算。下面通過一個例子講解。

優化問題:

                                   

(0)不等式約束轉化爲等式約束

                                   

(1)確定初始可行基並求解

                                   

(2)最優性檢驗

目標函數f(X)=3x_1+4x_2,非基變量係數爲正,非基變量增加,目標函數增加,因此該結果一定不是最優解。

(3)換基變換

由(2)可知,沿着x_2增加的方向,目標函數增加,因此可以將x_2換爲基變量,重新進行計算。

                                   

(4)迭代運算

對(3)結果進行最優性檢驗可知,同樣爲非最優解,因此重新選基,逐步重複(2)-(3)進行迭代運算。

                                   

最終得到最優結果:17。

2.2.2 換基的原理

對於等式約束,最優解必然粗在於凸集合的頂點處。換基的原理就是嘗試每個頂點,舉例如下:

對於優化問題:

                                                

選基並計算:

                                  

最終迭代計算後可以看出,每次換基都是計算可行域的定點,迭代找到最優的頂點:

                                                         

第一次選擇可行基爲x_3,x_4,x_5,即選擇了(x_1,x_2)=(0,0),迭代第二次後迭代到了(0,3),第三次迭代到了(2,3),最後一次迭代到了(4,2),即爲最終的最優解。

單純形法爲什麼要求x_i >=0, i = 1,2,3 ...?爲什麼不能是-1,1.......?沒有這個條件會怎麼樣?

爲了選擇可行基時,讓非可行基=0,求解即可得到頂點。不管是爲了不等式約束轉等式約束引入的鬆弛變量,還是等式約束本身自帶的那麼多變量,最終需要求解的是目標函數中涉及到的變量。給可行基賦值爲1,不可行基賦值爲0,如上圖所示,目標函數中變量對應的頂點只有0與非0。

同時加上這個條件可以限制變量的取值範圍,不嚴謹的說,隨便加上等式約束的曲線或曲面,可行域閉合,頂點一定能找見,最優解也存在。沒有這個條件有可能可行域不閉合。

3 非線性規劃求解方法

非線性規劃求解方法即利用KKT條件,見最優化方法三。

https://mp.csdn.net/console/editor/html/105057670

               

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章