【正文】
xF x x x x 乘除法 的 原理 就是構造如下目標函數: ? ?? ? ? ?? ?? ?? ? ? ? ? ?? ? ? ? ? ?1211121...m in...kkikii pRik k piikff f fhff f ff????????? ? ?? ? ? ?? ? ??xxx x xF x xx x xx 則多目標規(guī)劃問題已經轉化為單目標規(guī)劃問題。 最大最小法 評價函數法的有關結論 以上我們借助于不同形式的評價函數? ?? ?h Fx將多目標規(guī)劃問題轉化為單目標規(guī)劃問題。為此,給出兩個定義: 如果對于,pR??? FF,當滿足 ??FF 時均滿足? ? ? ?hh ??FF,則? ?h F稱為 F 的嚴格單調增函數。 在上述定義下,轉化后的單目標規(guī)劃問題是多目標規(guī)劃問題的有效解或者弱有效解的條件由下面兩個定理描述: 若? ?? ?h Fx是? ?Fx的嚴格單調增函數,則轉化后的單目標規(guī)劃問題的最優(yōu)解是多目標規(guī)劃問題的有效解。 可以證明,評價函數法中所給的評價函數都是嚴格單調增函數或單調增函數,因而其最優(yōu)解是多目標規(guī)劃問題的有效解或弱有效解。一個 R?x 對某個? ?if x的相應值的好壞程度,稱為 x 對? ?if x的功效。并規(guī)定:對? ?if x產生功效最好的 x ,評分為1id ?;功效最壞的 x ,評分為0id ?;對不是最好也不是最壞的中間狀態(tài),評分為01 id??。下面介紹最常用的兩種評分方法:線性型和指數型。 f1f ? ?f x? ?? ?,fd xO ? ?if xid 線性功效系數法 指數功效系數法 指數功效系數法 可見,? ?? ? , 1 , 2 , . . . ,iid f i p?x是? ?if x的嚴格單調增函數,而且當? ?if x充分大時,? ?? ? 1iidf ?x。 0 . 0 7ei i i i i id d f e d d f e??? ? ? ? ? ?,可以得到:? ?? ?1010011b b fib b fieeeeeee??????????????? (8 26) 由此可得:10100101iib b fb b f? ??????,故10011011iiiiifbffbff???????????? 從而有:? ?? ?? ?101e x p e x p , 1 , 2 , . . . ,iiiiiiffd f i k k pff?? ?? ?? ? ? ? ??? ???????xx 指數功效系數法 ( 2) 對于越小越好的? ? , 1 , 2 , . . . ,if i k?x,可以類似的求得: ? ?? ?? ?1011 e x p e x p , 1 , 2 , . . . ,iiiiiiffd f i kff?? ?? ?? ? ? ??? ???????xx 這時,id的圖形如圖所示,圖中,id是? ?if x的嚴格單調減函數,而且當? ?if x充分小時,? ?? ? 1iidf ?x 1e?ee?1if0if? ?? ?iidf x? ?if xifif 指數功效系數法 多目標規(guī)劃的 MATLAB求解 ? 由于多目標規(guī)劃中的求解涉及到的方法非常多,故在 MATLAB中可以利用不同的函數進行求解,例如在評價函數法中我們所得最后的評價函數為一線性函數,且約束條件也為線性函數,則我們可以利用 MATLAB優(yōu)化工具箱中提供的 linprog函數進行求解,如果我們得到的評價函數為非線性函數,則可以利用 MATLAB優(yōu)化工具箱中提供的 fmincon函數進行求解,如果我們采用最大最小法進行求解,則可以利用 MATLAB優(yōu)化工具箱中提供的fminimax函數進行求解。 多目標規(guī)劃的 MATLAB求解 多目標規(guī)劃的 MATLAB求解 求解該線性規(guī)劃的 M A T L A B 的代碼和相應的運行結果為: c =[2 。 A =[3 2 。 b =[1 2 。 0 ] [x , fv a l ]=l i n p ro g (c , A , b , [], [], l b , []) O p t i m i z a t i o n t e rm i n a t e d . x = 0 . 0 0 0 0 6 . 0 0 0 0 fv a l = 1 8 . 0 0 0 0 于是可知。 c =[ 5。 A =[3 2 。 b =[1 2 。 0 ] [x , fv a l ]=l i n p ro g (c , A , b , [], [], l b , []) O p t i m i z a t i o n t e rm i n a t e d . x = 4 . 0 0 0 0 0 . 0 0 0 0 fv a l = 2 0 . 0 0 0 0 于是可知,當? ?2 4 , 0T?x時,單目標線性規(guī)劃? ?2P的最優(yōu)函數值為 *220f ??。 由于目標函數非線性函數且具有線性等式約束和邊界約束,因而我們調用M A T L AB 中求解非線性規(guī)劃的 f mi nc o n 函數對此問題進行求解,同時注意如果只考慮第一個目標函數,由這種特殊形式,即在設計變量的和為一定值,需要求其平方和的最小值時,最優(yōu)解必然是當這幾個設計變量的值相等時取得,于是我們可以將這個解設為問題的初始點,開始迭代,故求解該問題的代碼為: A e q = [1 1 1 ]。 l b =[0 。 0 ]。 1 。 [x , fv a l ]=fm i n c o n (o b j f u n , x 0 , [], [], A e q , b e q , l b , []) 結果說明,問題的最優(yōu)解為:? ?*1* * *2*3 , xxfx?? ???? ??? ? ??? ???? ??????xx 多目標規(guī)劃的 MATLAB求解 我們在求解多目標規(guī) 劃問題時,可 以采用評價函數法中的最大最 小法,而M A T L A B 也為這種方法提供了專門的求解函數 f m i n im a x ,在講解這方面的例題之前,我們 首先介紹一下 M A T L A B 優(yōu)化工具箱中所提供的最大最小法的求解函數f m i n im a x 。 多目標規(guī)劃的 MATLAB求解 多目標規(guī)劃的 MATLAB求解 運行結果為 : L o c a l m i n i m u m p o s s i b l e . Co n s t ra i n t s s a t i s f i e d . fm i n i m a x s t o p p e d b e c a u s e t h e p re d i c t e d c h a n g e i n t h e o b j e c t i v e fu n c t i o n i s l e s s t h a n t h e d e f a u l t v a l u e o f t h e f u n c t i o n t o l e ra n c e a n d c o n s t ra i n t s w e re s a t i s f i e d t o w i t h i n t h e d e f a u l t v a l u e o f t h e c o n s t ra i n t t o l e ra n c e . s t o p p i n g c ri t e ri a d e t a i l s A c t i v e i n e q u a l i t i e s (t o w i t h i n o p t i o n s . T o l Co n = 1e 0 0 6 ) : l o w e r u p p e r i n e q l i n i n e q n o n l i n 1 5 x = 4 . 0 0 0 0 4 . 0 0 0 0 fv a l = 0 . 0 0 0 0 6 4 . 0 0 0 6 1 . 9 9 9 9 8 . 0 0 0 0 0 . 0 0 0 0 m a x fv a l = 2 . 6 8 9 7 e 0 0 8 上述結果說明當12 4 , 4xx ??時,目標函數? ? , 1 , 2 , . . . , 5ifi ?x的最大值達到最小,這一組的函數值為 0. 0000 , 64. 0006 , 1. 9999 , 8. 0000 , 0. 0000 ,于是最大值為 0 。 f (2 )=0 . 2 * (x (1 )^ 2 + 2 * x (2 )^ 2 + 3 * x (3 )^ 2 )。 1。 b e q =[3 ]。 0 。 x 0 =[1 。 1 ] 。 線性目標規(guī)劃 ? 線性目標規(guī)劃也是解決多目標數學規(guī)劃的一種方法,它是在線性規(guī)劃基礎上發(fā)展起來的.這種方法的基本思想是:對每一個目標函數,預先給定一個期望值,在現有的約束條件下,這組期望值也許能夠達到,也許達不到。 ? 為了討論目標規(guī)劃的概念,必需對線性規(guī)劃比較熟悉,故先復習一下線性規(guī)劃。 2 9 0x x x x? ? ? ? 同時根據合同約束,則需要滿足122 0 。 線性目標規(guī)劃 ? 線性規(guī)劃的不足之處 ? 上述使用的線性規(guī)劃方法雖然是最優(yōu)化理論與方法中發(fā)展得最完善、應用面最廣的方法,但存在著一些不足,例如線性規(guī)劃難以妥善處理多目標問題。其次是線性規(guī)劃在求解的過程中缺乏必要的靈活性。 ? 然而,線性目標規(guī)劃的約束條件卻有較大的靈活性。是過緊還是過松,差多少或多剩余多少。 ? 在上述目標函數設定的基礎上,線性目標規(guī)劃用劃分優(yōu)先級的方法來處理多個目標的相對重要性、能更好地適應決策者的判斷 ? 線性目標規(guī)劃通過變量定界的方法來解決多解問題,在線性目標規(guī)劃中設計變量的數目往往大大超過目標的數目,也常大于約束條件的數目,這樣在求解時就容易產生多解問題。多目標決策就是要在這些目標中建立優(yōu)先次序,分清主次輕重,使得只有在較高級目標被滿足或不能再改進之后,才考慮較低級目標。若原料 A 、 B 的庫存量分別為 60 噸及 90 噸,產品乙的訂貨合同為 40 噸,經過大家探討,制訂了工廠的銷售計劃,計劃認為銷售的目標為如下: ( 1) 先達到 120230 元的利潤目標; ( 2) 完成訂貨合同; ( 3) 充分利用庫存原料,不夠時可以添購。 設利潤的偏差為1d?和1d?,則可以得到關于利潤的約束條件為: 1 2 1 18000 6000 300000 120230x x d d??? ? ? ? ? 同 樣的,設產品乙的訂貨約束偏差變量為22,dd??,原料 A 庫存的偏差變量為33,dd??,原料 B 庫存的偏差變量為44,dd??,則得到相應的約束條件為: 2 2 2 1 2 3 3 1 2 4 440 。 2 90x d d x x d d x x d d? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? 然后在求解過程中將目標定為三個優(yōu)先級,則目標函數可以表示為: ? ? ? ? ? ?1 1 1 2 2 3 3 4f p d d p d p d d? ? ? ? ?? ? ? ? ? 線性目標規(guī)劃 總結上述分析,可得該目標規(guī)劃問題的數學表達為: ? ? ? ? ? ?1 1 1 2 2 3 3 41 2 1 12 2 21 2 3 31 2 4 4m in. 80 00 60 00 30 00 00 12 00 0040602