亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? leachs1vsleachs2.m

?? 無線傳感器網絡 路由算法 本科設計時的論文算法
?? M
字號:
clear
%1.初始參數設定模塊
%.傳感器節點區域界限(單位 M)
xm=100;
ym=100;
%(1)匯聚節坐標給定
sink.x=0.5*xm;
sink.y=0.5*ym;
%區域內傳器節數
n=100
%簇頭優化比例(當選簇頭的概率)
p=0.1;
%能量模型(單位 焦)
%初始化能量模型
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;
%最大循環次數
rmax=3000
%算出參數 do
do=sqrt(Efs/Emp);
Et=50;
%2.無線傳感器網絡模型產生模塊
%構建無線傳感器網絡,在區域內均勻投放100個節點,并畫出圖形
for i=1:1:n
    S2(i).xd=rand(1,1)*xm;
    S1(i).xd=S2(i).xd;
    XR2(i)=S1(i).xd;
    XR1(i)=XR2(i);
    S2(i).yd=rand(1,1)*ym;
    S1(i).yd=S2(i).yd;
    YR2(i)=S1(i).yd;
    YR1(i)=YR2(i);
    S1(i).G=0;
    S2(i).G=0;
    S1(i).E=Eo;
    S2(i).E=Eo;
    %initially there are no cluster heads only nodes
    S1(i).type='N';
    S2(i).type='N';
end

S1(n+1).xd=sink.x;
S2(n+1).xd=sink.x;
S1(n+1).yd=sink.y;
S2(n+1).yd=sink.y;
%3.網絡運行模塊
%簇頭節點數
countCHs1=0;
cluster1=1;%此定義的目的僅僅是給定一個1開始的下標參數,真正的簇頭數應該還減去1
flag_first_dead1=0;
flag_teenth_dead1=0;
flag_all_dead1=0;
%死亡節點數
dead1=0;
first_dead1=0;
teenth_dead1=0;
all_dead1=0;
%活動節點數
allive1=n;
%counter for bit transmitted to Bases Station and to Cluster Heads
packets_TO_BS1=0;
packets_TO_CH1=0;
%(1)循環模式設定
for r=0:1:rmax     %該 for 循環將下面的所有程序包括在內,直到最后一 end 才結束循環
    r
  %每過一個輪轉周期(本程序為10次)使各節點的S(i).G參數(該參數用于后面的簇選舉,在該輪轉周期內已當選過簇頭的節點不能再當選)恢復為零
  if(mod(r, round(1/p) )==0)
    for i=1:1:n
        S1(i).G=0;
        S1(i).cl=0;
    end
  end
  El1(r+1)=0;
  for i=1:100
    El1(r+1)=S1(i).E+El1(r+1);
  end
Ec1(r+1)=Et-El1(r+1);
%(2)死亡節點檢查模塊
dead1=0;
for i=1:1:n
    %檢查有無死亡節點
    if (S1(i).E<=0)
        dead1=dead1+1; 
        %(3)第一個死亡節點的產生時間(用輪次表示)
        %第一個節點死亡時間
        if (dead1==1)
           if(flag_first_dead1==0)
              first_dead1=r;
              flag_first_dead1=1;
           end
        end
        %10%的節點死亡時間
        if(dead1==0.1*n)
           if(flag_teenth_dead1==0)
              teenth_dead1=r;
              flag_teenth_dead1=1;
           end
        end
        if(dead1==n)
           if(flag_all_dead1==0)
              all_dead1=r;
              flag_all_dead1=1;
           end
        end
    end
    if S1(i).E>0
        S1(i).type='N';
    end
end
STATISTICS.DEAD1(r+1)=dead1;
STATISTICS.ALLIVE1(r+1)=allive1-dead1;
%(4)簇頭選舉模塊
countCHs1=0;
cluster1=1;
for i=1:1:n
 if(S1(i).E>0)
   temp_rand=rand;     
   if ( (S1(i).G)<=0) 
       %簇頭的選舉,當選的簇頭會把各種相關信存入下面程序所給定的變量中
        if(temp_rand<= (p/(1-p*mod(r,round(1/p)))))
            countCHs1=countCHs1+1;
            packets_TO_BS1=packets_TO_BS1+1;
            PACKETS_TO_BS1(r+1)=packets_TO_BS1;
             S1(i).type='C';
            S1(i).G=round(1/p)-1;
            C1(cluster1).xd=S1(i).xd;
            C1(cluster1).yd=S1(i).yd;
           distance=sqrt( (S1(i).xd-(S1(n+1).xd) )^2 + (S1(i).yd-(S1(n+1).yd) )^2 );
            C1(cluster1).distance=distance;
            C1(cluster1).id=i;
            X1(cluster1)=S1(i).xd;
            Y1(cluster1)=S1(i).yd;
            cluster1=cluster1+1;
           %計算簇頭發送4000bit數據到基站的能量消耗(這里應是所有節點包括簇頭每一輪發送4000bit數據)
           distance;
            if (distance>do)
                S1(i).E=S1(i).E- 1.5*( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance )); 
            end
            if (distance<=do)
                S1(i).E=S1(i).E-1.5*( (ETX+EDA)*(4000)  + Efs*4000*( distance * distance )); 
            end
        end     
    
    end
    % S1(i).G=S1(i).G-1;  
   
 end 
end
STATISTICS.COUNTCHS1(r+1)=countCHs1;
%(5)簇內成員選擇簇頭模塊(即簇的形成模塊)
%簇內成員對簇頭的選擇(即簇的形成)算法
for c=1:1:cluster1-1
    x1(c)=0;
end
y1=0;
z1=0;
for i=1:1:n
   if ( S1(i).type=='N' && S1(i).E>0 )
     if(cluster1-1>=1)
       min_dis=Inf;
       min_dis_cluster=0;
       for c=1:1:cluster1-1
           temp=min(min_dis,sqrt( (S1(i).xd-C1(c).xd)^2 + (S1(i).yd-C1(c).yd)^2 ) );
           if ( temp<min_dis )
               min_dis=temp;
               min_dis_cluster=c;
               x1(c)=x1(c)+1;
           end
       end
       %簇內節點(發送4000bit數據)能量消耗
            min_dis;
            if (min_dis>do)
                S1(i).E=S1(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S1(i).E=S1(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
        %簇頭(接受和融合這一簇內節點4000bit數據)的能量消耗
            S1(C1(min_dis_cluster).id).E =S1(C1(min_dis_cluster).id).E- 1.5*( (ERX + EDA)*4000 ); 
            packets_TO_CH1=packets_TO_CH1+1;

       S1(i).min_dis=min_dis;
       S1(i).min_dis_cluster=min_dis_cluster;
   else
          y1=y1+1;
          min_dis=sqrt( (S1(i).xd-S1(n+1).xd)^2 + (S1(i).yd-S1(n+1).yd)^2 );
            if (min_dis>do)
                S1(i).E=S1(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S1(i).E=S1(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS1=packets_TO_BS1+1;
    end
  end
end
if countCHs1~=0
   u1=(n-y1)/countCHs1;
 for c=1:1:cluster1-1
    z1=(x1(c)-u1)*(x1(c)-u1)+z1;
 end
 LBF1(r+1)=z1/countCHs1;
else  LBF1(r+1)=0;
end
STATISTICS.PACKETS_TO_CH1(r+1)=packets_TO_CH1;
STATISTICS.PACKETS_TO_BS1(r+1)=packets_TO_BS1;
end

countCHs2=0;
cluster2=1;%此定義的目的僅僅是給定一個1開始的下標參數,真正的簇頭數應該還減去1
flag_first_dead2=0;
flag_teenth_dead2=0;
flag_all_dead2=0;
%死亡節點數
dead2=0;
first_dead2=0;
teenth_dead2=0;
all_dead2=0;
%活動節點數
allive2=n;
%counter for bit transmitted to Bases Station and to Cluster Heads
packets_TO_BS2=0;
packets_TO_CH2=0;
%(1)循環模式設定
for r=0:1:rmax     %該 for 循環將下面的所有程序包括在內,直到最后一 end 才結束循環
    r
  %每過一個輪轉周期(本程序為10次)使各節點的S(i).G參數(該參數用于后面的簇選舉,在該輪轉周期內已當選過簇頭的節點不能再當選)恢復為零
  if(mod(r, round(1/p) )==0)
    for i=1:1:n
        S2(i).G=0;
        S2(i).cl=0;
    end
  end
  El2(r+1)=0;
  for i=1:100
   El2(r+1)=S2(i).E+El2(r+1);
  end
Ec2(r+1)=Et-El2(r+1);
%(2)死亡節點檢查模塊
dead2=0;
for i=1:1:n
    %檢查有無死亡節點
    if (S2(i).E<=0)
        dead2=dead2+1; 
        %(3)第一個死亡節點的產生時間(用輪次表示)
        %第一個節點死亡時間
        if (dead2==1)
           if(flag_first_dead2==0)
              first_dead2=r;
              flag_first_dead2=1;
           end
        end
        %10%的節點死亡時間
        if(dead2==0.1*n)
           if(flag_teenth_dead2==0)
              teenth_dead2=r;
              flag_teenth_dead2=1;
           end
        end
        if(dead2==n)
           if(flag_all_dead2==0)
              all_dead2=r;
              flag_all_dead2=1;
           end
        end
    end
    if S2(i).E>0
        S2(i).type='N';
    end
end
STATISTICS.DEAD2(r+1)=dead2;
STATISTICS.ALLIVE2(r+1)=allive2-dead2;
%(4)簇頭選舉模塊
countCHs2=0;
cluster2=1;
for i=1:1:n
 if(S2(i).E>0)
   temp_rand=rand;     
   if ( (S2(i).G)<=0) 
       %簇頭的選舉,當選的簇頭會把各種相關信存入下面程序所給定的變量中
        if(temp_rand<= (p/(1-p*mod(r,round(1/p)))))
            countCHs2=countCHs2+1;
            packets_TO_BS2=packets_TO_BS2+1;
            PACKETS_TO_BS2(r+1)=packets_TO_BS2;
             S2(i).type='C';
            S2(i).G=round(1/p)-1;
            C2(cluster2).xd=S2(i).xd;
            C2(cluster2).yd=S2(i).yd;
           distance=sqrt( (S2(i).xd-(S2(n+1).xd) )^2 + (S2(i).yd-(S2(n+1).yd) )^2 );
            C2(cluster2).distance=distance;
            C2(cluster2).id=i;
            X2(cluster2)=S2(i).xd;
            Y2(cluster2)=S2(i).yd;
            cluster2=cluster2+1;
           %計算簇頭發送4000bit數據到基站的能量消耗(這里應是所有節點包括簇頭每一輪發送4000bit數據)
           distance;
            if (distance>do)
                S2(i).E=S2(i).E- 1.5*( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance )); 
            end
            if (distance<=do)
                S2(i).E=S2(i).E- 1.5*( (ETX+EDA)*(4000)  + Efs*4000*( distance * distance )); 
            end
        end     
    
    end
    % S2(i).G=S2(i).G-1;  
   
 end 
end
STATISTICS.COUNTCHS2(r+1)=countCHs2;
%(5)簇內成員選擇簇頭模塊(即簇的形成模塊)
%簇內成員對簇頭的選擇(即簇的形成)算法
for c=1:1:cluster2-1
    x2(c)=0;
end
y2=0;
z2=0;
for i=1:1:n
   if ( S2(i).type=='N' && S2(i).E>0 )
     if(cluster2-1>=1)
       min_dis=sqrt( (S2(i).xd-S2(n+1).xd)^2 + (S2(i).yd-S2(n+1).yd)^2 );
       min_dis_cluster=0;
       for c=1:1:cluster2-1
           temp=min(min_dis,sqrt( (S2(i).xd-C2(c).xd)^2 + (S2(i).yd-C2(c).yd)^2 ) );
           if ( temp<min_dis )
               min_dis=temp;
               min_dis_cluster=c;
               x2(c)=x2(c)+1;
           end
       end
       %簇內節點(發送4000bit數據)能量消耗
       if(min_dis_cluster~=0)    
            min_dis;
            if (min_dis>do)
                S2(i).E=S2(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S2(i).E=S2(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
        %簇頭(接受和融合這一簇內節點4000bit數據)的能量消耗
            S2(C2(min_dis_cluster).id).E = S2(C2(min_dis_cluster).id).E- 1.5*( (ERX + EDA)*4000 ); 
            packets_TO_CH2=packets_TO_CH2+1;
       else 
            min_dis;
            if (min_dis>do)
                S2(i).E=S2(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S2(i).E=S2(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS2=packets_TO_BS2+1;
            
       end
        S2(i).min_dis=min_dis;
       S2(i).min_dis_cluster=min_dis_cluster;
   else
          y2=y2+1;
          min_dis=sqrt( (S2(i).xd-S2(n+1).xd)^2 + (S2(i).yd-S2(n+1).yd)^2 );
            if (min_dis>do)
                S2(i).E=S2(i).E-( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S2(i).E=S2(i).E-( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS2=packets_TO_BS2+1;
    end
  end
end
if countCHs2~=0
   u2=(n-y2)/countCHs2;
 for c=1:1:cluster2-1
    z2=(x2(c)-u2)*(x2(c)-u2)+z2;
 end
 LBF2(r+1)=z2/countCHs2;
else  LBF2(r+1)=0;
end
STATISTICS.PACKETS_TO_CH2(r+1)=packets_TO_CH2;
STATISTICS.PACKETS_TO_BS2(r+1)=packets_TO_BS2;
end
r=0:3000;
plot(r,STATISTICS.DEAD1,':b',r,STATISTICS.DEAD2,'-r');
legend('leachs1','leachs2');
xlabel('x(time)');
ylabel('y(dead)');
title('\bf leachs1和leachs2的死亡節點數隨時間的變化對比');
%plot(r,STATISTICS.PACKETS_TO_BS1,':b',r,STATISTICS.PACKETS_TO_BS2,'-r');
%legend('leachs1','leachs2');
%xlabel('x(time)');
%ylabel('y(data)');
%title('\bf leachs1和leachs2的數據傳輸對比');
%r=0:3000;
%plot(r,Ec1,':b',r,Ec2,'-r');
%legend('leachs1','leachs2');
%xlabel('x(time)');
%ylabel('y(consumption)');
%title('\bf leachs1和leachs2的網絡能量消耗對比');
%r=0:60:3000;
%plot(r,STATISTICS.COUNTCHS1(r+1),':b',r,STATISTICS.COUNTCHS2(r+1),'-r');
%legend('leachs1','leachs2');
%xlabel('x(time)');
%ylabel('y(clusters)');
%title('\bf leachs1和leachs2的簇頭產生數對比');
%r=0:60:3000;
%plot(r,LBF1(r+1),':b',r,LBF2(r+1),'-r');
%legend('leachs1','leachs2');
%xlabel('x(time)');
%ylabel('y(balance)');
%title('\bf leachs1和leachs2的負載均衡度對比');

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产成人系列| 最新不卡av在线| 国产精品久久久久桃色tv| 亚洲成人综合网站| 国产精品亚洲综合一区在线观看| 色综合色狠狠综合色| 日韩一级在线观看| 亚洲综合图片区| 成人h精品动漫一区二区三区| 精品视频在线免费| 专区另类欧美日韩| 国产寡妇亲子伦一区二区| 欧美久久久久中文字幕| 综合av第一页| 成人开心网精品视频| 日韩久久精品一区| 亚洲国产综合视频在线观看| 成人国产精品视频| 国产亚洲短视频| 精品一二三四区| 日韩三级视频中文字幕| 无码av免费一区二区三区试看| av网站免费线看精品| 日本一区二区综合亚洲| 久久电影网站中文字幕| 欧美一区二区三区电影| 午夜精品久久久久影视| 欧美天堂一区二区三区| 一区二区三区成人| 91丨porny丨户外露出| 亚洲四区在线观看| 99久久精品免费| 亚洲视频在线观看一区| 色综合一个色综合亚洲| 天堂久久久久va久久久久| 91在线精品一区二区三区| 国产精品福利一区二区三区| 国产91丝袜在线播放| 国产精品免费丝袜| 国产+成+人+亚洲欧洲自线| 欧美国产日韩精品免费观看| 欧美视频在线观看一区二区| 亚洲综合在线第一页| 欧美日韩高清一区二区不卡| 亚洲在线免费播放| 欧美一区二区国产| 韩国欧美一区二区| 欧美高清一级片在线观看| 高清成人免费视频| 中文字幕一区二区三区视频| 91麻豆swag| 视频一区国产视频| 欧美精品一区二区三区高清aⅴ| 国内精品自线一区二区三区视频| 久久女同互慰一区二区三区| 成人精品免费网站| 一区二区三区成人在线视频| 欧美久久久久久久久| 国模少妇一区二区三区| 国产精品麻豆视频| 欧美日韩成人在线| 国产自产高清不卡| 亚洲男人的天堂一区二区| 91精品国产色综合久久不卡电影| 国内一区二区在线| 中文字幕欧美一| 欧美一区二区三区小说| 国产成a人亚洲| 亚洲gay无套男同| 国产午夜一区二区三区| 欧美在线观看一二区| 国内外成人在线| 亚洲精品成人悠悠色影视| 日韩一区二区三区电影在线观看| 国产丶欧美丶日本不卡视频| 一区二区三区在线看| 久久蜜桃av一区精品变态类天堂| 欧美一个色资源| 91网上在线视频| 激情小说亚洲一区| 香蕉乱码成人久久天堂爱免费| 国产日韩在线不卡| 日韩一区二区电影网| 97精品国产露脸对白| 精品一区二区久久久| 亚洲欧美激情视频在线观看一区二区三区| 日韩视频一区在线观看| 在线免费观看日本欧美| 国产精品1区2区| 蜜桃视频免费观看一区| 亚洲精选一二三| 中文字幕第一区第二区| 日韩欧美一级精品久久| 91官网在线观看| 成人av在线一区二区三区| 麻豆专区一区二区三区四区五区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 精品理论电影在线观看| 欧美片在线播放| 色婷婷久久久综合中文字幕 | 国产福利不卡视频| 日韩精品久久久久久| 一区二区三区91| 自拍偷自拍亚洲精品播放| 日本一区二区三区高清不卡| 精品国产成人系列| 欧美变态tickling挠脚心| 欧美美女直播网站| 欧美无乱码久久久免费午夜一区 | 99国产欧美另类久久久精品| 国产乱码精品一区二区三区忘忧草| 亚洲成人一二三| 国产精品99久久久久久有的能看| 日韩电影一区二区三区四区| 亚洲福中文字幕伊人影院| 最新成人av在线| 一区二区三区四区不卡在线| 亚洲精品亚洲人成人网| 亚洲人成精品久久久久久 | 亚洲欧洲无码一区二区三区| 久久久三级国产网站| 精品久久五月天| 久久综合狠狠综合久久激情 | 精品在线播放午夜| 久久精品国产一区二区| 精品一区二区三区在线播放视频 | 亚洲一区二区三区在线播放| 亚洲精品日产精品乱码不卡| 亚洲免费在线电影| 亚洲午夜在线视频| 麻豆国产欧美日韩综合精品二区 | 视频一区免费在线观看| 免费成人你懂的| 狠狠色丁香久久婷婷综合丁香| 国产福利一区二区三区视频在线 | 亚洲国产cao| 午夜精品影院在线观看| 天使萌一区二区三区免费观看| 奇米影视在线99精品| 国产一区二区三区不卡在线观看| 成人午夜又粗又硬又大| 色婷婷av一区二区三区软件| 欧美精品免费视频| 久久综合久久综合久久| 亚洲欧美偷拍三级| 日韩精彩视频在线观看| 国产成人免费av在线| 91浏览器在线视频| 精品国产乱码久久久久久夜甘婷婷| 欧美极品美女视频| 亚洲福利一区二区| 国产麻豆精品theporn| 色婷婷av一区二区三区软件| 欧美xxxx老人做受| 亚洲日本在线看| 蜜桃av一区二区| 色婷婷一区二区| 中文字幕永久在线不卡| 天天射综合影视| av资源网一区| 日韩免费高清av| 一区二区三区欧美亚洲| 国产精品一区二区你懂的| 色婷婷久久综合| 国产午夜精品久久久久久久 | 中文子幕无线码一区tr| 亚洲女同女同女同女同女同69| 青青草91视频| 欧美性大战久久| 国产精品美日韩| 狠狠色丁香婷综合久久| 欧美疯狂性受xxxxx喷水图片| 亚洲国产成人一区二区三区| 石原莉奈在线亚洲二区| 99国产欧美另类久久久精品| 精品国产电影一区二区| 亚洲成人福利片| 色综合久久66| 中文字幕在线不卡视频| 国内精品国产三级国产a久久| 欧美日韩亚洲不卡| 亚洲欧美欧美一区二区三区| 国产乱码精品一区二区三| 欧美一级精品在线| 午夜精品成人在线视频| 在线免费观看视频一区| 亚洲欧洲在线观看av| 国产精品一二三四区| 精品av久久707| 久久成人免费电影| 欧美一区二区三区思思人| 亚洲午夜一二三区视频| 一本色道久久综合狠狠躁的推荐| 久久久不卡影院| 国产一区三区三区| 精品女同一区二区| 精品制服美女久久| 精品蜜桃在线看| 精品一区二区久久久| 精品国产露脸精彩对白|