專利名稱:使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法
技術領域:
本發(fā)明涉及的是組合優(yōu)化問題求解技術領域的方法,具體的說,涉及的是使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法。
背景技術:
蟻群算法(Ant Colony Optimization, AC0)是一種仿生的元啟發(fā)式算法,源自于蟻群尋找食物的自然過程,具有可分布性、魯棒性等優(yōu)點,是元啟發(fā)式算法中較優(yōu)的一種, 并被廣泛應用于解決各種組合優(yōu)化問題,例如具有NP難度的旅行商(TSP)問題的最優(yōu)解答,Job Shop調度問題、二次指派問題以及多維背包問題等。在實際工程應用中蟻群算法被大量應用于數據分析、機器人協(xié)作問題求解、電力、通信、水利、采礦、化工、建筑、交通等領域。然而,經典蟻群算法時間空間開銷巨大,性能隨著問題規(guī)模的擴大而下降的嚴重問題。 在計算機領域,可以通過采用分布式并行處理技術提高系統(tǒng)的可伸縮性(scalability)。
經對現(xiàn)有技術的文獻檢索發(fā)現(xiàn),文章Parallel Multicolony ACO Algorithm WithExchange of Solutions, Proceedings of the 18th Belgium-Netherlands Conference onArtificial Intelligence, 2006:409-410 (基于解交換的并行多群 ACO 算法)提出了采用MPI (Message Passing Interface)并行編程技術在多機環(huán)境下實現(xiàn)蟻群算法并解決TSP問題的方法,該方法具有一定的優(yōu)點,但是該方法由于基于MPI技術,一方面無法保證系統(tǒng)的魯棒性,另一方面復雜的MPI編程模型增加了開發(fā)難度。文章Scaling Populations of a Genetic Algorithm for Job Shop Scheduling Problemsusing MapReduce, Proceedings of the2010IEEE Second International Conference onCloud Computing Technology and Science, 2010 :780-785 (使用 MapReduce 擴大 Job Shop 調度問題的遺傳算法種群)提出了采用MapReduce技術實現(xiàn)遺傳算法解決一定規(guī)模Job Shop調度問題的方法,該方法也具有一定的優(yōu)點,但該方法需要多次MapReduce迭代,限制了算法性能的提聞。發(fā)明內容
本發(fā)明針對現(xiàn)有技術的不足,提供使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,通過對組合優(yōu)化問題的解空間進行劃分,并充分利用MapReduce技術所具有的簡單、可伸縮性強的特點,提高蟻群算法的并行化程度,改善其性能。本發(fā)明將有助于提高求解大規(guī)模組合優(yōu)化問題的效率。
本發(fā)明是通過以下技術方案實現(xiàn)的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,包括以下步驟
I)根據設定的mapper的數量劃分指定組合優(yōu)化問題的解空間;
2) Map階段,每個mapper獨立并行地在步驟I)劃分得到的子問題解空間中執(zhí)行改進的蟻群算法,搜索局部最優(yōu)解;
3) Reduce階段,reducer接受所有mapper在不同解空間搜索到的局部最優(yōu)解,根據步驟I)中采用的解空間劃分情況綜合得到全局最優(yōu)解;
4)輸出reducer當前得到的全局最優(yōu)解,結束。
步驟1),具體為分析指定組合優(yōu)化問題的解空間類型,并根據設定的mapper數量劃分解空間,令每個mapper分別在不同的子空間內搜索局部問題的解;其中,所述的問題的解空間是指設問題的解向量為x=(x1;X2,…,Xi***, Xn) ,Xi的取值范圍為有窮集S,把 X的所有可能取值組合稱為問題的解空間,i、n均為自然數;每一個組合是問題的一個可能解;可行解是滿足約束條件的解,是解空間中的一個子集;最優(yōu)解是使目標函數取極值的可行解;解空間組織成子集樹或排列樹形式。
步驟2),即MapReduce的Map函數,其中,所述的改進的蟻群算法,具體包括如下步驟
①根據步驟I)劃分得到的子問題規(guī)模選擇螞蟻數和迭代次數,初始化個體的信息素值和待選個體集,具體設置如下
假設子問題規(guī)模為Iii (i e
), m為mapper的數量;則對于解空間為子集樹的問題,設置所需螞蟻數%=叫/100+1,所需迭代次數Ii=IVliHl ;對于解空間為排列樹的問題,設置所需螞蟻數Si=Iii,所需迭代次數Ii=IOni ;初始化每個個體的信息素值為 τ JO)=。. 5 (j e [O, Ii1-1] );i、j為自然數,初始化待選個體集Ci為子問題所包含的所有個 ^Si ;
②設置待選個體集中每個個體的被選擇概率,每個螞蟻根據該值隨機選擇個體, 具體方法如下
設置每個個體被選擇概率為乃,k e Ci ;其中i、j、k為自然數,τ i為個體i的信息素,自然數t為迭代次數
③其中每個物品的被選到的概率只與在其上的信息素有關,剛開始時初始化為 O. 5表示每個物品被選到與沒選到的概率是一樣的;這樣每只螞蟻生成的物品集完全是獨立且隨機的,直到根據物品價值與重量比的好壞更新信息素來影響物品的選擇;比較所有螞蟻在步驟②中通過選擇個體生成的解,從中選擇局部最優(yōu)解對應的螞蟻b (b為自然數), 用該局部最優(yōu)螞蟻生成的解更新相應個體的信息素,^α+ χ -ρ) h(t) + A Tb,而其它個體信息素值不更新;
其中,t為迭代次數,0〈P < I是信息素蒸發(fā)系數;0〈Δ Tb < I是個體b信息素的增量;
④當滿足終止條件時,輸出當前mapper執(zhí)行過程中保存的局部信息素向量,否則轉步驟②;
步驟3)即MapReduce的Reduce函數,其功能是當所有mapper運行完對子問題的搜索后,將解傳遞到reducer后,使reducer根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解;其中,所述的根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解,具體分為如下兩種情況
當問題的解空間是子集樹時,集合S中的η個元素被均勻分配給m個mapper中, 采用將各mapper中得到的部分個體的信息素值進行合并得到集合S中全部個體的信息素值,進而按照步驟2)中所采用的改進的蟻群算法② ④計算全局最優(yōu)解,所不同的有兩處,τ^χ η^ β · ^ c 一是每個個體被選擇概率為《二 ^ Ct)nf (k)'3 1,實數α和β分別用于控、' O,其他情況制信息素濃度Tu和啟發(fā)式因子IliU)對生成個體選擇概率Pu的影響程度,缺省情況下設置α = β=1,其中,啟發(fā)式因子JliU)是預先設置的對個體選擇性的先驗知識,是問題相關的;每只螞蟻從待選個體Ci中根據個體被選擇概率Pu按輪盤賭選擇算法隨機選擇個體;
另一個是信息素更新公式,Δ τ iJb=T σ,即增量平衡系數T與增量步進值σ之積; T和σ根據具體問題不同而分別設置經驗值;
當問題的解空間按是排列樹時,由于集合S中所有η個元素的η!個不同排列被均勻分配給m個mapper的方法,因此簡單比較各mapper中得到的局部最優(yōu)解,選擇其中的最優(yōu)解作為當前計算得到的最優(yōu)解。
有益效果
本發(fā)明提出的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,相比于現(xiàn)有的蟻群優(yōu)化技術而言,具有更好的可伸縮性,能夠更好的改善求解大規(guī)模組合優(yōu)化問題的效率。本發(fā)明的方法可以廣泛地應用于解決各種組合優(yōu)化等復雜的NP問題,適用于VLSI設計、生產調度、控制工程、機器學習、神經網絡、圖像處理等工程領域。在其他工業(yè)價值方面,還包括一些新興的應用例如針對企業(yè)的運轉模式的研究,認知科學及其信息處理的研究,新一代互聯(lián)網上的群體智能等。
實驗表明本發(fā)明所提出的方法在由16個處理節(jié)點(分別配有Intel Q84004核CPU 和4GB主存)構成的MapReduce環(huán)境下針對含有1000個物品的0_1背包問題(重量與價值獨立且均勻分布于[1,100]區(qū)間,物品總重為50000,包容量為25000),其運行速度相對于單機系統(tǒng)可以提高大約7. 87倍;針對包含105個城市的TSP問題(采用標準的TSP測試基準 TSPLIB 中的 I in 105 數據集,參見 http: //comopt.1f 1. un1-heidelberg. de/software/ TSPLIB95/),其運行速度相對單機系統(tǒng)可以提高約1. 83倍。
圖1是本發(fā)明使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的算法流程圖。
圖2是本發(fā)明的一個實施例“使用基于MapReduce的蟻群優(yōu)化技術求解0_1背包問題”的算法流程圖。
圖3是本發(fā)明的一個實施例“使用基于MapReduce的蟻群優(yōu)化技術求解旅行商問題”的算法流程圖。
具體實施方式
下面結合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
本發(fā)明的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,包括以下步驟
步驟I)根據設定的mapper的數量劃分指定組合優(yōu)化問題的解空間;
步驟2). Map階段,每個mapper獨立并行地在步驟I)劃分得到的子問題解空間中執(zhí)行改進的蟻群算法,搜索局部最優(yōu)解;
步驟3). Reduce階段,reducer接受所有mapper在不同解空間搜索到的局部最優(yōu)解,根據步驟I)中采用的解空間劃分情況綜合得到全局最優(yōu)解;
步驟4).輸出reducer當前得到的全局最優(yōu)解,結束。
所述的步驟I),即分析指定組合優(yōu)化問題的解空間類型,并根據設定的mapper數量劃分解空間,令每個mapper分別在不同的子空間內搜索局部問題的解。其中,所述的問題的解空間是指設問題的解向量為X=U1, X2***, Xi),Xi的取值范圍為有窮集Si,把X的所有可能取值組合稱為問題的解空間。每一個組合是問題的一個可能解??尚薪馐菨M足約束條件的解,是解空間中的一個子集。最優(yōu)解是使目標函數取極值(極大或極小)的可行解。 通常將解空間組織成樹或圖的形式。在本專利中考慮以下兩類解空間樹,即子集樹和排列樹。其中,子集樹是指當所給問題是從η個元素(個體)的集合S中找出S滿足某種性質的子集時相應的解空間樹,如η個物品的0-1背包問題所相應的解空間樹;排列樹是指當所給問題是確定η個元素(個體)滿足某種性質的排列時相應的解空間樹,如TSP問題的解空間樹。假設有m個mapper,則對于解空間樹為子集樹的問題采用將集合S中的η個元素(個體)均勻分配給mfmapper的方法;而對于解空間樹為排列樹的問題采用將所有η個元素 (個體)的η!個不同排列均勻分配給m個mapper的方法。
所述的步驟2),即MapReduce的Map函數,其功能是使每個mapper獨立并行地在步驟I)劃分得到的子問題解空間中執(zhí)行改進的蟻群算法,搜索局部最優(yōu)解。其中,所述的改進的蟻群算法是一種在傳統(tǒng)蟻群算法之上通過對啟發(fā)式因子、選擇概率確定方法、信息素更新策略進行改進而形成的算法,具體包括如下步驟
①根據步驟I)劃分得到的子問題規(guī)模(即所包含的個體個數)選擇螞蟻數和迭代次數,初始化個體的信息素值和待選個體集。具體設置如下假設子問題規(guī)模為Th (i e
),則對于解空間為子集樹的問題(如0-1背包問題),設置所需螞蟻數aerii/lOO+l,所需迭代次數;對于解空間為排列樹的問題(如TSP問題),設置所需螞蟻數A=Iii,所需迭代次數Ii=IOnitl初始化每個個體的信息素值為 Tij(O)=O.5(j e [Ο,γ^-Ι])。初始化待選個體集Ci為子問題所包含的所有個體Si (例如 0-1背包問題中的所有物品,TSP問題中的所有兩個城市間的可達路徑)。
②設置待選個體集中每個個體的被選擇概率,每個螞蟻根據該值隨機選擇個體, 具體方法如下T-(Z)
設置每個個體被選擇概率為< 二,k e Ci。
③其中t為迭代次數,每個物品的被選到的概率只與在其上的信息素有關,剛開始時初始化為O. 5表示每個物品被選到與沒選到的概率是一樣的。這樣每只螞蟻生成的物品集完全是獨立且隨機的,直到根據物品價值與重量比的好壞更新信息素來影響物品的選擇。比較所有螞蟻在步驟②中通過選擇個體生成的解,從中選擇局部最優(yōu)解對應的螞蟻b (用自然數表示),用該局部最優(yōu)螞蟻生成的解更新相應個體的信息素,^α+ιχι-ρ) τ i(t) + A τ b,而其它個體信息素值不更新。
其中,t為迭代次數,0〈P < I是信息素蒸發(fā)系數。0〈Δ Tb < I是個體b信息素的增量,τ . (t+l) = (l-p ) τ j ( ) + Δ τ bD針對TSP問題,每個mapper被劃分一個初始路徑, 在其上分別運行蟻群搜索,Tij(^l) = (1-P) τ Jj (t) + Δ xb, Δ τ b=T σ,T的經驗值取O. 2, 增量步進值σ可通過公式O=LgbZlil^f算得到,其中,Lgb和Lib分別為當前全局最優(yōu)螞蟻所經過的路徑長度和本次迭代局部最優(yōu)螞蟻所經過的路徑長度。
④當滿足終止條件時,輸出當前mapper執(zhí)行過程中保存的局部信息素向量,否則轉步驟②;
所述的步驟3),即MapReduce的Reduce函數,其功能是當所有mapper運行完對子問題的搜索后,將解傳遞到reducer后,使reducer根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解。其中,所述的根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解,具體分為如下兩種情況
當問題的解空間是子集樹(如η個物品的0-1背包問題)時,由于集合S中的η個元素(個體)被均勻分配給m個mapper中,因此簡單對各mapper中得到的局部最優(yōu)解直接進行合并將無法得到正確的全局最優(yōu)解。針對這一問題,采用將各mapper中得到的部分個體的信息素值進行合并得到集合S中全部個體的信息素值,進而按照步驟2)中所采用的改進的蟻群算法② ④計算全局最優(yōu)解,所不同的有兩處,一是每個個體被選擇概率為
權利要求
1.使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,其特征在于,包括以下步驟 1)根據設定的mapper的數量劃分指定組合優(yōu)化問題的解空間; 2)Map階段,每個mapper獨立并行地在步驟I)劃分得到的子問題解空間中執(zhí)行改進的蟻群算法,搜索局部最優(yōu)解; 3)Reduce階段,reducer接受所有mapper在不同解空間搜索到的局部最優(yōu)解,根據步驟I)中采用的解空間劃分情況綜合得到全局最優(yōu)解; 4)輸出reducer當前得到的全局最優(yōu)解,結束。
2.根據權利要求I所述的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,其特征在于,步驟1),具體為分析指定組合優(yōu)化問題的解空間類型,并根據設定的mapper數量劃分解空間,令每個mapper分別在不同的子空間內搜索局部問題的解;其中,所述的問題的解空間是指設問題的解向量為x=(x1; X2,, Xi---, xn), Xi的取值范圍為有窮集S,把X的所有可能取值組合稱為問題的解空間,i、n均為自然數;每一個組合是問題的一個可能解;可行解是滿足約束條件的解,是解空間中的一個子集;最優(yōu)解是使目標函數取極值的可行解;解空間組織成子集樹或排列樹形式。
3.根據權利要求I所述的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,其特征在于,步驟2),即MapReduce的Map函數,其中,所述的改進的蟻群算法,具體包括如下步驟 ①根據步驟I)劃分得到的子問題規(guī)模選擇螞蟻數和迭代次數,初始化個體的信息素值和待選個體集,具體設置如下 假設子問題規(guī)模為Hi (i G
),則對于解空間為子集樹的問題,設置所需螞蟻數Si=Iii/100+1,所需迭代次數I嚴叫/10+1 ;對于解空間為排列樹的問題,設置所需螞蟻數Si=Iii,所需迭代次數Ii=IOni ;初始化每個個體的信息素值為Tij(O)=O. 5(j G [(^ni-I]);初始化待選個體集Ci為子問題所包含的所有個體Si ; ②設置待選個體集中每個個體的被選擇概率,每個螞蟻根據該值隨機選擇個體,具體方法如下 設置每個個體被選擇概率為乃=* k G Ci ; ③其中每個物品的被選到的概率只與在其上的信息素有關,剛開始時初始化為0.5表示每個物品被選到與沒選到的概率是一樣的;這樣每只螞蟻生成的物品集完全是獨立且隨機的,直到根據物品價值與重量比的好壞更新信息素來影響物品的選擇;比較所有螞蟻在步驟②中通過選擇個體生成的解,從中選擇局部最優(yōu)解對應的螞蟻b,為自然數,用該局部最優(yōu)螞蟻生成的解更新相應個體的信息素,T i(t + l) = (l-p ) T j(t) + A T \而其它個體信息素值不更新; 其中,t為迭代次數,0〈 P < I是信息素蒸發(fā)系數;0〈 A T bI是個體b信息素的增量; ④當滿足終止條件時,輸出當前mapper執(zhí)行過程中保存的局部信息素向量,否則轉步驟②。
4.根據權利要求I所述的使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,其特征在于,步驟3)即MapReduce的Reduce函數,其功能是當所有mapper運行完對子問題的搜索后,將解傳遞到reducer后,使reducer根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解;其中,所述的根據步驟I)中采用的解空間劃分的具體情況來綜合得到全局最優(yōu)解,具體分為如下兩種情況 當問題的解空間是子集樹時,集合S中的n個元素被均勻分配給m個mapper中,采用將各mapper中得到的部分個體的信息素值進行合并得到集合S中全部個體的信息素值,進而按照步驟2)中所采用的改進的蟻群算法② ④計算全局最優(yōu)解,所不同的有兩處,一是 每個個體被選擇概率為
全文摘要
本發(fā)明公開了一種使用基于MapReduce的蟻群優(yōu)化技術求解組合優(yōu)化問題的方法,屬于組合優(yōu)化問題求解技術領域。本發(fā)明包括如下步驟根據設定的mapper的數量劃分指定組合優(yōu)化問題的解空間;Map階段,每個mapper獨立并行地在步驟1)劃分得到的子問題解空間中執(zhí)行改進的蟻群算法,搜索局部最優(yōu)解;Reduce階段,reducer接受所有mapper在不同解空間搜索到的局部最優(yōu)解,根據步驟1)中采用的解空間劃分情況綜合得到全局最優(yōu)解;輸出reducer當前得到的全局最優(yōu)解,結束。本發(fā)明具有更好的可伸縮性,能夠更好的改善求解大規(guī)模組合優(yōu)化問題的效率。
文檔編號G06Q10/04GK102982389SQ20121043334
公開日2013年3月20日 申請日期2012年11月2日 優(yōu)先權日2012年11月2日
發(fā)明者吳剛, 吳碧晗, 王巖冰, 楊夢東, 劉翔宇, 漆桂林 申請人:東南大學