亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        求解0-1背包問題的貪心優(yōu)化粒子群算法

        2018-09-26 12:05:46潘大志
        關(guān)鍵詞:背包適應(yīng)度算子

        周 洋,潘大志

        (西華師范大學(xué) 數(shù)學(xué)與信息學(xué)院,四川 南充 637009)

        0 引 言

        背包問題(knapsack problem,KP)是在20世紀(jì)50年代由Dantzing提出來的一種組合優(yōu)化問題,也是一類經(jīng)典的NP難問題,在預(yù)算控制、信息加密、投資決策和貨物裝載等領(lǐng)域具有重要的應(yīng)用價值。而如何快速、簡潔地求解0-1背包問題成為現(xiàn)階段一個研究目標(biāo)。目前,關(guān)于KP問題的求解主要有精確算法和近似算法兩大類。其中,精確算法包括動態(tài)規(guī)劃法、分支界定法、回溯法等,這些精確算法盡管能夠找到問題的精確解,然而相對于物品的數(shù)量而言,它的時間復(fù)雜度呈指數(shù)級增長,因此并不適合求解大規(guī)模KP問題。為了改進(jìn)這一缺陷,許多學(xué)者基于生物的群體智能性,開始尋求智能優(yōu)化算法求解KP問題,目前的近似算法包含遺傳算法(GA)、粒子群算法(PSO)、蟻群算法(AC)、貪婪算法(GTA)等,這些智能算法在求解大規(guī)模背包問題時表現(xiàn)出明顯的優(yōu)勢,但是在一定程度上仍有不足之處,因此,對于KP問題的高效求解算法仍然在不斷研究。

        粒子群算法(Particle Swarm Optimization,PSO)是由美國社會心理學(xué)家James Kennedy和電氣工程師Russell Eberhart于1995年共同提出的一種新的進(jìn)化算法(Evolutionary Algorithm,EA),它是除了魚群算法、蟻群算法之外的一種新的群體智能優(yōu)化算法[1]。粒子群算法起初源于對鳥群捕食行為的研究,是一種基于迭代思想的優(yōu)化算法,它的規(guī)則比遺傳算法更簡易,參數(shù)設(shè)置相對較少,實現(xiàn)起來更加方便。近幾年,國內(nèi)外很多學(xué)者利用粒子群算法這一優(yōu)越性,將其他算法與其融合并應(yīng)用于背包問題等實際領(lǐng)域中,取得了很好的研究成果。陶新民等人將雙尺度變異策略加入到粒子群算法中,利用此操作更新粒子的飛行速度,在避免算法陷入局部最優(yōu)的同時,大大提高了最優(yōu)解的精度[2];張其亮等人考慮到解的多樣性,在粒子群算法中融入模擬退火(SA)思想,設(shè)計了粒子群——模擬退火算法,進(jìn)一步提高解的質(zhì)量[3];賀毅朝等人引入了貪心思想,將其與遺傳算法結(jié)合,得到一種基于貪心策略的遺傳算法(GMOGAs),該算法有效地處理了KP問題中的非正常編碼個體,關(guān)于大規(guī)模KP問題能較快地找到最優(yōu)解,改善了遺傳算法的求解效率[4]。本文受貪心算法的啟發(fā),將文獻(xiàn)[4]中的貪心修正算子(GMO)和貪心優(yōu)化算子(GOO)融入到傳統(tǒng)粒子群算法中,設(shè)計了一種貪心優(yōu)化粒子群算法(GOPSO),并通過仿真實驗將該算法與GMOGAs、離散二進(jìn)制粒子群算法(BPSO)、AC在收斂速度、求解效果等方面進(jìn)行比較。

        1 背包問題的數(shù)學(xué)模型

        0-1背包問題的一般描述為:假設(shè)有n個物品g1,g2,…,gn和一個背包,第j件物品的重量及其價值分別為wj>0和pj>0(j=1,2,…,n),背包的最大載重限制為C,選擇部分物品放入背包,使得在不超過背包最大載重限制的前提下,所放入物品的總價值最大[5]。為描述n個物品是否放入背包,定義決策變量xj:

        (1)

        (2)

        (3)

        2 基本粒子群算法

        在基本粒子群算法中,每一個解都是搜索空間中的一只鳥,將其抽象為一個沒有任何質(zhì)量和體積的粒子,并延伸至D維空間,每一個粒子有三個屬性:位置、速度和由目標(biāo)函數(shù)決定的適應(yīng)度。粒子知道自己所在位置和目前為止自己發(fā)現(xiàn)的最好位置(pbest),這個視為粒子自身的飛行經(jīng)驗。除此之外,粒子還知道目前為止整個鳥群中所有粒子發(fā)現(xiàn)的最好位置(gbest),這個視為粒子同伴的經(jīng)驗。粒子通過自身的經(jīng)驗和同伴中最好的經(jīng)驗這二者來共同調(diào)整自己的飛行方向和速度,從而尋找全局最優(yōu)解[6]。

        假設(shè)在一個D維搜索空間中,有m個粒子組成了一個種群X=(X1,X2,…,Xm),其中第i個粒子的位置為Xi=(xi1,xi2,…,xiD),i=1,2,…,m,其速度為Vi=(vi1,vi2,…,viD),每個粒子的位置代表可行域中的一個可行解,解的優(yōu)劣由適應(yīng)度的大小來衡量。每進(jìn)行一次迭代,粒子便根據(jù)這兩個“極值”對自身進(jìn)行一次更新,第i個粒子迄今為止搜索到的最優(yōu)解為個體最優(yōu)位置記為:Pi=(Pi1,Pi2,…,PiD);整個粒子群即同伴中發(fā)現(xiàn)的最優(yōu)解為全局最優(yōu)位置記為:Pg=(Pg1,Pg2,…,PgD)。

        粒子群算法的優(yōu)化模型如下:

        (4)

        (5)

        基本粒子群算法實現(xiàn)過程如下:

        算法1PSOAlgorithm

        Step1 初始化一個規(guī)模為m的粒子群,隨機(jī)初始化產(chǎn)生各個粒子的位置和速度;

        Step2 由目標(biāo)函數(shù)值計算每個粒子的適應(yīng)度;

        Step3 對于每個粒子而言,將自身的適應(yīng)度值與其經(jīng)歷過的最好位置Pi的適應(yīng)度值作比較,若較好,則將其設(shè)置為當(dāng)前的最好位置;

        Step4 對于每個粒子而言,將自身適應(yīng)度值與全局經(jīng)歷的最好位置Pg的適應(yīng)度值作比較,若較好,則將其設(shè)置為當(dāng)前的全局最優(yōu)位置;

        Step5 根據(jù)公式(4)和公式(5)對粒子的速度和位置分別進(jìn)行動態(tài)更新;

        Step6 如果滿足終止條件(預(yù)設(shè)的迭代次數(shù)或者精度),則停止搜索,輸出解,否則返回Step 2。

        3 貪心優(yōu)化粒子群算法

        粒子群算法主要用來處理連續(xù)優(yōu)化問題,而0-1背包問題又是一種典型的組合優(yōu)化問題,因此,將粒子群算法離散化處理具有重要的理論意義和現(xiàn)實意義。Kennedy和Eberhart在1997年對基本PSO算法進(jìn)行了改進(jìn),提出了一種BPSO算法[8]。這一算法一經(jīng)提出,便引起了國內(nèi)外研究學(xué)者廣泛的關(guān)注,馬慧民等在此基礎(chǔ)上加入了記憶機(jī)制,加快了算法的收斂速度[9]。因此,對于0-1背包問題的求解,我們可采用BPSO算法的離散化處理方式,這樣便成功解決了編碼的問題。同時考慮到背包問題的實質(zhì)為有約束最優(yōu)化問題,如果仍然用傳統(tǒng)粒子群算法去求解,對于大規(guī)模0-1背包問題而言,將會導(dǎo)致算法中出現(xiàn)大量的非正常編碼個體,這將不能完全保證解的可行性,且算法求解效率較低?,F(xiàn)階段,對于非正常編碼個體的處理方法主要有罰函數(shù)法(penalty function method,PFM)和個體修正法(individual optimization method,IOM)[10]。受文獻(xiàn)[4]中貪心修正算子(GMO)和貪心優(yōu)化算子(GOO)的啟發(fā),本文將這兩種算子融入到傳統(tǒng)粒子群算法中,不僅能對非正常編碼個體進(jìn)行修正處理,還能夠?qū)λ械膫€體進(jìn)一步優(yōu)化,便于快速找到最優(yōu)解。

        算法2GOPSOAlgorithm

        Step1 初始化相關(guān)參數(shù),設(shè)置種群規(guī)模為m,進(jìn)化代數(shù)k=0,最大迭代次數(shù)為T,慣性權(quán)重為ω,加速因子為c1和c2;

        Step2 隨機(jī)初始化每個粒子的位置和速度:

        位置的產(chǎn)生方式為:

        (6)

        (7)

        其中rand()表示[0,1]區(qū)間內(nèi)的隨機(jī)數(shù),vmin和vmax為速度的最大最小限定值;

        Step3 利用GMO和GOO算子對初始種群進(jìn)行修正與優(yōu)化處理;

        Step4 計算粒子的適應(yīng)度值并更新個體最優(yōu)和全局最優(yōu)位置:

        (8)

        (9)

        (10)

        Step5 利用公式(4)和公式(5)更新粒子的速度和位置,對更新后的新種群的再次進(jìn)行離散化處理,使其變成0-1矩陣,處理方式如下:

        (11)

        S(x)為sigmoid函數(shù),rand()為[0,1]區(qū)間內(nèi)的隨機(jī)數(shù)。

        Step6 利用GMO和GOO算子對更新后的位置進(jìn)行修正與優(yōu)化;

        Step7 令k=k+1,當(dāng)k>T時,則停止迭代,否則返回Step 4;

        4 實驗與仿真

        為了驗證GOPSO算法的高效性以及更好地說明算法的求解效果,下面選用了兩組常用的KP實例,例1數(shù)據(jù)取自文獻(xiàn)[10],其物品數(shù)為50,例2取自文獻(xiàn)[4],其物品數(shù)為100。分別獨立運行30次,對比BPSO算法、文獻(xiàn)[4]中的GMOGAs算法以及AC蟻群算法[11]。仿真實驗所選擇的測試環(huán)境為:處理器為Intel(R) Xeon(R) CPU E3-1240 v5,3.50 GHz,內(nèi)存為8G,操作系統(tǒng)為Windows10,利用Matlab2014a編程求解,并繪制算法迭代收斂曲線。在GOPSO算法中,設(shè)置慣性權(quán)重w=0.8,加速因子c1=c2=0.7;在AC算法中,設(shè)置信息素重要程度因子α=0.9,啟發(fā)函數(shù)重要程度因子β=1,信息素?fù)]發(fā)因子ρ=0.7,信息素總量Q=1。

        例1 物品個數(shù)N=50,背包載重C=1 000,物品價值集P[1,…,50]=[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[1,…,50]=[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]。該實例利用動態(tài)規(guī)劃法求解得到最優(yōu)解為3103,對應(yīng)的總重量為1000,這里設(shè)置種群規(guī)模為50,最大迭代次數(shù)為50,每個算法獨立運行30次,測試結(jié)果見表1,算法的迭代收斂曲線如圖1。

        表1 4種算法求解例1的計算結(jié)果

        例2 物品個數(shù)N=100,背包載重C=1 000,物品價值集P[1,…,100]=[998,997,991,986,978,977,939,936,924,920,911,901,901,885,880,866,866,863,856,842,809,794,792,789,778,767,764,764,763,759,756,747,739,708,707,706,694,693,684,680,676,652,644,640,628,612,607,597,593,570,560,556,556,556,542,538,530,530,520,498,487,466,464,461,459,456,452,443,412,399,391,383,381,378,377,359,353,351,327,317,311,295,289,287,283,269,249,248,235,193,189,189,134,108,93,74,51,48,23,8];物品重量集W[1,…,100]=[353,180,377,230,87,174,157,390,186,213,56,86,77,215,252,90,360,187,294,379,372,384,93,328,283,99,114,374,383,183,248,164,323,263,266,318,296,196,10,324,128,376,19,280,229,225,217,134,233,35,361,302,166,374,392,319,241,15,384,82,158,322,139,239,110,44,115,23,267,82,30,198,173,70,329,125,220,107,148,159,351,56,17,99,308,396,327,235,213,223,372,376,191,299,304,277,292,391,120,37];該實例利用動態(tài)規(guī)劃法得出的最優(yōu)解為40 627,對應(yīng)的總重量為9 793,設(shè)置種群規(guī)模為100,最大迭代次數(shù)為50,測試結(jié)果見表2,算法的迭代收斂圖見圖2。

        表2 4種算法求解例2的計算結(jié)果

        分析表1、表2以及圖1、圖2可知,本文提出的GOPSO算法與文獻(xiàn)[4]中的GMOGAs算法求解性能基本一致,在最大迭代次數(shù)內(nèi),均能找到問題的最優(yōu)解,但是從收斂速度以及平均進(jìn)化代數(shù)來看,GOPSO 算法較GMOGAs算法收斂得更快。明顯地,對于大規(guī)模0-1背包問題的求解,不論是GOPSO算法還是GMOGAs算法,在總體上關(guān)于解的質(zhì)量以及收斂速度等方面均遠(yuǎn)遠(yuǎn)優(yōu)于BPSO算法和AC算法,這足以說明本文提出的貪心優(yōu)化粒子群算法是一種比BPSO算法更高效的新方法,更加適合于求解大規(guī)模背包問題。

        5 結(jié)束語

        基于貪心的思想,將GMO算子和GOO算子融入到基本粒子群算法中,設(shè)計了貪心優(yōu)化粒子群算法,給出該算法的實現(xiàn)流程,并將該算法應(yīng)用于0-1背包問題的求解。通過對文獻(xiàn)中的兩個實例進(jìn)行仿真實驗,測試結(jié)果表明:GOPSO算法表現(xiàn)出了良好的尋優(yōu)能力以及較快的收斂速度,并且成功率較高,大大減少了算法的運行時間,這充分說明了新算法的高效性與可行性。

        猜你喜歡
        背包適應(yīng)度算子
        改進(jìn)的自適應(yīng)復(fù)制、交叉和突變遺傳算法
        擬微分算子在Hp(ω)上的有界性
        各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
        大山里的“背包書記”
        一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
        一包裝天下 精嘉Alta銳達(dá)Sky51D背包體驗
        鼓鼓的背包
        創(chuàng)意西瓜背包
        童話世界(2017年11期)2017-05-17 05:28:26
        Roper-Suffridge延拓算子與Loewner鏈
        基于空調(diào)導(dǎo)風(fēng)板成型工藝的Kriging模型適應(yīng)度研究
        中國塑料(2016年11期)2016-04-16 05:26:02
        久久精品欧美日韩精品| 日躁夜躁狠狠躁2001| 人妻丰满熟妇无码区免费| 四虎影视免费观看高清视频| 中文字幕无码精品亚洲资源网久久 | 日本一区二区三深夜不卡| a级三级三级三级在线视频| 视频在线国产一区二区| 国产伦人人人人人人性| 国产性一交一乱一伦一色一情| 久久亚洲sm情趣捆绑调教| 日日噜噜噜夜夜爽爽狠狠视频| 中文字幕一区二区三在线| 综合图区亚洲偷自拍熟女| 午夜一区二区三区福利视频| 国产91传媒一区二区三区| 久久天天躁狠狠躁夜夜躁2014| 国产成人av综合色| 人人妻人人爽人人澡欧美一区 | 果冻传媒2021精品一区| 亚洲午夜福利在线观看| 国内揄拍国内精品少妇国语| 性无码国产一区在线观看| 亚洲图文一区二区三区四区| 日本精品一区二区三区在线播放| 日本五十路熟女在线视频| 无色码中文字幕一本久道久| 亚洲国产av无码精品| 又粗又黄又猛又爽大片app| 国产美女露脸口爆吞精| 亚洲av无码片一区二区三区| 91久久国产综合精品| 国产av精品一区二区三区不卡 | 国产一区二区欧美丝袜 | 国产免费网站看v片元遮挡| 男女男在线精品免费观看| 亚洲午夜经典一区二区日韩| 波多野结衣中文字幕一区二区三区| 国产l精品国产亚洲区久久| 欧美与黑人午夜性猛交久久久| 国产精品亚洲片夜色在线|