資源描述:
《罰函數(shù)罰與乘子法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、罰函數(shù)法罰函數(shù)法是能夠處理一般的約束優(yōu)化問題:的一類方法。其基本思想是將約束優(yōu)化問題卑微無約束問題來求解。罰函數(shù)是由目標(biāo)函數(shù)和約束函數(shù)的某種組合得到的函數(shù),對(duì)于等式約束的優(yōu)化問題,可以定義如下的罰函數(shù):將約束優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題;對(duì)于不等式約束的優(yōu)化問題可以定義如下的罰函數(shù):對(duì)于同時(shí)存在等式約束和不等式約束的優(yōu)化問題,可以去上面兩個(gè)罰函數(shù)的組合。當(dāng)然罰函數(shù)還有其他的取法,但是構(gòu)造罰函數(shù)的思想都是一樣的,即使得在可行點(diǎn)罰函數(shù)等于原來的目標(biāo)函數(shù)值,在不可行點(diǎn)罰函數(shù)等于一個(gè)很大的數(shù)。外點(diǎn)罰函數(shù)法1.算法原理外點(diǎn)罰函數(shù)法是
2、通過一系列罰因子,求罰函數(shù)的極小值來逼近原約束問題的最有點(diǎn)。之所以稱為外點(diǎn)罰函數(shù)法,是因?yàn)樗菑目尚杏蛲獠肯蚣s束邊界逐步靠攏的。2,。算法步驟用外點(diǎn)罰函數(shù)法求解線性約束問題的算法過程如下:1,給定初始點(diǎn),罰參數(shù)列及精度,置;2,構(gòu)造罰函數(shù);3,用某種無約束非線性規(guī)劃,以為初始點(diǎn)求解;4,設(shè)最優(yōu)解為,若滿足某種終止條件,則停止迭代輸出,否則令,轉(zhuǎn)2;罰參數(shù)列的選法:通常先選定一個(gè)初始常數(shù)和一個(gè)比例系數(shù),則其余的可表示為。終止條件可采用,其中。3算法的MATLAB實(shí)現(xiàn)function[x,minf]=minPF(f,x0,A,
3、b,c1,p,var,eps)%目標(biāo)函數(shù):f;%初始點(diǎn):x0;%約束矩陣:A;%約束右端向量:b;%罰參數(shù)的初始常數(shù):c1;%罰參數(shù)的比例系數(shù):p;%自變量向量Var;%精度:eps;%目標(biāo)函數(shù)取最小值時(shí)自變量值:x;%目標(biāo)函數(shù)的最小值:minf;formatlong;ifnargin==7eps=1.0e-4;endk=0;FE=0;fori=1:length(b)FE=FE+(var*transpose(A(1,:))-b(i))^2;endx1=transpose(x0);x2=inf;while1M=c1*p;FF
4、=M*FE;SumF=f+FF;[x2,minf]=minNT(SumF,transpose(x1),var);ifnorm(x2-x1)<=epsx=x2;break;elsec1=M;x1=x2;endendminf=Funval(f,var,x);formatshort;4.算法舉例用外點(diǎn)罰函數(shù)法求下面的優(yōu)化問題:其中取,初始點(diǎn)取。解:由題已知,則每一步迭代需求解的罰函數(shù)為:在MATLAB命令窗口中輸入:>>f=0.5*t^2+s^2/4;>>A=[11];b=1;>>c1=0.05;p=2;>>[x,minf]=m
5、inPF(f,[00],A,b,c1,p,[ts])所得結(jié)果為:>>x=0.33330.6666minf=0.1666對(duì)于一般的等式約束問題也可以用外點(diǎn)罰函數(shù)法解決:function[x,minf]=minGeneralPF(f,x0,h,c1,p,var,eps)formatlong;ifnargin==6eps=1.0e-4;endk=0;FE=0;fori=1:length(h)FE=FE+(h(i))^2;endx1=transpose(x0);x2=inf;while1M=c1*p;FF=M*FE;SumF=f+
6、FF;[x2,minf]=minNT(SumF,transpose(x1),var);ifnorm(x2-x1)<=epsx=x2;break;elsec1=M;x1=x2;endendminf=Funval(f,var,x);formatshort;例用通用罰函數(shù)法求下面的優(yōu)化問題:其中取,初始點(diǎn)取為。外點(diǎn)罰函數(shù)法除了可以求含等式約束的優(yōu)化問題外,還可以求混合約束的優(yōu)化問題,不過其罰函數(shù)形式要修正。通過引入罰函數(shù)可以轉(zhuǎn)化為無約束優(yōu)化問題。function[x,minf]=minConPF(f,x0,g,h,c1,p,va
7、r,eps)formatlong;ifnargin==7eps=1.0e-4;endk=0;FE=0;fori=1:length(h)FE=FE+(h(i))^2;endx1=transpose(x0);x2=inf;while1M=c1*p;FF=M*FE;gx=Funval(g,var,x1);gF=0;fori=1:length(h)ifgx(i)<0gF=gF+M*(g(i)^2);%構(gòu)造罰函數(shù)endendSumF=f+FF+gF;[x2,minf]=minNT(SumF,transpose(x1),var);%用
8、牛頓法求解無約束規(guī)劃問題ifnorm(x2-x1)<=epsx=x2;break;elsec1=M;x1=x2;endendminf=Funval(f,var,x);formatshort;內(nèi)點(diǎn)罰函數(shù)法1.算法原理內(nèi)點(diǎn)罰函數(shù)法的所有迭代過程均在可行域內(nèi)進(jìn)行,它每次迭代得到的點(diǎn)都是可行點(diǎn),內(nèi)點(diǎn)罰函數(shù)法的基