李 凡,王 超
(成都信息工程大學區塊鏈產業學院,四川 成都 610225)
移動邊緣計算是現階段能夠實現資源計算、存儲以及處理功能為一體的全新架構形式。該計算通常通過兩種方式實現:一種是將需要處理的資源放置至基站或各種無線通信設施中,利用蜂窩移動通信或無線通信,實現就近處理數據服務;第二種是通過終端設備自身存在的數據處理能力,例如手機等設備,利用端到端等通信技術,完成本地數據處理。該計算方法能夠有效降低服務響應時延,改善用戶處理數據的難題,還能夠緩解網絡帶寬以及電池容量壓力等。
區塊鏈技術最早是通過比特幣形式展現到人們面前。該技術通過去中心化的管理結構,實現數據加密以及數據處理等問題。對于資源分配來說,通過移動邊緣計算與區塊鏈相結合的形式,能夠全面、安全地實現資源的分配。有較多學者研究資源分配,例如翟玲等人研究云計算平臺下電子信息資源均衡分配算法,唐倫等人,研究基于異步優勢演員-評論家學習的服務功能鏈資源分配算法。以上幾種算法在實際應用中仍然存在系統能耗過高的問題。
因此,本文研究一種新的基于移動邊緣計算的區塊鏈資源分配算法。通過構建基于區塊鏈形式的資源管理結構,實現資源的去中心化管理,利用移動邊緣計算,構建多用戶異構蜂窩模型,并設計模型優化約束,采用蟻群算法獲取資源分配最優解,實現最佳資源分配。
由于區塊鏈中邊緣網絡資源自身存在計算資源不足以及電池容量不足難以進行高性能運算等問題,借助無線通信技術,將終端設備連接到移動邊緣計算(MEC)服務器中,以此為基礎,并結合上述去中心化管理后的資源,構建基于多用戶異構蜂窩的移動邊緣計算模型。
設計由一個以太坊主鏈和個以太坊側鏈構成的多用戶異構蜂窩網絡。在以太坊主鏈的計算范圍中,均勻存在個終端設備。設全部基站的集合為={,,…,},以太坊主鏈由描述。終端設備的集合由={,…,}描述。將每個服務器分別放置在每個以太坊側鏈中,使計算資源能夠供應至終端設備。在每個設備中,存在一個具有延遲敏感性且計算較為密集的計算任務,設計算的任務的大小為,并設需要的計算資源為,并將某段時延內需實現的計算任務通過描述。


(1)
式(1)中,表示設備,設備與以太坊主鏈或以太坊側鏈存在關聯,同時,設備與基站互相通信時的傳輸速率與功率均會因帶寬變化而變化,且當信道出現干擾時,也會對傳輸造成干擾。因此,為有效解決干擾,以太坊側鏈復用以太坊主鏈的頻譜資源,選取OFDMA實現設備與基站的通信。在此時,相同基站內的設備之間存在正交頻譜,以太坊側鏈與以太坊主鏈之間的頻譜同樣為正交。
若某一以太坊側鏈的區域范圍內不存在設備,則該設備的在以太坊主鏈上實現通信,兩者的無線通信數據傳輸速率如式(2)所示

(2)

可采用三種形式實現設備的計算任務:
1)通過本地計算資源對任務進行計算。


(3)


(4)
2)遷移至以太坊側鏈上的服務器進行處理


(5)
通過三部分實現設備將任務遷移到以太坊側鏈中處理的延遲。首先是上行鏈路傳輸時間,其次是任務計算時間,最終為下行鏈路傳輸時間。由此可知,從設備中將任務轉移至以太坊側鏈進行計算的任務完成延遲可通過式(6)表示

(6)
與該公式相應的能耗如式(7)所示

(7)
式(8)中,以太坊側鏈所采用的單位時鐘能耗由描述。
3)遷移至以太坊上主鏈的服務器進行處理
該遷移過程與遷移至以太坊側鏈過程較為類似。因此以,該過程的任務完成時延如式(8)所示

(8)

與該公式對應能耗可通過式(9)計算:

(9)
式(9)中,以太坊主鏈所采用的單位周期能耗由表示。
考慮以太坊主鏈和以太坊側鏈的計算資源約束、任務的時延約束,建立邊緣計算能耗遷移與資源分配聯合優化模型,如下所示:


(10)

(11)

(12)

(13)

(14)
其中,表示計算資源總容量。式(10)表示任務的時延約束;式(11)、式(13)約束每個設備,使該設備僅能選取一種計算形式對任務進行計算,分別為本地計算、遷移到以太坊側鏈或以太坊主鏈;式(12)是以太坊側鏈或以太坊主鏈的計算資源約束,由于上述公式屬于整數約束,因此對以上公式進行優化屬于NP難問題,若想尋取該問題的最優解,需要將問題轉化為蟻群算法學習模型,通過蟻群算法,對資源分配最優解進行尋取。
251 路徑構建
依據蟻群算法的理論,選取螞蟻“覓食”路徑的形成與更新信息素的過程為該算法的主要步驟。其中,路徑的形成通常是依據啟發信息,尋取到螞蟻由當前點移動到目的地的概率,之后挑選概率最高的點,將該點作為螞蟻轉移的下一目的地,以此為基礎,確定螞蟻逐步移動的路徑,以確認螞蟻整個移動的路徑。
通過式(15)對螞蟻移動概率進行計算

(15)

252 信息素更新


(16)
當全部路徑信息素都實現更新時,引入下一輪螞蟻,繼續進行新一輪循環。式(16)中,表示路線,為需求點數量,的情況下表示螞蟻經過,“0”情況下表示螞蟻不經過,表示點到點的距離,。
253 蟻群算法求解基本流程
依據蟻群算法的基本理論,本文將資源分配求解過程分為四部分:第一部分為初始化,依據現實情況設定需要的參數;第二部分是確認螞蟻群數目需求,將全部螞蟻分組,并進行編號;第三部分為依據需求點數量,對螞蟻進行隨機分配,使螞蟻的移動路徑能夠通過移動概率獲知;第四部分是在全部螞蟻都尋找到路徑后,對最優目標值進行計算,計算結束后對路徑中的信息素進行更新,更新完畢啟動下一輪循環,當循環達到一定次數后,得到資源分配最優解。
1)對每條線路中的信息素(,=1,2,…,),,,進行初始化。
2)對螞蟻進行分組,全部螞蟻分為組,在每組中存在只螞蟻,向資源存放區域放置全部螞蟻,即向位置派出資源分配小組。


5)若步驟4)內的全部螞蟻均返回至點,則執行步驟6),若未返回,則執行步驟4)。
6)求解式(11),獲取現階段最優解。
7)若現階段所設循環次數大于迭代次數,則對每條路徑中的信息素進行更新,并重新執行步驟2),若未大于,則執行步驟8)。
8)依次對比循環中的目標函數值,獲取全局最優解,實現區塊鏈資源分配。
通過Python對本文算法進行仿真,選取文獻[6]云計算平臺下電子信息資源均衡分配算法,文獻[7]基于異步優勢演員-評論家學習的服務功能鏈資源分配算法作為本文對比算法。
在單個移動終端的MEC服務器下,分析應用本文算法分配資源時,隨著MEC服務器運行時間的增加,MEC服務器的電池能量與電池容量的消耗情況,分析結果如圖1所示。

圖1 應用本文算法后電池消耗情況
根據圖1可知,隨著運行時間的增長,電池容量始終消耗為40mJ,并未隨著時間增長而產生波動,而MEC服務器運行時間處于0ms時,并未開始分配資源,因此電池能量消耗為0,當開始分配資源,電池能量的消耗由此上升,達到30mJ~40mJ之間,在之后的時間里,始終消耗電池能量均處于30mJ~40mJ之間,因此,應用本文算法,并未產生較大的電池消耗,能夠以較為節約電池能量的形式實現資源的分配。
分析采用三種算法對資源進行分配時在不同設備數量下的資源分配能耗,分析結果如圖2所示。

圖2 不同算法分配下的能耗變化情況
根據圖2可知,當設備數量逐漸上升,三種算法資源分配能耗也隨之增加,其中,文獻[7]算法的資源分配能耗在三種算法中保持最高,當設備數量達到150個時,能耗達到1600mJ以上,文獻[6]算法的資源分配能耗相對低于文獻[7]算法,但該算法的能耗會隨著設備數量的增加大幅度上升,且該算法資源分配下的能耗要高于本文算法,本文算法未出現資源分配能耗大幅度上升現象,且最高能耗不超過400mJ,因此,應用本文算法對資源進行分配時,并不會對MEC服務器造成太大負擔。
分析三種算法處于同一用戶數量時,隨著計算迭代次數的增加,不同算法地計算資源分配收斂狀態,分析結果如圖3所示。

圖3 三種算法的計算資源分配收斂性
根據圖3可知,當計算迭代次數逐漸增加,三種算法逐漸進行收斂,其中文獻[7]算法在迭代次數為50次時并未實現有效收斂,因此該算法的收斂性能最差,文獻[6]算法雖然能夠有效實現收斂,但本文算法的收斂情況依然高于該算法,本文算法在迭代次數為30次時,即能夠完整實現資源分配收斂,因此,本文算法能夠在有限迭代次數內實現收斂狀態。
當用戶數量分別處于50,100,150時,分析應用本文算法計算過程中,當移動邊緣的最大發射功率逐漸增長時,資源分配速率的變化情況,分析結果如圖4所示。

圖4 不同用戶數量下的資源分配速率
由圖4可知,當用戶數量增大,資源分配速率也隨之增大,但當最大發射功率為20dBm之后,速率開始逐漸下降,因此在功率為20dBm時,資源分配速率也停止增加,同時,用戶數為150名時,資源分配速率最高。
本文研究基于移動邊緣計算的區塊鏈資源分配算法,通過構建區塊鏈形式的數據管理結構,并結合移動邊緣計算,構建多用戶異構蜂窩移動邊緣計算模型,設計資源分配優化約束,依據優化約束模型,采用蟻群算法獲取全局最優解,實現資源分配。通過仿真形式驗證算法性能,得出該算法收斂狀態與系統能耗均要好于其它算法。未來可依據當前設計繼續優化,實現海量數據資源的分配。