筆記多目標規(guī)劃_第1頁
筆記多目標規(guī)劃_第2頁
筆記多目標規(guī)劃_第3頁
筆記多目標規(guī)劃_第4頁
筆記多目標規(guī)劃_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、處理多目標規(guī)劃的方法1.約束法1.1原理約束法又稱主要目標法,它根據(jù)問題的實際情況確定一個目標為主要目標,而把其余目標作為次要目標,并根據(jù)決策者的經(jīng)驗給次要的目標選取一定的界限值,這樣就可以把次要目標作為約束來處理,從而就將原有多目標規(guī)劃問題轉(zhuǎn)化為一個在新的約束下,求主要目標的單目標最優(yōu)化問題。假設(shè)在p個目標中,為主要目標,而對應(yīng)于其余(p-1)個目標函數(shù)均可以確定其允許的邊界值:。這樣我們就可以將這個目標函數(shù)當做最優(yōu)化問題的約束來處理,于是多目標規(guī)劃問題轉(zhuǎn)化稱為單目標規(guī)劃問題SP問題:公式1上述問題的可行域為2.評價函數(shù)法其基本思想就是將多目標規(guī)劃問題轉(zhuǎn)化為一個單目標規(guī)劃問題來求解,而且該單

2、目標規(guī)劃問題的目標函數(shù)是用多目標問題的各個目標函數(shù)構(gòu)造出來的,稱為評價函數(shù),例如若原多目標規(guī)劃問題的目標函數(shù)為F(x),則我們可以通過各種不同的方式構(gòu)造評價函數(shù)h(F(x),然后求解如下問題:求解上述問題之后,可以用上述問題的最優(yōu)解x*作為多目標規(guī)劃問題的最優(yōu)解,正是由于可以用不同的方法來構(gòu)造評價函數(shù),因此有各種不同的評價函數(shù)方法,下面介紹幾種常用的方法。評價函數(shù)法中主要有:理想點法、平方和加權(quán)法、線性加權(quán)和法、乘除法、最大最小法2.1理想點法考慮多目標規(guī)劃問題:,首先分別求解p個單目標規(guī)劃問題:令各個問題的最優(yōu)解為,而其目標函數(shù)值可以表示為:其中:一般來說,不可能所有的均相同,故其最優(yōu)值組成

3、的向量并不屬于多目標規(guī)劃的象集,所以是一個幾乎不可能達到理想點。那么,理想點法就是在多目標規(guī)劃的可行域R中找到一點X*,使其對應(yīng)的與理想點最為接近,即當已知理想點時,在目標空間中適當引進某種度量標準來確定和之間的距離,并在這個度量標準的意義下,使得多目標規(guī)劃問題集合R上某點的目標函數(shù)與理想點之間的“距離”盡可能小。而距離的度量可以利用向量的某種模,當我們給模賦予不同的意義是,便可以得到不同的理想點法。下面我們給出最短距離理想點法,這種方法是將取為中的的形式,即構(gòu)造如下的單目標規(guī)劃問題:公式1&&這里的評價函數(shù)是到的距離。當然我們也可以采用其他評價函數(shù)的方式,例如更一般的將(8-

4、7)進行推廣,得到評價函數(shù)為:公式2或者是如下形式:公式32.2基于加權(quán)的方法如果p個非負實數(shù)滿足其和為1,則稱為一組權(quán)向量,或者將稱為一組權(quán)系數(shù)。若所有權(quán)系數(shù),則稱這組權(quán)系數(shù)為正權(quán),正權(quán)的全體可以記為:;若所有權(quán)系數(shù),則稱這組權(quán)系數(shù)為非負權(quán),非負權(quán)的全體可以記為:上述對權(quán)向量和權(quán)系數(shù)的定義適用于下面所介紹的各種加權(quán)和的方法。先求出各個單目標規(guī)劃問題的一個盡可能好的下界,即滿足:然后構(gòu)造評價函數(shù):一般情況下,權(quán)系數(shù)的值由各目標函數(shù)的重要程度給出。2.3.1平方和加權(quán)法平方和加權(quán)法是求解如下單目標規(guī)劃問題:公式1將其最優(yōu)解作為多目標規(guī)劃的解。2.3.2線性加權(quán)和法線性加權(quán)和法是一種最常用的方法,

5、而且在理論上有重要意義,該方法是按照p個目標的重要程度,分別乘以一組權(quán)系數(shù),然后相加作為目標函數(shù),再對此目標函數(shù)在多目標規(guī)劃問題的約束集合R上求最優(yōu)解,即構(gòu)造如下單目標規(guī)劃問題:公式1求此單目標規(guī)劃問題的最優(yōu)解,并把它叫做多目標規(guī)劃問題在線性加權(quán)意義下的最優(yōu)解,且該問題中的或者,設(shè)p=2,則多目標規(guī)劃問題具有兩個目標函數(shù),取如圖所示,目標函數(shù)的等值線是一條直線。求的過程就是在中找一點,使得取最小值,從圖上可以看出,是目標函數(shù)的等值線與在左下角的切點,即的有效點。對應(yīng)于,存在使得,則為多目標規(guī)劃問題的有效解。當時,可能是弱有效解。加權(quán)因子wi確定的方法:(1).將各分目標轉(zhuǎn)化后加權(quán) 為消除各分目

6、標在量級上的差別,先將分目標函數(shù)fi(x)轉(zhuǎn)化為無量綱等量級目標函數(shù)再組成統(tǒng)一目標函數(shù):wi按各分目標的重要程度來決定如各分目標有相同的重要性,則取wi =1 (i=1,2,l) 稱為均勻計權(quán),否則取各分目標不同的加權(quán)因子,取將fi(x)轉(zhuǎn)換為無量綱的等量級目標函數(shù)的方法 :設(shè)各分目標函數(shù)值的變動范圍為:即將各單目標函數(shù)的最優(yōu)值的倒數(shù)作為權(quán)系數(shù),它反映了各單目標函數(shù)離開各自最優(yōu)值的程度。另外相當于各分目標函數(shù)進行了無量綱的處理,而消除了各分目標在數(shù)量級上的差別。(2) 直接加權(quán)法將加權(quán)因子分成兩部分: wi=w1i·w2i (i=1,2,l)其中,w1i本征權(quán)因子,反映各分目標的重要

7、程度w2i校正權(quán)因子,調(diào)整各分目標間量級差別的影響一般?。阂粋€分目標函數(shù)fi(x)變化越快,的值越大,加權(quán)因子w2i愈小,反之,亦然。這樣可調(diào)整不同的目標函數(shù)值同步下降。 2.4乘除法(存疑:乘除法原理即乘冪指數(shù)有變化,1或-1,為何不是2或-2?按照重要性冪指數(shù)應(yīng)變大?。┘偃缥覀兊哪繕丝梢苑譃閮山M:一組要求的值越小越好;另一組要求越大越好。而且對于任意的,均滿足函數(shù)值非負的條件,此時可以令: (8-12)這樣就可以把多目標規(guī)劃問題統(tǒng)一為:乘除法的原理就是構(gòu)造如下目標函數(shù):公式1則多目標規(guī)劃問題已經(jīng)轉(zhuǎn)化為單目標規(guī)劃問題。在乘除法中我們是把求最大的目標作為分母,把求最小的目標作為分子,如此化為單

8、目標問題后再求最小。2.5最大最小法X = FMINIMAX(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)在對策論中,人們經(jīng)常遇到這樣的問題:在最不利的條件下如何尋求最有利的策略。因此,求解極小化的多目標規(guī)劃,也就是要在R中求出各個目標函數(shù)的最大值中的最小值。這就是極大極小法的基本思想。基于上述基本思想,極大極小法是構(gòu)造評價函數(shù):,從而求解下述單目標規(guī)劃問題P的最優(yōu)解:,有時也給每個配上權(quán)系數(shù),即考慮如下問題:,其中或者。當時極大極小法的幾何意義如圖所示,x是在R中的極小點。2.6結(jié)論(看不懂。,。)以上我們借助于不同形式的評價函數(shù)將多目標規(guī)劃問題轉(zhuǎn)化為單

9、目標規(guī)劃問題。現(xiàn)在我們將要討論:上述問題的最優(yōu)解在什么條件之下才是多目標規(guī)劃問題的的有效解或弱有效解。為此,給出兩個定義:如果對于,當滿足時均滿足,則稱為F的嚴格單調(diào)增函數(shù)。如果對于,當滿足時均滿足,則稱為的單調(diào)增函數(shù)。在上述定義下,轉(zhuǎn)化后的單目標規(guī)劃問題是多目標規(guī)劃問題的有效解或者弱有效解的條件由下面兩個定理描述:若是的嚴格單調(diào)增函數(shù),則轉(zhuǎn)化后的單目標規(guī)劃問題的最優(yōu)解是多目標規(guī)劃問題的有效解。若是的單調(diào)增函數(shù),則轉(zhuǎn)化后的單目標規(guī)劃問題的最優(yōu)解是多目標規(guī)劃問題的弱有效解??梢宰C明,評價函數(shù)法中所給的評價函數(shù)都是嚴格單調(diào)增函數(shù)或單調(diào)增函數(shù),因而其最優(yōu)解是多目標規(guī)劃問題的有效解或弱有效解。3.功效

10、系數(shù)法我們知道,多目標規(guī)劃的任意一個可行解,對每個目標的相應(yīng)值是有好有壞的。一個對某個的相應(yīng)值的好壞程度,稱為X對的功效。為了便于對每個比較它對某個的功效大小,可將以作一個函數(shù)變換,即令:。并規(guī)定:對產(chǎn)生功效最好的X,評分為;功效最壞的X,評分為;對不是最好也不是最壞的中間狀態(tài),評分為。換句話說,我們用一個值在0與1之間的功效函數(shù)來反映的好壞。下面介紹最常用的兩種評分方法:線性型和指數(shù)型。3.1線性功效系數(shù)法這種方法是用功效最好與最壞的兩點之間的直線來反映功效程度的,考慮如下的多目標規(guī)劃問題:求出的最大值和最小值:(1) 由于當時,要求越小越好,故可?。汗?其中式選取作為函數(shù)值,主要是因為過

11、兩點和可作一條直線,其方程為:由上式得:,的圖形見圖所示。顯然,越靠近的功效越好,越靠近的功效越壞,所以便可以反映諸越小越好。(2) 對于當時,要求越大越好,故可?。汗?其中式選取作為函數(shù)值,主要是因為過兩點和可作一條直線,其方程為:于是可得:,的圖形見圖所示。由(1)(2)可知,對所有的均給出了相應(yīng)的功效系數(shù),用(1)(2)所推導(dǎo)出的的公式中,當諸時便可以同時保證前k個目標越小越好,而后個目標越大越好。為了求解一個實際問題,我們不會尋求目標函數(shù)功效最壞的解,即我們不會求使得的解,因此我們不妨假設(shè),對于,我們作其幾何平均數(shù):公式3稱為功效函數(shù),并以單目標規(guī)劃的最優(yōu)解作為多目標規(guī)劃的解:對于上

12、述解法我們有如下定理:設(shè)對于若是式(8-24)的最優(yōu)解,則必為多目標規(guī)劃問題的有效解。3.2指數(shù)功效系數(shù)法線性型功效系數(shù)法實際上是把功效系數(shù)取作線性函數(shù),當我們把功效系數(shù)取作指數(shù)函數(shù)時,便得到指數(shù)型功效系數(shù)法。由于指數(shù)函數(shù)的幾何特征與直線不同,因為指數(shù)函數(shù)最大值的,而是趨近于0,故無法象線性功效系數(shù)法那樣利用的最小值和最大值來定義,而是利用估計出的的不合格值(或者稱為不滿意值)和勉強合格值(或稱最低滿意值)來定義。(1) 對于越大越好的,考慮如下的指數(shù)型功效系數(shù):公式1其中以及為待定的常數(shù),其圖形如圖所示可見,是的嚴格單調(diào)增函數(shù),而且當充分大時,。為了確定和,規(guī)定:,可以得到:(8-26)由此

13、可得:,故從而有:公式1(2) 對于越小越好的,可以類似的求得:公式2這時,的圖形如圖所示,圖中,是的嚴格單調(diào)減函數(shù),而且當充分小時,類似線性功效系數(shù)法,在得到了各功效系數(shù)之后,我們構(gòu)造單目標規(guī)劃問題:公式3同樣可以證明,最優(yōu)解為多目標規(guī)劃問題的有效解。最后指出功效系數(shù)法顯然也適用于統(tǒng)一的極小化模型,只需要在相應(yīng)的評價函數(shù)中取即可。多目標規(guī)劃的MATLAB求解由于多目標規(guī)劃中的求解涉及到的方法非常多,故在MATLAB中可以利用不同的函數(shù)進行求解,例如:1.在評價函數(shù)法中我們所得最后的評價函數(shù)為一線性函數(shù),且約束條件也為線性函數(shù),則我們可以利用MATLAB優(yōu)化工具箱中提供的linprog函數(shù)進行

14、求解;2.如果我們得到的評價函數(shù)為非線性函數(shù),則可以利用MATLAB優(yōu)化工具箱中提供的fmincon函數(shù)進行求解;FMINCON finds a constrained minimum of a function of several variables. FMINCON attempts to solve problems of the form: min F(X) subject to: A*X <= B, Aeq*X = Beq (linear constraints) X C(X) <= 0, Ceq(X) = 0 (nonlinear constraints) LB &l

15、t;= X <= UB (bounds) X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB) defines a set of lower and upper bounds on the design variables, X, so that a solution is found in the range LB <= X <= UB. Use empty matrices for LB and UB if no bounds exist. Set LB(i) = -Inf if X(i) is unbounded below; set UB(i)

16、= Inf if X(i) is unbounded above. X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON) subjects the minimization to the constraints defined in NONLCON. The function NONLCON accepts X and returns the vectors C and Ceq, representing the nonlinear inequalities and equalities respectively. FMINCON minimizes FU

17、N such that C(X) <= 0 and Ceq(X) = 0. (Set LB = and/or UB = if no bounds exist.) X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS) minimizes with the default optimization parameters replaced by values in the structure OPTIONS, an argument created with the OPTIMSET function. See OPTIMSET for d

18、etails. For a list of options accepted by FMINCON refer to the documentation. 3.如果我們采用最大最小法進行求解,則可以利用MATLAB優(yōu)化工具箱中提供的fminimax函數(shù)進行求解。下面我們就結(jié)合前面各小節(jié)中所分析的幾種方法,講解一下典型多目標規(guī)劃問題的MATLAB求解方法。1.例 利用理想點法求解我們首先根據(jù)評價函數(shù)法中的理想點法的理論基礎(chǔ),按照理想點法的求解思路分別對兩個單目標規(guī)劃問題進行求解: 求解該線性規(guī)劃的MATLAB的代碼和相應(yīng)的運行結(jié)果為:c=2;-3;A=3 2;1 1;b=12;8lb=0;0x,

19、fval=linprog(c,A,b,lb,)Optimization terminated.x = 0.0000 6.0000fval = -18.0000于是可知。當時,單目標線性規(guī)劃的最優(yōu)函數(shù)值為。c=-5;-3;A=3 2;1 1;b=12;8lb=0;0x,fval=linprog(c,A,b,lb,)Optimization terminated.x = 4.0000 0.0000fval =-20.0000于是可知,當時,單目標線性規(guī)劃的最優(yōu)函數(shù)值為。由上述兩個單目標線性規(guī)劃的求解結(jié)果可知,因而是一個不可能達到的理想點,因而我們構(gòu)造如下評價函數(shù):評價函數(shù):構(gòu)造描述該評價函數(shù)的M-

20、函數(shù)文件objfun.m如下:function f=objfun(x)f=sqrt(2*x(1)-3*x(2)+18)2+(5*x(1)+3*x(2)-20)2);然后用非線性規(guī)劃的方式求解上述問題的代碼為:A=3 2;1 1;b=12;8;lb=0;0;x0=0;0;x,fval,exitflag=fmincon(objfun,x0,A,b,lb,)由運行結(jié)果可知在該評價函數(shù)標準之下,問題的最優(yōu)解為:此時,各目標函數(shù)的取值為:。它與理想點在評價函數(shù)標準下的最小距離為1.9941。2.例 利用評價函數(shù)中的線性加權(quán)和法求解如下多目標規(guī)劃問題:其中權(quán)系數(shù)為建立線性加權(quán)和法的評價函數(shù)為:將相應(yīng)的權(quán)系

21、數(shù)代入上式即整理出目標函數(shù)為:于是建立目標函數(shù)的M-函數(shù)文件objfun.m:function f=objfun(x)f=x(1)2+1.2*x(2)2+1.4*x(3)2;由于目標函數(shù)非線性函數(shù)且具有線性等式約束和邊界約束,因而我們調(diào)用MATLAB中求解非線性規(guī)劃的fmincon函數(shù)對此問題進行求解,同時注意如果只考慮第一個目標函數(shù),由這種特殊形式,即在設(shè)計變量的和為一定值,需要求其平方和的最小值時,最優(yōu)解必然是當這幾個設(shè)計變量的值相等時取得,于是我們可以將這個解設(shè)為問題的初始點,開始迭代,故求解該問題的代碼為:Aeq=1 1 1;beq=3;lb=0;0;0;x0=1;1;1;x,fval

22、=fmincon(objfun,x0,Aeq,beq,lb,)結(jié)果說明,問題的最優(yōu)解為:我們在求解多目標規(guī)劃問題時,可以采用評價函數(shù)法中的最大最小法,而MATLAB也為這種方法提供了專門的求解函數(shù)fminimax,在講解這方面的例題之前,我們首先介紹一下MATLAB優(yōu)化工具箱中所提供的最大最小法的求解函數(shù)fminimax。最大最小法問題的MATLAB標準形式為:函數(shù)fminimax的調(diào)用方式和其他的最優(yōu)化函數(shù)類似,其中所涉及的輸入?yún)?shù)和輸出參數(shù)的含義與非線性規(guī)劃的求解函數(shù)fmincon類似,使用方法也基本相同,細節(jié)問題讀者可以參考MATLAB的幫助文件。3.例 求解最大最小問題:首先建立描述目

23、標函數(shù)的M-函數(shù)文件objfun.m,注意到一共有五個目標函數(shù),所求目標為這五個函數(shù)最大值中的最小值,代碼如下:function f = objfun(x)f(1)= 2*x(1)2+x(2)2-48*x(1)-40*x(2)+304; f(2)= -x(1)2 - 3*x(2)2;f(3)= x(1) + 3*x(2) -18;f(4)= -x(1)- x(2);f(5)= x(1) + x(2) - 8;然后設(shè)置求解的初始點為x0=0;0,調(diào)用fminimax求解該問題的代碼為:x0 = 0; 0;x,fval,maxfval = fminimax(objfun,x0)運行結(jié)果為:Loca

24、l minimum possible. Constraints satisfied.fminimax stopped because the predicted change in the objective functionis less than the default value of the function tolerance and constraints were satisfied to within the default value of the constraint tolerance.<stopping criteria details>Active ine

25、qualities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 5x = 4.0000 4.0000fval = 0.0000 -64.0006 -1.9999 -8.0000 -0.0000maxfval = 2.6897e-008上述結(jié)果說明當時,目標函數(shù)的最大值達到最小,這一組的函數(shù)值為0.0000,-64.0006,-1.9999,-8.0000,-0.0000,于是最大值為0。4.例 利用最大最小法求解根據(jù)最大最小法評價函數(shù)的建立方法:仍然選擇與上例相同的權(quán)值,故可知最大最小法的兩個目標函

26、數(shù)為:于是我們在MATLAB中建立描述目標函數(shù)的M-函數(shù)文件objfun.m如下:function f=objfun(x)f(1)=0.8*(x(1)2+x(2)2+x(3)2);f(2)=0.2*(x(1)2+2*x(2)2+3*x(3)2);之后調(diào)用fminimax函數(shù)進行求解,同樣設(shè)置初始點為1;1;1,代碼為:Aeq=1 1 1;beq=3;lb=0;0;0;x0=1;1;1;x,fval=fminimax(objfun,x0,Aeq,beq,lb,)運行結(jié)果為:Local minimum possible. Constraints satisfied.fminimax stopped

27、 because the size of the current search direction is less thantwice the default value of the step size tolerance and constraints were satisfied to within the default value of the constraint tolerance.<stopping criteria details>Active inequalities (to within options.TolCon = 1e-006): lower uppe

28、r ineqlin ineqnonlin 1x = 1.0000 1.0000 1.0000fval = 2.4000 1.2000上述結(jié)果說明該問題的最優(yōu)解為:,可見最大最小法與前面的線性加權(quán)和法所求得的結(jié)果不同,這主要是因為所采取的評價標準不同,即評價函數(shù)形式的不同,在實際應(yīng)用中,我們應(yīng)當按照實際的需求采用合適的評價函數(shù),這樣才能取得較為可行的結(jié)果。線性目標規(guī)劃的MATLAB求解6212263700005128766MATLAB優(yōu)化工具箱中提供了求解多目標規(guī)劃問題的函數(shù)fgoalattain,針對本節(jié)中的線性目標規(guī)劃問題,可以利用該函數(shù)進行求解。同時我們還可以將線性目標規(guī)劃問題推廣至一般的

29、多目標規(guī)劃問題,調(diào)用此函數(shù)進行求解。MATLAB所定義的多目標規(guī)劃的標準形式為:其中、為相應(yīng)維數(shù)的向量,、為矩陣,、為返回向量的函數(shù),它們可以是線性函數(shù),也可以是非線性函數(shù)。1.函數(shù)fgoalattain的調(diào)用格式x = fgoalattain(fun,x0,goal,weight)x = fgoalattain(fun,x0,goal,weight,A,b)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x = fgoalattain(fun

30、,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,. options)x = fgoalattain(problem)x,fval = fgoalattain(.)x,fval,attainfactor = fgoalattain(.) x,fval,attainfactor,exitflag = fgoalattain(.)x,fval,attainfactor,exitflag,output = fgoalattain(.)x,fva

31、l,attainfactor,exitflag,output,lambda = fgoalattain(.)2.輸入?yún)?shù) 在函數(shù)fgoalattain的輸入?yún)?shù)中,fun為目標函數(shù),x0是求解的初始值,goal是目標函數(shù)的期望值,nonlcon是非線性約束函數(shù),weight是目標權(quán)重。下面對這些參數(shù)作一個介紹。fun輸入?yún)?shù)之一fun為需要最小化的目標函數(shù),在fun函數(shù)中需要輸入設(shè)計變量x,為一個列向量,結(jié)果返回x處的目標函數(shù)值。fun可以是一個在M函數(shù)中定義的函數(shù)句柄,例如:x = fgoalattain(myfun,x0,goal,weight)M-函數(shù)文件myfun.m必須有下面的形式:

32、function f = myfun(x)f = . % 目標函數(shù).fun還可以是匿名函數(shù)句柄和字符串,例如:x = fgoalattain(x)sin(x.*x),x0,goal,weight);如果用戶定的x和f為矩陣的話,MATLAB會用線性索引的方式以列的方式將矩陣轉(zhuǎn)化為向量,例如將矩陣A轉(zhuǎn)換成為向量:A = 2 6 9; 4 2 8; 3 5 1A = 2 6 9 4 2 8 3 5 1實際上內(nèi)存中的存儲為:2, 4, 3, 6, 2, 5, 9, 8, 1如果我們希望目標函數(shù)值能夠盡可能接近設(shè)定的期望值,也就是說目的是準確達到,而非大于也非小于,我們可以使用optimset設(shè)置控制

33、參數(shù)GoalsExactAchieve的值為相應(yīng)的目標函數(shù)的序號。需要注意的是,這類目標函數(shù)必須安排在參數(shù)fun返回的函數(shù)向量的F的最前面。如果函數(shù)一階可微,則該函數(shù)具有梯度向量,如果此時優(yōu)化參數(shù)GradObj的值為'on',設(shè)置方法為:options = optimset('GradObj','on')則fun必須在函數(shù)的第二個輸出參數(shù)中返回函數(shù)在x處的梯度向量g。goal輸入?yún)?shù)中的goal變量是指希望目標函數(shù)達到的向量值。該向量的長度與fun函數(shù)返回的目標數(shù)f相等。fgoalattain函數(shù)試圖通過最小化向量f中的值來達到goal參數(shù)給定的

34、目標。nonlcon輸入?yún)?shù)中的nonlcon參數(shù)則代表多目標規(guī)劃中的約束函數(shù),它包括了不等式約束c(x)0和等式約束ceq(x)=0,它實際上是計算在x處約束函數(shù)的值。nonlcon必須是函數(shù)句柄,例如可以是以M-函數(shù)文件的形式出現(xiàn)或者以匿名函數(shù)的形式出現(xiàn),例如:x = fgoalattain(x)sin(x.*x),x0,goal,weight);其中mycon.m是一個M-函數(shù)文件形式如下:function c,ceq = mycon(x)c = . % 計算x處非線性不等式約束函數(shù)的值.ceq = . % 計算x處非線性等式約束函數(shù)的值.如果約束函數(shù)存在梯度向量,通過如下方法設(shè)置控制參

35、數(shù)GradConstr的值為on:options = optimset('GradConstr','on')則nonlcon必須在第三個和第四個輸出參數(shù)返回相應(yīng)的梯度值,即不等式約束函數(shù)的梯度值GC和等式約束函數(shù)的梯度值GCeq。需要注意的是,只有當設(shè)置了控制參數(shù)GradObj的值為'on'時,將控制參數(shù)GradConstr的值為'on'才有效,同時,由于優(yōu)化工具箱只接受double型數(shù)據(jù)的輸入,故用戶提供的目標函數(shù)和非線性約束函數(shù)必須返回的是double型數(shù)據(jù)。weight輸入?yún)?shù)中的weight變量為權(quán)重向量,可以控制低于或超

36、過fgoalattain函數(shù)指定目標的相對程度。當goal的值都是非零值時,則算法為了保證有效的目標值超過或低于的比例相當,將權(quán)重函數(shù)設(shè)置為abs(goal)。需要注意的是,如果將weight向量中的任一元素設(shè)置為0時,則算法將把對應(yīng)的目標約束當做是硬約束來處理,另一種設(shè)置硬約束的方式是通過參數(shù)nonlcon來設(shè)置相應(yīng)的約束。當設(shè)置weight為不同的數(shù)值時,fgoalattain將對目標函數(shù)采取不同的處理方式:(1) 當權(quán)重weight設(shè)置為正時,fgoalattain函數(shù)則試圖使目標函數(shù)值小于期望值;(2) 當權(quán)重weight設(shè)置為負時;fgoalattain函數(shù)則試圖使目標函數(shù)值大于期望

37、值;(3) 當需要目標函數(shù)值盡可能等于期望值時,則應(yīng)設(shè)置控制參數(shù)GoalsExactAchieve的值為相應(yīng)的目標函數(shù)的序號。需要注意的是,這類目標函數(shù)必須安排在參數(shù)fun返回的函數(shù)向量的F的最前面。當然,輸入?yún)?shù)還包括優(yōu)化控制參數(shù)options,其具體的設(shè)置我們將在控制參數(shù)設(shè)置一節(jié)中給出。3.輸出參數(shù)attainfactor輸出參數(shù)attainfactor指明了目標達到的情況。當attainfactor為負時,說明目標函數(shù)值溢出期望值goal,當attainfactor為正時,說明目標函數(shù)還未達到期望值。attainfactor參數(shù)包含了最優(yōu)解處的值,若值為負,則表明目標溢出。exitflag優(yōu)化終止狀態(tài)指示結(jié)

溫馨提示

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

評論

0/150

提交評論