王寶亮,彭 程,李 科
(天津大學 電氣自動化與信息工程學院,天津 300072)
隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,越來越多的環(huán)境需要提供實時檢測。無線傳感網(wǎng)絡(wireless sensor network,WSN)通過在布控范圍內(nèi)按需分布不同種類的傳感器節(jié)點,實現(xiàn)對環(huán)境信息的收集。由于環(huán)境的不確定性,節(jié)點部署后往往得不到進一步的能量供應,這就要求網(wǎng)絡有一定的自組織能力,避免能量黑洞的出現(xiàn)。
路由搜索問題屬于一種典型的NP-Hard問題,目前,解決這類問題更多的是使用元啟發(fā)算法[1]。國內(nèi)外眾多學者大多將焦點集中在遺傳算法(GA)[2]、和聲搜索算法(HS)、蟻群優(yōu)化算法[3](ACO)及粒子群優(yōu)化算法(PSO)[4]等等上。這些算法在解決實際問題時,往往針對不同的應用場景,結(jié)合具體的問題進行開發(fā)設計,沒有統(tǒng)一有效的解決方案。
本文基于以上研究背景,選擇和聲搜索算法作為基礎算法,提出了能有效延長網(wǎng)絡運行時長的路由搜索策略。該算法相比之前同類算法,更加側(cè)重提高WSN網(wǎng)絡使用過程中邊緣節(jié)點的參與度,在傳統(tǒng)HS算法的基礎上,結(jié)合全新的和聲記憶庫路由編碼方式,引入更為有效分段式目標函數(shù),同時在路由選擇后期加入節(jié)點移除策略和角度偏移方法,進一步提高WSN運行后期邊緣節(jié)點的使用頻率,一定程度上延長網(wǎng)絡的生命周期,可以獲得較好的能量均衡效果。
文獻[5]提出了一種基于能量效率的和聲搜索路由算法(EEHSBR),其規(guī)定了路由傳輸?shù)幕经h(huán)境和限制條件,并使用傳統(tǒng)的和聲搜索算法進行分析實現(xiàn),為HS算法的使用提供了一種全新的解決方案。文獻[6]在EEHSBR 算法的基礎上,更換了和聲記憶庫的編碼形式和路由的生成方式,同時刪除了部分冗余的參數(shù),引入新的目標函數(shù),提出一種IHSBEER算法。該算法總體來說兼顧了能量消耗和路徑長度,但在網(wǎng)絡使用后期,一味考慮路徑長度會使節(jié)點的剩余能量差距明顯,網(wǎng)絡運行期間過于依賴于主要節(jié)點,使其能量迅速降低。
經(jīng)典的HS算法具有較強的全局搜索能力,邏輯較為簡單,控制流程的參數(shù)較少[7],HMCR和PAR的配對使用可以解決大多數(shù)的問題。HS算法主要用于處理連續(xù)值的優(yōu)化問題,無論是和聲記憶庫(harmony memory,HM)的生成還是微調(diào)階段的處理,得到的值均為連續(xù)的。而路由的尋址問題上,節(jié)點分布是隨機的,路徑的選擇是離散的,每個節(jié)點擁有唯一的ID編碼[8]。無論是節(jié)點的選擇,還是路徑的選擇都是離散分布的問題。因此,針對WSN路由問題的特點,經(jīng)典的HS算法需要進行如下改進:
(1)新的路徑以路徑組Xi的形式保存在HM中
Xi=(s,x1,x2,x3,…d)
(1)
每條路徑的第一個值為源節(jié)點s,最后一個值為目的節(jié)點d(即sink節(jié)點),中間依次存放下一跳節(jié)點的信息。
(2)HM的維數(shù)不再統(tǒng)一為某一固定值,新路徑的長度允許不同,HM中存放著有限條由源節(jié)點到目的節(jié)點的通路集合
(2)
(3)根據(jù)新路徑的長度及其能耗情況設置相應的目標函數(shù)[9],生成的新路徑都需要經(jīng)過目標函數(shù)的判斷來決定是否可以使用。
(4)HMCR的取值不再固定,采用自適應的HMCR,避免引起早熟現(xiàn)象。
在這一節(jié)中,首先介紹了算法適用的系統(tǒng)模型,然后簡述信息傳遞過程中使用的能量傳輸模型[10];最后在經(jīng)典HS算法基礎上,詳細介紹本文提出的BTPHS算法。
本文算法在設計時,主要針對無后續(xù)能量補充的大范圍部署節(jié)點的使用環(huán)境。因此對傳感器節(jié)點的分布和使用情況做出如下約定:
(1)在M×M的有限區(qū)域內(nèi)隨機分布N個傳感器節(jié)點;
(2)傳感器節(jié)點確定后,不可隨意移動,不可中途充電,且各個節(jié)點的初始能量相同;
(3)sink節(jié)點回收所有監(jiān)測信息,具有不間斷的電源供應,同時還具有一定的計算能力與存儲空間,以便執(zhí)行復雜的路由選擇算法;
(4)各個節(jié)點間傳遞信息的過程均遵循能量傳輸模型;
(5)所有節(jié)點可檢測本身的剩余能量,并擁有唯一標識ID。
本文采用文獻[11]提供的近似能量模型來估計信息傳遞過程中的能量消耗。節(jié)點能耗主要受數(shù)據(jù)包長度、節(jié)點間距等主要因素的影響。假設在一個基本的無線信道中,發(fā)射機或接收機的能耗系數(shù)為Eelec,發(fā)射放大器的能耗系數(shù)為Eamp。通信能耗模型如圖1所示。
圖1 通信能耗模型
節(jié)點在工作時,信息收集、數(shù)據(jù)收發(fā)、熱量損耗等都會消耗能量,其中信息的傳輸所消耗的能量占據(jù)絕大多數(shù)。因此,在通信耗能模型中,只考慮通信過程中產(chǎn)生的能量損失。
通信過程中若將l比特數(shù)據(jù)傳送至d米處,節(jié)點發(fā)送能耗為
ETx(l,d)=Eelec·l+Eamp·l·d2
(3)
節(jié)點接收能耗為
ERx(l)=Eelec·l
(4)
兩節(jié)點間的能耗總和為
E(X)=2Eelec·l+Eamp·l·d2
(5)
如前所述,基于WSN的路由特性,新路徑的生成與和聲記憶庫的儲存形式都進行了相應的變化。為進一步平衡網(wǎng)絡運行過程中能量的分布問題,本小節(jié)提出了一種側(cè)重網(wǎng)絡運行后期能耗均衡的BTPHS算法。該算法主要有3點改進策略:交叉變異、角度偏移方法及節(jié)點移除策略和分段式目標函數(shù)。
2.3.1 交叉變異
為了使交叉變異操作更容易理解,本節(jié)給出如下定義:
在HM中存在兩條不同的路徑Xi、Xj,若兩個不同的無線傳感器節(jié)點u、v同時存在于Xi、Xj中,則稱節(jié)點u、v為一組扭轉(zhuǎn)節(jié)點。
HS算法執(zhí)行前期,搜索的范圍較廣,生成的路徑線路普遍偏長,算法執(zhí)行時間必然增長。這一改進策略在現(xiàn)有優(yōu)秀和聲的基礎上進一步生成新和聲,同時可以保證線路的多樣性。交叉變異環(huán)節(jié)交換HM中兩條已知線路的一部分,進而生成兩條新的線路。具體而言,首先確定一組扭轉(zhuǎn)節(jié)點;接著在兩條線路中分別選定扭轉(zhuǎn)節(jié)點間的線路段;然后交換線路段組成新的路由線路。
從圖2中可以找到HM里存在的兩條線路
圖2 交叉變異過程
(6)
首先,確定一組扭節(jié)點(18,24);選定兩條線路中扭轉(zhuǎn)節(jié)點間的路徑并進行交換,得到兩條全新的路徑
(7)
由該操作產(chǎn)生的新路徑不僅兼顧到HM中和聲的優(yōu)異性,同時不再進行算法的循環(huán)操作,縮短算法時間的同時,保障了新和聲的多樣性。
2.3.2 角度偏移方法和節(jié)點移除策略
節(jié)點部署后由自身的電池進行供電,存在嚴格的電量約束,為此在路由算法設計時,需要平衡網(wǎng)絡的能耗需求。特別是在網(wǎng)絡運行后期,關鍵節(jié)點不同于邊緣節(jié)點,參與多次的信息傳送任務,能量消耗較多。因此,BTPHS算法的主要思路是:提高循環(huán)后期邊緣節(jié)點的使用頻率,降低關鍵節(jié)點的曝光率。
文獻[12]提出了一種改進算法,該算法在整個網(wǎng)絡的運行階段中,下一跳節(jié)點的生成策略主要考慮了鄰居節(jié)點的剩余能量情況。因此,不均衡的能量分布僅僅體現(xiàn)在當前節(jié)點的鄰居節(jié)點中,沒有更好地體現(xiàn)全局能量的分布特點。為了考慮到網(wǎng)絡整體能量的影響,BTPHS算法根據(jù)網(wǎng)絡中實時最小能量Emin的大小,將整個網(wǎng)絡的生命周期分為3個階段,每個階段在使用HS算法進行下一跳節(jié)點選擇時,采取不同的節(jié)點選擇策略(網(wǎng)絡初始階段每個節(jié)點擁有的初始能量值均為E0)。
策略1:當Emin的值介于[0.3E0,E0]時,整個網(wǎng)絡的能量較為均衡,處于網(wǎng)絡運行前期階段,下一跳節(jié)點在選擇時,采用經(jīng)典的輪賭法進行。輪盤構成來源于鄰居節(jié)點當前能量在總能量中的比例。在此階段,該策略可以迅速識別當前網(wǎng)絡的主干道,便于后續(xù)的分支使用。
策略2:當Emin的值介于[0.1E0,0.3E0]時,網(wǎng)絡中能量開始出現(xiàn)一定程度的偏差,處于網(wǎng)絡運行中期階段,下一跳節(jié)點在選擇時,采用角度偏移方法。利用角度偏移法選擇節(jié)點i的下一跳的具體步驟如下:
首先確定源節(jié)點s和sink節(jié)點d的具體坐標(xs,ys)、(xd,yd),并生成一個指向節(jié)點d的主干向量D,D計算規(guī)則如下
(8)
統(tǒng)計節(jié)點i的所有鄰居節(jié)點的個數(shù)記作N0相應的坐標(xt,yt),組成坐標集;以節(jié)點i的坐標(xi,yi)為始,依次計算指向坐標Pt
Pt:((xt,xi),(yt,yi)),t=1,2,3,…,N0
(9)
計算N0個指向坐標Pt與主干向量D之間的夾角θ,θ值的大小由其對應的余弦函數(shù)值進行控制,其計算規(guī)則如下
(10)
在系統(tǒng)模型的前提下,節(jié)點的分布具有隨機性,故θ值也是隨機的。余弦函數(shù)值的大小與偏離角度是一一對應的關系,當偏離角度超過90°時,余弦函數(shù)值會出現(xiàn)負數(shù)的情況,此時,信息可能會造成回傳的情況。因此,需要終止此次偏移。主干向量方向上的節(jié)點用于傳輸信息的頻率較高,剩余能量普遍較低。BTPHS算法通過控制θ值的大小,干預下一跳節(jié)點的選擇方向,在下一跳節(jié)點選取時,偏離主干向量方向,增加邊緣節(jié)點的曝光率和參與度。
策略3:當Emin的值介于[0,0.1E0]時,網(wǎng)絡中能量差距已經(jīng)很大,處于網(wǎng)絡運行后期階段,下一跳節(jié)點在選擇時采用節(jié)點移除策略。該策略的基本思想如下:
網(wǎng)絡的容錯率在每一個時段都是不同的,并且每個階段都有可能因為評判機制的不同而造成更大的能量差距。網(wǎng)絡運行的截止標志為網(wǎng)絡中首次出現(xiàn)節(jié)點能量為0的時刻,因此,當下一跳節(jié)點瀕臨死亡時,BTPHS算法進行選擇性刪除。在下一輪選擇時,若節(jié)點p的當前能量值低于0.1E0,本算法將節(jié)點p進行暫時刪除,使其不進入下一次的選擇范圍[13]。刪除節(jié)點的個數(shù)同樣需要限制,刪除節(jié)點過多,會導致出現(xiàn)信息無法傳輸?shù)侥康墓?jié)點,因此,刪除節(jié)點的總數(shù)不能超過0.2N。
2.3.3 分段式目標函數(shù)
目標函數(shù)是整個BTPHS算法的最終評判目標,路徑選擇成功與否很大程度上取決于目標函數(shù)的篩選過程。目標函數(shù)在選擇時,需要衡量多個因素,來保證整個搜索過程向最優(yōu)解的方向逐步靠近[14]。列入衡量的因素包括:新路徑的長度L(即信息傳遞過程中途徑節(jié)點的個數(shù))、路徑的節(jié)點平均剩余能量E(X)、全局最小能量Emin等。不僅如此,針對網(wǎng)絡中不同階段的能量分布特點,目標函數(shù)也需要進行相應的變化,來保證整個網(wǎng)絡向良性方向發(fā)展。根據(jù)2.3.2節(jié)提到的3個節(jié)點選擇策略,BTPHS算法將目標函數(shù)分為3個不同的部分進行分段判別,如式(11)所示
(11)
在網(wǎng)絡運行前期,BTPHS算法主要側(cè)重于生成路徑長度短、能耗相對較少的路由路徑,盡快組成最優(yōu)和聲搜索庫;在網(wǎng)絡運行中期,部分節(jié)點能量損耗較為嚴重,BTPHS算法在選擇線路時,開始有意識地避開這些節(jié)點,生成的線路不再刻意要求長度最短,但依舊要保證整體網(wǎng)絡的能耗水平較低;在網(wǎng)絡運行后期,個別節(jié)點已經(jīng)處在能量耗盡的邊緣,生成新路徑的過程中,這些節(jié)點已經(jīng)被視為死亡節(jié)點,新路徑的長度必然會增加,此時,BTPHS算法再衡量新路徑標準時,不再考慮路徑長度L的因素。顯然,根據(jù)式(11)表述的數(shù)學意義,路徑長度越短、路徑平均剩余能量和網(wǎng)絡最小剩余能量越大,目標函數(shù)值越大,符合這些特征的路由方案越容易保留下來。
綜上,BTPHS算法的算法流程如下:
BTPHS算法:
輸入:節(jié)點分布坐標及能量信息
源節(jié)點s
目的節(jié)點d
輸出:當前最優(yōu)路徑R
初始化:HM HMCR R rand Tmax
(1)fort=1,2,3,…,Tmaxdo
(2)while路由線路未達到d
(3)ifrand (4)then下一跳節(jié)點從HM中選取 (5)else下一跳節(jié)點從鄰居節(jié)點中選取 (6)endif (7)ifEmin>0.3E0 (8) 下一跳采用輪賭法進行選取 (9)elseifEmin>0.1E0 (10) 下一跳采用角度偏倚法進行選取 (11)else下一跳采用節(jié)點去除法進行選取 (12)endif (13)endwhile (14)if新路徑Routing優(yōu)于HM中的任意一條 (15) 更新HM (16)endif (17)endfor (18)R←Routing (19)ReturnR 本節(jié)給出了BTPHS算法的仿真實驗結(jié)果。仿真軟件使用Matlab 2018a,運行設備為Mac mini 2014,2.6 GHz Intel Core i5,內(nèi)存為8 G。根據(jù)有效通訊半徑,隨機生成8個不同的節(jié)點分布場景。場景中的節(jié)點數(shù)量從10個依次遞增至80個,增量為10個節(jié)點。為驗證BTPHS算法的可行性,實驗部分引入兩種同樣基于和聲搜索算法的對比算法EEHSBR、IHSBEER進行比較。對于每個實驗場景,測試環(huán)節(jié)均使用兩個指標來評價算法的表現(xiàn):網(wǎng)絡壽命(即網(wǎng)絡中第一個節(jié)點死亡時發(fā)送信息的輪數(shù))和平均剩余能量(網(wǎng)絡中所有節(jié)點能量的平均值)。 為了更加全面驗證BTPHS算法的可行性,在數(shù)據(jù)傳輸環(huán)節(jié),本文模擬設計了兩種不同的發(fā)送形式:固定節(jié)點持續(xù)發(fā)送和全節(jié)點循環(huán)發(fā)送。 固定節(jié)點持續(xù)發(fā)送:所有傳感器節(jié)點擁有相同的初始能量,數(shù)據(jù)包均從某一固定節(jié)點發(fā)送至sink節(jié)點。 全節(jié)點循環(huán)發(fā)送:所有傳感器節(jié)點擁有相同的初始能量,每個傳感器節(jié)點定期向sink節(jié)點發(fā)送數(shù)據(jù)包。 相關參數(shù)見表1。實驗結(jié)果均為模擬進行20次得到的平均值。 表1 參數(shù)設置 本節(jié)實驗測試的內(nèi)容主要針對2.3.2節(jié)所提出的角度偏移及節(jié)點移除策略。在8個不同的節(jié)點分布場景中,測試算法在全節(jié)點循環(huán)發(fā)送過程中節(jié)點的活躍程度。節(jié)點活躍度反映了節(jié)點在WSN中的使用頻率,界定標準采用當前節(jié)點的剩余能量值。剩余能量越低,節(jié)點在網(wǎng)絡使用過程中消耗的能量越多,該節(jié)點的頻率越高,即節(jié)點的活躍度越高。本文選定3個不同的剩余能量閾值進行3組對比實驗,測試條件如下: 測試A:網(wǎng)絡死亡時,剩余能量不足E0的; 測試B:網(wǎng)絡死亡時,剩余能量不足0.9E0的; 測試C:網(wǎng)絡死亡時,剩余能量不足0.8E0的。 結(jié)果如圖3~圖5所示。角度偏移及節(jié)點移除策略的主要目的是盡可能多地利用邊緣節(jié)點進行傳輸。在WSN中,信息傳遞主要依賴于主干道上的節(jié)點,考慮到傳播時效,生存成本等因素,邊緣節(jié)點的使用很難完全替代主干道上的傳感器節(jié)點。測試A表示在整個網(wǎng)絡生存過程中,所有參與節(jié)點的個數(shù)情況,此時只要節(jié)點參與傳輸信息,即被統(tǒng)計在內(nèi)。 圖3 測試A下的節(jié)點活躍度 圖4 測試B下的節(jié)點活躍度 圖5 測試C下的節(jié)點活躍度 圖3可以看出,3種算法在節(jié)點數(shù)較少的環(huán)境下表現(xiàn)基本持平,當環(huán)境中的節(jié)點個數(shù)增多時,BTPHS算法調(diào)動的節(jié)點明顯增多。 圖4和圖5可看作邊緣節(jié)點的輕度、中度使用行為。剩余能量可以快速衡量出節(jié)點是否多次參與網(wǎng)絡傳輸,剩余能量閾值降低,篩選出的節(jié)點活躍度越高。兩種情況下BTPHS算法的表現(xiàn)均優(yōu)于EEHSBE算法和IHSBEER算法,這是因為2.3.2節(jié)提出的改進策略在生成信息傳遞路徑時,下一跳節(jié)點的選擇為邊緣節(jié)點提供了更多的可能性,增大的邊緣節(jié)點的曝光率。圖3~圖5顯示的3組實驗結(jié)果進一步驗證了角度偏移及節(jié)點移除策略的可行性。 圖6和圖7分別顯示了兩個指標在8個實驗環(huán)境中的對比情況。兩幅實驗對比圖中的橫軸表示不同規(guī)模場景下的傳感器節(jié)點個數(shù),圖6的縱軸表示網(wǎng)絡的生命周期(當出現(xiàn)能量黑洞時,網(wǎng)絡一共循環(huán)的信息傳遞輪數(shù)),圖7的縱軸表示平均剩余能量。 圖6 網(wǎng)絡壽命對比 圖7 平均剩余能量對比 從圖6的結(jié)果可以看出,BTPHS算法在部分場景中體現(xiàn)出了最好的結(jié)果,特別是在節(jié)點數(shù)目較大的環(huán)境中。WSN范圍內(nèi)節(jié)點數(shù)目越多意味著節(jié)點間的路由關系更復雜,每個節(jié)點鄰居路由的數(shù)量也會相應更多。因此,在網(wǎng)絡循環(huán)的后期,WSN網(wǎng)絡的抗風險性就會越大,人為刪除疑似死亡節(jié)點后,網(wǎng)絡依舊可以生成可行的路由方案,進一步延長網(wǎng)絡的使用時間。 對比圖7可以看到,基于和聲搜索的3種不同的算法在剩余能量的控制上差別不是很大,從這一點可以得出,和聲搜索算法適于解決NP-hard問題。剩余能量相差不大表明,在該環(huán)境下,3種算法生成的路由方案在總體能耗表現(xiàn)上較為平衡。較高的能量剩余意味著較低的能量成本,IHSBEER算法的優(yōu)化,降低了網(wǎng)絡工作期間的平均能量算耗。BTPHS算法著重使用邊緣節(jié)點,在算法循環(huán)后期,犧牲路徑長度,提高邊緣節(jié)點的曝光率,路徑總能耗隨即增加,符合算法最初的設計邏輯。故在平均剩余能量表現(xiàn)方面,BTPHS算法在大部分的實驗場景中,均略低于IHSBEER算法,這一現(xiàn)象表明,BTPHS算法在均衡能量方面表現(xiàn)更為優(yōu)秀,在現(xiàn)有能量環(huán)境下,可以更多利用曝光率低的節(jié)點進行工作。 圖8和圖9分別顯示了兩個指標在8個實驗環(huán)境中的對比情況。 圖8 網(wǎng)絡壽命對比 圖9 平均剩余能量對比 從圖8中可以觀察到,在8種不同的節(jié)點分布環(huán)境下,BTPHS算法的表現(xiàn)依舊突出。節(jié)點分布范圍更大,節(jié)點總數(shù)更多,但單位面積內(nèi)節(jié)點的分布密度卻變小。從測試數(shù)據(jù)可以看出,BTPHS算法獲得的輪數(shù)有著顯著提升,特別是在50節(jié)點的測試環(huán)境中,相比EEHSBR算法提升12.9%,相比IHSBEER算法提升5.52%。BTPHS算法中的交叉變異環(huán)節(jié),可以在網(wǎng)絡運行后期,通過扭轉(zhuǎn)節(jié)點對路徑的切割與拼接,實現(xiàn)路徑的大范圍變化,從而有效避免瀕臨死亡節(jié)點的利用。圖9顯示的測試結(jié)果大體與固定節(jié)點持續(xù)發(fā)送橫式下的實驗數(shù)據(jù)相似。 隨著網(wǎng)絡面積增大,節(jié)點密度降低,BTPHS算法向sink節(jié)點傳輸相同大小的數(shù)據(jù)包時,消耗的能量偏多,維持的輪數(shù)相比其它算法有進一步的提升,這一測試結(jié)果驗證了BTPHS算法的可行性。 從兩種測試環(huán)境的對比情況可以看到,BTPHS算法在節(jié)點較多的環(huán)境中,表現(xiàn)尤為突出。在能耗損失方面略輸于EEHSBR算法和IHSBEER算法,與此同時,由于角度偏移方法和節(jié)點移除策略的引入,使得邊緣節(jié)點進入路由方案的概率有所提升,進一步分擔主干路上節(jié)點的使用頻率。目標函數(shù)從單一的評判標準更新為三段式評判,保證BTPHS算法在不同階段選擇出當下最優(yōu)的轉(zhuǎn)發(fā)路徑。在保持網(wǎng)絡能量效率的前提下,可以提高網(wǎng)絡的可拓展性。對于當前的大多數(shù)應用,如智能家居、工業(yè)和制造自動化等,節(jié)點的數(shù)量較為中等,結(jié)合Matlab的仿真結(jié)果可以得出,BTPHS算法在路由選擇領域有廣泛的發(fā)展前景。 本文提出了一種基于和聲搜索的能量路由算法BTPHS,該算法以HS算法為基礎,生成新的路由方案,并根據(jù)目標函數(shù)不斷優(yōu)化和聲庫中的路由路線,從而不斷產(chǎn)生最優(yōu)解。該算法主要思想是提高邊緣節(jié)點的參與度,通過角度偏移方法和節(jié)點移除策略不斷降低主干道節(jié)點的使用頻率。經(jīng)檢測BTPHS算法生成路由方案,可以進一步平衡能量分布情況,還能一定程度上延長的網(wǎng)絡的使用周期。但BTPHS算法在運行時長上依舊有提升的空間,同時,節(jié)點移除策略的引入,使得網(wǎng)絡可能造成回路、短路現(xiàn)象,后續(xù)還需要進一步完善。3 實驗部分
3.1 節(jié)點調(diào)度測試
3.2 固定節(jié)點持續(xù)發(fā)送下的實驗結(jié)果
3.3 全節(jié)點循環(huán)發(fā)送下的實驗結(jié)果
3.4 結(jié) 論
4 結(jié)束語