資源描述:
《第11講 數(shù)模 非線性規(guī)劃ppt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第十一講非線性規(guī)劃目的3、掌握用數(shù)學(xué)軟件求解優(yōu)化問題.1、了解非線性規(guī)劃的基本內(nèi)容.2、熟練建立非線性規(guī)劃的數(shù)學(xué)模型.內(nèi)容1、非線性規(guī)劃的基本概念及基本解法.4、作業(yè).2、用數(shù)學(xué)軟件求解非線性規(guī)劃.3、建立模型及求解舉例.1定義如果目標(biāo)函數(shù)或約束條件中至少有一個(gè)是非線性函數(shù)時(shí)的最優(yōu)化問題就叫做非線性規(guī)劃問題.非現(xiàn)性規(guī)劃的基本概念一般形式:(1)其中,是定義在En上的實(shí)值函數(shù),簡記:其它情況:求目標(biāo)函數(shù)的最大值或約束條件為小于等于零的情況,都可通過取其相反數(shù)化為上述一般形式.2定義2對于問題(1),設(shè),若存在,使得對一
2、切,且,都有,則稱X*是f(X)在D上的局部極小值點(diǎn)(局部最優(yōu)解).特別地當(dāng)時(shí):若則稱X*是f(X)在D上的嚴(yán)格局部極小值點(diǎn)(嚴(yán)格局部最優(yōu)解).定義3對于問題(1),設(shè),對任意的,都有則稱X*是f(X)在D上的全局極小值點(diǎn)(全局最優(yōu)解).特別地當(dāng)時(shí),若,則稱X*是f(X)在D上的嚴(yán)格全局極小值點(diǎn)(嚴(yán)格全局最優(yōu)解).定義1把滿足問題(1)中條件的解稱為可行解(或可行點(diǎn)),所有可行點(diǎn)的集合稱為可行集(或可行域).記為D.即問題(1)可簡記為3非線性規(guī)劃的基本解法SUTM外點(diǎn)法SUTM內(nèi)點(diǎn)法(障礙罰函數(shù)法)1、罰函數(shù)法2、
3、近似規(guī)劃法4罰函數(shù)法罰函數(shù)法基本思想是通過構(gòu)造罰函數(shù)把約束問題轉(zhuǎn)化為一系列無約束最優(yōu)化問題,進(jìn)而用無約束最優(yōu)化方法去求解.這類方法稱為序列無約束最小化方法.簡稱為SUMT法.其一為SUMT外點(diǎn)法,其二為SUMT內(nèi)點(diǎn)法.5其中T(X,M)稱為罰函數(shù),M稱為罰因子,帶M的項(xiàng)稱為罰項(xiàng),這里的罰函數(shù)只對不滿足約束條件的點(diǎn)實(shí)行懲罰:當(dāng)時(shí),滿足各,故罰項(xiàng)=0,不受懲罰.當(dāng)時(shí),必有的約束條件,故罰項(xiàng)>0,要受懲罰.SUTM外點(diǎn)法6罰函數(shù)法的缺點(diǎn)是:每個(gè)近似最優(yōu)解Xk往往不是允許解,而只能近似滿足約束,在實(shí)際問題中這種結(jié)果可能不能使
4、用;在解一系列無約束問題中,計(jì)算量太大,特別是隨著Mk的增大,可能導(dǎo)致錯誤.1、任意給定初始點(diǎn)X0,取M1>1,給定允許誤差,令k=1;2、求無約束極值問題的最優(yōu)解,設(shè)為Xk=X(Mk),即3、若存在,使,則取Mk>M()令k=k+1返回(2),否則,停止迭代.得最優(yōu)解.計(jì)算時(shí)也可將收斂性判別準(zhǔn)則改為.SUTM外點(diǎn)法(罰函數(shù)法)的迭代步驟7SUTM內(nèi)點(diǎn)法(障礙函數(shù)法)8內(nèi)點(diǎn)法的迭代步驟9近似規(guī)劃法的基本思想:將問題(3)中的目標(biāo)函數(shù)和約束條件近似為線性函數(shù),并對變量的取值范圍加以限制,從而得到一個(gè)近似線性規(guī)劃問題,再
5、用單純形法求解之,把其符合原始條件的最優(yōu)解作為(3)的解的近似.近似規(guī)劃法每得到一個(gè)近似解后,都從這點(diǎn)出發(fā),重復(fù)以上步驟.這樣,通過求解一系列線性規(guī)劃問題,產(chǎn)生一個(gè)由線性規(guī)劃最優(yōu)解組成的序列,經(jīng)驗(yàn)表明,這樣的序列往往收斂于非線性規(guī)劃問題的解。10近似規(guī)劃法的算法步驟如下1112用Matlab求解非線性規(guī)劃.2、一般非線性規(guī)劃1、二次規(guī)劃13用MATLAB軟件求解,其輸入格式如下:1.x=quadprog(H,C,A,b);2.x=quadprog(H,C,A,b,Aeq,beq);3.x=quadprog(H,C,A
6、,b,Aeq,beq,VLB,VUB);4.x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB,X0);5.x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB,X0,options);6.[x,fval]=quaprog(...);7.[x,fval,exitflag]=quaprog(...);8.[x,fval,exitflag,output]=quaprog(...);1、二次規(guī)劃標(biāo)準(zhǔn)型為:14例1minf(x1,x2)=-2x1-6x2+x12-2x1x2+2x22s.t.
7、x1+x2≤2-x1+2x2≤2x1≥0,x2≥0MATLAB(youh1)1、寫成標(biāo)準(zhǔn)形式:2、輸入命令:H=[1-1;-12];c=[-2;-6];A=[11;-12];b=[2;2];Aeq=[];beq=[];VLB=[0;0];VUB=[];[x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)3、運(yùn)算結(jié)果為:x=0.66671.3333z=-8.2222s.t.151.首先建立M文件fun.m,定義目標(biāo)函數(shù)F(X):functionf=fun(X);f=F(X);2、一般非線性規(guī)劃
8、其中X為n維變元向量,G(X)與Ceq(X)均為非線性函數(shù)組成的向量,其它變量的含義與線性規(guī)劃、二次規(guī)劃中相同.用Matlab求解上述問題,基本步驟分三步:標(biāo)準(zhǔn)型為:163.建立主程序.非線性規(guī)劃求解的函數(shù)是fmincon,命令的基本格式如下:(1)x=fmincon(‘fun’,X0,A,b)(2)x=fmincon(‘fun’,X0,A,b