?

基于改進蟻群算法的Web 服務組合優化

2023-08-09 07:08裴毓
計算機應用文摘·觸控 2023年15期
關鍵詞:算法

摘 要:為解決基礎蟻群算法存在的前期搜索速度慢、后期容易陷入局部最優解的問題,針對服務組合的動態性、不穩定性以及非功能屬性限制等情況,提出基于改進蟻群算法的 Web 服務組合優化方法首先分別介紹基本蟻群算法和 L-I-ACO 改進蟻群算法,再將其應用到 Web 服務組合優化建模中,最后通過對比實驗測試兩種算法的性能。實驗結果表明,L-I-ACO 改進蟻群算法性能較好,它彌補了基礎蟻群算法的不足,提高了動態組合優化過程中的準確率和效率,更利于選取符合客戶要求的服務

關鍵詞:改進蟻群算法;Web 服務組合優化;動態服務組合;L-IACO 算法

中圖法分類號:TP393文獻標識碼:A

1 引言

動態服務組合技術是當前的研究熱點,在動態服務組合的整個流程中,需要選取符合用戶要求的服務,這涉及選取相同屬性的多個服務和組合服務。隨著提供的服務不斷增多,選取服務問題的范圍快速擴大,因此解決動態服務組合中的服務選取問題變得尤為重要[1~2] 。這種解決服務選取問題被稱為服務組合優化,是一個NP 難問題。由于Web 服務或許存在狀態不穩定、服務非功能屬性經常變化等情況,因此動態服務組合中的服務選取問題需要一種能夠動態適應各種服務狀態變化的最優算法[3] 。

目前,研究的一些主要方法包括貪心算法、遺傳算法、神經網算法等。其中,貪心算法簡單易用,但往往不能得到全局最優解;遺傳算法可以較好地處理復雜的組合優化問題,但計算量較大;神經網絡算法可以快速實現并具有適應性,但對服務的不確定性和動態性處理效果有限;傳統的蟻群算法有收斂速度慢和易于停滯等缺點,無法很好地解決組合服務優化中存在的多種非功能屬性約束的問題[4~6] 。因此,為解決上述問題,本文使用改進蟻群算法進行服務組合優化,其不僅性能良好,而且能應付Web 服務的動態特性。其特點是能適應動態服務優化,在非功能屬性值計算過程中可及時調整計算方式,而且需設參數少,操作簡單,優化速度快,結果準確性高。

2 基于改進蟻群算法的Web 服務組合優化

2.1 基本蟻群算法描述

蟻群算法(Ant Colony Optimization,ACO) 是由Dorigo 等在1991 年的第一屆歐洲人工生命會議上提出的一種隨機搜索算法,該算法是通過模擬大自然中螞蟻尋找食物的過程而得出的[7] 。蟻群算法是仿生優化算法的一種,其特點有魯棒性強、并行分布式計算,以及易與其他方法結合等。經過螞蟻之間互相配合、協調工作,在多個目標優化問題中找到最好的解決方式。該方法在動態組合規劃問題、車輛路徑問題和旅行商問題等方面已得到廣泛的應用[8] 。

采用蟻群算法處理Web 服務組合優化問題的主要方式是螞蟻的位移過程,用此算法計算Web 服務組合優化模型時,每當螞蟻路過一個抽象服務下的CS時都需要計算候選CS 的轉移概率,候選CS 指螞蟻所在位置的CS 和下一個AS 中間含有的全部CS。公式所示為該轉移概率計算方法:

2.2 L?I?ACO 算法的設計與實現

2.2.1 L?I?ACO 算法狀態轉移概率

當Web 服務組合需要解決多個非功能性屬性約束的問題時,隨著循環次數不斷增加,基本蟻群算法因其具有收斂速度慢、易于停滯的缺點,容易導致信息素在局限的少量路徑上停留,易出現循環停滯現象。這樣得到的處理結果只能算是局部優化,所以基本蟻群算法無法很好地解決這個問題[9] 。因此,本文研究了L?I?ACO 改進蟻群算法來解決Web 服務組合優化問題。

2.2.2 L?I?ACO 改進蟻群算法

一個抽象服務含有多個候選服務實例,如圖1 所示,多個候選服務存在于2 個節點中間。若優化處理每一個路徑,則是一個十分大的計算工程,大幅增加了組合優化問題的難度。但是,若努力縮小優化問題的范圍,將大范圍分解成小范圍,則可降低算法的尋優難度。

L?I?ACO 算法從預計算部分和隨機選取尋優部分兩個方面展開計算,預計算部分把近似同類屬性的服務分到一起,成為一個節點并增加限定要求,去掉屬性不相近的服務,以縮小搜索范圍。

給同類屬性分類時,可采用近似值匹配的方法。若把含有n 個非功能性屬性Q 的服務設為s,將代表這些屬性的量化值轉換成函數Q1(s),Q2(s),…,Qn(s),把含有m 個非功能性屬性Q 的服務設為s′,將代表這些屬性的量化值轉換成函數Q′1(s′),Q′2(s′),…Q′m(s′),若s 和s′服務屬性相似,則n≈m,Q1(s)≈Q′1(s′)…,因此可以計算這2 個服務的指標,如公式(6)所示:

C(s,s′)= Σ min(n,m)r =1 (Qr(s)-Q′r(s′))2 (6)

可以看出,若s 和s′相似,則C(s,s′)接近于0,因此可以判斷2 個服務的近似度。但此方法并不完善,若s 和s′的匹配度接近0,同時s′和s″的匹配度也接近0,則此時很難自動把該3 個服務規分為一類。這種狀況下,需考慮先把s′和s″分到一類,之后繼續分配其他服務,待計算好所有服務近似匹配分類后,若發現s″與某一類的大部分服務匹配度接近0,則可把s″分到這一類。

由于動態服務組合以及服務質量的諸多因素具有不確定性,因此對狀態轉移概率的路徑選取進行了改變,具體做法如下:首先,采用改變計算概率值或隨機的方式選取服務;其次,篩選出不滿足條件的服務,這時就可采用狀態轉移概率的方式,這一操作可縮小服務選擇范圍,降低計算難度,提高計算速度,詳細算法如下。

假如最大循環次數可用Ncmax 表示;螞蟻個數用M 表示;最優服務列表用Lij表示,其中i 和j 代表需要服務選擇分類的服務組合中的抽象服務,即Sij 中設t=0 代表初始化時間、Nc =0代表循環控制變量、k =0 代表螞蟻循環變量。

為解決服務組合優化問題,則需使式(19)中的5個目標函數都達到最小,服務組合優化后的解集便是得到的Pareto 最優解集。

3 實驗

本實驗在兩種情況下分別測試基本蟻群算法和L?I?ACO 改進蟻群算法的Web 服務組合優化的成功率,情況1 是任務節點數是20,服務數是48;情況2 是任務節點數是35,服務數是110。每種情況測試8 次。結果如圖2、圖3 所示。

通過分析圖2 和圖3 曲線可得:基本蟻群算法在服務數是48 時,隨著迭代次數的增加,成功率呈波動狀態,不穩定,且總體成功率都在0.7 以下。當服務數是110 時,曲線波動減少,但是成功率較低且一直沒有超過0.6,說明基本蟻群算法收斂速度慢,容易陷入局部最優解,無法高成功率地實現最終服務組合優化。L?I?ACO 改進蟻群算法性能相對較好,在服務數是48 和服務數是110 時,都能達到平均成功率90%以上,雖在迭代初期曲線稍有波動,但最后都達到平穩高度,證明本文研究的L?I?ACO 改進蟻群算法既彌補了基本蟻群算法的不足,又能大幅提高了Web 服務組合優化的成功率。

4 結束語

隨著互聯網技術的發展,網絡上涌現了大量種類繁多的Web 服務,但其中很大一部分Web 服務提供的功能是相互重疊的,并且這些服務的功能多數是小粒度的,難以充分滿足用戶需求。為解決這些問題,Web 服務組合技術應運而生。Web 服務組合將具有相同功能的Web 服務合并為集合,并根據用戶需求選擇組合多個簡單的Web 服務,以形成新的功能更強大的Web 服務。本文旨在提出一種高效方法,從眾多的Web 服務數據庫中,選擇出滿足用戶需求且滿足QoS 限制的Web 服務,進而組合成更優的Web 服務。本文通過對基本蟻群算法進行改進,提出了L?I?ACO 改進蟻群算法,既彌補了普通蟻群算法的不足,又能高效率、高準確率地選取滿足客戶需求的Web 服務組合。

參考文獻:

[1] 倪志偉,方清華,李蓉蓉,等.改進蟻群算法在基于服務質量的WEB 服務組合優化中的應用[J].計算機應用,2015,35(8):2238?2243+2279.

[2] 頡斌,楊揚,王潔瑩.基于MAPREDUCE 改進蟻群算法的WEB 服務組合優化[J].微型機與應用,2016,35(8):61?64.

[3] 陳宇鋒.改進蟻群算法在WEB 服務中應用與實現[D].長沙:湖南大學,2019.

[4] 曹騰飛,符云清,鐘明洋.融合遺傳蟻群算法的WEB 服務組合研究[J].計算機系統應用,2012,21(6):81?85.

[5] 承松,周井泉,常瑞云.混沌蟻群算法的WEB 服務組合優化研究[J].計算機技術與發展,2017,27(2):178?181+186.

[6] 夏亞梅,程渤,陳俊亮,等.基于改進蟻群算法的服務組合優化[J].計算機學報,2012,35(2):2270?2281.

[7] 謝琴.蟻群算法在WEB 日志挖掘中的研究與應用[D].重慶:重慶大學,2006.

[8] 馬文龍,王錚,趙燕偉.基于改進蟻群算法的制造云服務組合優化[J].計算機集成制造系統,2016,22(1):113?121.

[9] 承松.云計算環境下基于蟻群算法的WEB 服務組合研究[D].南京:南京郵電大學,2017.

[10] 李東星,陳喆,錢雙洋,等.改進蟻群算法及其在云服務組合優化中的應用研究[J].計算機應用與軟件,2017,34(3):13?20+26.

作者簡介:

裴毓( 1989—), 碩士, 助理工程師, 研究方向: 計算機網絡。

猜你喜歡
算法
基于MapReduce的改進Eclat算法
Travellng thg World Full—time for Rree
進位加法的兩種算法
基于CC2530的改進TPSN算法
基于BCH和HOG的Mean Shift跟蹤算法
基于增強隨機搜索的OECI-ELM算法
一種改進的整周模糊度去相關算法
一種抗CPS控制層欺騙攻擊的算法
Wiener核的快速提取算法
帶跳的非線性隨機延遲微分方程的Split-step算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合