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

改進遺傳—蟻群算法求解多維0/1背包問題

2020-05-28 09:36:21余典吳勇余山
軟件導刊 2020年3期
關鍵詞:信息

余典 吳勇 余山

摘 要:針對傳統啟發式算法難以平衡求解收斂次數與求解精度問題,通過充分分析GA和ACO兩種算法的優缺點,設計了一種改進的遺傳蟻群算法。將算法分為上下兩步,分別以GA和ACO為主。在GA中引入信息素更新機制連接上下兩部分算法;在ACO中引入遺傳變異操作盡可能擴大解的范圍。同時結合兩種算法各自解的繼承方式,采用合適的方法分別處理這兩部分產生的不可行解。獲得解后,通過引入交換鄰域的爬山法思想進一步嘗試優化解。最終在保證求解精度的前提下,減少求解所需的迭代次數。實驗結果表明,在需要保證求解精度的前提下,相比傳統GA,該方法的求解效率提高了一個量級。

關鍵詞:0/1多維背包;遺傳蟻群混合算法;交換鄰域爬山算法

DOI:10. 11907/rjdk. 191598

中圖分類號:TP301 ? 文獻標識碼:A??????????????? 文章編號:1672-7800(2020)003-0087-04

Modified Genetic Ant Colony Hybrid Algorithm for Solving

Multidimensional 0-1 Knapsack Problem

YU Dian1,WU Yong2,YU Shan2

(1. China Academy of Telecommunication Technology,Beijing 100083,China;

2. Semiconductor Manufacturing International Corporation (Beijing),Beijing 100176,China)

Abstract:Aiming at the problem that traditional heuristic algorithm is difficult to balance the solution of convergence times and solution precision, we design an modified genetic and ant colony hybrid algorithm by analyzing the advantages and disadvantages between GA and ACO algorithms. The algorithm is divided into two steps which are based on GA and ACO respectively. The pheromone update method is introduced in the step based on GA to connect with the next step. Meanwhile, mutation operation and crossover operation are introduced in the step based on ACO for getting more solutions. Besides, the appropriate method is used to deal with the infeasible solutions generated in these two steps. Finally, in order to optimize the solution further, hill-climbing algorithm of exchange neighborhood search is introduced after the solution is obtained. Finally, under the premise of ensuring the accuracy of the solution, the number of iterations required for the solution is shortened. The experimental results show that the efficiency of the proposed method is increased by an order of magnitude compared with the traditional GA under the premise of ensuring the accuracy of the solution.

Key Words:multidimensional knapsack problem; genetic ant colony hybrid algorithm; hill-climbing algorithm of exchange neighborhood search

0 引言

多維背包問題(Multidimensional Knapsack Problem, MKP)是著名的整數規劃問題之一,屬于NP-hard問題[1]。它的實際應用場景很多,如工廠中的資源分配形式、數據加密、投資組合、機臺調度等。近幾十年研究出各種各樣的解決方法,其中精確算法有分支限界法、動態規劃法等,近似算法有貪婪方法、蟻群算法等[2]。近幾年對該問題的研究主要集中于以遺傳、蟻群算法為代表的元啟發式算法[3]。

遺傳算法[4](Genetic Algorithm,GA)由美國學者Holand于1975年首先提出,是一種模擬達爾文遺傳選擇和自然淘汰的生物進化論計算模型。它通過模擬自然界的遺傳、變異以及適者生存進化機制獲取所求問題的解。這種算法優點是簡單、通用、魯棒性強,適用并行分布處理,應用范圍廣。它是一種隨機的、以交叉操作為核心的全局多點搜索算法,在運算前期能很快達到最優解的90%左右[5]。但是在之后,由于交叉編譯操作獲得的解會大量重復于之前獲得的解集,導致要花費很長時間才能對解的質量作進一步優化。蟻群算法(Ant Colony Optimization,ACO)是Dorigo[6]于1991年提出的一種基于螞蟻種群的新型優化算法,使用單純的蟻群算法求解背包問題主要通過不斷重復放置螞蟻,依據信息素尋找一串可行的解集。更新信息素,通過信息素的不斷積累逐漸收斂到最優解。由于ACO算法中,前面的解通過更新信息素的方式能對后面的解產生正反饋,因此使ACO的收斂速度加快,避免了類似GA后期大量的重復搜索過程。但是ACO存在以下幾個問題:①前期信息素濃度較低且分布平均時,整體算法收斂較慢;②算法容易出現停滯現象,也就是當搜索到一定程度后,少數幾個節點上積累的信息素濃度足夠大,使得尋找到的解都集中在這幾個節點上,不能對解空間進一步搜索,最終導致算法過早收斂在一個較優的解上。

MKP發展至今,相關問題有多種不同的表現形式,王熙照、賀毅朝[7]對此作了比較系統的歸納。0/1背包問題是其中最基本的背包問題,一直以來都有不少學者對其進行研究。

近年來,對類似MKP這種NP-hard類型問題的求解方法主要分為兩類:①尋找新的啟發式算法求解此類問題,如劉雪靜、賀毅朝[8]等采用細菌覓食算法求解0/1背包問題。這種算法具有局部搜索、并行搜索能力強等優點,但這種算法在每輪循環中需要經過趨化、遷移和復制3個步驟,而其中趨化又包含翻轉和游動等,會造成算法需要調整的變量數量多、不易控制等問題。高思奇、邢玉軒等[9]提出通過改進蛙跳算法求解背包問題,這種算法具有比較好的求解效率,但就原始蛙跳算法而言,算法容易收斂到局部最優解。此外,近幾年出現了人工魚群算法(AFSA)[10]和聲搜索算法(HS)[11]、螢火蟲算法[12]、二進制蝙蝠算法(BBA)[13]等研究熱點;②通過優化或混合原有算法求解問題。如趙學武, 劉向嬌等提出一種改進的遺傳算法求解背包問題。這種改進算法通過每輪獲得的解集適應值,自動調整變異概率。通過算法調整,保證每次裝入的物體單位質量價值大以加快算法收斂速度。這種改進算法減少了收斂到最終結果的迭代輪次,加快了算法的收斂速度,但是犧牲了解的多樣性,且沒有很好地解決后期無用搜索量大的問題。羅星星等在原有遺傳算法基礎上引入了3種新的變異方式:散播變異、移位變異和插入變異,豐富了解的種類,但并沒有很好地解決在算法后期收斂慢的問題。劉夢佳和王娜等在主要思路上都采用了遺傳蟻群混合算法,通過每輪迭代將解集分為兩類:一類適應度較高的用于遺傳算法,其余的用于蟻群算法,混合解集按照適應度獲取下一階段的解集,這種混合算法能獲得優于普通GA的收斂速度和優于普通ACO的尋解范圍。但是每輪用于蟻群算法的那些解都是重新構建的,實際上浪費了計算資源。另外,由于設定用于GA的解數量是固定的,因而這種算法會有類似于普通GA或普通ACO的缺陷。除此之外,劉夢佳等通過綜合遺傳算法和模擬退火算法,提出了改進的Memetic算法用于求解多維0/1背包問題。

無論是新的元啟發式算法還是在現有算法基礎上進行改進,都是為了更快地尋找到更優的解。

針對傳統啟發式算法難以平衡求解收斂次數與求解精度問題,本文通過分析GA和ACO兩種算法之間的優缺點,設計了一種改進的遺傳蟻群算法,將整個算法分為上下兩步,分別以GA和ACO為主。在GA中引入信息素更新機制連接上下兩部分算法;在ACO中引入遺傳變異操作盡可能地擴大解的范圍,同時采用合適的方法處理這兩部分中產生的不可行解。在最后獲得解后,通過引入爬山法思想進一步嘗試優化解,最終在保證求解精度的前提下減少求解所需的迭代次數。實驗結果表明,在保證求解精度的前提下,相比傳統GA,該方法的求解效率提高了一個量級。

1 0/1多維背包問題數學模型

一般將0/1MKP問題構建數學模型如下:

其中:[Np]表示背包數目,No表示物體數目,Pi(i=1,2,…Np)表示物體i的價格,Cj(j=1,2…Np)表示每個背包的最大資源量,Wij(i=1,2,…No, j=1,2…Np)表示每個物體i對背包j的資源占用。

2 改進的混合遺傳蟻群算法

2.1 算法設計思想

(1)考慮到遺傳算法在運行前期求解效率高,而且比蟻群算法更容易生成一組解,所以在混合算法前期采用遺傳算法以快速獲得較優解;同時由于蟻群算法的解集生成并不直接依賴于上一組解的解值,而是前面積累的信息素,所以在遺傳算法中引入信息素更新機制,讓遺傳算法的解能影響到后面蟻群算法求解,加快算法收斂速度。

(2)蟻群算法在信息素濃度高時,由于正反饋效應及收斂速度快的特點,可在后期采用蟻群算法加快收斂速度。為防止最后收斂到局部最優解,引入變異交叉操作增大尋解范圍,通過對普通遺傳算法的結果分析能較容易地找到這兩步的切換節點。

2.2 算法流程

步驟一:變量初始化。設置最大迭代次數N,第一步的循環次數N1,變異概率Pm ,交叉概率Pc,解集大小size,初始信息素濃度矩陣ph(Np·1),每條路線信息素更新總量Q,信息素揮發因子ρ,計算能見度矩陣Me。

步驟二:獲取初始解集。通過隨機生成0或1得到一組(NO·size)的矩陣Mg作為初始解集,其中的每一列就是一個初始解。

步驟三:進入算法第一步(GA為主)。①通過交叉操作獲得一組交叉矩陣Mc;②通過變異操作獲得一組變異矩陣Mm;③將Mg、Mc、Mm組合為新矩陣Mg;④獲得Mg解集對應的價格序列Ap;⑤對Mg中超重的解集對應的價格進行懲罰;⑥對解集中滿足限制條件的解,按照蟻周模型更新信息素;⑦按照輪盤賭思想得到下一組解集Mg;⑧當循環次數≤N1時,返回步驟三①。

步驟四:進入算法第二步(ACO為主):

(1)參數初始化:清空解集Mg,啟發因子α,能見度因子β。

(2)將size只螞蟻盡量分散放置在各個物體上。

(3)計算每個物體被選擇的概率。

(4)依次為每只螞蟻s生成一組解集:①設置指示標志a=0,該螞蟻當前對資源占用的總量為Ac;②通過輪盤賭選擇該螞蟻下一個可能選擇的物體b;③將b占用的資源加到Ac上,如果此時仍然滿足下式:[?j=1,2,?NP,AcjCj],則設置Mc(s,b)為1(代表選上),否則設置為-1(代表不可選);④如果a≤No,就返回步驟四之(2)。

(5)對目前獲得的解集Mg進行變異操作,并對不滿足約束條件的解進行修正,獲得Mam。

(6)對目前獲得的解集Mg進行交叉操作,并對不滿足約束條件的解進行修正,獲得Mac。

(7)按照蟻周系統對物體上的信息素進行更新。

(8)保留當代最優解。

(9)如果迭代次數小于等于N,則轉到步驟四之(2);否則輸出最優解并結束程序。

步驟五:對得到的結果利用交換鄰域的爬山法進行優化。

2.3 算法策略

步驟一中,計算能見度矩陣Me。這里的能見度矩陣用于在ACO算法中計算不同物體的選擇概率,見步驟四之(3)。具體算法如下:

其中:ph是No×1維矩陣,表示各物體上的信息素濃度;Me是No×1維矩陣,選擇概率[Pkij]表示第k只螞蟻在物體i上選擇物體j的概率。

由式(2)及MKP可知,價格越高消耗資源越少的物品更應該被選中。對于KMP,本文采用按背包容量比值進行加權的價格/占重比確定每個物體的能見度,實現公式見式(3)和式(4)。

其中:[Me(i)]表示物體i的能見度,[percj]表示背包j的占比。

交叉操作(步驟三之①,步驟四之(6))中,循環size次,每次生成一個隨機數random∈[0,1]。當random

步驟三之(5)通過將不可行(超背包容量)的解的價格設置為當前解集的最小價格對其進行懲罰。這里不采用人為修復為可行解方法,在GA中該輪解集會繼承到下一輪中,如果采用修改為可行解的方法實際上會降低后續解的多樣性。步驟四之(6)采用修正的方法在于ACO中當前輪的解集不能繼承到下一輪,而信息素的更新只會采用可行解,所以這里采用修復方法以增加求解速率。

本文采用依次刪除不可行解中可見度最小的元素直到滿足約束條件的方法對不可行解進行修復。

根據信息素更新策略不同,一般將蟻群模型分為蟻周模型(antcycle system)、蟻量系統(ant-quantity system)、蟻密系統(ant-density system),這里采用性能最好的蟻周模型。蟻周模型更新信息素方式如下:

其中,[phki(t)]代表在第t輪第k只螞蟻尋找解時,物體i上的信息素濃度;[Δphki(t,t+1)]代表第t輪結束后螞蟻k在物體i上更新的信息素,number表示螞蟻i選擇的物體數目。

步驟五中,采用交換鄰域的爬山搜索算法。所謂交換領域,就是把背包問題( KP)的解x中的某一個裝入物品從背包中取出,同時把某一未裝入背包的物品放入背包,這樣形成的解的集合就是解x的交換鄰域N2(x),用數學描述如下:

其中:[I0(x)]表示未裝入背包的物品合集,[I1(x)]表示裝入背包的物品合集。

3 數據分析

為了驗證算法設計的有效性,采用Python3.7以及NumPy科學計算庫對算法進行編程實現,同時將本文的改進算法與一般的GA、ACO算法以及文獻[16]說明的混合算法進行程序編寫、結果測試和對比。本文采用的測試算例來自http://elib.zib.de/pub/mp-testdata/ip/sac94-suite/index.html中的部分例子。文中算法采用參數如下:最大迭代次數N=200,變異概率Pm=0.05,交叉概率Pc=0.45,解集大小size=15,初始信息素濃度矩陣ph=[1,1…,1],每條路線信息素更新總量Q=1,信息素揮發因子ρ=0.5,啟發因子α=2,能見度因子β=3。

此外,為確定一個較好的循環次數N1的值,通過對一般GA運行10次后得到的結果,分析斜率突變前后的值,選取N1=50,如圖1所示。

將4種算法(算法1是本文的改進算法,算法2是普通GA算法,算法3是普通ACO算法,算法4是采用文獻[16]的混合算法)運行100次后得到的結果進行對比,如表1、表2所示。

表1結果顯示,算法1和算法2求得的最優解好于算法3和算法4,對于采用的測試例子約高出10%。

表2結果顯示,算法3和算法4的收斂速度比算法1和算法2更快。其中算法4最快,算法3次之,而算法2最慢,基本上與其它3種算法相差1~3個數量級。

以上仿真結果表明,在求解0/1 MKP問題上,在保證解精度的前提下,本文提出的方法在求解效率上比傳統的GA提高了一個數量級。而在求解速度上,雖然本文提出的方法與算法3和算法4相比收斂速度較慢,但還在一個數量級內。所以,如果對所求解的質量要求很高,本文提出的改進算法會是一個很好的選擇。

4 結語

通過充分分析遺傳算法和蟻群算法之間的優缺點,以及一些混合算法的不足,本文提出了一種新的混合方式,通過采用這種混合方式設計了一種算法。本文在充分發揮遺傳算法和蟻群算法優點的同時,基于生成解的特點,采用不同的方法處理每輪迭代中的不可行解。此外,為了優化最終解的穩定性,引入了交換鄰域的爬山法。對比實驗表明,在保證求解精度的前提下,本文算法能夠更好地減少求解的迭代次數。

本文使用的測試參數在中低維度(5個背包,30個物體)的背包上表現較好,但在高維度問題上需要另外設定相關參數。今后將對如何自動依照求解規模調整參數這一課題進行研究。

本文研究了0/1背包問題的一種求解算法,而現實環境中還存在一個背包選擇同一個物體多次的問題(比如工廠同一類型的產品有多個,而且機臺也可以同時處理同類型的多個產品)。在這種更普適的情況下,解的元素會有除0,1以外的其它值。如何將背包問題與實際生產問題相結合,合理設計和改進解的結構與算法(比如GA中的變異操作),以改進求解效率和求解質量,也是需要進一步研究的課題。

參考文獻:

[1]KARP R M. Reducibility among combinatorial problems[M]. New York:Plenum Press,1972.

[2]田烽楠,王于. 求解0-1背包問題算法綜述[J]. 軟件導刊,2009(1):59-61.

[3]HASSANIEN A E,EMARY E. Swarm intelligence principles, advances, and applications[M]. Boca Raton:CRC Press, Inc. 2015.

[4][日]玄光男,林林. 網絡模型與多目標遺傳算法[M]. 梁承姬,于歆杰,譯.北京:清華大學出版社, 2017.

[5]武廣號,文毅,樂美峰. 遺傳算法及其應用[J]. 應用力學學報, 2000, 23(6):9-10.

[6]李士勇,陳永強,李研. 蟻群算法及其應用[M]. 哈爾濱:哈爾濱工業大學出版社,2004.

[7]王熙照,賀毅朝. 求解背包問題的演化算法[J]. 軟件學報,2017(1):391-399.

[8]劉雪靜,賀毅朝,吳聰聰,等. 基于細菌覓食算法求解折扣0-1背包問題的研究[J]. 計算機工程與應用,2018(8):1204-1210.

[9]高思齊,邢玉軒,肖儂,等. 求解01背包問題的貪婪蛙跳算法[J]. 計算機科學,2018,45(7):79-83.

[10]AZAD M A K,ROCHA A M A C,FERNANDES E M G P. Improved binary artificial fish swarm algorithm for the 0-1 multidimensional knapsack problems[J]. Swarm & Evolutionary Computation, 2014(14):66-75.

[11]ZOU D,GAO L,LI S,et al. Solving 0-1 knapsack problem by a novel global harmony search algorithm[J]. Applied Soft Computing, 2011, 11(2):1556-1564.

[12]郭麗萍, 申秋慧. 利用改進螢火蟲算法求解0-1背包問題[J]. 軟件導刊,2016(1):54-56.

(責任編輯:杜能鋼)

收稿日期:2019-04-24

作者簡介:余典(1995-),男,電信科學技術研究院碩士研究生,研究方向為工廠排程優化。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 福利在线一区| 亚洲女人在线| 久久国产亚洲欧美日韩精品| 3344在线观看无码| 国产精品视频观看裸模| 无码网站免费观看| 国产一级妓女av网站| 欧美黄网在线| 亚洲福利视频一区二区| 日本www色视频| 久久国产精品无码hdav| 久久精品娱乐亚洲领先| 国产精品人莉莉成在线播放| 亚洲午夜18| 99人妻碰碰碰久久久久禁片| 天天躁日日躁狠狠躁中文字幕| 好吊日免费视频| 亚洲欧洲自拍拍偷午夜色| 亚洲 日韩 激情 无码 中出| 久久久噜噜噜久久中文字幕色伊伊| 无码在线激情片| 中文成人无码国产亚洲| 国产亚洲欧美在线视频| 国产a v无码专区亚洲av| 国产国语一级毛片| 婷婷五月在线视频| 精品福利视频网| 国产丝袜啪啪| 国产精品视频观看裸模 | 试看120秒男女啪啪免费| 热久久国产| 亚洲第一中文字幕| 国产综合日韩另类一区二区| 婷婷激情亚洲| 青青草原国产精品啪啪视频| 一级高清毛片免费a级高清毛片| 欧美成人看片一区二区三区| 日韩第九页| 国产在线日本| 国产精品一区二区不卡的视频| 在线观看国产精品第一区免费| 成人精品午夜福利在线播放| 婷婷色中文网| 成人精品免费视频| 色噜噜综合网| 在线无码av一区二区三区| 欧美激情第一区| 午夜视频日本| 中文字幕伦视频| 真实国产乱子伦高清| 久久精品视频一| 亚洲三级电影在线播放 | 国产迷奸在线看| 天天色综网| 永久免费无码日韩视频| 91精品人妻一区二区| 亚洲中文字幕久久无码精品A| 香蕉色综合| 中文天堂在线视频| 尤物国产在线| 午夜福利网址| 中文字幕资源站| 毛片最新网址| AV天堂资源福利在线观看| 日本手机在线视频| 国产欧美视频一区二区三区| 三区在线视频| 中文字幕无码中文字幕有码在线| 国产一在线观看| 亚洲综合片| 午夜视频日本| 久爱午夜精品免费视频| 久久伊人色| 精品国产香蕉在线播出| 手机永久AV在线播放| 在线亚洲小视频| 热久久这里是精品6免费观看| 亚洲精品在线观看91| 亚洲,国产,日韩,综合一区| 国产精品成人观看视频国产| 亚洲日韩第九十九页| 日日拍夜夜嗷嗷叫国产|