非線性規劃
出自 MBA智库百科(https://wiki.mbalib.com/)
非線性規劃(nonlinear programming)
目錄 |
非線性規劃是具有非線性約束條件或目標函數的數學規劃,是運籌學的一個重要分支。非線性規劃研究一個n元實函數在一組等式或不等式的約束條件下的極值問題,且目標函數和約束條件至少有一個是未知量的非線性函數。目標函數和約束條件都是線性函數的情形則屬於線性規劃。
公元前 500年古希臘在討論建築美學中就已發現了長方形長與寬的最佳比例為0.618,稱為黃金分割比。其倒數至今在優選法中仍得到廣泛應用。在微積分出現以前,已有許多學者開始研究用數學方法解決最優化問題。例如阿基米德證明:給定周長,圓所包圍的面積為最大。這就是歐洲古代城堡幾乎都建成圓形的原因。但是 最優化方法真正形成為科學方法則在17世紀以後。17世紀,I.牛頓和G.W.萊布尼茨在他們所創建的微積分中,提出求解具有多個自變數的實值函數的最大值和最小值的方法。以後又進一步討論具有未知函數的函數極值,從而形成變分法。這一時期的最優化方法可以稱為古典最優化方法。
最優化方法不同類型的最優化問題可以有不同的最優化方法,即使同一類型的問題也可有多種最優化方法。反之,某些最優化方法可適用於不同類型的模型。最優化問題的求解方法一般可以分成解析法、直接法、數值計演算法和其他方法。
- ① 解析法:這種方法只適用於目標函數和約束條件有明顯的解析表達式的情況。求解方法是:先求出最優的必要條件,得到一組方程或不等式,再求解這組方程或不等式,一般是用求導數的方法或變分法求出必要條件,通過必要條件將問題簡化,因此也稱間接法。
- ② 直接法:當目標函數較為複雜或者不能用變數顯函數描述時,無法用解析法求必要條件。此時可採用直接搜索的方法經過若幹次迭代搜索到最優點。這種方法常常 根據經驗或通過試驗得到所需結果。對於一維搜索(單變數極值問題),主要用消去法或多項式插值法;對於多維搜索問題(多變數極值問題)主要應用爬山法。
- ③ 數值計演算法:這種方法也是一種直接法。它以梯度法為基礎,所以是一種解析與數值計算相結合的方法。
- ④ 其他方法:如網路最優化方法等。
根據函數的解析性質,還可以對各種方法作進一步分類。例如,如果目標函數和約束條件都是線性的,就形成線性規劃。線性規劃有專門的解法,諸如單純形法、解乘數法、橢球法和卡馬卡法等。當目標或約束中有一非線性函數時,就形成非線性規劃。當目標是二次的,而約束是線性時,則稱為二次規劃。二次規劃的理論和方法都較成熟。如果目標函數具有一些函數的平方和的形式,則有專門求解平方和問題的優化方法。目標函數具有多項式形式時,可形成一類幾何規劃。
非線性規劃是20世紀50年代才開始形成的一門新興學科。1951年H.W.庫恩和A.W.塔克發表的關於最優性條件(後來稱為庫恩·塔克條件)的論文是非線性規劃正式誕生的一個重要標誌。在50年代還得出了可分離規劃和二次規劃的n種解法,它們大都是以G.B.丹齊克提出的解線性規劃的單純形法為基礎的。50年代末到60年代末出現了許多解非線性規劃問題的有效的演算法,70年代又得到進一步的發展。非線性規劃在工程、管理、經濟、科研、軍事等方面都有 廣泛的應用,為最優設計提供了有力的工具。
第二次世界大戰前後,由於軍事上的需要和科學技術和生產的迅速發展,許多實際的最優化問題已經無法用古典方法來解決,這就促進了近代最優化方法的產生。近代最優化方法的形成和發展過程中最重要的事件有:
這些方法後來都形成體系,成為近代很活躍的學科,對促進運籌學、管理科學、控制論和系統工程等學科的發展起了重要作用
對實際規劃問題作定量分析,必須建立數學模型。建立數學模型首先要選定適當的目標變數和決策變數,並建立起目標變數與決策變數之間的函數關係,稱之為目標函數。然後將各種限制條件加以抽象,得出決策變數應滿足的一些等式或不等式,稱之為約束條件。非線性規劃問題的一般數學模型可表述為求未知量x1,x2,…,xn,使滿足約束條件:
- gi(x1,…,xn)≥0 i=1,…,m
- hj(x1,…,xn)=0 j=1,…,p
並使目標函數f(x1,…,xn)達到最小值(或最大值)。其中f,諸gi和諸hj都是定義在n維向量空間Rn的某子集D(定義域)上的實值函數,且至少有一個是非線性函數。
上述模型可簡記為:
- min f(x)
- s.t. gi(x)≥0 i=1,…,m
- hj(x)=0 j=1,…,p
其中x=(x1,…,xn)屬於定義域D,符號min表示“求最小值”,符號s.t.表示“受約束於”。
定義域D中滿足約束條件的點稱為問題的可行解。全體可行解所成的集合稱為問題的可行集。對於一個可行解x*,如果存在x*的一個鄰域,使目標函數在x*處的值f(x*)優於(指不大於或不小於)該鄰域中任何其他可行解處的函數值,則稱x*為問題的局部最優解(簡稱局部解)。如果f(x*)優於一切可行解處的目標函數值,則稱x*為問題的整體最優解(簡稱整體解)。實用非線性規劃問題要求整體解,而現有解法大多只是求出局部解。
一維最優化方法
指尋求一元函數在某區間上的最優值點的方法。這類方法不僅有實用價值,而且大量多維最優化方法都依賴於一系列的一維最優化。常用的一維最優化方法有黃金分割法、切線法和插值法。
- ① 黃金分割法:又稱0.618法。它適用於單峰函數。其基本思想是:在初始尋查區間中設計一列點,通過逐次比較其函數值,逐步縮小尋查區間,以得出近似最優值點。
- ② 切線法:又稱牛頓法。它也是針對單峰函數的。其基本思想是:在一個猜測點附近將目標函數的導函數線性化,用此線性函數的零點作為新的猜測點,逐步迭代去逼近最優點。
- ③ 插值法:又稱多項式逼近法。其基本思想是用多項式(通常用二次或三次多項式)去擬合目標函數。
此外,還有斐波那契法、割線法、有理插值法、分批搜索法等。
無約束最優化方法
指尋求 n元實函數f在整個n維向量空間Rn上的最優值點的方法。這類方法的意義在於:雖然實用規劃問題大多是有約束的,但許多約束最優化方法可將有約束問題轉化為若幹無約束問題來求解。
無約束最優化方法大多是逐次一維搜索的迭代演算法。這類迭代演算法可分為兩類。一類需要用目標函數的導函數,稱為解析法。另一類不涉及導數,只用到函數值,稱為直接法。這些迭代演算法的基本思想是:在一個近似點處選定一個有利搜索方向,沿這個方向進行一維尋查,得出新的近似點。然後對新點施行同樣手續,如此反覆迭代,直到滿足預定的精度要求為止。根據搜索方向的取法不同,可以有各種演算法。屬於解析型的演算法有:
- ① 梯度法:又稱最速下降法。這是早期的解析法,收斂速度較慢。
- ② 牛頓法:收斂速度快,但不穩定,計算也較困難。
- ③ 共軛梯度法:收斂較快,效果較好。
- ④ 變尺度法:這是一類效率較高的方法。其中達維登-弗萊徹-鮑威爾變尺度法,簡稱 DFP法,是最常用的方法。
屬於直接型的演算法有交替方向法(又稱坐標輪換法)、模式搜索法、旋轉方向法、鮑威爾共軛方向法和單純形加速法等。
約束最優化方法
指前述一般非線性規劃模型的求解方法。常用的約束最優化方法有四種。
- ① 拉格朗日乘子法:它是將原問題轉化為求拉格朗日函數的駐點。
- ② 制約函數法:又稱系列無約束最小化方法,簡稱SUMT法。它又分兩類,一類叫懲罰函數法,或稱外點法;另一類叫障礙函數法,或稱內點法。它們都是將原問題轉化為一系列無約束問題來求解。
- ③ 可行方向法:這是一類通過逐次選取可行下降方向去逼近最優點的迭代演算法。如佐坦迪克法、弗蘭克-沃爾夫法、投影梯度法和簡約梯度法都屬於此類演算法。
- ④ 近似型演算法:這類演算法包括序貫線性規劃法和序貫二次規劃法。前者將原問題化為一系列線性規劃問題求解,後者將原問題化為一系列二次規劃問題求解。
凸規劃
這是一類特殊的非線性規劃。在前述非線性規劃數學模型中,若f是凸函數,諸gi都是凹函數,諸hj都是一次函數,則稱之為凸規劃。所謂f是凸函數,是指f有如下性質:它的定義域是凸集,且對於定義域中任意兩點x和y及任一小於1的正數α,下式都成立:
f((1-α)x +αy)α≤(1-α)f(x)+αf(y)
將上述不等式中的不等號反向即得凹函數的定義。所謂凸集,是指具有如下性質的集合:連結集合中任意兩點的直線段上的點全部屬於該集合。對於一般的非線性規劃問題,局部解不一定是整體解。但凸規劃的局部解必為整體解,而且凸規劃的可行集和最優解集都是凸集。
二次規劃
一類特殊的非線性規劃。它的目標函數是二次函數,約束條件是線性的。求解二次規劃的方法很多。較簡便易行的是沃爾夫法。它是依據庫恩·塔克條件,線上性規劃單純形法的基礎上加以修正而成的。此外還有萊姆基法、畢爾法、凱勒法等。
幾何規劃
一類特殊的非線性規劃。它的目標函數和約束函數都是正定多項式(或稱正項式)。幾何規劃本身一般不是凸規劃,但經適當變數替換,即可變為凸規劃。幾何規劃的局部最優解必為整體最優解。求解幾何規劃的方法有兩類。一類是通過對偶規划去求解;另一類是直接求解原規劃,這類演算法大多建立在根據幾何不等式將多項式轉化為單項式的思想上。
非線性規劃在經營管理、工程設計、科學研究、軍事指揮等方面普遍地存在著最優化問題。例如:如何在現有人力、物力、財力條件下合理安排產品生產,以取得最高的利潤;如何設計某種產品,在滿足規格、性能要求的前提下,達到最低的成本;如何確定一個自動控制系統的某些參數,使系統的工作狀態最佳;如何分配一個動力系統中各電站的負荷,在保證一定指標要求的前提下,使總耗費最小;如何安排庫存儲量,既能保證供應,又使儲存費用最低;如何組織貨源,既能滿足顧客需要,又使資金周轉最快等。對於靜態的最優化問題,當目標函數或約束條件出現未知量的非線性函數,且不便於線性化,或勉強線性化後會招致較大誤差時,就可應用非線性規劃的方法去處理。
太差了,沒有深入研究