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

基于猴群算法求解0-1背包問題①

2018-05-17 06:47:14徐小平師喜婷錢富才
計算機系統應用 2018年5期

徐小平,師喜婷,錢富才

1(西安理工大學 理學院,西安 710054)

2(西安理工大學 自動化與信息工程學院,西安 710048)

背包問題是由Merkel和Hellman在1978年提出的[1],它是一個典型的組合優化問題,屬于NP-hard難題,隨著問題規模越來越大,復雜度增強.在實際應用中,許多工業和金融等問題都可以用背包問題來描述,如預算控制、資源分配、項目選擇、資本投資、金融組合、材料切割和物件裝箱等[2].近年來,背包問題已成為眾多學者研究的一個熱點問題,尋找新的方法來求解背包問題具有重要的理論和實際意義[3].目前,求解背包問題的方法主要有兩種: 最優算法和啟發式算法.最優算法包括窮舉法、動態規劃法、遞歸算法、回溯法和分支界限法等[4–7].啟發式算法包括差分進化算法[8],粒子群算法[9]和遺傳算法[10]等.前者的思想比較簡單,不需要其它專業知識,一般適用于求解規模較小的問題; 后者一般適用于求解規模較大的問題,可是對其求解的精度還需繼續探討.

猴群算法是一種新興的群智能優化算法[11],該算法的突出特點在于求解高維的優化問題時,無需考慮函數是否可導或可微,只需要計算當前位置的偽梯度,就可以確定算法的搜索方向,并且該算法的結構簡單,參數少和易實現.因此,猴群算法在提出不久便得到了眾多學者的廣泛關注,在各個領域內得到了快速地發展,例如在大跨徑連續剛構橋傳感器優化布置問題[12]、入侵檢測系統存在高漏報率的問題[13]、加氣站項目進度的問題[14]、混合動力優化[15,16]、模糊規則的分類器[17]等領域.而文獻[12–17]中均是基本猴群算法的應用,可以看出在某種程度上解決了一些問題.但是,在上述問題的應用中,隨著測點數目或者規則等的增加,基本猴群算法暴露出易陷入局部最優,導致存在求解精度不高的弊端.因此,對該算法進一步研究是很必要的,并將其的應用進行擴展,來解決實際生活中的諸多應用問題具有重要的實際意義.

為了提高猴群算法的尋優性能,本文將誘導因子引入基本猴群算法的爬過程中,給出了一種誘導因子猴群算法,并將其應用到求解 0-1 背包問題.最后,通過仿真實驗驗證了該方法的可行性.

1 0-1 背包問題

0-1背包問題是一種常見的組合優化問題.一般可簡單敘述為: 設物品的數量為D,第i個物品的體積(重量)和價格分別為wi和pi,一個背包的能承受的最大容量為V,選擇一些物品,放入背包中.如何選擇物品,在滿足背包約束條件下,使背包中物品的總價值最大,這個問題被稱為0-1背包問題,其數學模型建立如下:

其中表示物品的價值向量,表示物品對應的體積(重量)向量,表示解向量.式(1)表示目標函數;式(2)中xi為決策變量,xi=0表示第i個物品未裝入包中,xi=1表示第i個物品裝入包中.

2 猴群算法

2.1 基本猴群算法

基本猴群算法是由Zhao和Tang兩位學者首次在期刊 Journal of Uncertain Systems 上提出的[11].該算法主要包括解的表示和初始化、爬過程、望過程和跳過程,其具體的操作過程如下:

Step1.解的表示和初始化: 設是目標函數的一個可行解,表示第i只猴子當前的位置,由式(3)生成.

其中,M表示種群規模,D為維數,xij表示第i只猴子在第j維的位置,變量的區間為是由[0,1]之間的均勻分布的隨機數組成的D維向量.

Step2.執行爬過程: 爬過程是每只猴子在當前的范圍內通過逐步爬行迭代,尋找優化問題的目標函數值的過程,具體過程如下:

2) 計算其中,是目標函數所在位置的偽梯度.

3) 令其中,sign為符號函數.

4) 如果向量在范圍內,并且更新Xi為Yi: 否則,Xi不變.

5) 重復 1)–4),直到達到預定的執行次數Nc.

Step3.執行望過程: 在爬過程之后,每只猴子都到達了各自所在的山峰的頂端,并向四周眺望,觀察視野范圍內是否存在比當前位置更高的山峰.若存在,就從當前位置跳到更高的位置.具體過程如下:

1) 在視野范圍內隨機產生實數yij,令那 么其中,b為視野長度,它決定了猴子從當前位置眺望的最遠距離.

2) 如果向量的范圍內,并且更新Xi為Yi; 否則,重復1),直至找到可行的Yi.

3) 以Y作為初始位置,執行爬過程.

Step4.執行跳過程: 它的主要目的是由當前區域轉移到新的區域進行搜索.選擇所有猴子的重心位置作為支點,每只猴子從當前位置朝著支點的方向跳到新的區域進行搜索,具體過程如下:

1) 在跳區間[c,d]內隨機生成一個實數θ.

2) 令:

其中,其中被稱為支點.

3) 如果向量范圍內,并且更新Xi為Yi; 否則,重復1)和2),直至找到可行的Yi.

Step5.終止條件: 重復 Step2–Step4,直到達到預先設定的迭代次數N,算法終止,輸出結果.

2.2 誘導因子猴群算法

在基本猴群算法中,爬過程是非常重要的,它是控制算法的搜索精度.可是,在基本猴群算法中,猴群位置在爬過程中的更新,是沒有規律的,往往具有很大的隨機性,使得算法很難找到局部范圍內的最優個體,從而不容易找到全局最優個體,這樣就降低了算法的求解精度.

為了克服算法的這個缺陷,本文在爬過程中引入誘導過程,提出了一種誘導因子猴群算法.具體為: 在猴子爬行過程中,給定猴子向上爬行的指示,誘導它們向最優位置的方向爬行,這樣可以避免繞路,盡快找到局部范圍內的最優個體,從而迅速找到全局最優個體,來提高算法的尋優能力,達到提高算法的精度,其具體操作如下.

在爬過程中,隨機生成爬向量其中,分量由下述過程生成.

隨機生成一個M×D階矩陣其 中 ,分 量βi j是在區間[0,1]上隨機生成的一個實數.當時,否則,這樣,分量就可由下式(6)來表示.

這樣,在猴子爬行的過程中,就可以通過爬向量中0的個數來誘導猴子的爬行,來提高算法的尋優能力,進而達到提高算法的求解精度.其中,M為種群規模,D為維數,Nc為爬過程中爬的次數,kc為每次爬行的迭代次數,參數為猴子的爬步長.

在爬過程中引入誘導過程時,為了達到提高算法尋優能力的目的,那么就需要選擇一個合適的誘導次數.如果誘導次數過低,提高算法尋優能力就不太明顯.如果誘導次數過高,算法往往會出現陷入局部最優,達不到提高算法尋優能力的目的.因此,本文經過多次仿真后,找到當誘導次數時,既可以提高局部尋優能力,又可以避免因過高的局部尋優能力而降低了全局尋優能力,從而提高了算法的尋優性能.

3 利用誘導因子猴群算法求解0-1背包問題

利用誘導因子猴群算法求解0-1背包問題時,就是以式(1)作為目標函數,尋找式(1)的最大值.在求解中,它們的對應關系為: 每只猴子的位置,相當于式(1)的一組可行解; 猴群規模對應可行解的個數; 維數對應物品的數量.實施步驟如下.

Step1.參數值設定,如種群規模M=20,最大迭代次數等.

Step2.隨機生成一個二進制向量作為初始位置(其中,第i位為1表示第i件物件被選中,若為0,則表示第i件物件未被選中).并計算所有猴子的目標函數值找出較優位置.

Step3.執行爬過程,計算,產生新的二進制向量若則更新第i只猴子當前的位置,即直到預定的執行次數Nc.然后,為了能夠優先選取物品中單位體積價值較高的裝入背包,在這里設計一個誘導因子,具體過程如下.

① 求出每件物品的單位體積的價值量,第i件物品為:

② 求出每件物品所占背包的比例,第i件物品為:

③ 據此設計誘導因子為:

其中,α為常量,用來調整的關系.

④ 隨機選取兩個值c1和c2,其中,如果并且則更新猴子的位置的變量為否則更新為計算若則更新第i只猴子的位置.直到一定的誘導次數guide.

Step4.執行望過程,在視野范圍內生成新的二進制向量并計算則更新第i只猴子當前的位置,即

Step5.執行跳過程,計算,產生新的二進制向量計算計算若則更新第i只猴子當前的位置,即

Step6.重復 Step3–Step5,直到達到預定的最大迭代次數nMax,算法結束,輸出最優個體和最優值.

4 實例仿真及其分析

為了驗證所給算法的可行性,下邊給出兩個算例,它們的規模由小變大,具體數據見以下相關算例數據.比較差分進化算法 (Differential Evolution Algorithm,DEA)[8]、粒子群算法 (Particle Swarm Optimization,PSO)[9]、遺傳算法 (Genetic Algorithm,GA)[10]、基本猴群算法 (Basic Monkey Algorithm,BMA)[11]以及本文所給誘導因子猴群算法 (Inducing Factor Monkey Algorithm,IFMA)求解問題的效果.

算例 1.物品數量n=50,背包容量V=1000,物品價值R=[220,208,198,192,180,180,65,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,50,30,45,30,60,50,20,65,20,25,30,10,20,25,15,10,10,10,4,4,2,1].

算例 2.物品數量n=100,背包容量V=2010,物品價值R=[68,101,125,159,65,146,28,92,143,37,5,154,183,117,96,127,139,113,100,95,12,134,65,112,69,45,158,60,142,179,36,43,107,143,49,6,130,151,102,149,24,155,41,177,109,40,124,139,83,142,116,59,131,107,187,146,73,30,174,13,91,37,168,175,53,151,125,31,192,138,88,184,110,159,189,147,31,169,192,56,160,138,84,42,151,37,21,22,200,85,135,200,139,189,68,94,84,22,18,115],物品重量W=[42,35,70,79,63,6,82,62,96,28,92,3,93,22,19,48,72,70,68,36,4,23,74,42,54,48,63,38,24,30,17,91,89,41,65,47,91,71,7,94,30,85,57,67,32,45,27,38,19,30,34,40,5,78,74,22,25,71,78,98,87,62,56,56,32,51,42,67,8,8,58,54,46,10,22,23,7,14,1,63,11,25,49,96,3,92,75,97,49,69,82,54,19,1,28,29,49,8,11,14].

在仿真中,用本文所給IFMA求解上述問題時,算法的參數設定為: 種群規模M=20,最大迭代次數nMax=500,爬步長a=1,爬的迭代次數Nc=20,誘導次數guide=5,視野長度b=0.5,望的迭代次數Nw=3,跳區間常量α=1.2.

利用上述五種算法分別對算例1和算例2進行一次求解,得到算例1的最優值和最優個體羅列在表1,尋優過程如圖1所示,算例2的最優值和最優個體羅列在表2,優化過程曲線如圖2所示.

表1 算例 1 的最優值和最優個體

表2 算例 2 的最優值和最優個體

接著,進一步利用這5種算法分別對算例1和算例2進行50次求解,得出它們的最優值、最差值、平均值和方差分別羅列在如表3和表4.

表3 算例 1 的結果

表4 算例 2 的結果

通過以上仿真結果中的圖1,圖2和表1至表4可以看出,文中在BMA算法中的爬過程中引入誘導過程后,很好地誘導了猴子向著指定的方向爬行,從而避免了算法走彎路,提高了算法的局部尋優能力和全局尋優能力.而且隨著物品數量的增大,復雜度的增強,相對于 DEA,PSO,GA 和 BMA 算法,所給 IFMA 算法的求解精度仍然較高,且方差較小.從而說明所給IFMA算法具有較高的可行性和穩定性,達到了預期的效果,為求解0-1背包問題提供了新的途徑.

5 結束語

在利用猴群算法求解0-1背包問題時,在爬過程中,引入誘導因子后,可以誘導猴子向著指定的方向爬行,從而避免繞路,使得所給IFMA能夠找到全局最優解.通過仿真實驗表明,利用所給的IFMA求解0-1背包問題達到了預期的結果,提高了求解精度.

圖1 算例 1 優化過程曲線

圖2 算例 2 優化過程曲線

參考文獻

1Merkle R,Hellman M.Hiding information and signatures in trapdoor knapsacks.IEEE Transactions on Information Theory,1978,24(5): 525–530.[doi: 10.1109/TIT.1978.1055 927]

2趙學武,劉向嬌,王興,等.求解 0-1 背包問題的遺傳算法.南陽師范學院學報,2014,13(6): 21–25.

3Srinivasan V,Varghese G.Fast address lookups using controlled prefix expansion.ACM Transactions on Computer Systems,1999,17(1): 1–40.[doi: 10.1145/296502.296503]

4李鳴山,鄭海虹.0-1背包問題的多重分枝-限界算法.武漢測繪科技大學學報,1995,20(1): 83–87.

5寧愛兵,馬良.0/1背包問題快速降價法及其應用.系統工程理論方法應用,2005,14(4): 372–375.

6王粉蘭,孫小玲.不可分離凸背包問題的拉格朗日分解和區域分割方法.運籌學學報,2004,8(4): 45–53.

7王樂,王世卿,張靜樂.基于 Matlab 的 0-1 背包問題的動態規劃方法求解.計算機技術與發展,2006,16(4): 88–89,92.

8荊源.背包問題的差分進化算法.才智,2011,(7): 92–93.

9趙傳信,季一木.粒子群優化算法在0/1背包問題的應用.微機發展,2005,15(10): 23–25.[doi: 10.3969/j.issn.1673-629X.2005.10.009]

10樂天.遺傳算法求解0/1背包問題的綜述.浙江海洋學院學報 (自然科學版),2013,32(1): 71–74.

11Zhao RQ,Tang WS.Monkey algorithm for global numerical optimization.Journal of Uncertain Systems,2008,2(3):164–176.

12李曉,倪富陶,孫維剛,等.基于猴群算法的連續剛構橋傳感器優化布置研究.公路,2016,61(3): 65–69.

13張佳佳,張亞平,孫濟洲.基于猴群算法的入侵檢測技術.計算機工程,2011,37(14): 131–133.[doi: 10.3778/j.issn.1002-8331.2011.14.037]

14趙濤,夏雨,宗瑪利.基于猴群算法的加氣站項目進度研究.價值工程,2010,29(8): 90–92.

15申彩英,高韜.基于猴群算法的混合動力汽車能量管理策略 .計 算 機 工 程 與 應 用 ,2014,50(14): 9 –13,120.[doi:10.3778/j.issn.1002-8331.1308-0015]

16Ituarte-Villarreal CM,Lopez N,Espiritu JF.Using the monkey algorithm for hybrid power systems optimization.Procedia Computer Science,2012,(12): 344 –349.[doi: 10.1016/j.procs.2012.09.082]

17Hodashinsky IA,Samsonov SS.Design of fuzzy rule based classifier using the monkey algorithm.Mathematical Methods and Algorithms of Business Informatics,2017,1(39): 61–67.

主站蜘蛛池模板: 99视频精品全国免费品| 欧美成人手机在线视频| 精品欧美日韩国产日漫一区不卡| 91在线播放国产| 第九色区aⅴ天堂久久香| 大陆精大陆国产国语精品1024| 亚洲高清在线播放| 最新亚洲人成无码网站欣赏网 | jizz国产在线| 日本午夜在线视频| 69视频国产| 婷婷伊人五月| 日韩东京热无码人妻| 国产99视频精品免费视频7 | 69视频国产| 久久久噜噜噜久久中文字幕色伊伊 | 日韩少妇激情一区二区| 亚洲av日韩av制服丝袜| 欧美.成人.综合在线| 久久综合伊人 六十路| 久久黄色毛片| 免费在线色| 国产浮力第一页永久地址| 亚洲天堂2014| 97久久超碰极品视觉盛宴| 99久久精品免费观看国产| 亚洲国产天堂久久综合226114| 国产成人精品一区二区免费看京| 国产91麻豆免费观看| 欧美在线天堂| 欧美精品在线看| 精品国产网站| 一级毛片不卡片免费观看| 亚洲精品在线影院| 国产欧美一区二区三区视频在线观看| a在线亚洲男人的天堂试看| 亚洲精品中文字幕无乱码| 亚洲av片在线免费观看| 国产内射一区亚洲| 毛片网站观看| 萌白酱国产一区二区| 2021天堂在线亚洲精品专区| 午夜不卡视频| 又黄又爽视频好爽视频| 国产成人禁片在线观看| 一本色道久久88| 久草青青在线视频| 亚洲男人天堂2018| 欧美日韩国产在线播放| 国产丝袜啪啪| 欧美日韩另类国产| 欧美激情第一欧美在线| 亚洲精品无码专区在线观看| 四虎在线观看视频高清无码| 国产原创第一页在线观看| a级毛片毛片免费观看久潮| 成人日韩欧美| 91福利一区二区三区| 亚洲无码免费黄色网址| 五月天久久婷婷| 一级毛片无毒不卡直接观看| 欧美一级专区免费大片| 欧美丝袜高跟鞋一区二区| 在线精品视频成人网| 国产精品熟女亚洲AV麻豆| 久久久久九九精品影院| 污污网站在线观看| 99激情网| 中文字幕久久亚洲一区 | 中国国产一级毛片| 蜜臀AV在线播放| 中文字幕欧美成人免费| 国产亚洲精久久久久久无码AV| 国产一区二区精品高清在线观看| a天堂视频| 日韩无码视频播放| 91欧美在线| 五月天香蕉视频国产亚| 青青草欧美| 免费国产黄线在线观看| 青青草原国产| 国产拍在线|