陳 剛
(廣州華商學(xué)院數(shù)據(jù)科學(xué)學(xué)院 廣州 511300)
近年來,云計算技術(shù)發(fā)展迅速,云計算作為一種新型的分布式計算模型,其主要作用是進(jìn)行海量數(shù)據(jù)的儲存和計算,并能夠?qū)A繑?shù)據(jù)進(jìn)行大規(guī)模的分析處理。云計算以其高精確性、高延展性、高擴(kuò)展性和低成本的特點,可以有效滿足海量數(shù)據(jù)的計算需求。在Web計算環(huán)境的開發(fā)中,云計算技術(shù)能夠適應(yīng)Web計算具有的高開放性、高動態(tài)性以及高多變性的開發(fā)環(huán)境,以此保障云計算技術(shù)中云資源的有效分配,因此邊緣云資源的分配便成為了云計算領(lǐng)域的研究方向之一。
對此,一些學(xué)者進(jìn)行了相關(guān)研究,文獻(xiàn)[1]提出一種基于博弈論的數(shù)據(jù)中心私有云的云資源分配方法,采用博弈論的數(shù)學(xué)算法,分析云資源用戶占有的驅(qū)動動機(jī),得到用戶的資源使用特點,根據(jù)使用特點來進(jìn)行云資源的分配,但此分配方法存在資源浪費(fèi)和低效的問題。文獻(xiàn)[2]提出一種基于人工智能的云計算資源分配方法,建立云資源計算模型,在人工智能中加入蝙蝠算法,求解模型獲得全局最優(yōu)解,完成對云資源的分配,但此方法過度依賴于人工智能且成本較高,因此實際應(yīng)用價值不足。針對傳統(tǒng)方法存在的問題,提出了一種基于螢火蟲算法的邊緣云資源分配方法。
引入目標(biāo)函數(shù)適用度的概念完成邊緣云資源調(diào)度,目標(biāo)函數(shù)適用度公式如式(1)所示:
其中,f(m)表示得到的目標(biāo)函數(shù)適應(yīng)度;z表示檢測目標(biāo)集合數(shù)量;a表示數(shù)據(jù)閾值;p表示被檢測目標(biāo)集合。
通過比對目標(biāo)函數(shù)適應(yīng)度數(shù)值大小對云計算資源進(jìn)行加權(quán)處理,設(shè)定初始的調(diào)度資源數(shù)目,并規(guī)定最大迭代次數(shù),在迭代過程中對資源的個體完成編碼處理,通過編碼來判斷云資源數(shù)據(jù)所處的位置,并對其進(jìn)行數(shù)據(jù)值的計算,根據(jù)數(shù)據(jù)值計算結(jié)果輸出加權(quán)結(jié)果[3~4]。在實現(xiàn)加權(quán)處理后,可得到最優(yōu)適應(yīng)度數(shù)值,根據(jù)最優(yōu)適應(yīng)度數(shù)值建立調(diào)度模型。建立的邊緣云資源調(diào)度模型如圖1所示。
圖1 邊緣云資源調(diào)度模型
在云計算環(huán)境下,需要將任務(wù)映射到資源中,再由資源映射到相應(yīng)設(shè)備中,通過圖1 所示的調(diào)度模型進(jìn)行邊緣云資源的調(diào)度。邊緣云資源的調(diào)度模型采用五元組進(jìn)行描述:
其中,S為五元集合;T為邊緣云資源調(diào)度任務(wù)集合;V為得到的邊緣數(shù)據(jù)云資源集合;D為需要使用的物理設(shè)備集合;M為已經(jīng)確定資源與設(shè)備的對應(yīng)關(guān)系集合;C為映射方式集合。
關(guān)系集合M由云計算中心根據(jù)任務(wù)需求進(jìn)行分配,資源與任務(wù)之間的映射方式C則由云計算服務(wù)調(diào)度器決定,調(diào)度任務(wù)集合T內(nèi)部的邊緣云資源傳遞到物理設(shè)備集合D所花費(fèi)的時間為固定值。根據(jù)時間固定值建立矩陣,通過物理設(shè)備來完成時間矩陣的執(zhí)行,利用執(zhí)行矩陣確定任務(wù)集合,根據(jù)集合數(shù)據(jù)得到邊緣云資源的映射結(jié)果[5~6]。根據(jù)映射結(jié)果確定調(diào)度信息,結(jié)合時間矩陣分析云資源所處狀態(tài),在確定信息狀態(tài)滿足分配條件后,在調(diào)度模型上完成資源調(diào)度工作。
完成邊緣云資源的調(diào)度后,便可進(jìn)行邊緣云資源的分配。在云計算環(huán)境下,采用螢火蟲算法進(jìn)行位置尋優(yōu),從而完成邊緣云資源的分配。具體的工作原理為螢火蟲在聚集過程中,會主動向最優(yōu)解的方向聚集,由此可知,一個區(qū)域越亮,這個區(qū)域的優(yōu)先度越高,即可求得邊緣云資源分配的最優(yōu)值[7~8]?;谖灮鹣x算法的邊緣云資源分配流程如圖2 所示。
觀察圖2 可知,在邊緣云資源分配過程中,螢火蟲在完成初始化之后更新熒光值,根據(jù)熒光值可以判斷螢火蟲的移動位置,從而確定局部最優(yōu)范圍,在局部最優(yōu)范圍內(nèi)實現(xiàn)邊緣云資源分配,輸出分配結(jié)果。
圖2 邊緣云資源分配流程
在初始化階段,采用首次適應(yīng)算法將虛擬機(jī)中的邊緣云資源分配到物理設(shè)備中,通過順序法查找物理設(shè)備,將虛擬機(jī)依次安置到物理設(shè)備中,根據(jù)包簇劃分結(jié)果對物理設(shè)備進(jìn)行編碼,編碼結(jié)果如式(3)所示:
其中,M表示編碼結(jié)果;a表示被編碼的螢火蟲數(shù)值;F表示編碼規(guī)則。當(dāng)a=0 時,包簇的靜態(tài)能耗就是該包簇?zé)晒庵档某跏贾?,因此在初始化階段可以得出螢火蟲包簇的感知范圍[9~10]。
熒光素的更新就是熒光值改變的過程,采用螢火蟲算法尋找最優(yōu)解,根據(jù)螢火蟲算法的尋優(yōu)策略,建立目標(biāo)函數(shù)來確定最優(yōu)解的范圍。目標(biāo)函數(shù)可以顯示熒光蟲的動態(tài)漂移過程,因此通過包簇分化得到邊緣云資源分配的目標(biāo)函數(shù),以目標(biāo)函數(shù)為熒光素的濃度因子實現(xiàn)熒光素更新。
建立的目標(biāo)函數(shù)如式(4)所示:
其中,f表示目標(biāo)函數(shù);U表示邊緣云資源利用域;p表示螢火蟲集合簇;k表示邊緣云資源數(shù)量。
目標(biāo)函數(shù)與邊緣云資源利用域存在直接關(guān)系,根據(jù)式(4)可知,邊緣云資源利用域越大,該包簇的熒光值就越高[11~12]。
在螢火蟲移動階段,螢火蟲簇會成為螢火蟲包的鄰居,二者之間的映射關(guān)系可以描述為
其中,l為映射層數(shù);X為映射數(shù)據(jù)。
螢火蟲群體可劃分成n個子群體,在螢火蟲子群的熒光值更新后可以得到螢火蟲的最佳位置和最高熒光值,確定更新的位置后,計算螢火蟲值,分析是否滿足預(yù)定結(jié)果,若不滿足設(shè)定結(jié)果,則繼續(xù)進(jìn)行迭代更新,直至滿足預(yù)定結(jié)果為止。
根據(jù)待漂移包簇來確定螢火蟲的移動方向,分析移動概率,實現(xiàn)位置更新。螢火蟲的位置更新計算公式如式(6)所示:
其中,N表示建立的螢火蟲群體;i表示螢火蟲群體中的個體,其位置為(xi,yi);X(t)表示第t代的螢火蟲的位置;L表示該螢火蟲的值,螢火蟲值更新的計算公式為
采用螢火蟲算法中含有的混沌變量來對螢火蟲運(yùn)動的隨機(jī)性進(jìn)行計算,并對其隨機(jī)性計算結(jié)果進(jìn)行優(yōu)化搜索,增強(qiáng)螢火蟲算法的群體多樣性[13~15]。螢火蟲算法的全局搜索能力取決于迭代次數(shù),迭代次數(shù)越多,螢火蟲個體與其所在位置越接近,就會使螢火蟲個體之間的差異性降低。為了解決該問題,引入混沌映射概念,從而更好地實現(xiàn)混沌攪動,使分配效果更加均勻。采用螢火蟲算法進(jìn)行邊緣云資源分配,確定部分?jǐn)?shù)據(jù)包的最優(yōu)位置后,進(jìn)行最優(yōu)區(qū)域半徑的動態(tài)更新,根據(jù)螢火蟲算法計算出螢火蟲攜帶的熒光值,通過篩選不斷減小最優(yōu)區(qū)域半徑,最終得到最優(yōu)區(qū)域,該區(qū)域便是邊緣云資源分配的最佳方案。
為了驗證基于螢火蟲算法的邊緣云資源分配方法的實際應(yīng)用效果,進(jìn)行對比實驗。采用的實驗操作系統(tǒng)為Windows 10 系統(tǒng),在實驗過程中設(shè)定模擬數(shù)據(jù)中心,通過模擬數(shù)據(jù)中心確定用戶的動態(tài)變化狀態(tài)。
為確保實驗結(jié)果的準(zhǔn)確性,同時選用基于博弈論的云資源分配管理分析方法和基于人工智能技術(shù)的云計算資源分配方法進(jìn)行實驗對比。在實驗過程中保證任務(wù)數(shù)值為一致數(shù)值,同時設(shè)定資源閾值,防止由于數(shù)據(jù)不統(tǒng)一而出現(xiàn)的信息缺失。
設(shè)定云資源的數(shù)量為80,分析不同方法的收斂效果:觀察上圖可知,隨著迭代次數(shù)的增加,收斂值也在不斷減小,當(dāng)?shù)螖?shù)為800 次時,本文的分配方法的收斂值僅為0.7,而傳統(tǒng)人工智能分配方法的收斂值為1.0,博弈論分配方法的收斂值為1.3。由此可見,三種分配方法中,本文的方法的收斂效果最好,能夠在短時間內(nèi)完成收斂和尋優(yōu)。這是由于螢火蟲算法能夠在短時間內(nèi)分析個體的狀態(tài),在收斂過程中不會陷入局部最優(yōu)的問題,而傳統(tǒng)的分配方法在分配過程中由于難以對信息進(jìn)行調(diào)節(jié),因此會出現(xiàn)收斂速度過慢的問題,資源調(diào)度難以滿足用戶要求。
圖3 收斂效果實驗結(jié)果
資源在分配過程中會同時產(chǎn)生靜態(tài)能耗和動態(tài)能耗,分析三種方法的能耗,得到的實驗結(jié)果如圖4所示。
觀察圖4 可知,本文提出方法消耗的能耗始終低于傳統(tǒng)分配方法消耗的能耗?;诓┺恼摰姆峙浞椒ㄔ诜峙溥^程中需要引入大量信息參數(shù),這些信息參數(shù)導(dǎo)致隨機(jī)性過大,很難在短時間內(nèi)確定最優(yōu)解。基于人工智能技術(shù)的分配方法在分配過程中并未考慮能耗問題,設(shè)定約束條件確定最優(yōu)解,因此導(dǎo)致分配資源消耗過多。而基于螢火蟲算法的分配方法通過建立模型確定信息,尋找最優(yōu)目標(biāo),從而減少資源利用率。
圖4 耗能實驗結(jié)果
資源分配效率實驗結(jié)果如表1所示。
表1 資源分配效率實驗結(jié)果
根據(jù)表1 可知,螢火蟲群優(yōu)化的分配方法的資源分配效率高于傳統(tǒng)分配方法,分配效率提高了20%以上,分配能力更強(qiáng),能夠在短時間內(nèi)完成信息資源分配,從而更好地滿足用戶需求。
對于云計算領(lǐng)域的邊緣云資源分配,傳統(tǒng)方式采用的方式仍有缺陷,因此提出基于螢火蟲算法的邊緣云資源分配方法,彌補(bǔ)了傳統(tǒng)方式中的不足之處,并可應(yīng)用到實際操作中。為后續(xù)研究此方面的學(xué)者提供有關(guān)參考。