約束優(yōu)化算法:拉格朗日乘子法_第1頁
約束優(yōu)化算法:拉格朗日乘子法_第2頁
約束優(yōu)化算法:拉格朗日乘子法_第3頁
約束優(yōu)化算法:拉格朗日乘子法_第4頁
約束優(yōu)化算法:拉格朗日乘子法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上拉格朗日乘子法約束優(yōu)化問題的標(biāo)準(zhǔn)形式為:約束優(yōu)化算法的基本思想是:通過引入效用函數(shù)的方法將約束優(yōu)化問題轉(zhuǎn)換為無約束問題,再利用優(yōu)化迭代過程不斷地更新效用函數(shù),以使得算法收斂。1. 罰函數(shù)法罰函數(shù)法(內(nèi)點(diǎn)法)的主思想是:在可行域的邊界上筑起一道很高的“圍墻”,當(dāng)?shù)c(diǎn)靠近邊界時(shí),目標(biāo)函數(shù)陡然增大,以示懲罰,阻止迭代點(diǎn)穿越邊界,這樣就可以將最優(yōu)解“擋”在可行域之內(nèi)了。它只適用于不等式約束:它的可行域?yàn)椋簩?duì)上述約束問題,其其可行域的內(nèi)點(diǎn)可行集的情況下,引入效用函數(shù):、其中或算法的具體步驟如下:給定控制誤差,懲罰因子的縮小系數(shù)。步驟1:令,選定初始點(diǎn),給定(一般取10)。步驟

2、2:以為初始點(diǎn),求解無約束其中或,得最優(yōu)解 步驟3:若,則為其近似最優(yōu)解,停;否則,令,轉(zhuǎn)步驟2.2. 拉格朗日乘子法(1)算法:(約數(shù)為等式的情況引入)效用函數(shù)為判斷函數(shù)為當(dāng)時(shí)迭代停止。步驟1:選定初始點(diǎn),初始拉格朗日乘子向量,初始罰因子及其放大系數(shù),控制誤差與常數(shù),令。步驟2:以為初始點(diǎn),求解無約束問題:得到無約束問題最優(yōu)解步驟3:當(dāng)時(shí),為所求的最優(yōu)解,停;否則轉(zhuǎn)步驟4.步驟4:當(dāng)時(shí),轉(zhuǎn)步驟5;否則令,轉(zhuǎn)步驟5.步驟5:令,轉(zhuǎn)步驟1。(2) 算法(一般約束形式的松弛變量法和指數(shù)形式法)松弛變量法:乘子的修正公式為:判斷函數(shù)為:當(dāng)時(shí)迭代停止。3. 乘子法MATLAB程序及其作用3.1 函數(shù)3

3、.1.1程序(1):乘子法效用函數(shù)程序 函數(shù)功能:將約束優(yōu)化問題,根據(jù)效用函數(shù)方法,將其轉(zhuǎn)變成無約束問題。function f=AL_obj(x)%拉格朗日增廣函數(shù)%N_equ 等式約束個(gè)數(shù)%N_inequ 不等式約束個(gè)數(shù)global r_al pena N_equ N_inequ;%全局變量h_equ=0;h_inequ=0;h,g=constrains(x);%等式約束部分for i=1:N_equ h_equ=h_equ+h(i)*r_al(i)+(pena/2)*h(i).2;end%不等式約束部分for i=1:N_inequ h_inequ=h_inequ+(0.5/pena)*(

4、max(0,(r_al(i)+pena*g(i).2-r_al(i).2);end%拉格朗日增廣函數(shù)值f=obj(x)+h_equ+h_inequ;3.1.2 程序(2):判斷函數(shù)函數(shù)功能:判斷是否符合約束條件% the compare function is the stop conditionfunction f=compare(x)global r_al pena N_equ N_inequ;h_equ=0;h_inequ=0;h,g=constrains(x);%等式部分for i=1:N_equ h_equ=h_equ+h(i).2;end%不等式部分for i=1:N_inequ

5、h_inequ=h_inequ+(max(-g(i),r_al(i+N_equ)/pena).2;endf=sqrt(h_equ+h_inequ);3.1.3 程序(3)AL算法主程序函數(shù)功能:對(duì)無約束的效用函數(shù)利用擬牛頓算法求解其最優(yōu)解,更新乘子。function X,FVAL=AL_main(x_al,r_al,N_equ,N_inequ)%本程序?yàn)槔窭嗜粘俗铀惴ㄊ纠惴?函數(shù)輸入:% x_al:初始迭代點(diǎn)% r_al:初始拉格朗日乘子% N-equ:等式約束個(gè)數(shù)% N_inequ:不等式約束個(gè)數(shù)%函數(shù)輸出% X:最優(yōu)函數(shù)點(diǎn)% FVAL:最優(yōu)函數(shù)值%=程序開始=global r_al p

6、ena N_equ N_inequ; %參數(shù)(全局變量)pena=10; %懲罰系數(shù)c_scale=2; %乘法系數(shù)乘數(shù)cta=0.5; %下降標(biāo)準(zhǔn)系數(shù)e_al=0.005; %誤差控制范圍max_itera=25;out_itera=1; %迭代次數(shù)%=算法迭代開始=while out_itera<max_itera x_al0=x_al; r_al0=r_al; %判斷函數(shù) compareFlag=compare(x_al0); %無約束的擬牛頓法BFGS X,FVAL=fminunc(AL_obj,x_al0); x_al=X; %得到新迭代點(diǎn) %判斷停止條件 if compare

7、(x_al)<e_al disp('we get the opt point'); break end %c判斷函數(shù)下降度 if compare(x_al)<cta*compareFlag pena=pena; %可以根據(jù)需要修改懲罰系數(shù)變量 else pena=min(1000,c_scale*pena); %乘法系數(shù)最大1000 disp('pena=2*pena'); end % 更新拉格朗日乘子 h,g=constrains(x_al); for i=1:N_equ %等式約束部分 r_al(i)=r_al(i)+pena*h(i); end

8、 for i=1:N_inequ %不等式約束部分 r_al(i+N_equ)=max(0,(r_al(i+N_equ)+pena*g(i); end out_itera=out_itera+1;end%+迭代結(jié)束+disp('!the iteration over!');disp('the value of the obj function');obj(x_al)disp('the value of constrains');compare(x_al)disp('the opt point'); X=x_al; FVAL=obj(X);3.1.4 乘子法函數(shù)使用方法(1) 定義目標(biāo)函數(shù)及約束條件目標(biāo)函數(shù)文件約束函數(shù)文件(2) 函數(shù)調(diào)用x_al=1,1,1; %初始迭代點(diǎn)r_al=1,1; %初始拉格朗日乘子N_equ=1; %等式約束個(gè)數(shù) 一個(gè)N_inequ=1; %不等式約束個(gè)數(shù) 一個(gè)X,FVAL=AL_main(x_al,r_al,N_equ,N_inequ)計(jì)算結(jié)果:we get the opt point!the iteration over!the value of t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論