張 濤 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023 水資源與水電科學(xué)國家重點實驗室(武漢大學(xué)),湖北 武漢 430072)
陳 忠,呂一兵 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
求解二層線性規(guī)劃問題的交互式人工蜂群算法
張 濤 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023 水資源與水電科學(xué)國家重點實驗室(武漢大學(xué)),湖北 武漢 430072)
陳 忠,呂一兵 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
基于人工蜂群算法提出了一種求解二層線性規(guī)劃問題的交互式人工蜂群算法, 即將求解二層規(guī)劃問題轉(zhuǎn)化為交互求解下層單目標(biāo)規(guī)劃問題和上層單目標(biāo)規(guī)劃問題。數(shù)值試驗表明,該算法能夠在較短的時間內(nèi)得到問題的近似最優(yōu)解,說明該算法是一種求解二層線性規(guī)劃問題的有效方法。
人工蜂群算法;線性二層規(guī)劃;交互式
二層規(guī)劃問題是一類遞階優(yōu)化問題,它具有2個決策層, 2個決策層分別有各自的目標(biāo)函數(shù)和約束條件。進(jìn)行決策時,上層決策者首先根據(jù)自己的目標(biāo)給定一個決策,下層決策者根據(jù)上層決策者的決策進(jìn)行自身目標(biāo)決策, 并將最優(yōu)決策反饋到上層,上層決策者再根據(jù)下層的反饋修正自己的決策,最終找到使上層目標(biāo)達(dá)到最優(yōu)的決策。
二層規(guī)劃模型的求解十分困難,原因之一就是由于雙層規(guī)劃問題是一個NP-難問題。即使是很簡單的二層線性規(guī)劃問題也是NP-難問題,不存在多項式求解算法[1]。二層規(guī)劃的非凸性也是造成二層規(guī)劃問題求解異常復(fù)雜的另一重要原因。目前,國內(nèi)外一些學(xué)者提出的求解算法或求解方法,但大多數(shù)都是針對特定的二層規(guī)劃模型提出的。設(shè)計求解二層規(guī)劃算法的主要難點在于:上層問題的可行解一定是下層問題的最優(yōu)解。這就要求只能將下層問題的精確最優(yōu)解反饋給上層。大量實踐表明,下層問題的近似最優(yōu)解通??梢宰鳛樽顑?yōu)響應(yīng)反饋給上層,從而通過上層問題的求解得到整個問題的近似最優(yōu)解,然后再通過預(yù)設(shè)的迭代次數(shù),可以使整個問題的近似最優(yōu)解任意精度的逼近精確解[2]。為此,筆者基于人工蜂群算法提出了一種求解二層線性規(guī)劃問題的交互式人工蜂群算法。
假設(shè)x∈X?Rn,y∈Y?Rm,F:X×Y→R,andf:X×Y→R,則線性二層規(guī)劃可以寫為:
(1)
式中,F(xiàn)(x,y)和f(x,y)分別為上層目標(biāo)函數(shù)和下層目標(biāo)函數(shù);c1,c2∈Rn;d1,d2∈Rm;b1∈Rp;b2∈Rq,A1∈Rp×n,B1∈Rp×m,A2∈Rq×n,B1∈Rq×m。
假設(shè):
S={(x,y)|G(x,y)≥0,g(x,y)≥0}X={x|?y,G(x,y)≥0,g(x,y)≥0}
S(x)={y|g(x,y)≥0}
定義1固定x∈X, 如果y是下層問題的一個最優(yōu)Pareto最優(yōu)解,則(x,y)為問題(1)的可行解。
定義2如果(x*,y*)是問題(1)的可行解, 對于任意的(x,y)∈IR, 都有F(x*,y*)≤F(x,y), 則(x*,y*)是問題(1)的一個最優(yōu)解。
人工蜂群算法是Karaboga提出的一種模仿蜜蜂覓食的新型啟發(fā)式算法[3],與遺傳、模擬退火、粒子群等算法相比,人工蜂群具有控制參數(shù)少、計算簡潔、易于實現(xiàn)等優(yōu)點,且有較好的平衡探索與開發(fā)能力,已被越來越多的學(xué)者所關(guān)注并已成功的應(yīng)用于解決函數(shù)的數(shù)值優(yōu)化問題[4-6]。在優(yōu)化問題求解時,食物源的位置對應(yīng)優(yōu)化問題的可行解,食物源的收益度對應(yīng)優(yōu)化問題的適應(yīng)度值,最大收益度食物源對應(yīng)優(yōu)化問題的最優(yōu)解。
一般地,人工蜂群通過方程(1)隨機產(chǎn)生P個解:
(2)
(3)
式中,vij代表在xij附近產(chǎn)生一個新解,k∈{1,2,…,s},k和j都是隨機選取,k是i鄰域的一個解,且k≠i;rij∈rand[-1,1]。跟隨蜂對解的選擇是通過觀察引領(lǐng)蜂的搖擺舞來判斷解的適應(yīng)度值,并依據(jù)選擇概率大小來選擇跟隨哪個引領(lǐng)蜂。
適應(yīng)度值fitnesssi和選擇概率p計算公式如下:
在人工蜂群算法中,利用參數(shù)R來記錄某個解被更新的次數(shù)。如果某個解連續(xù)R次循環(huán)后沒有得改善,則證明該解陷入局部最優(yōu),就要被放棄。假設(shè)被放棄的解是xi,則根據(jù)鄰域構(gòu)成規(guī)則隨機產(chǎn)生一個新解來代替原來解xi。人工蜂群算法(算法1)的計算步驟如下:
步1 產(chǎn)生初始解集xij,i=1,2,…,S,j=1,2,…,D。設(shè)置triali=0,triali表示非改進(jìn)解xi的數(shù)量。
步3 設(shè)置外循環(huán)初始值m=1。
步4 設(shè)置內(nèi)循環(huán)初始值l=1。
步7 如果解xi沒有改進(jìn),則triali=triali+1;否則,triali=0。
步9 跟隨蜂根據(jù)概率pi選擇食物源(解),然后進(jìn)行領(lǐng)域搜索產(chǎn)生新解,再計算其適應(yīng)度;轉(zhuǎn)步6~步7。
步10 設(shè)置i=i+1。
步11 如果l 步13 所有搜索完畢后,記錄當(dāng)前最好的解。 步14 設(shè)置m=m+1。 步15 如果m 利用人工蜂群算法求解線性二層規(guī)劃問題,對上下層都采用人工蜂群群算法進(jìn)行求解。算法(算法2)步驟如下: 步1 根據(jù)方程(2)初始化上層決策變量xi,設(shè)置i=0,設(shè)置i的最大值為P。 步2 求解下層優(yōu)化問題。固定xi,將xi帶入到問題(1)的下層,利用算法1求解下層問題的最優(yōu)解y*。 步3 求解上層優(yōu)化問題。將步2中的y*反饋到上層,利用算法1求解上層問題的最優(yōu)解x及最優(yōu)值F。令x*=x,y*=y,F*=F。 算例1[7]設(shè)x∈R,y∈R,考慮如下線性二層規(guī)劃問題: 算例2[8]設(shè)x∈R2,y∈R3,考慮如下線性二層規(guī)劃問題: 根據(jù)算法2,利用c#進(jìn)行編程,算法中的具體參數(shù)設(shè)置如下:算法1中種群S=100,內(nèi)層循環(huán)次數(shù)l=40,外層循環(huán)次數(shù)m=80; 算法2中,p=50,最后得出的結(jié)果與文獻(xiàn)的結(jié)果比較見表1。從數(shù)值試驗結(jié)果來看,利用筆者所設(shè)計算法的計算結(jié)果與最優(yōu)解的誤差很小,因此,該算法是有效的。數(shù)值試驗還表明,人工蜂群算法對種群規(guī)模要求不是很大,節(jié)約了計算時間。 表1 仿真結(jié)果 [1]Bard J. Some properties of the bi-level linear programming[J]. Journal of Optimization Theory and Applications, 1991, 32: 146-164. [2] Zhang T, Hu T S,Zheng Y.An Improved Particle Swarm Optimization for Solving Bilevel Multiobjective Programming Problem[J]. Journal of Applied Mathematics, doi:10.1155/2012/626717, 2012. [3]Karaboga D, Basturk B.A powerful and efficient algorithm for numerical function optimization:artificial bee colony (ABC) algorithm[J].Journal of Global Optimization, 2007, 39(3):459-471. [4]羅鈞,李研.具有混沌搜索策略的蜂群優(yōu)化算法[J].控制與決策,2010,25(12):1913-1916. [5]胡珂,李迅波,王振林.改進(jìn)的人工蜂群算法性能[J].計算機應(yīng)用, 2011,31(4):1107-1110. [6]王慧穎,劉建軍,王全洲.改進(jìn)的人工蜂群算法在函數(shù)優(yōu)化問題中的應(yīng)用[J].計算機工程與應(yīng)用,2011,7(13):36-39.. [7]Anandalingam G, White D J. A solution method for the linear static stackelberg problem using penalty functions [J]. IEEE Transaction on Automatic Control, 1990,35(10):1170-1173. [8]Bard J F. Partical Bilevel optimization Algorithm and Applications [M]. Kluwer Academic Publishers, USA, 1998. 2012-10-25 國家自然科學(xué)基金項目(11201039;61273179);湖北省教育廳重點項目(D20101304)。 張濤(1978-),男,講師,博士生,現(xiàn)主要從事復(fù)雜系統(tǒng)建模與智能計算方面的教學(xué)與研究工作。 O221.1 A 1673-1409(2013)01-0001-03 [編輯] 洪云飛3 求解線性二層規(guī)劃問題的人工蜂群算法
4 試驗仿真與結(jié)果分析