楊 樂 李 萌 葉欣宇 孫恩昌 張延華
(*北京工業(yè)大學信息學部 北京 100124) (**先進信息網(wǎng)絡北京實驗室 北京 100124)
當前,工業(yè)互聯(lián)網(wǎng)的快速發(fā)展吸引了工業(yè)界和學術界的廣泛關注[1]。工業(yè)互聯(lián)網(wǎng)技術的應用可實現(xiàn)機器與機器[2]、人與機器的高效便捷的交互。多種類型的工業(yè)互聯(lián)網(wǎng)設備,又名機器類型通信設備(machine-type communication devices, MTCDs),被廣泛應用于多種工業(yè)領域中,包括環(huán)境監(jiān)測、制造業(yè)、視頻監(jiān)控以及智能網(wǎng)絡等。預計到2021年,將有近250億數(shù)量的工業(yè)互聯(lián)網(wǎng)設備接入網(wǎng)絡,用于收集和傳輸工業(yè)數(shù)據(jù)[3]。
在工業(yè)場景下[4],工業(yè)數(shù)據(jù)的安全性和可靠性至關重要。然而,由于MTCD分布極其廣泛以及交互數(shù)據(jù)種類多樣,數(shù)據(jù)的隱私性和安全性往往難以保證。另一方面,工業(yè)互聯(lián)網(wǎng)中能量資源和計算資源短缺明顯,因大多數(shù)MTCD在脫離人工控制狀態(tài)下進行工作,且為了延長設備工作壽命,此類設備僅裝配有限的電池供給和輕量的計算資源。因此,一些復雜繁重的計算任務難以在這些設備內(nèi)獨立完成。
針對存在于工業(yè)互聯(lián)網(wǎng)系統(tǒng)中的數(shù)據(jù)安全性問題,新興的區(qū)塊鏈技術被廣泛應用于工業(yè)領域[5]。區(qū)塊鏈最早是一種服務于比特幣的底層技術,用于記錄存儲比特幣的各類交易。相比于傳統(tǒng)的由第三方控制的中心化賬本,區(qū)塊鏈實質(zhì)上是一種擁有點對點網(wǎng)絡結構的分布式賬本,可有效保障數(shù)據(jù)的安全性和可靠性。然而,無論是以比特幣、以太坊為首的公鏈結構,還是應用拜占庭容錯共識機制的私鏈結構,都需要大量的計算資源用于挖礦和共識。因此,區(qū)塊鏈中計算的效率和穩(wěn)定性極為重要。
為應對設備、節(jié)點計算能耗過高、計算資源短缺的問題,計算任務卸載的方式可有效提高設備和節(jié)點的計算能力。通過將計算任務從設備卸載到服務器,不僅可明顯提升計算效率,還減少了設備的計算能耗。近年來,大量的研究工作聚焦于包含有中心云計算和移動邊緣計算[6-7](mobile edge computing, MEC)的混合數(shù)據(jù)計算模型[8]。其中,相比于中心化的云計算,分布式的MEC擁有低傳輸時延、低計算開銷以及低設備能耗等優(yōu)勢。更重要的是,分布式的計算卸載結構可支撐區(qū)塊鏈中共識節(jié)點的驗證計算過程[9]。因此,將區(qū)塊鏈和MEC整合至工業(yè)互聯(lián)網(wǎng)場景成為了當下一種新的研究發(fā)展方向[10]。對此,Zhang等人[11]提出了一種結合了區(qū)塊鏈和MEC技術的車載自組織網(wǎng)絡安全結構。他們應用區(qū)塊鏈保證數(shù)據(jù)的可追溯性,并借助MEC解決區(qū)塊鏈中的高維計算問題,既保障了數(shù)據(jù)的安全性,也提升了區(qū)塊鏈節(jié)點的驗證效率。Qiu等人[12]提出了一種計算卸載框架用于提升移動設備的計算能力。他們將設備中的挖礦任務和數(shù)據(jù)處理任務卸載至MEC服務器或云計算服務器,有效提升計算任務的處理效率。
近年來,針對工業(yè)互聯(lián)網(wǎng)系統(tǒng)高動態(tài)、多維度等特點,深度強化學習(deep reinforcement learning,DRL)逐漸成為受高度關注的優(yōu)化方法[13-15]。智能體agent按照所學習的策略對環(huán)境施加動作,并從中獲得即時獎勵。兩者交互過程持續(xù)進行,直到環(huán)境達到最終狀態(tài)。在此過程中,agent不斷學習和調(diào)整策略以獲得最大的長期累積收益。DRL中加入了深度神經(jīng)網(wǎng)絡結構對agent的動作進行估計,可更有效應對高維的狀態(tài)、動作問題。近年來,基于DRL方法對工業(yè)互聯(lián)網(wǎng)系統(tǒng)性能進行優(yōu)化的研究逐漸增加。Qiu等人[16]基于dueling deep Q-learning算法對區(qū)塊鏈架構下的工業(yè)互聯(lián)網(wǎng)系統(tǒng)吞吐量進行性能優(yōu)化,有效提升了系統(tǒng)中交易的處理效率。Feng等人[17]應用DRL算法,針對基于區(qū)塊鏈的工業(yè)互聯(lián)網(wǎng)系統(tǒng),聯(lián)合優(yōu)化了MEC系統(tǒng)的計算效率和區(qū)塊鏈系統(tǒng)的交易吞吐量。
盡管上述研究均結合區(qū)塊鏈和MEC技術對系統(tǒng)性能進行了不同程度的優(yōu)化,但在工業(yè)互聯(lián)網(wǎng)場景下仍將面臨一些潛在的問題和挑戰(zhàn)。例如,如何選擇計算任務的處理方式來平衡設備能耗和系統(tǒng)計算開銷。同時,在計算任務卸載過程中,考慮到計算服務器的計算資源和計算開銷,須選擇更適合的目標服務器處理計算任務。此外,由于區(qū)塊鏈技術的引入,設備能耗和計算負載的問題也將更加嚴峻。因此,在設計系統(tǒng)時均須仔細考慮以上問題。
針對上述問題和挑戰(zhàn),本文提出一種融合邊緣計算和區(qū)塊鏈技術的工業(yè)互聯(lián)網(wǎng)資源分配優(yōu)化方法。首先,聯(lián)合考慮工業(yè)互聯(lián)網(wǎng)場景下的控制器和計算服務器狀態(tài)。其次,動態(tài)調(diào)整卸載決策、區(qū)塊鏈的區(qū)塊尺寸和計算服務器的選擇。最后,通過設置狀態(tài)空間、動作空間和獎勵函數(shù),建立一個馬爾可夫決策過程(Markov decision process, MDP)用以描述此動態(tài)聯(lián)合優(yōu)化問題,并基于DRL方法進行求解,不僅有效減少設備計算能耗,還顯著降低系統(tǒng)的整體計算開銷,并提高數(shù)據(jù)共識效率。相比于已有相關研究,本文方法更適應高動態(tài)、多維度的工業(yè)互聯(lián)網(wǎng)場景,在設備能耗、系統(tǒng)開銷上可取得更好的優(yōu)化效果。
本文的結構安排如下,第1節(jié)介紹本文的系統(tǒng)模型及網(wǎng)絡場景;第2節(jié)將建立一個包含卸載決策、區(qū)塊尺寸調(diào)整和計算服務器選擇的聯(lián)合優(yōu)化問題;第3節(jié)基于DRL方法對所提優(yōu)化問題求解;第4節(jié)介紹仿真實驗環(huán)境和參數(shù),并根據(jù)仿真結果進行討論和分析;第5節(jié)是對本文工作的總結和展望。
如圖1所示,本文的系統(tǒng)模型包含3部分,分別為用戶層、控制器層和區(qū)塊鏈層,本章將對這3部分的模型詳細描述。
本文假設在所述網(wǎng)絡場景中存在u個小區(qū)。在每個小區(qū)中,都分布著大量的工業(yè)互聯(lián)網(wǎng)設備,與本地控制器連接。工作期間這些設備將收集的本地數(shù)據(jù)傳輸至本地控制器中,用于數(shù)據(jù)共識和記錄。以智能電表設備為例,各小區(qū)內(nèi)智能電表定時向其本地控制器傳輸耗電量數(shù)據(jù)。在每個時刻t={0,1,…,T-1},控制器系統(tǒng)指定一個控制器作為主控制器,接收各本地控制器的工業(yè)數(shù)據(jù),并對這些數(shù)據(jù)處理、打包,上傳到區(qū)塊鏈系統(tǒng)。
圖1 系統(tǒng)模型圖
在每個小區(qū)內(nèi),都包含一個本地控制器和一個部署于基站旁的本地MEC服務器。本地控制器不僅可通過基站收發(fā)數(shù)據(jù),還可對數(shù)據(jù)進行處理和打包。小區(qū)可由集合U={1,2,…,u}表示,并假設控制器與小區(qū)一一對應,表示為U*=U={1,2,…,u},控制器u在其關聯(lián)小區(qū)u收集本地工業(yè)數(shù)據(jù)。
此外,每個控制器均有獨立的能量狀態(tài)和算力狀態(tài),分別表示為G(t)={g1(t),g2(t),…,gu(t)}和C(t)={c1(t),c2(t),…,cu(t)}。本地MEC服務器則用于處理本地控制器卸載的計算任務。
在工作期間,每個本地控制器收集MTCD的不同類型工業(yè)數(shù)據(jù),且為節(jié)省控制器與區(qū)塊鏈系統(tǒng)間的數(shù)據(jù)傳輸損耗,各本地控制器將數(shù)據(jù)首先傳輸至主控制器。主控制器對數(shù)據(jù)處理、打包,并將打包好的數(shù)據(jù)作為一批交易傳輸至區(qū)塊鏈系統(tǒng)。其中,主控制器由此產(chǎn)生的計算任務既可在設備本地處理,也可卸載至本地MEC服務器處理,來提升處理效率并減少本地能耗。任務處理的能耗和計算開銷如下,若主控制器選擇在設備本地處理,時刻t時的處理能耗Ec(t)表示為
Ec(t)=zu·q(t)
(1)
其中,q(t)為時刻t時的計算任務復雜度,zu為與設備算力狀態(tài)相關的能耗系數(shù),表示為
zn=10-27·(cu)2
(2)
其中,cu表示控制器u的算力狀態(tài)。
若主控制器選擇卸載計算任務,其在時刻t產(chǎn)生的數(shù)據(jù)傳輸能耗Es(t)和由本地MEC服務器收取的計算開銷Ms(t)分別表示為
(3)
Ms(t)=ξ(t)+μ·q(t)
(4)
其中,d(t)表示時刻t時計算任務的數(shù)據(jù)量,pt為主控制器的傳輸功率,rcs表示控制器與本地MEC服務器間的數(shù)據(jù)傳輸速率,ξ(t) 和μ分別為本地MEC服務器的固定計算開銷和開銷系數(shù)。
將收集的數(shù)據(jù)處理、打包后,主控制器將此未驗證的區(qū)塊傳輸至區(qū)塊鏈系統(tǒng),其傳輸能耗En(t)表示為
(5)
其中,rcn為控制器與區(qū)塊鏈系統(tǒng)間的數(shù)據(jù)傳輸速率,n為區(qū)塊鏈節(jié)點數(shù)量。
綜上,在時刻t,若主控制器在設備本地執(zhí)行計算任務,則其產(chǎn)生的總能耗E(t)和服務器收取的計算開銷Mc(t)分別為
E(t)=Ec(t)+En(t)
(6)
Mc(t)=0
(7)
相反,若主控制器將計算任務卸載至本地MEC服務器,則其產(chǎn)生的總能耗E(t)和服務器收取的計算開銷Mc(t)分別為
E(t)=Es(t)+En(t)
(8)
Mc(t)=Ms(t)
(9)
在區(qū)塊鏈系統(tǒng)中,存在n個共識節(jié)點,由集合N={1, 2,…,n}表示。這些節(jié)點負責驗證來自主控制器發(fā)送的交易,并將已驗證的區(qū)塊添加至區(qū)塊鏈。
(1) 共識機制。本文的區(qū)塊鏈共識機制應用了實用型拜占庭容錯機制(practical Byzantine fault tolerance, PBFT),可在被攻擊節(jié)點數(shù)量低于總節(jié)點數(shù)量三分之一的情況下保證系統(tǒng)的正常運行。如圖2所示,PBFT的共識過程可分為請求、預準備、準備、確認和回復5個階段,具體過程如下。
圖2 PBFT工作流程
第1步,主控制器向區(qū)塊鏈系統(tǒng)發(fā)送數(shù)據(jù)共識請求和已打包的未驗證區(qū)塊,并由區(qū)塊鏈系統(tǒng)隨機分配一個主節(jié)點,負責驗證區(qū)塊的相關信息。具體地,主節(jié)點依次驗證區(qū)塊的簽名和消息身份驗證碼(message authentication code, MAC),若以上信息驗證通過,主節(jié)點將繼續(xù)驗證區(qū)塊中每個交易的簽名和MAC。本文假設節(jié)點驗證一個簽名及生成/驗證一個MAC所需的計算輪數(shù)分別為θ和α。
因此,在請求階段,主節(jié)點所需的計算輪數(shù)為
(10)
其中,b(t)為時刻t時區(qū)塊中交易的總量,h為交易的平均尺寸。
第2步,主節(jié)點生成并發(fā)送一個MAC至系統(tǒng)中各從節(jié)點。各從節(jié)點將驗證此MAC,驗證通過后再驗證區(qū)塊中各交易的簽名和MAC。因此,在預準備階段,主節(jié)點和從節(jié)點所需的計算輪數(shù)分別為
c2p(t)=(n-1)·α
(11)
(12)
其中,g為由主控制器發(fā)送的正確交易的比例。
第3步,驗證通過的從節(jié)點均生成并發(fā)送一個MAC至所有其余節(jié)點,證實其成功完成上一步驗證過程。每個節(jié)點均收到并驗證n-1個來自其余節(jié)點發(fā)送的MAC。當驗證通過的節(jié)點數(shù)量多于2f(f=(n-1)/3)時,下一階段過程才能進行。因此,在準備階段,主節(jié)點和從節(jié)點所需的計算輪數(shù)分別為
c3p(t)=2f·α
(13)
c3r(t)=(n-1+2f)·α
(14)
第4步,收到超過2f數(shù)量正確驗證消息的節(jié)點再次向所有其余節(jié)點發(fā)送一個MAC,證明其完成了上一步驗證。與此同時,每個節(jié)點也再次對這些MAC進行驗證。在確認階段,所有節(jié)點所需的計算輪數(shù)均為
c4(t)=(n-1+2f)·α
(15)
第5步,所有收到超過2f數(shù)量有效確認信息的節(jié)點向主控制器發(fā)送回復消息。若正確的回復消息數(shù)量超過2f,則共識過程視為成功完成,生成的區(qū)塊順利被添加至區(qū)塊鏈,并向全網(wǎng)絡廣播。同時,生成區(qū)塊也根據(jù)區(qū)塊尺寸產(chǎn)生開銷,表示為
Mb(t)=ε·s(t)
(16)
其中,s(t)表示在時刻t生成的區(qū)塊尺寸,ε為描述區(qū)塊尺寸與區(qū)塊開銷的常系數(shù)。
(2) 服務器計算。在每一步驗證過程中,所有節(jié)點(包括主節(jié)點和從節(jié)點)都會驗證大量的簽名和MAC,由此產(chǎn)生了一批復雜繁重的計算任務。同時,在每次PBFT共識過程中還存在與總交易量相關的時限tl,若共識時延超出此時限,生成的區(qū)塊將無法及時添加至區(qū)塊鏈。因此,共識的效率至關重要。
為應對這些復雜繁重的計算任務,并滿足共識過程的時限要求,MEC服務器和云計算服務器被用于支持節(jié)點的共識過程,兩種服務器擁有不同的計算能力,并產(chǎn)生不同的計算開銷。此外,當區(qū)塊尺寸不足而導致多次共識過程時,服務器將產(chǎn)生額外的計算開銷。
根據(jù)每一階段所需計算輪數(shù),共識過程所需總計算輪數(shù)為
b(t)≤s(t) (17)
若總交易量大于區(qū)塊尺寸,則多次共識所需總計算輪數(shù)(本文假設最多為兩次共識)為
b(t)>s(t) (18)
因此,共識時延和共識計算開銷分別為
(19)
(20)
其中,tb為節(jié)點間的廣播時延,ti為區(qū)塊生成間隔。
據(jù)此,總開銷M(t)表示為
M(t)=Mc(t)+Mn(t)+Mb(t)
(21)
當共識時延Dn(t)小于共識時限tl,則可視為一次成功的共識過程,所生成的區(qū)塊被添加至區(qū)塊鏈,主控制器也將收到數(shù)據(jù)共識成功的消息。
綜上,本文設置W(t)表示時刻t時系統(tǒng)總能耗和總開銷之和,表示為
W(t)=ke·E(t)+km·M(t)
(22)
其中,ke和km分別為能耗和開銷的權重系數(shù),且滿足0≤ke≤1, 0≤km≤1和ke+km=1。
基于區(qū)塊鏈的工業(yè)互聯(lián)網(wǎng)系統(tǒng)存在高動態(tài)性、多維度性等特點。因此,本文通過構建一個離散馬爾可夫決策過程來描述此優(yōu)化問題,旨在聯(lián)合優(yōu)化設備能耗和系統(tǒng)計算開銷,提高共識效率。通過構建優(yōu)化問題的狀態(tài)空間、動作空間和獎勵函數(shù),基于深度強化學習的優(yōu)化方法對問題求解。
在每個決策時刻,智能體agent通過觀察環(huán)境狀態(tài),實時地學習經(jīng)驗并升級問題策略。結合本文優(yōu)化問題,agent須實時獲取各控制器和計算服務器的狀態(tài)。因此,本文定義時刻t時的狀態(tài)空間為
(23)
其中,G(t)={g1(t),g2(t),…,gu(t)}為所有控制器的能量狀態(tài)集合,γ(t)={γ1(t),γ2(t),…,γv(t)}和η(t)={η1(t),η2(t),…,ηv(t)}分別為服務器的計算資源狀態(tài)集合和計算開銷狀態(tài)集合,包含v-1個MEC服務器和1個云計算服務器。
為獲取最大長期收益,需動態(tài)調(diào)節(jié)系統(tǒng)的若干部分。本文設置的調(diào)節(jié)動作包含卸載決策動作ap(t),區(qū)塊尺寸調(diào)整動作ab(t)和服務器選擇動作as(t),在時刻t時的動作空間表示為
a(t)=[ap(t),ab(t),as(t)]
(24)
其中,ap(t)∈(0,1)為卸載決策,ap(t)=0表示本地處理,ap(t)=1表示卸載。ab(t)∈(1,2,…,w)為所選區(qū)塊尺寸等級,as(t)∈(1,2,…,v)為所選用于支持共識節(jié)點計算的服務器。
為降低設備能耗和系統(tǒng)計算開銷,并提高共識效率,本文據(jù)此構建即時獎勵函數(shù)為
(25)
其中,σ(t)為共識成功的額外基礎獎勵,k為系統(tǒng)總開銷的權重參數(shù)。
針對工業(yè)互聯(lián)網(wǎng)系統(tǒng)中控制器和服務器狀態(tài)的高動態(tài)性和多維度性的特點,并基于聯(lián)合優(yōu)化目標,本文采用深度強化學習方法對系統(tǒng)的資源分配進行優(yōu)化,以獲取最佳長期收益。
深度Q-learning(deep Q-learning, DQL)結構中包含一個用于近似動作-狀態(tài)值的深度神經(jīng)網(wǎng)絡層,和一個用于動態(tài)網(wǎng)絡更新和策略決策的在線深度Q網(wǎng)絡層。基于DQL方法,智能體agent與環(huán)境交互并獲取經(jīng)驗,最終根據(jù)收斂的值函數(shù)執(zhí)行智能策略。具體地,在時刻t,agent觀察環(huán)境狀態(tài)s(t),包含控制器能量狀態(tài)和服務器計算資源、計算開銷狀態(tài)。隨后,agent選擇并執(zhí)行動作a(t),包含卸載決策、區(qū)塊尺寸調(diào)整和服務器選擇。同時,環(huán)境反饋agent即時獎勵r(t),并跳轉(zhuǎn)至下一狀態(tài)s(t+1)。此過程循環(huán)進行,直至環(huán)境達到最終狀態(tài)sterminal。
由于DQL方法是一種基于值函數(shù)的優(yōu)化算法,在不同狀態(tài)下準確地評價動作尤為關鍵。當前,一種普遍用于評價動作優(yōu)劣的方法,稱為動作-狀態(tài)值Qπ(s,a),所示如下:
(27)
其中,Eπ[*]表示數(shù)學期望,γ∈(0,1)為獎勵折扣因子,rt+k+1為在時刻t+k+1執(zhí)行策略π獲得的獎勵。
據(jù)此,agent不斷通過下式迭代動作-狀態(tài)值,表達式為
Q(s,a)←Q(s,a)+α[r(s,a)
(28)
在所提優(yōu)化問題中,狀態(tài)空間和動作空間均復雜高維,難以探索到所有狀態(tài)以及獲取每一組動作-狀態(tài)值。而深度神經(jīng)網(wǎng)絡通過調(diào)整網(wǎng)絡中的參數(shù),具有從高維數(shù)據(jù)中獲取低維特征的能力。據(jù)此,本文應用深度神經(jīng)網(wǎng)絡生成近似值Q(s,a,θ)用以近似動作-狀態(tài)值Q(s,a)。agent將觀察到的環(huán)境特征輸入深度神經(jīng)網(wǎng)絡,隨后從網(wǎng)絡中獲取該環(huán)境狀態(tài)下所有動作的近似Q值作為網(wǎng)絡輸出。
DQL方法的工作流程如圖3所示,估計網(wǎng)絡輸出近似值Q(s,a,θ),并由損失函數(shù)L(θ)訓練網(wǎng)絡中參數(shù),通過調(diào)整網(wǎng)絡層的權重和偏置θ以最小化L(θ),從而達到反向訓練。損失函數(shù)L(θ)表達式為
-Q(s,a,θ))2]
(29)
圖3 DQL工作流程
然而,深度Q網(wǎng)絡在訓練中仍會存在不穩(wěn)定的情況,這有可能導致訓練效果不佳,甚至訓練失敗。針對此問題,本文增加了經(jīng)驗回放和固定目標網(wǎng)絡兩種措施。
(1) 經(jīng)驗回放。為打破經(jīng)驗學習的時間相關性,agent將探索經(jīng)驗
(2) 固定目標網(wǎng)絡。目標網(wǎng)絡和估計網(wǎng)絡擁有相同的網(wǎng)絡結構,但相比估計網(wǎng)絡中參數(shù)的實時更新,目標網(wǎng)絡將其網(wǎng)絡中參數(shù)暫時凍結,以消除估計網(wǎng)絡輸出的估計Q值和目標網(wǎng)絡輸出的目標Q值間的相關性。當經(jīng)過一定的訓練步數(shù)后,目標網(wǎng)絡將其參數(shù)與估計網(wǎng)絡中參數(shù)同步。
因此,改進的損失函數(shù)L(θ)表達式為
-Q(s,a,θ))2]
(30)
其中,θ-為目標網(wǎng)絡中的權重和偏置參數(shù)。
綜上,基于DQL的工業(yè)互聯(lián)網(wǎng)系統(tǒng)資源分配決策算法的具體工作流程如算法1所示。
算法1 基于DQL的工業(yè)互聯(lián)網(wǎng)系統(tǒng)資源分配決策算法1:初始化: 初始化估計網(wǎng)絡中的參數(shù)θ 初始化目標網(wǎng)絡中的參數(shù)θ- 初始化記憶庫容量M和樣本容量B 初始化貪婪系數(shù)ε2:for episode = 1,K do3:隨機重置控制器和服務器初始狀態(tài)sinitial,并使s(t)=sinitial4: while s(t)!=sterminaldo5: 根據(jù)概率ε隨機選擇動作a(t)6: 否則選擇指定動作a(t)=argmaxaQ(s(t), a,θ)7: 執(zhí)行動作a(t)并獲取即時獎勵r(t),觀察下一狀態(tài)s(t+1)8: 將經(jīng)驗
其中5~7行是agent與環(huán)境的交互過程;8~9行應用經(jīng)驗回放機制抽取訓練樣本;隨后,10~13行為估計網(wǎng)絡的訓練過程和目標網(wǎng)絡的同步過程;5和13行應用貪婪系數(shù)ε以平衡探索動作和偏好動作選擇。
本節(jié)首先介紹仿真實驗的環(huán)境和參數(shù),隨后展示并討論不同框架和不同方法下的相關仿真結果。
為更直觀評估本文所提方法,將對下列框架、方法進行仿真分析:(1) 無卸載決策框架,計算任務全部在控制器本地執(zhí)行;(2) 無區(qū)塊尺寸調(diào)整框架,生成的區(qū)塊尺寸固定;(3) 無服務器選擇框架,隨機挑選服務器支持節(jié)點的共識過程計算;(4) Q-learning方法,基于Q-learning算法優(yōu)化。
本文仿真實驗環(huán)境為Python3.6和廣泛用于部署機器學習算法的Tensorflow1.31.1環(huán)境。在網(wǎng)絡場景中,考慮存在6個小區(qū)對應6個本地控制器,以及3個用于支持節(jié)點共識過程計算的服務器,包括2個MEC服務器和1個云計算服務器。此外,在區(qū)塊鏈系統(tǒng)中部署有4個共識節(jié)點用于數(shù)據(jù)共識,場景中其他參數(shù)具體如表1所示。
表1 實驗參數(shù)設置
同時,本文將用于支持節(jié)點共識過程計算的MEC服務器和云計算服務器的計算資源狀態(tài)設置為4個等級,分別為很高、高、中等和低,其狀態(tài)轉(zhuǎn)移矩陣表示為
(31)
此外,支持節(jié)點共識過程計算的MEC服務器和云計算服務器的計算開銷狀態(tài)分為3個等級,分別為昂貴、普通和廉價,其狀態(tài)轉(zhuǎn)移矩陣表示為
(32)
圖4展示了不同方法優(yōu)化效果的收斂性比較。在圖中,隨著迭代次數(shù)的增加,各方法優(yōu)化曲線都在大約2 500次迭代后達到收斂,且相比于其他方法,本文所提方法優(yōu)化后可得到更高的總獎勵。主要原因是,合理的卸載決策和適當?shù)膮^(qū)塊尺寸有助于減少設備能耗和計算開銷,且選擇更高效廉價的服務器也可節(jié)省系統(tǒng)開銷。
圖4 不同框架下曲線收斂性對比
此外,圖5展示了本文所提出的DQL方法與Q-learning方法的優(yōu)化曲線收斂性比較。如圖所示,所提方法可達到更高的總獎勵并具有更穩(wěn)定的收斂性。其主要原因是,基于區(qū)塊鏈的工業(yè)互聯(lián)網(wǎng)系統(tǒng)中的狀態(tài)動態(tài)高維,Q-learning方法難以探索評估所有動作-狀態(tài)對,其不完整的探索使agent很難獲得最佳策略。相反,所提DQL方法通過深度神經(jīng)網(wǎng)絡評估不同狀態(tài)下動作優(yōu)劣,更加適應系統(tǒng)的高維復雜環(huán)境。因此,所提方法可取得更好的優(yōu)化效果。
圖5 本文方法和Q-learning方法曲線收斂性對比
圖6和圖7展示了在不同框架、方法優(yōu)化下,設備能耗與小區(qū)數(shù)量的關系對比圖。如圖所示,當小區(qū)數(shù)量增加時,設備能耗也隨之增加。同時,本文所提方法優(yōu)化的設備能耗在小區(qū)數(shù)量大于4時,均明顯低于其他方法。主要原因是,相比于其他方法,所提方法的卸載決策更合理,在平衡設備能耗和計算開銷后決策是否卸載計算任務,有效緩解了設備在面臨復雜計算任務時的能耗壓力。
圖6 不同框架下設備能耗與小區(qū)數(shù)量關系圖
圖7 不同方法下設備能耗與小區(qū)數(shù)量關系圖
圖8和圖9展示了不同框架、方法下計算開銷與小區(qū)數(shù)量的關系圖。在圖中,隨著小區(qū)數(shù)量增加,計算開銷也隨之增加,但本文所提方法下的計算開銷始終低于其他方法。主要原因是增加的計算任務量占有了更多的服務器計算資源,衍生出更多計算開銷,且為承載更多的交易量,調(diào)整后生成了更大尺寸的區(qū)塊。因此,計算開銷明顯增加。然而,本文方法適時地調(diào)整區(qū)塊尺寸以及恰當?shù)剡x擇更廉價高效的服務器,有效節(jié)省了額外的計算開銷。
圖8 不同框架下計算開銷與小區(qū)數(shù)量關系圖
圖9 不同方法下計算開銷與小區(qū)數(shù)量關系圖
圖10和圖11展示了不同框架、方法下系統(tǒng)能耗開銷和與小區(qū)數(shù)量的關系圖。如圖所示,在所有方法下,系統(tǒng)能耗開銷和均隨著小區(qū)數(shù)量的增加而增長。系統(tǒng)能耗開銷和包含設備能耗和計算開銷,由于存在對卸載決策、區(qū)塊尺寸調(diào)整和服務器選擇的聯(lián)合優(yōu)化,相比于已有方法,本文所提方法可取得更好效果。
圖10 不同框架下系統(tǒng)能耗開銷和與小區(qū)數(shù)量關系圖
圖11 不同方法下系統(tǒng)能耗開銷和與小區(qū)數(shù)量關系圖
本文針對基于區(qū)塊鏈的工業(yè)互聯(lián)網(wǎng)系統(tǒng),提出了一種設備能耗和系統(tǒng)計算開銷聯(lián)合優(yōu)化的決策方法。本文將移動邊緣計算和區(qū)塊鏈技術整合應用于工業(yè)互聯(lián)網(wǎng)場景中,聯(lián)合考慮控制器和服務器的狀態(tài)。同時,基于區(qū)塊鏈協(xié)議和計算服務器資源構建區(qū)塊鏈共識時延模型,在保證數(shù)據(jù)安全性的基礎上,提升了區(qū)塊鏈共識和數(shù)據(jù)處理的效率。本文將此優(yōu)化問題構造為馬爾可夫決策過程,并根據(jù)優(yōu)化場景的高動態(tài)、多維度的特點,采用更適合高維場景的深度強化學習方法予以建模求解。通過仿真結果證明,本文所提方法不僅具有更穩(wěn)定快速的收斂性,還能更有效地減少設備能耗,節(jié)省計算開銷,并提升區(qū)塊鏈共識效率。
未來的工作將在現(xiàn)有工作基礎上,考慮更多的區(qū)塊鏈共識協(xié)議,并關注工業(yè)互聯(lián)網(wǎng)中數(shù)據(jù)緩存等問題。