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