面對你美麗的面容,
我努力壓抑自己的內心,
可是愛情怎麼喊停;
面對你認真的雙眼,
我試着忘記曾經的一切,
可是愛情怎麼喊停。
和你在一起就像在陽光裏,
快樂到不想分離,
我想要告訴你,我好喜歡你。
——暢寶寶的傻逼哥哥
之前列出數學規劃的分支有:線性規劃,整數規劃,二次規劃,非線形規劃和動態規劃。每個分支都由各自特定優化問題的理論與技術構成,他們之間的區別與優化問題的結構以及目標函數與約束函數的形式密切相關,下面簡要介紹下每個分支的內容。
1:線性規劃
如果目標與約束函數是線性的且變量爲正,一般優化問題的形式假設爲:
subject to: minimize f(x)=∑i=1nαixiaj(x)=∑i=1nβijxi−μj=0for j=1,2,…,pcj(x)=∑i=1nγijxi−vj≥0for j=1,2,…,qxj≥0for i=1,2,…,n
其中αi,βij,γij,μj,vj 是常數。例如
minimize subject to: f(x)=−2x1+4x2+7x3+x4+5x5a1(x)=−x1+x2+2x3+x4+2x5−7=0a2(x)=−x1+2x2+3x3+x4+x5−6=0a3(x)=−x1+x2+x3+2x4+x5−4=0xi≥0for i=1,2,…,5
或者
minimize subject to: f(x)=3x1+4x2+5x3c1(x)=x1+2x2+3x3−5≥0c2(x)=2x1+2x2+x3−6≥0x1≥0,x2≥0,x3≥0
像上面的優化問題會出現在許多學科中,通過用LP算法就能求出來。
2:整數規劃
對某些線性優化問題,有些變量要求是整數,這個限制使得規劃變成非線性的,不管怎樣,我們依然將其看成線性的,因爲目標與約束函數都是線性的。
3:二次規劃
如果優化問題形式如下:
minimize subject f(x)=α0+γTx+xTQxto:αTx≥β
其中
αβTγT=⎡⎣⎢⎢⎢⎢α11α21⋮αn1α12α22⋮αn2⋯⋯⋯α1qα2q⋮αnq⎤⎦⎥⎥⎥⎥=[β1 β2 ⋯ βq]=[γ1 γ2 ⋯ γn]
其中Q 是正定或半正定對稱方陣,那麼約束是線性的,目標函數是二次的,這樣的優化問題稱爲二次規劃(QP)問題。典型的實例如下:
minimize subject to: f(x)=12x21+12x22−x1−2x2c1(x)=6−2x1−3x2≥0c2(x)=5−x1−4x2≥0c3(x)=x1≥0c4(x)=x2≥0
4:非線性規劃
在非線性規劃問題中,目標函數與約束函數都是非線性的,這是數學規劃中最常見的類型,實際上LP與QP可以看成非線性約束的特殊情況。雖然我們可以用非線性規劃算法求解線性或二次規劃問題,但是爲線性或二次規劃開發的特定算法確是常用的,因爲他們效率更高。
優化算法的選擇依賴於目標函數的結構與數學性質,大部分情況下,目標函數都是非線性的,我們需要的是通用,魯棒且高效的算法。然而對於某些應用,效率比通用更重要,這時候就需要特定的算法。這些算法中經常用到範數,例如最小化L1,L2,L∞ 範數的算法稱爲L1,L2 或極小極大算法。
5:動態規劃
在許多應用中,我們需要進行一系列決策,其中每個子序列決策又受前面的影響。在這樣的應用中,需要執行一系列優化過程,例如一個龐大的系統由於問題的規模與複雜度,不可能進行優化,但是可以將其分成能進行優化的許多子系統,這些子系統互相之間可能存在聯繫,因此要想得到整體最優,我們需要通用的求解策略。動態規劃就是用於解決這種問題的方法,它通常基於線性,整數,二次或非線性優化算法。