999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于混合編碼的差異演化算法解0-1背包問題

2010-01-01 00:00:00鄧長壽趙秉巖梁昌勇
計算機應用研究 2010年6期

摘 要:針對典型的一類NP完全問題——背包問題,提出一種混合編碼的差異演化求解方法。該方法基于差異演化算法框架,采用混合編碼機制,每個決策變量均由一個實數和一個二進制數的組合表示。利用新定義的映射算子,構建混合編碼的種群;增加邊界約束處理算子,確保變異算子計算結果滿足邊界約束條件;利用新定義的丟棄算子對于不可行的裝包策略進行修正。通過數值仿真實驗,將該方法與遺傳算法、二進制差異算法的計算結果比較分析,表明該算法求解背包問題的有效性與適用性。

關鍵詞:0-1背包問題; 混合編碼; 差異演化算法; 丟棄算子

中圖分類號:TP18文獻標志碼:A

文章編號:1001-3695(2010)06-2031-03

doi:10.3969/j.issn.1001-3695.2010.06.009

Mixed-coding-based differential evolution algorithm for 0-1 knapsack problem

DENG Chang-shou1,2, ZHAO Bing-yan1, LIANG Chang-yong2

(1. School of Information Science Technology, Jiujiang University, Jiujiang Jiangxi 332005, China; 2. Institute of Computer Network System, Hefei University of Technology, Hefei 230009, China)

Abstract:This paper proposed mixed-coding-based differential evolution algorithm for 0-1 knapsack problem which was NP complete. This algorithm was based on the original differential evolution using mix-coding mechanism in which each decision variable was represented by the combination of one float number and a binary number. Firstly, proposed a new mapping operator to construct mixed-coding population, and then defined a new operator which dealt with the boundary constraint. Lastly used a discarding operator to adapt the infeasible solution. Simulation numerical results compared with that of genetic algorithm and binary differential evolution show that this algorithm is efficient and practical for 0-1 knapsack problem.

Key words:0-1 knapsack problem; mix coding; differential evolution; discarding operator

0 引言

背包問題(knapsack problem,KP)有著廣泛的應用背景,如貨物裝載、選址、材料切割等問題。理論上盡管背包問題的結構簡單,但它卻具有組合爆炸的性質。由于背包問題的NP完全性質,使得許多傳統的精確算法,如貪心算法、動態規劃算法、回溯法、分支限界法等盡管可以得到準確解,但是其時間復雜性與物品數目呈指數關系,因而時間復雜度高。進化算法盡管不一定得到準確解,但可以得到比較有效解,而且時間復雜度比較低,在求解背包問題中得到了廣泛使用。例如文獻[1]采用一種基于模式替代的遺傳算法(GASR)求解背包問題,獲得比標準遺傳算法更好的計算結果。文獻[2]提出一種二進制差異演化算法(BDE)求解背包問題,實驗證明其求解效率高于文獻[3]的改進郭濤算法。文獻[4~6]分別用不同的智能方法求解背包問題。盡管這些方法的穩定性和求解速度較快,但是求解精度仍然有待進一步提高。本文在以前提出的混合編碼差異演化算法[7]基礎上,利用新定義的算子引導種群搜索方向,提出一種基于混合編碼差異演化(MCDE)算法求解背包問題的新方法。

1 背包問題數學模型

0-1背包問題是指給定n種物品和一個背包,wi與pi(i=1,2,…,n)分別為物品i的重量和價值,V為背包總重量限制。如何選擇物品,使得裝入背包中的物品總價值最大?其數學模型可以表示為下述0-1整數規劃模型:

maxf=∑ni=1piwi

s.t. ∑ni=1wixi≤V

xi∈{0,1} (i=1,2,…,n)(1)

其中:變量xi(i=1,2,…,n)為1時,物品i裝入背包;而xi(i=1,2,…,n)為0時,物品i不裝入背包。

2 差異演化算法

差異演化(differential evolution,DE)算法是一種實數編碼的基于種群演化的全局優化算法[8]。DE算法原理簡單、控制參數少,實施隨機、并行、直接的全局搜索,易于理解和實現。DE算法在連續問題的優化中獲得了廣泛的應用。在演化求解過程中,DE算法隨機產生初始群體,然后將群體中兩個成員間的差向量適當加權后,增加至第三個成員。DE算法利用此方法生產新個體,如果新個體的適應值更好,那么新個體將代替原個體。

DE演化算法根據變異算子和交叉算子的不同,形成了不同的模式,其中常見的是DE/rand/1/bin和DE/best/1/bin[9]。DE/rand/1/bin的具體內容有四種。

1)生成初始種群

在n維空間中,隨機生成滿足上下界約束的m個體的種群POP=(popij)m×n。方法如下:

popij=xlj+rand(0,1)(xuj-xlj)(2)

其中:i=1,2,…,m,j=1,2,…,n;xlj和xuj分別表示第j個變量的下界和上界。

2)變異算子

對種群中的每個向量popi(i=1,2,…,m)實施變異時,從種群中另外隨機選擇三個向量popp1、popp2、popp3,要求彼此互不相同,即i≠p1≠p2≠p3。設本次種群處于第t代,則變異操作如式(3)所示:

hi(t+1)=popp1(t)+F(popp2(t)-popp3(t))(3)

其中:F為縮放因子,(popp2(t)-popp3(t))為差異向量;i=1,2,…,m。

3)交叉算子

對種群中的每個向量,利用交叉算子增加群體的多樣性,具體操作如下:

ui(t+1)=hi(t+1) if (rand≤CR or j=R(i))

popi(t) otherwise(4)

其中:i=1,2,…,m,rand∈[0,1]的隨機小數,CR∈[0,1]為交叉概率,R(i)∈[1,n]的隨機整數。采用這種交叉策略可以保證ui(t+1)至少有一個分量由hi(t+1)的相應分量貢獻。

4)選擇算子

為了確定ui(t+1)能否成為下一代種群中的成員,DE算法基于優勝劣汰的原則,利用式(5)所示的選擇操作進行選擇。

popi(t+1)=ui(t+1) if (f(ui(t+1))≤f(popi(t)))popi(t) otherwise(5)

由以上描述可以看出,DE算法涉及的數據結構和運算簡單,易于編程語言實現。

3 解0-1背包問題的混合編碼差異演化算法

3.1 MCDE算法原理

盡管DE算法在連續領域獲得了廣泛成功的應用[10],然而從上文關于DE算法的描述可以發現,DE算法中如式(3)所示的變異算子對于實數域是封閉,對于0-1整數規劃問題,其計算結果不封閉。為了求解0-1背包問題,MCDE算法中利用混合編碼的方式,種群中的每個個體的分量均為兩個部分構成,記為Y=(X,B)。其中X是實數,其初始值屬于區間[0,1];B是二進制數,其值屬于離散集合{0,1}。在MCDE算法中,利用映射算子,產生混合編碼種群并在演化過程中維持種群的混合編碼;利用邊界約束處理算子確保變異算子的結果一直屬于區間[0,1];利用丟棄算子修正非法的裝包策略,引導種群向最優解方向進化。

3.2 映射算子

為了有效求解0-1背包問題,MCDE算法利用映射算子產生混合編碼的種群。對種群中每個個體的向量,利用式(6)定義的一個新映射算子構建混合編碼的個體。

f(x)=0 x∈[0,0.5)1 x∈[0.5,1](6)

即當x∈[0,0.5)時,將其映射為二進制數0;當x∈[0.5,1]時,將其映射為二進制數1。例如某個個體分量的編碼可能為(0.8,1)或(0.2,0)。

3.3 邊界約束處理算子

即使將混合編碼的某個分量的值限制在區間[0,1],式(3)所定義的變異算子計算結果也往往在區間[0,1]之外。為了確保式(6)所示的映射算子的有效性,MCDE算法利用新定義的邊界約束處理算子對此進行處理。

hij(t+1)=hij(t+1) if hij(t+1)∈[0,1]rand(0,1) otherwise(7)

3.4 丟棄算子

在利用演化算法求解0-1背包問題時,迭代過程中常常會出現解違反背包問題的重量約束條件。本文在MCDE算法中利用丟棄算子對違反重量約束的解進行修正。丟棄算子首先對所有待裝包的物品按照價值密度(即物品價值/物品重量)升序排序,然后按照物品的價值密度依次從低到高進行丟棄,直到符合重量約束條件為止。

3.5 MCDE算法流程圖

綜上所述,MCDE算法的流程如圖1所示。

4 數值實驗

為了檢驗MCDE算法的性能,文中選擇了四個常用于測試演化算法性能的背包問題進行實驗,其物品規模分別為20、50、100和100。分別記為KP1、KP2、KP3和KP4。其中KP1、KP2和KP3選自文獻[1],文獻[2]利用KP2和KP4測試BDE算法的性能。為了分別比較本文提出的MCDE與GASR[1]和BDE[2]的性能,分兩組進行實驗。第一組采用KP1,KP2和KP3;第二組采用KP2和KP4。四個背包問題的具體數據如下:

a)KP1。物品的價值集P={92,4,43,83,84,68,92,82,6,44,32,18,56,83,25,96,70,48,14,58};物品的重量集W={44,46,90,72,91, 40,75,35,8,54,78,40,77,15,61,17,75,29,75,63};背包的最大容量為878,規模為20。

b)KP2。物品的價值集P={220,208,198,192,180,180,165,162,160,158,155,130,125,122,120,118,115,110,105,101,100,100,98,96,95,90,88,82,80,77,75,73,72,70,69,66,65,63,60,58,56,50,30,20, 15,10,8,5,3,1};物品的重量集W={80,82,85,70,72,70,66,

50,55,25,50,55,40,48,50,32,22,60,30,32,40,38,35,32,25,28,30,22,25,30,45,30,60,50,20,65,20,25,30,10,20,25,15,10,10,10,4,4,2,1};背包的最大容量為1 000,規模為50。

c)KP3。物品的價值集P={597,596,593,586,581,568,567,560,549,548,547,529,529,527,520,491,482, 478,475,475,466, 462,459,458,454,451,449,443,442,421,410,409,395,394,390,377,375,366,361,347,334,322,315,313,311,309,296,295,294,289,285,279,277,276,272,248,246,245,238,237,232,231,230,225,192,184,183,176,174,171,169,165,165,154,153,150,149,147,143,140,138,134,132,127,124,123,114,111,104,89,74,63,62,58,55,48,27,22,12,6};物品的重量集W={54,183,106,82,30,58,71,166,117,190,90,191,205,128,110,89,63,6,140,86,30,91,156,31,70,199,142,98,178,16,140,31,24,197,101,73,169,73,92,159,71,102,144,151,27,131,209,164,177,177,129,146,17,53,164,146,43,170,180,171,130,183,5,113,207,57,13,163,20,63,12,24,9,42,6,109,170,108,46,69,43,175,81,5,34,146,148,114,160,174,156,82,47,126,102,83,58,34,21,14};背包的最大容量為671 8,規模為100。

d)KP4。 物品的價值集P={72,490,651,833,833,489,359,337,267,441,70,934,467,661,220,329,440,774,595,98,424,37,807, 320,501,309,834,851,34,459,111,253,159,858,793,145,651,856,400,285,405,95,391,19,96,273,152,473,448,231};物品的重量集W={438,754,699,587,789, 912,819,347,511,287,541,784,676,198,572,914,988,4,355,569,144,272,531, 556,741,489,321,205,607,399,747,118,651,806,9,607,121,370,999,494,743,967,718,397,589,193,369};背包的最大容量為為11 258,規模為100。

第一組實驗MCDE算法和文獻[1]GASR參數設置如表1所示。

表1 MCDE與GASR參數設置對比

算法種群規模變異概率交叉概率最大迭代次數

MCDE500.50.5150

GASR[1]2000.060.6181 000

實驗時,對于三個不同的背包問題,各種最大迭代次數分別運行10次。MCDE算法所求出的最好結果(記為總價值/總重量)以及所用最少迭代次數與文獻[1]求解的最好結果(總價值/重量)對比如表2所示。其中GA與GASR的結果直接引自文獻[1]。

表2 第一組實驗結果對比

實例

GAGASRMCDE

最好結果(迭代次數)最好結果(迭代次數)最好結果(迭代次數)

KP11 042/878(29)1 042/878(12)1 042/878(5)

KP23 077/1 000(192)3 103/1 000(50)3 105/997(46)

KP325 848/6 716(319)26 559/6 717(147)26 559/6 717(137)

表2的實驗結果表明,對于三個背包問題,MCDE算法均取得了良好的結果。與GA算法相比,MCDE算法僅用四分之一的種群,而且在較少的迭代次數內求出了更好的解。與GASR算法相比,MCDE算法同樣可以在較少的迭代次數內找到最好結果。其中KP2的最優結果優于RSGA算法求解結果。MCDE算法求解上述三個背包問題的最優結果的進化曲線如圖2所示。

第二組實驗,MCDE的參數設置與第一組相同。文獻[3]改進的郭濤算法,種群大小為50,最大迭代次數為10 000。文獻[2]的BDE算法的種群大小均為50,交叉概率為0.1,最大進化代數均為200。所有的方法均獨立進行100 次。計算結果對比如表3所示。其中BDE和改進郭濤算法的結果直接引自文獻[2]。

從實驗結果可以看出,對于KP2,MCDE算法的尋優能力超過BDE算法和改進的郭濤算法。對于KP4,MCDE算法的穩定性優于改進的郭濤算法,其求解能力與BDE算法相同。

表3 第二組實驗結果對比

問題已知最優解

達到(超過)已知最優解的次數

改進郭濤算法[3]BDE[2]MCDE

KP23 10397100100

KP416 10294100100

對于KP2,MCDE算法求得的最優解為3 119,優于已知的最優解(3 103)。對于KP4,MCDE算法每次都能夠求解出最優解16 102。對于KP2的100次求解結果分布情況如圖3所示。

5 結束語

0-1背包問題是離散域上有約束的NP完全問題。本文提出一種MCDE算法成功求解0-1背包問題。MCDE算法基于DE算法框架,利用混合編碼機制,同時新增的算子成功解決DE算法求解離散優化問題時的計算不封閉問題。此外,MCDE算法利用丟棄算子引導種群快速尋優。四個不同的0-1背包問題實驗結果表明,MCDE算法求解0-1問題精度高、收斂速度快、穩定性較好,是求解背包問題的有效方法。此外,MCDE算法同樣適用于求解與0-1背包問題類似的帶約束條件的NP離散優化問題,具有廣闊的應用前景。

參考文獻:

[1]李康順, 賈玉珍, 張文生. 一種基于模式替代的遺傳算法解0/1背包問題[J].計算機應用研究,2009,26(2):470-417.

[2]蔡鴻英,郝志峰,王志剛,等.解0-1背包問題的二進制差異演化算法[J].計算機工程與設計,2009,30(7):1716-1718,1721.

[3]龔文引,蔡之華,詹煒蔡. 一種新的求解0-1 背包問題的自適應算法[J].微型機與應用,2005,24(12):63-66.

[4]秦玲,白云,章春芳,等.解0-1背包問題的蟻群算法[J].計算機工程,2006,32(6): 212-215.

[5]寧愛兵,馬良.0/1背包問題競爭決策算法[J],計算機工程與應用,2008,44(3):14-16,38.

[6]劉建芹,賀毅朝,顧茜茜.基于離散微粒群算法求解背包問題研究[J].計算機工程與設計,2007,28(13):3189-3191,3204.

[7]鄧長壽,梁昌勇.求解武器—目標分配問題的混合編碼差異演化算法[J].計算機應用研究,2009,26(1):74-76.

[8]STORN R. Differential evolution design of an IIR-filter with requirements for mafnitude and group delay[C]//Proc of IEEE International Conference on Evolutionary Computation.[S.l.]: IEEE Press,1996:268-273.

[9]STORN R, PRICE K. Differential evolution:a simple and efficient heuristic for global optimization over continuous spaces [J]. Journal of Global Optimization,1997,11(4):341-359.

[10]VERSTERSTROM J, THOMSEN R. A comparative study of differential evolution, particle swarm optimization, and evolutionary algorithm on numerical benchmark problems[C]//Proc of Congress on Evolutionary Computation.[S.l.]:IEEE Press,2004:1980-1987.

主站蜘蛛池模板: 日本欧美成人免费| 日韩第九页| 日本AⅤ精品一区二区三区日| 欧美三级自拍| a色毛片免费视频| 最新国产网站| 国产亚洲视频免费播放| 国产亚洲欧美在线中文bt天堂| 国产一二三区视频| 欧洲免费精品视频在线| 一本久道久久综合多人| 九九九精品成人免费视频7| 免费人成网站在线高清| 国内精品视频| 欧美成人午夜在线全部免费| 在线观看无码a∨| 男女猛烈无遮挡午夜视频| 国产成人精品一区二区三区| 国产午夜一级毛片| 日韩国产黄色网站| 国产av一码二码三码无码| 国产成人a在线观看视频| 国产精品第页| 中文天堂在线视频| 97se亚洲综合在线天天| 伊人大杳蕉中文无码| 91精品情国产情侣高潮对白蜜| 激情无码字幕综合| 国产区福利小视频在线观看尤物| 女人毛片a级大学毛片免费| 亚洲丝袜第一页| 亚洲精品大秀视频| 精品久久综合1区2区3区激情| 亚洲AV人人澡人人双人| 中国一级特黄大片在线观看| 日韩av电影一区二区三区四区| 人妻丰满熟妇αv无码| 在线看AV天堂| 日本午夜在线视频| 999国产精品| 亚洲欧洲美色一区二区三区| 国产精品女人呻吟在线观看| 91激情视频| 最新日韩AV网址在线观看| 啪啪啪亚洲无码| 亚洲中文字幕手机在线第一页| 一区二区三区国产| 色男人的天堂久久综合| 99在线观看国产| 午夜啪啪网| 91人人妻人人做人人爽男同| 亚洲一区二区视频在线观看| 亚洲AⅤ永久无码精品毛片| 欧美亚洲香蕉| 国产精品视频系列专区| 四虎永久在线| 亚洲色偷偷偷鲁综合| 久久香蕉国产线看观看精品蕉| 人与鲁专区| 大乳丰满人妻中文字幕日本| 无码啪啪精品天堂浪潮av| 亚洲人成网站色7799在线播放| 欧美va亚洲va香蕉在线| 亚洲首页在线观看| 91精品国产福利| 久久黄色小视频| 日本高清在线看免费观看| 成年人视频一区二区| 97视频在线精品国自产拍| 日本亚洲欧美在线| 久热re国产手机在线观看| 九色在线视频导航91| 亚洲丝袜第一页| 在线精品视频成人网| 国产成人精品在线1区| 国产精品深爱在线| 国产高清精品在线91| 日日拍夜夜操| 青青草一区| 成人a免费α片在线视频网站| 亚洲欧美激情另类| 99久久精彩视频|