xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

添加能量感知的分簇路由算法,MATLAB仿真編譯程序,可直接運(yùn)行,注釋詳細(xì),可用,原版本不變,僅減少積分用

資源截圖

代碼片段和文件信息

function?y1?=?advance3()
clear;%清除變量
xm=100;%設(shè)置區(qū)域?yàn)?00*100
ym=100;
sink.x=0.5*xm;%sink(匯聚)節(jié)點(diǎn)坐標(biāo)
sink.y=0.5*ym;
n=100?;%區(qū)域內(nèi)的節(jié)點(diǎn)數(shù)目
m=0.1;
Eo=0.5;%節(jié)點(diǎn)初始能量
ETX=50*0.000000001;%發(fā)射單位報(bào)文損耗能量?
ERX=50*0.000000001;%接收單位報(bào)文損耗能量
Efs=10*0.000000000001;%自由空間能量
Emp=0.0013*0.000000000001;%衰減空間能量
EDA=5*0.000000001;%多路徑衰減能量
a=2;
b=50;

rmax=2000;?%最大的輪數(shù)
do=sqrt(Efs/Emp);?%計(jì)算do?通信半徑

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1);%輸出節(jié)點(diǎn)分布圖形;共有n個(gè)節(jié)點(diǎn),具體100前面已經(jīng)預(yù)設(shè)

for?i=1:1:n?%i為矩陣1到n,間距為1
????S(i).xd=rand(11)*xm;%1行1列矩陣
????XR(i)=S(i).xd;%隨機(jī)生成的X軸坐標(biāo)
????S(i).yd=rand(11)*ym;
????YR(i)=S(i).yd;%隨機(jī)生成的Y軸坐標(biāo)
????S(i).G=0???????????????????????????;%定義第i個(gè)節(jié)點(diǎn)初始值為0,即有資格成為簇首節(jié)點(diǎn)
????S(i).type=‘N‘;%節(jié)點(diǎn)類型為普通
????temp_rnd0=i;%這一輪循環(huán)中的節(jié)點(diǎn)i
????if?(temp_rnd0>=m*n+1)?%普通節(jié)點(diǎn)的隨機(jī)選舉
????????S(i).E=Eo;%設(shè)置初始能量為E0
????????S(i).ENERGY=0;%普通節(jié)點(diǎn)
????????
????????plot(S(i).xdS(i).yd‘o‘);%輸出節(jié)點(diǎn)分布圖;圖1,用o表示
????????hold?on;
????????
????end
????if?(temp_rnd0????????S(i).E=Eo;%設(shè)置初始能量為Eo
????????S(i).ENERGY=1;%高級(jí)節(jié)點(diǎn),作為區(qū)分高級(jí)和非高級(jí)節(jié)點(diǎn)的標(biāo)志
???????
????????plot(S(i).xdS(i).yd‘o‘);%輸出節(jié)點(diǎn),用*表示
????????hold?on;
????end
end
?
S(n+1).xd=sink.x;%基站X軸坐標(biāo)
S(n+1).yd=sink.y;%基站Y軸坐標(biāo)
plot(S(n+1).xdS(n+1).yd‘k:x‘);?%輸出基站,用黑色x表示?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%確定分簇的數(shù)目

distance1=sqrt(?(S(i).xd-(S(n+1).xd)?)^2?+?(S(i).yd-(S(n+1).yd)?)^2?);%計(jì)算各個(gè)節(jié)點(diǎn)到基站的距離
min_dis0=distance1;
max_dis0=distance1;
for?i=1:1:n
?????temp0=min(min_dis0sqrt(?(S(i).xd-S(n+1).xd)^2?+?(S(i).yd-S(n+1).yd)^2?)?);
????????????????if?(?temp0????????????????????min_dis0=temp0;
????????????????end
??????temp1=max(max_dis0sqrt(?(S(i).xd-S(n+1).xd)^2?+?(S(i).yd-S(n+1).yd)^2?)?);
????????????????if?(?temp1>min_dis0?)
????????????????????max_dis0=temp1;
????????????????end
end??????????????????????%找出各個(gè)節(jié)點(diǎn)到基站的距離d?最大最小值
nplot=(xm/(temp1-temp0))*sqrt(2*n/pi);%優(yōu)化之后,最佳的簇頭個(gè)數(shù)
p1=nplot/n;%分簇的概率
flag_first_dead1=0;%第一個(gè)節(jié)點(diǎn)死亡的標(biāo)志變量初始值為0
figure(1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%每過round(1/p)輪,節(jié)點(diǎn)重新選舉簇頭節(jié)點(diǎn)
for?r=1:rmax
countCHs1=0;??%??當(dāng)前簇?cái)?shù)目
rcountCHs1=0;??%??r輪后當(dāng)過簇的節(jié)點(diǎn)數(shù)目
cluster1=1;??%定義一個(gè)以1開始變化的簇頭節(jié)點(diǎn)數(shù)目
countCHs1;
rcountCHs1=rcountCHs1+countCHs1;

?

????pnrm=p1;%普通節(jié)點(diǎn)的選舉概率
????padv=p1;?%高級(jí)節(jié)點(diǎn)的選舉概率
????if(mod(r?round(1/pnrm)?)==0)???????
????????%0起始,相當(dāng)于每過多少輪重新選擇一次簇頭,最終使得所有節(jié)點(diǎn)都當(dāng)過簇頭節(jié)點(diǎn),
????????%?每個(gè)節(jié)點(diǎn)都可能成為簇頭節(jié)點(diǎn),(余數(shù)為0)
????????for?i=1:1:n%i為矩陣1到n,間距為1
????????????S(i).G=0;%能成為簇頭的節(jié)點(diǎn)標(biāo)志值
????????????S(i).cl=0;
????????end
????end
????
????if(mod(r?round(1/padv)?)==0)
??
????????for?i=1:1:n%i為矩陣1到n,間距為1
????????????if(S(i).ENERGY==1)
????????????S(i).G=0;%簇頭數(shù)目
????????????S(i).cl=0;
????????????end
????????end
????end
?
?
???hold?off;
?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
?%統(tǒng)計(jì)節(jié)點(diǎn)死亡的數(shù)目,和第一個(gè)節(jié)點(diǎn)死亡的輪數(shù)
?
?dead1=0;%節(jié)點(diǎn)死亡數(shù)
?dead_a1=0;%高級(jí)節(jié)點(diǎn)死亡數(shù)
?dead_n1=0;%普通節(jié)點(diǎn)死亡數(shù)

評(píng)論

共有 條評(píng)論