,,,
(1.合肥工業大學 a.管理學院;b.過程優化與智能決策教育部重點實驗,合肥 230009; 2.北京航空航天大學 自動化科學與電氣工程學院,北京 100191)
Web服務作為一種新型的分布式計算模型,已經成為面向服務架構(Service Oriented Architecture,SOA)和云計算軟件即服務(Software as a Service,SaaS)的主要技術之一[1]。隨著Web服務技術的日益成熟和服務的不斷加入,出現了大量在網絡上穩定易用且功能相對單一的Web服務,但是單個Web服務能夠提供的功能有限,難以快速地滿足用戶復雜和多變的需求[2]。將現有的多個小粒度Web服務組合成一條增值的大粒度服務鏈來滿足用戶需求成為必然趨勢[3]。因此,服務組合技術已成為云計算按需服務的關鍵技術和研究熱點。
目前,基于服務質量(Quality of Service,QoS)的Web服務動態選擇方法主要有兩種,一種是基于QoS的局部優化原則,另一種是基于QoS的全局最優原則。基于QoS局部最優的Web服務選擇是在每個服務類候選集中通過加權和排序選擇局部最優的服務,但是不能保證組合服務整體最優[4];將基于QoS全局最優的服務動態選擇問題轉化為一個帶QoS約束的多目標服務組合優化問題,目前有遺傳算法、粒子群、整數規劃[5-7]等方法求解全局最優組合問題,但是存在收斂速度慢、易陷入局部最優問題。而對于云環境下的大規模服務,搜索空間膨脹,造成組合效率低下的問題,云計算技術則提供了很好的支持,如云計算環境下的并行蟻群算法[8]、并行粒子群算法[9]等,將智能算法進行并行化,可高效、快速地解決海量數據的問題。
螢火蟲群優化(Glowworm Swarm Optimization,GSO)算法是一種群智能優化算法[10]。該算法已應用于連續型和離散型論域優化,如多模態函數優化問題[11]、旅行商問題[12]、屬性選擇問題[13]、聚類[14]等多個領域。服務動態選擇的實質是多條件多目標下的離散組合優化問題,但是在云計算環境下離散螢火蟲群優化算法的研究甚少。本文研究在云計算環境下的離散螢火蟲群優化算法的并行實現方法,提出基于MapReduce的并行離散螢火蟲群優化算法(MRDGSO)。該算法融合分群分治思想,定義MRDGSO的Map過程和Reduce過程,加快收斂速度和避免陷入局部最優,并且針對Web服務選擇問題,重新定義個體的編碼、計算個體間的距離,改進位置更新、非可行解處理以及相關參數。
對面向SaaS平臺的大量功能相同而非功能屬性不同的Web服務給出相關定義如下。
具體服務(Concrete Service,CS):由服務提供者在統一描述、發現和集成(Universal Description Discovery and Integration,UDDI)注冊中心中注冊的可執行的Web服務[15],記為:CS={D,F,Q}。其中,D表示服務的信息屬性集合,F表示服務的功能屬性集合,Q表示服務的質量屬性集合。
抽象服務(Abstract Service,AS):僅描述服務的功能和接口信息,對應于某個服務候選集,是構成一條服務鏈的基本邏輯單元。一個AS包含多個CS,且這些CS由不同服務提供者提供,具有不同的QoS值,記為AS={CS1,CS2,…,CSh}。
服務組合(Service Composition,SC):為每個抽象服務AS從其包含的具體服務中根據QoS選定出具體服務,所形成的可執行具體服務鏈,記為SC={AS1,AS2,…,ASm},表示每一個服務組合SC由m個AS組成,而每一個AS由k個功能相同的候選CS組成,每一個CS有nq個QoS屬性{QoSn1,QoSn2,…,QoSnq}。
服務質量(QoS):是Web服務的一組非功能特性,包括響應時間、吞吐量、可靠性、可用性、安全性、真實度等。本文主要考慮Web服務的5種QoS屬性,分別為執行時間T、執行費用C、信譽度Rep、可靠性Rel和可用性Ava。這也是目前較常用和具有代表性的QoS屬性。
QoS全局最優Web服務選擇就是在Web服務組合中,對各個抽象服務相對應的候選服務集中分別選擇出一個具體服務,形成一條可執行的服務鏈,使得服務鏈滿足QoS約束的前提下,整體的QoS達到最優[16]。將服務組合中基于QoS的服務選擇問題定義如下模型,如圖1所示。

圖1 服務組合
服務組合(SC)由AS1,AS2,…,ASm,m個抽象服務組成,而每個AS由h個候選功能相同而非功能屬性不同的CS組成,表示為ASm={CSm1,CSm2,…,CSmh},每一個CS有nq個服務質量屬性QoSn1,QoSn2,…,QoSnq,那么SC={CS1j,CS2j,…,CSmj}(j=1,2,…,h)表示滿足用戶需求的其中一個服務組合。服務組合就是在每一個抽象服務中選出一個具體服務,并且滿足整體QoS屬性達到最優。對應于上述服務組合圖,QoS全局最優Web服務選擇問題可轉化為一個求從S到D的帶QoS約束條件下的多目標最優路徑問題,則一個帶QoS約束的多目標服務組合優化模型形式化描述可表示如下:
(1)
其中,T(sc)為服務組合執行花費的總時間,C(sc)為服務組合執行花費的總成本,T(sc)和C(sc)作為2個性能評價準則,Rep(sc)表示為服務組合執行的信譽度,Rel(sc)表示為服務組合執行的可靠性,Ava(sc)表示為服務組合執行的可用性,Rep(sc)、Rel(sc)和Ava(sc)作為3個約束條件。
GSO通過模擬自然界螢火蟲求偶或覓食行為,聚集在一個或多個點,該點即為最優解。GSO算法主要包含4個階段,即螢火蟲初始化、螢光素更新、位置更新和決策半徑更新[17]。算法流程如下:
步驟1初始化。在可行域中隨機生成n個螢火蟲,初始化每個螢火蟲的螢光素l0、動態決策域r0、感知域rs、移動步長S、鄰域閾值nt、螢光素消失率ρ、螢光素更新率γ、動態決策域更新率β、最大迭代次數Tmax。
步驟2螢光素更新。對于極小值問題按式(2)進行更新:
li(t)=(1-ρ)li(t-1)+γ1/f(xi(t))
(2)
其中,f(xi(t))表示螢火蟲i在t時刻所在位置的目標函數值,li(t)表示螢火蟲i在t時刻的螢光素值。

Ni(t)={j:‖xj(t)-xi(t)‖ (3) (4) (5) 步驟4按式(6)更新決策半徑: β(nt-|Ni(t)|))) (6) 其中,|Ni(t)|為鄰域集內的螢火蟲數量。 MRDGSO運用云計算的MapReduce編程模式[18]將離散螢火蟲群優化算法并行化,設計出離散螢火蟲群優化算法、Map函數和Reduce函數,并針對服務組合優化問題,重新定義了個體的編碼、距離計算、目標函數、改進位置移動方式。借鑒分群分治的思想,融入到MRDGSO算法中,實現云環境下小規模多種群[19]并行計算,改善算法搜索速度慢和易于陷入局部最優的缺點,提高求解效率和對海量數據的處理能力。MRDGSO融合分群分治思想的執行過程如圖2所示。 圖2 MRDGSO執行過程 文獻[20]針對多模態函數提出了基于MapReduce的螢火蟲群優化算法,改善了搜索計算耗時和大規模問題求解效率低的缺點。本文進一步優化,將分群分治思想融入到改進的DGSO算法中,具有快速和高效地求解高維海量數據的能力。 MRDGSO主要分為4個階段,即初始化階段、分群搜索階段、優良解保留階段和合并搜索階段。 步驟1在初始化階段創建一個初始的螢火蟲群,在給定的搜索空間內采用空間分割法[21]隨機生成m維的初始位置Xi,并對目標函數J、螢光素L0和決策半徑Rd0進行初始化,最后將所有螢火蟲平均分配在不同的種群中,以螢火蟲位置信息、目標函數信息、螢光素信息、決策半徑信息和種群信息組成的螢火蟲結構體形式進行存儲,螢火蟲結構體形式如圖3所示。其中,K表示螢火蟲群的種群編號,i表示螢火蟲編號。最后在給定的Web服務集合中計算出理想點T*、C*。 圖3螢火蟲結構體 步驟2在分群搜索階段應用Map函數分別對不同的種群用DGSO算法獨立搜索,并行螢火蟲算法中最耗時的部分——螢火蟲之間的距離計算和鄰域搜索,應用Reduce函數來更新螢火蟲的螢光素、目標函數,并保存種群內的最優解,最后將更新后的螢火蟲以結構體形式作為輸出結果,作為下一代Map函數的輸入,反復循環迭代,直至所有種群收斂或滿足閾值。 步驟3在優良解保留階段保留K個種群的優良解。在合并整個可行域的解時,通過控制算法的感知域Rs來控制螢火蟲的飛行范圍,從而實現在不同種群之間的信息共享。 步驟4在合并搜索階段將保留下來的優良解作為新的螢火蟲群初始位置,應用MapReduce計算模型搜索全局最優解,直至種群收斂或滿足閾值。 文獻[12]中的離散螢火蟲群優化算法在求解離散組合優化問題時,簡單、易實現而且魯棒性強。應用DGSO解決服務組合問題的關鍵是解向量構造和初始化、螢火蟲個體間距離計算、目標函數構造、螢火蟲個體位置更新和非可行解處理。 1)解向量構造和初始化。本文基于符號的編碼,將每只螢火蟲的序列編碼看作一個組合服務,序列編碼中的每個元素對應于服務候選集中的一個具體服務編號,其解向量編碼表示為:Xi=(Xi1,Xi2,…,Xik),Xik∈[1,Hk]。其中,Xi表示第i只螢火蟲,不同的螢火蟲表示不同的服務組合,Xik表示第i只螢火蟲在第k個服務類下的具體服務編號,取值為區間[1,Hk]上的整數。在MapReduce模式下的螢火蟲結構體為:Gi=(Xi,J(Xi),Li,Rdi,Ki),其信息包含基本的螢火蟲位置Xi、目標函數J(Xi)、螢光素Li、決策半徑Rdi和種群編號Ki。初始解采用文獻[21]中的區間分割法生成,在解空間上均勻分布,保證隨機產生的各個解向量具有差別性并且滿足QoS多約束條件,以避免陷入局部最優,增強了全局搜索的能力。 2)個體間距離計算公式。螢火蟲個體間的距離由維度間距離和維度內距離兩部分組成,由維度間距離引導維度內距離,使得相同的維度數量越多,距離越小,其次在相同的維度數量情況下,維度內距離越小,則距離越小。設個體i、j在第t次迭代的位置編碼分別為序列xi(t)=(xi1,xi2,…,xik)和xj(t)=(xj1,xj2,…,xjk),則個體i、j在第t次迭代的距離計算公式定義為: (7) (8) (9) 其中,dij(t,k)表示xj(t,k)-xi(t,k),1/m是維度引導系數,Hk是第k維度上的取值上限,也指在服務組合上第k個抽象服務的候選服務數量,C為常數,表示距離系數。由式(9)可知dij(t)∈[0,C],個體i、j之間的距離滿足對稱性,即dij=dji。參數C取值太大或者太小都不利于鄰域集更新。 3)目標函數構造。本文將多目標問題轉化為單目標優化問題來求解全局QoS最優,求得的最優解作為多目標的最優解,采用TOPSIS法構造目標函數。 (10) 其中,f+(k)表示為第k個抽象服務的QoS理想解。 對于約束條件下的單目標求最小化問題則表示為: f+=min{f(m)|R(m)≥R0,k∈[1,m]} 對于約束條件下的單目標求最大化問題則表示為: f+=max{f(m)|R(m)≥R0,k∈[1,m]} 4)螢火蟲個體位置更新。對于求解離散組合優化問題,DGSO算法是在各維上相同位置則保持不變,不同位置則以一定的概率選擇更新公式進行更新,從而實現整個位置的更新。具體更新公式如下: xik(t+1) (11) 5)非可行解處理。在每次迭代過程中,某些解向量有可能不滿足于約束條件或者偏離可行解域,成為非可行解。在進入下一次迭代之前,丟棄本次迭代中所有非可行解,采用上述區間分割法隨機產生可行解替換非可行解,并且重新初始化其決策半徑,從而提高搜索效率和保持種群多樣性。 Map函數的任務是分別對k個種群內的個體螢火蟲i在其各自的種群內獨自搜索,將螢火蟲最耗時的鄰域搜索和位置更新并行化,得到新位置的個體螢火蟲i,同時更新移動后的決策半徑。Map函數輸出的 函數1MRDGSO的Map函數 Function Map(Key,value) 1.Ki←key,Ni←? 2.Xi,J(Xi),Li,Rdi,Ki←getInfo(value) 3.Temp←getTempSwarm(distributedCache) //HDFS Distributed Cache 4.for each j∈Temp do 5.Xj,J(Xj),Lj,Rdj,Kj←getInfo(Temp) 6.dij←getDistance(Xi, Xj)// using Equation (9) 7. if (dij< Rdiand Li< Ljand Ki= Kj) then Ni←Ni∪j // using Equation (3) 8.end for 9.if (|Ni|>0) then 10. for each j∈Nido 11. Pij←getProbability(Li,Lj) 12. end for 13.end if 14.Xi←getBestNeighbor(Pij) 15.Xnew←getNewX(Xi,Xj)//using Equation (11) 16.Rdnew←getNewRd(Rdi,| Ni|) // using Equation (6) 17.Glowwormnew←setInfo(Xnew, J(Xi), Li, Rdnew) 18.Emit(Ki, Glowwormnew) End Reduce函數的任務是對Map產生的新位置的螢火蟲i更新螢光素,并根據QoS屬性值利用理想點法更新螢火蟲的目標函數值,選出當前種群內最優的服務組合,保存當前種群內螢火蟲的最優解。Reduce函數輸出的 函數2MRDGSO的Reduce函數 Function Reduce(key,valueList) 1.K←key;Glowwormbest←? ; 2.for each j∈valueList 3. Xj,J(Xj),Lj,Rdj,Kj←getInfo(valueList) 4. Jnew(Xj)←getNewJ(Xj)//using Equation (10) 5. Lnew←getNewL(Lj, Jnew(Xj)) //using Equation (2) 6. Glowwormnew←setInfo(Xj, Jnew(Xj), Lnew, Rdj) 7. Emit(K, Glowwormnew) 8.end for End 設螢火蟲總數目為n,種群數為k,有效迭代次數為Titer,Web服務總規模為N,抽象服務的屬性個數為m。則算法時間復雜度分析如下: 1)第1階段初始化解的過程時間復雜度為O(n+N)。 2)一次迭代中,第2階段Map函數的總時間復雜度為O(mn2/k)。 3)一次迭代中,第2階段Reduce函數的總時間復雜度為O(n)。 4)第3階段保留種群優良解過程的總時間復雜度為O(n2/k)。 5)一次迭代中,第4階段Map函數的總時間復雜度為O(mk2)。 6)一次迭代中,第4階段Reduce函數的總時間復雜度為O(k)。 故迭代Titer次的算法時間復雜度為: 本文實驗硬件環境:Inter Core i5處理器;內存為4 GB;64位Linux操作系統;3臺VMware。實驗所需的軟件包括Centos 6.5、Hadoop-0.20.0、JDK1.7.0、Eclipse4.5。將其中1臺主機節點作為master,其他2臺主機節點作為slave,搭建hadoop集群。根據文獻[12]中建議的參數,并結合本文多次實驗,將MRDGSO參數設置選定如表1所示。 表1 DGSO參數設置 此外,式(8)、式(10)分別取值為C=20,p1=0.05,p2=0.95。 本文的實驗測試數據參照文獻[8]中隨機方式生成各具體服務CS的QoS值,QoS的取值范圍為:0 表2 各組不同規模的測試數據 4.2.1 可行性和有效性分析 為了驗證本文算法的可行性和有效性,引入了文獻[2]中的基于粒子群進化的服務選擇算法(PSO-GODSS)、文獻[20]中的MRGSO算法和傳統的DGSO進行比較。圖4給出了PSO-GODSS、MRGSO、DGSO、MRDGSO在基于上文所述的QoS評價指標上的實驗結果,并且采用G1組規模下對算法性能進行測試,發現在該G1組規模下迭代第30次之前,MRDGSO、MRGSO和DGSO算法前期收斂速度略快于PSO-GODSS,而迭代第45次時DGSO算法陷入局部最優,迭代第84次時MRGSO算法陷入局部最優,迭代第100次時PSO-GODSS算法陷入局部最優,MRDGSO算法在第315次達到全局最優解,其全局搜索能力略優于其他算法。圖5給出了上述算法在G2組規模下對算法性能的測試結果,發現在較大規模服務下MRDGSO算法的收斂速度和全局搜索能力明顯優于DGSO和PSO-GODSS算法,而在全局搜索能力上優于MRGSO算法。 圖4 在G1組下的全局最優收斂過程 圖5 在G2組下全局最優收斂過程 表3給出了MRPSO、DGSO、MRDGSO、MRGSO算法分別在不同規模下求得的全局最優解及其所消耗的時間結果,其中MRPSO是上述PSO-GODSS在MapReduce框架下實現的并行化,可以看出MRDGSO的全局搜索能力表現優秀,始終優于DGSO和MPRPSO。而在G1、G2和G3數據,并行化的MRDGSO、MRGSO和MRPSO運行時間比非并行的DGSO慢,而在大規模服務G4和G5下并行算法明顯比非并行的快。圖6展示了4種算法在不同服務規模下的運行時間走勢情況,從而體現了MRDGSO并行算法求解大規模問題的優勢,也進一步從執行效率上證明了MRDGSO算法的可行性和有效性。 表3 4種算法在不同服務規模下的全局最優解及其計算代價 圖6 3種算法在不同服務規模下的運行時間 綜合上述實驗表明,本文提出的MRDGSO算法在求解服務選擇問題上具有可行性和有效性,且其求解全局QoS最優在解的質量上和算法性能上均比PSO-GODSS、MRPSO、DGSO算法有顯著提升。 4.2.2 MRDGSO的擴展性及性能分析 圖7給出了抽象服務AS數量m分別為20、40、60、80、100,候選服務數H從100增加到500,并以100為步長,統計出MRDGSO算法進行服務選擇執行20次的平均計算時間開銷。實驗結果表明,候選服務數量的變化對算法時間沒有明顯的影響,而抽象服務規模越大,算法運行時間越長。圖8給出了候選服務數H固定為100,服務數量N從2 000增加到10 000,即抽象服務AS數量以步長20從20增加到100,統計出MRDGSO算法進行服務選擇執行20次的平均計算時間開銷。實驗結果表明,服務數量的增加或者抽象服務AS數量的增加,算法運行時間呈現增長的趨勢。說明該算法有良好的擴展性,而且能夠應對大規模服務集合的組合問題。 圖7 候選服務數量對本文算法性能的影響 圖8 服務數量對本文算法性能的影響 在云計算平臺Hadoop下,MRDGSO實現并行化的實際時間開銷除了平臺自身消耗以外,還跟所選取的mapper數量有關。設定每個節點最多可運行10個mapper,那么整個map的容量是10×3(節點)=30個。圖9給出了在給定10 000個變量的總規模下,隨著mapper數量的增加所消耗的時間逐漸減小,而超過30個mapper時,由于資源缺乏而無法容納更多的mapper,每次迭代所耗費的時間會增加。 圖9 在恒定規模問題下本文算法的可擴展性 圖10給出了在每個mapper設置為150個變量下,開始隨著mapper數量的增加逐漸上升,然后隨著mapper數量的增加不會改變迭代時間。在mapper數量達到30個后,map的容量飽和導致迭代時間略有增加。 圖10 在恒定負載下本文算法的可擴展性 綜合上述實驗,表明本文提出的MRDGSO并行化算法有良好的可擴展性,克服了離散螢火蟲群優化算法解決服務選擇問題計算效率低的困難,而且能夠處理大規模問題。但也存在以下不足:1)用Map函數并行計算螢火蟲鄰域集在計算耗時問題上可進一步優化;2)Reduce函數并不適應計算所有問題的評價函數;3)由于MapReduce模型的一些限制,并未表現出其線性擴展性。 4.2.3 參數分析 圖11給出了參數n和k對MRDGSO算法的影響結果,展示了在G1組規模和螢火蟲總數n分別為500、1 000和1 500的種群規模下,MRDGSO分成種群k與n之間的關系。從圖中可以看出,在一定的螢火蟲群體規模下,隨著分成種群k數量的不斷增加,全局最優搜索能力先是逐漸增強,當k達到一定值后又逐漸降低;當n=500時,k在[15,30]范圍內全局搜索能力最強,當n=1 000時,k在[35,50]范圍內全局搜索能力最強,當n=1 500時,k在[60,80]范圍內全局搜索能力最強;滿足n/k∈[15,30]時,即每個種群的螢火蟲數量控制在[15,30]范圍內,全局搜索能力最強。 圖11 n和k對本文算法性能的影響 MRDGSO算法在求解服務選擇離散組合問題的關鍵在于p1和p2參數的取值,直接影響算法的收斂速度和全局搜索能力。圖12給出了參數p1和p2對MRDGSO算法的影響結果,展示了在G1服務規模下,不同的p1和p2取值對算法性能的影響。從圖中可以說明不同的參數p1和p2取值影響算法的收斂速度和全局搜索能力。當p1和p2取值為(0.05,0.95)時,MRDGSO收斂速度最快,全局搜索能力最強;當p1和p2取值為(0.15,0.85)時,MRDGSO收斂速度最慢,全局搜索能力最差;當p1和p2取值為(0.02,0.98)和(0.10,0.90)時,MRDGSO收斂速度較慢,全局搜索能力還未達到最強。 圖12 參數p1和p2對本文算法性能的影響 由式(9)中可知,2個螢火蟲個體之間的距離dij(t)∈[0,C],引入距離系數C,且設置為20,使得所有的螢火蟲個體之間的距離在[0,20]范圍內,而其感知半徑和決策半徑的大小直接引導著螢火蟲的搜索方向和最優解的質量。圖13給出了在G1服務規模下參數Rs對本文算法的影響。從圖中可以看出,感知半徑Rs=20時,全局搜索能力最強。圖14給出了在G1服務規模下,且Rs固定為20,參數Rd對本文算法的影響。從圖中可以看出,決策半徑Rd在[18,20]范圍內,求得的全局最優解質量較高,且當Rd=20時,全局搜索能力最強。綜合上述實驗,對參數感知半徑和初始決策半徑設置為Rs=Rd=20,p1和p2設置為p1=0.05,p2=0.95,n和k的設置為n/k∈[15,30]。 圖13 感知半徑對本文算法性能的影響 圖14 決策半徑對本文算法性能的影響 針對云計算下大規模服務組合中的QoS全局最優Web服務選擇問題,本文在云計算平臺下利用MapReduce計算模型實現了離散螢火蟲群優化算法并行化,提出了求解該問題的基于MapReduce的并行離散螢火蟲群優化算法。對傳統的DGSO算法進行了改進,設計了離散螢火蟲群優化算法、Map函數和Reduce函數,并將分群分治思想融入到算法中,避免算法過早陷入局部最優,加快算法收斂速度和提高算法的全局搜索能力。實驗結果表明,MRDGSO算法在服務選擇問題上得到了成功的應用,具有對高維和大規模問題的求解能力,表現出良好的擴展性。今后將針對MRDGSO算法存在的問題作進一步改進,使之應用到其他領域上,擴展算法的實際應用價值。 [1] 劉 旋,廖明潮.基于人工魚群算法的QoS全局最優Web服務選擇的研究[J].計算機應用與軟件,2013,30(8):87-90. [2] 康國勝,劉建勛,唐明董,等.QoS全局最優動態Web服務選擇算法[J].小型微型計算機系統,2013,34(1):73-76. [3] 倪志偉,吳 昊,尹道明,等.云和聲搜索算法及其在知識服務組合中的應用[J].計算機應用究,2013,30(3):806-809. [4] 劉書雷,劉云翔,張 帆,等.一種服務聚合中QoS全局最優服務動態選擇算法[J].軟件學報,2007,18(3):646-656. [5] 張成文.基于遺傳算法的具有全局QoS限制的Web服務選擇[D].北京:北京郵電大學,2007. [6] 范小芹,蔣昌俊,方賢文,等.基于離散微粒群算法的動態Web服務選擇[J].計算機研究與發展,2010,47(1):147-156. [7] ZENG Liangzhao,BENATALLAH B,DUMAS M,et al.Web Engineering:Quality Driven Web Service Composition[C]//Proceedings of World Wide Web Conference.New York,USA:ACM Press,2003:411-421. [8] 王會潁,倪志偉,伍章俊.基于MapReduce和多目標蟻群算法的多租戶服務定制算法[J].模式識別與人工智能,2014,27(12):1105-1116. [9] MCNABB A W,MONSON C K,SEPPI K D.Paralled PSO Using MapReduce[C]//Proceedings of the Congress on Evolutionary Computation.Singapore:[s.n.],2007:7-14. [10] KRISHNANAND K N,GHOSE D.Glowworm Swarm Based Optimization Algorithm for Multimodal Functions with Collective Robotics Applications[J].Multiagent & Grid Systems,2006,2(3):209-222. [11] KRISHNANAND K N,GHOSE D.Glowworm Swarm Optimization for Simultaneous Capture of Multiple Local Optima of Multimodal Functions[J].Swarm Intelligence,2009,3(2):87-124. [12] 周永權,黃正新,劉洪霞.求解TSP問題的離散型螢火蟲群優化算法[J].電子學報,2012,40(6):1164-1170. [13] 倪志偉,肖宏旺,伍章俊,等.基于改進離散型螢火蟲群優化算法和分形維數的屬性選擇方法[J].模式識別與人工智能,2013,26(12):1169-1178. [14] ALJARAH I,LUDWIG S A.A New Clustering Approach Based on Glowworm Swarm Optimization[C]//Proceedings of IEEE Congress on Evolutionary Computation.Washington D.C.,USA:IEEE Press,2013:2642-2649. [15] 龔小勇,朱慶生.支持QoS的Web服務選擇模型的研究與實現[J].計算機工程,2008,34(24):55-57. [16] 康國勝,劉建勛,唐明董,等.基于差異演化算法的QoS全局最優動態Web服務選擇[J].電信科學,2011,27(12):67-71. [17] 祝華正.螢火蟲群算法的改進及其應用[D].南寧:廣西民族大學,2011. [18] JIN C,VECCHIOLA C,BUYYA R.An Extension of MapReduce for Parallelizing Genetic Algorithms[C]//Proceedings of the 4th International Conference on Escience.Washington D.C.,USA:IEEE Press,2008:214-221. [19] 祝華正,何登旭.一種小規模多種群螢火蟲群優化算法[J].計算機工程與應用,2011,47(23):48-50. [20] ALJARAH I,LUDWIG S A.A MapReduce Based Glowworm Swarm Optimization Approach for Multimodal Functions[J].Swarm Intelligence,2013,8237:22-31. [21] ZHANG Kangli,CHEN Shouyuan,SHAO Zengzhen.The Improvement of Harmony Search Algorithm[J].Artificial Intelligence and Robotics Research,2015,4(4):32-39.3 求解服務選擇問題的MRDGSO算法
3.1 MRDGSO并行化設計


3.2 離散螢火蟲群優化求解方法

3.3 Map函數設計
3.4 Reduce函數設計
3.5 時間復雜度分析
4 實驗及結果分析
4.1 實驗設置


4.2 結果分析












5 結束語