資源描述:
《非線性規(guī)劃問題的求解方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六講非線性規(guī)劃問題的求解方法一、非線性規(guī)劃問題的幾種求解方法1.罰函數(shù)法(外點(diǎn)法)基本思想:利用目標(biāo)函數(shù)和約束函數(shù)構(gòu)造輔助函數(shù):要求構(gòu)造的函數(shù)具有這樣的性質(zhì):當(dāng)點(diǎn)x位于可行域以外時(shí),取值很大,而離可行域越遠(yuǎn)則越大;當(dāng)點(diǎn)在可行域內(nèi)時(shí),函數(shù)因此可以將前面的有約束規(guī)劃問題轉(zhuǎn)換為下列無約束規(guī)劃模型:其中稱為罰項(xiàng),稱為罰因子,稱為罰函數(shù)。的定義一般如下:函數(shù)一般定義如下:算法步驟如何將此算法模塊化:求解非線性規(guī)劃模型例子罰項(xiàng)函數(shù):無約束規(guī)劃目標(biāo)函數(shù):globallamada%主程序main2.m,罰函數(shù)方法x0=[11];lamada=2;c=10;e=1e-5;k=1;whilelamad
2、a*fun2p(x0)>=ex0=fminsearch('fun2min',x0);lamada=c*lamada;k=k+1;enddisp(‘最優(yōu)解’),disp(x0)disp('k='),disp(k)程序1:主程序main2.m程序2:計(jì)算的函數(shù)fun2p.mfunctionr=fun2p(x)%罰項(xiàng)函數(shù)r=((x(1)-1)^3-x(2)*x(2))^2;程序3:輔助函數(shù)程序fun2min.mfunctionr=fun2min(x)%輔助函數(shù)globallamadar=x(1)^2+x(2)^2+lamada*fun2p(x);運(yùn)行輸出:最優(yōu)解1.000128150991
3、65-0.00000145071779k=33練習(xí)題:1、用外點(diǎn)法求解下列模型2、將例子程序改寫為一個(gè)較為通用的罰函數(shù)法程序。(考慮要提供哪些參數(shù))2.內(nèi)點(diǎn)法(障礙函數(shù)法)僅適合于不等式約束的最優(yōu)化問題其中都是連續(xù)函數(shù),將模型的定義域記為構(gòu)造輔助函數(shù)為了保持迭代點(diǎn)含于可行域內(nèi)部,我們定義障礙函數(shù)3.問題轉(zhuǎn)化為一個(gè)無約束規(guī)劃由于很小,則函數(shù)取值接近于f(x),所以原問題可以歸結(jié)為如下規(guī)劃問題的近似解:練習(xí)題:請(qǐng)用內(nèi)點(diǎn)法算法求解下列問題:小結(jié)講解了兩個(gè)求解有約束非線性最小化規(guī)劃特點(diǎn):易于實(shí)現(xiàn),方法簡單;沒有用到目標(biāo)函數(shù)的導(dǎo)數(shù)問題的轉(zhuǎn)化技巧(近似為一個(gè)無約束規(guī)劃)4、其它求解算法(1)
4、間接法(2)直接法直接搜索法以梯度法為基礎(chǔ)的間接法無約束規(guī)劃的Matlab求解函數(shù)數(shù)學(xué)建模案例分析(截?cái)嗲懈?,飛機(jī)排隊(duì))(1)間接法在非線性最優(yōu)化問題當(dāng)中,如果目標(biāo)函數(shù)能以解析函數(shù)表示,可行域由不等式約束確定,則可以利用目標(biāo)函數(shù)和可行域的已知性質(zhì),在理論上推導(dǎo)出目標(biāo)函數(shù)為最優(yōu)值的必要條件,這種方法就稱為間接法(也稱為解析法)。一般要用到目標(biāo)函數(shù)的導(dǎo)數(shù)。(2)直接法直接法是一種數(shù)值方法這種方法的基本思想是迭代,通過迭代產(chǎn)生一個(gè)點(diǎn)序列{X(k)},使之逐步接近最優(yōu)點(diǎn)。只用到目標(biāo)函數(shù)。如黃金分割法、Fibonacci、隨機(jī)搜索法。(3)迭代法一般步驟注意:數(shù)值求解最優(yōu)化問題的計(jì)算效率取決
5、于確定搜索方向P(k)和步長的效率。最速下降法(steepestdescentmethod)由法國數(shù)學(xué)家Cauchy于1847年首先提出。在每次迭代中,沿最速下降方向(負(fù)梯度方向)進(jìn)行搜索,每步沿負(fù)梯度方向取最優(yōu)步長,因此這種方法稱為最優(yōu)梯度法。特點(diǎn):方法簡單,只以一階梯度的信息確定下一步的搜索方向,收斂速度慢;越是接近極值點(diǎn),收斂越慢;它是其它許多無約束、有約束最優(yōu)化方法的基礎(chǔ)。該法一般用于最優(yōu)化開始的幾步搜索。以梯度法為基礎(chǔ)的最優(yōu)化方法求f(x)在En中的極小點(diǎn)思想:方向?qū)?shù)是反映函數(shù)值沿某一方向的變化率問題方向?qū)?shù)沿梯度方向取得最大值基礎(chǔ):方向?qū)?shù)、梯度通過一系列一維搜索來實(shí)現(xiàn)
6、。本方法的核心問題是選擇搜索方向。搜索方向的不同則形成不同的最優(yōu)化方法。最速下降法算法:算法說明可通過一維無約束搜索方法求解例子:用最速下降法解下列問題分析:1、編寫一個(gè)梯度函數(shù)程序fun1gra.m2、求(可以調(diào)用函數(shù)fminsearch)函數(shù)fungetlamada.m3、最速下降法主程序main1.m初始條件第一步:計(jì)算梯度程序fun1gra.mfunctionr=fun1gra(x)%最速下降法求解示例%函數(shù)f(x)=2*x1^2+x2^2的梯度的計(jì)算%r(1)=4*x(1);r(2)=2*x(2);第二步:求最優(yōu)的目標(biāo)函數(shù)functionr=fungetlamada(lam
7、ada)%關(guān)于lamada的一元函數(shù),求最優(yōu)步長globalx0d=fun1gra(x0);r=2*(x0(1)-lamada*d(1))^2+(x0(2)-lamada*d(2))^2;%注意負(fù)號(hào)表示是負(fù)梯度第三步:主程序main1.m%最速下降方法實(shí)現(xiàn)一個(gè)非線性最優(yōu)化問題%minf(x)=2*x1^2+x2^2globalx0x0=[11];yefi=0.0001;k=1;d=-fun1gra(x0);lamada=1;主程序main1.m(續(xù))whi