【路由優(yōu)化】基于能量均衡高效的LEACH協(xié)議改進(jìn)算法附matlab代碼
1 簡介
隨著信息技術(shù)時(shí)代的來臨,無線傳感網(wǎng)絡(luò)(簡稱WSN)作為一種新型網(wǎng)絡(luò)技術(shù),引起了國內(nèi)外研究學(xué)者的重視。WSN與傳統(tǒng)的網(wǎng)絡(luò)不同,它將無線傳感技術(shù)與傳統(tǒng)網(wǎng)絡(luò)技術(shù)結(jié)合,在現(xiàn)實(shí)生活的各個(gè)方面有廣泛的應(yīng)用。WSN主要由散落在監(jiān)測區(qū)域的各種傳感器節(jié)點(diǎn)構(gòu)成,其特色是運(yùn)用范圍靈活廣泛,應(yīng)用成本低,可遠(yuǎn)程操控等。但是,傳感器節(jié)點(diǎn)的缺點(diǎn)是沒有源源不斷的能量供應(yīng),設(shè)計(jì)WSN的路由時(shí)應(yīng)著重考慮能耗問題。低功耗自適應(yīng)分簇路由協(xié)議(簡稱LEACH協(xié)議)被稱為WSN中的眾多重要路由協(xié)議之一。許多改進(jìn)的分簇路由協(xié)議都是基于此協(xié)議,如PEGASIS協(xié)議和HEED協(xié)議等。LEACH協(xié)議將網(wǎng)絡(luò)傳輸時(shí)間劃分成連續(xù)的時(shí)間周期。每個(gè)周期分為路由建立階段和網(wǎng)絡(luò)傳輸階段;每個(gè)周期中都會選取一個(gè)簇首,網(wǎng)絡(luò)劃分成簇。但是,在LEACH路由協(xié)議中,每個(gè)循環(huán)都是通過閾值隨機(jī)選擇簇首的,沒有考慮簇首的能量和地理位置因素,易造成能量較低和地理位置不佳的節(jié)點(diǎn)當(dāng)選簇首的現(xiàn)象。并且,LEACH協(xié)議只適用節(jié)點(diǎn)間和節(jié)點(diǎn)與基站之間可以直接傳遞數(shù)據(jù)的網(wǎng)絡(luò)場景。本文提出了一種基于能量均衡高效的LEACH路由協(xié)議綜合優(yōu)化策略。在該策略中,分為簇內(nèi)和簇間路由協(xié)議兩個(gè)改進(jìn)方向。簇內(nèi)方向,對于LEACH路由協(xié)議簇內(nèi)隨機(jī)選取簇首問題,加入了剩余能量因子、間距因子和節(jié)點(diǎn)密度因子來優(yōu)化閾值公式,整體考慮了節(jié)點(diǎn)剩余能量和地理位置來選擇簇首。此外,在不同WSN的應(yīng)用場景中,根據(jù)剩余能量和地理位置對于簇首的選擇起到的作用大小不同,引入加權(quán)因子,提出了二分法控制加權(quán)因子的算法。并且,構(gòu)造了時(shí)間動(dòng)態(tài)函數(shù),提出了動(dòng)態(tài)地調(diào)整剩余能量因子加權(quán)值的算法。在簇間路由協(xié)議方面,給出了最佳簇首數(shù)量的研究方法。并且,引入了節(jié)點(diǎn)能耗函數(shù)和最短轉(zhuǎn)發(fā)距離,找到了節(jié)點(diǎn)入簇的最佳方法和簇首之間數(shù)據(jù)傳輸?shù)穆酚蓞f(xié)議。通過MATLAB仿真實(shí)驗(yàn)驗(yàn)證,改進(jìn)后的算法有效地節(jié)省了網(wǎng)絡(luò)的能量消耗,減緩了節(jié)點(diǎn)枯竭的速率。具體研究內(nèi)容如下:(1)對于LEACH路由協(xié)議通過閾值隨機(jī)循環(huán)選取簇首問題,采用改進(jìn)閾值公式的方法,加入剩余能量因子、間距因子、距離因子和加權(quán)因子。綜合考慮了候選節(jié)點(diǎn)的位置和能量條件。(2)并且通過實(shí)驗(yàn)驗(yàn)證了密度因子在不同實(shí)驗(yàn)場景中,其重要性不同。因此,可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境,進(jìn)行仿真實(shí)驗(yàn)得出最佳的密度因子加權(quán)值。在本文實(shí)驗(yàn)場景中,通過實(shí)驗(yàn)得出了在此實(shí)驗(yàn)場景中的最佳密度因子的加權(quán)值。(3)對于剩余能量因子的加權(quán)值,創(chuàng)新性地提出了二分法。將節(jié)點(diǎn)的剩余能量一分為二,給出了調(diào)整剩余能量因子的加權(quán)值的改進(jìn)算法。并將二分法與恒值法進(jìn)行了比較。但是二分法的缺點(diǎn)是能量敏感度小。(4)針對二分法缺點(diǎn),構(gòu)造了時(shí)間動(dòng)態(tài)函數(shù),創(chuàng)新性地提出了動(dòng)態(tài)法改變剩余能量因子的加權(quán)值的算法。在此算法中,隨著網(wǎng)絡(luò)信息傳輸時(shí)間的進(jìn)行,動(dòng)態(tài)地調(diào)節(jié)剩余能量的加權(quán)值,使得節(jié)點(diǎn)剩余能量因子加權(quán)值的敏感度更高。(5)對于LEACH協(xié)議節(jié)點(diǎn)分成簇的數(shù)量多少對網(wǎng)絡(luò)性能影響較大,給出了最佳簇首比率算法,并通過實(shí)驗(yàn)驗(yàn)證了其準(zhǔn)確性。(6)引入能耗函數(shù),給出了節(jié)點(diǎn)基于能耗最低的節(jié)點(diǎn)入簇方案;對于簇首到基站的數(shù)據(jù)傳輸?shù)乃惴?引入了最短轉(zhuǎn)發(fā)路徑,得到了簇首間數(shù)據(jù)傳輸?shù)妮^優(yōu)中轉(zhuǎn)跳數(shù)。












2 部分代碼
clc;
clear;
close all
%% 1.初始參數(shù)設(shè)定模塊
%.傳感器節(jié)點(diǎn)區(qū)域界限(單位 m)
xm = 100;
ym = 100;
% (1)匯聚節(jié)坐標(biāo)給定
sink.x = 50;
sink.y = 50;
% 區(qū)域內(nèi)傳器節(jié)數(shù)
n = 100;
% 簇頭優(yōu)化比例(當(dāng)選簇頭的概率)
p = 0.05;
% 能量模型(單位 J)
% 初始化能量模型
Eo = 0.5;
% Eelec=Etx=Erx
ETX = 50*0.000000001;
ERX = 50*0.000000001;
% Transmit Amplifier types
Efs = 10*0.000000000001;
Emp = 0.0013*0.000000000001;
% Data Aggregation Energy
EDA = 5*0.000000001;
% 最大循環(huán)次數(shù)
rmax = 2000;
% 算出參數(shù) do
do = sqrt(Efs/Emp);
% 包大小(單位 bit)
packetLength = 4000; ? ? ? ?% 數(shù)據(jù)包大小
ctrPacketLength = 100; ? ? ?% 控制包大小
% 感知半徑
R = sqrt(xm*ym/(pi*n*p));
%% 2.無線傳感器網(wǎng)絡(luò)模型產(chǎn)生模塊
% 構(gòu)建無線傳感器網(wǎng)絡(luò),在區(qū)域內(nèi)均勻投放100個(gè)節(jié)點(diǎn),并畫出圖形
for i = 1:n
? ?S(i).xd = rand(1,1)*xm;
? ?S(i).yd = rand(1,1)*ym;
? ?S(i).d = ?sqrt((S(i).xd-sink.x)^2+(S(i).yd-sink.y)^2);
? ?S(i).G = 0;
? ?S(i).E = Eo;
? ?S(i).Nbr = 0;
? ?% initially there are no cluster heads only nodes
? ?S(i).type = 'N';
end
S(n+1).xd = sink.x;
S(n+1).yd = sink.y;
%% 繪圖比較
r = 1:rmax+1;
figure;
plot(r, ALIVE_LEACH, 'rp-', r, ALIVE_LEACH_E, 'gs-', r, ALIVE_LEACH_improved, 'ko-', 'linewidth', 1, 'MarkerSize',2);
xlabel '時(shí)間(輪)'; ylabel '存活節(jié)點(diǎn)數(shù)目';
legend('LEACH', 'LEACH-E', 'LEACH-improved');
xlim([0, 2000])
figure;
plot(r, ENERGY_LEACH, 'rp-', r, ENERGY_LEACH_E, 'gs-', r, ENERGY_LEACH_improved, 'ko-', 'linewidth', 1, 'MarkerSize',2);
xlabel '時(shí)間(輪)'; ylabel '網(wǎng)絡(luò)剩余能量(J)';
legend('LEACH', 'LEACH-E', 'LEACH-improved');
xlim([0, 2000])
figure;
plot(r, PACKETS_LEACH, 'rp-', r, PACKETS_LEACH_E, 'gs-', r, PACKETS_LEACH_improved, 'ko-', 'linewidth', 1, 'MarkerSize',2);
xlabel '時(shí)間(輪)'; ylabel '基站接收的數(shù)據(jù)量(bit)';
legend('LEACH', 'LEACH-E', 'LEACH-improved');
xlim([0, 2000])
3 仿真結(jié)果



4 參考文獻(xiàn)
[1]黃利曉. 基于能量均衡高效的LEACH路由協(xié)議優(yōu)化策略[D]. 浙江師范大學(xué), 2018.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
