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

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

?? deec1vsdeec2.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;
%高能量節點超出一節點能量的百分比
a=1;
%最大循環次數
rmax=5000
%算出參數 do
do=sqrt(Efs/Emp);
Et=0;
%2.無線傳感器網絡模型產生模塊
%構建無線傳感器網絡,在區域內均勻投放100個節點,并畫出圖形
for i=1:1:n
    S3(i).xd=rand(1,1)*xm;
    S4(i).xd=S3(i).xd;
    XR4(i)=S4(i).xd;
    XR3(i)=S3(i).xd;
    S3(i).yd=rand(1,1)*ym;
    S4(i).yd=S3(i).yd;
    YR4(i)=S4(i).yd;
    S4(i).G=0;
    YR3(i)=S3(i).yd;
    S3(i).G=0;
    S3(i).E=Eo*(1+rand*a);
    S4(i).E=S3(i).E;
    E3(i)= S3(i).E;
    E4(i)= S4(i).E;
    Et=Et+E3(i);
    %initially there are no cluster heads only nodes
    S3(i).type='N';
    S4(i).type='N';
end
d1=0.765*xm/2;
K=sqrt(0.5*n*do/pi)*xm/d1^2;
d2=xm/sqrt(2*pi*K);
Er=4000*(2*n*ETX+n*EDA+K*Emp*d1^4+n*Efs*d2^2);
S3(n+1).xd=sink.x;
S3(n+1).yd=sink.y;
S4(n+1).xd=sink.x;
S4(n+1).yd=sink.y;
%3.網絡運行模塊
%簇頭節點數
countCHs3=0;
cluster3=1;%此定義的目的僅僅是給定一個1開始的下標參數,真正的簇頭數應該還減去1
flag_first_dead3=0;
flag_teenth_dead3=0;
flag_all_dead3=0;
%死亡節點數
dead3=0;
first_dead3=0;
teenth_dead3=0;
all_dead3=0;
%活動節點數
allive3=n;
%counter for bit transmitted to Bases Station and to Cluster Heads
packets_TO_BS3=0;
packets_TO_CH3=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
        S3(i).G=0;
        S3(i).cl=0;
    end
  end
  Ea=Et*(1-r/rmax)/n;
  El3(r+1)=0;
  for i=1:100
    El3(r+1)=S3(i).E+El3(r+1);
  end
Ec3(r+1)=Et-El3(r+1);
%(2)死亡節點檢查模塊
dead3=0;
for i=1:1:n
    %檢查有無死亡節點
    if (S3(i).E<=0)
        dead3=dead3+1; 
        %(3)第一個死亡節點的產生時間(用輪次表示)
        %第一個節點死亡時間
        if (dead3==1)
           if(flag_first_dead3==0)
              first_dead3=r;
              flag_first_dead3=1;
           end
        end
        %10%的節點死亡時間
        if(dead3==0.1*n)
           if(flag_teenth_dead3==0)
              teenth_dead3=r;
              flag_teenth_dead3=1;
           end
        end
        if(dead3==n)
           if(flag_all_dead3==0)
              all_dead3=r;
              flag_all_dead3=1;
           end
        end
    end
    if S3(i).E>0
        S3(i).type='N';
    end
end
STATISTICS.DEAD3(r+1)=dead3;
STATISTICS.ALLIVE3(r+1)=allive3-dead3;
%(4)簇頭選舉模塊
countCHs3=0;
cluster3=1;
for i=1:1:n
 if Ea>0
 p(i)=P*n*S3(i).E*E3(i)/(Et*Ea);
 if(S3(i).E>0)
   temp_rand=rand;     
   if ( (S3(i).G)<=0)  
       %簇頭的選舉,當選的簇頭會把各種相關信存入下面程序所給定的變量中
        if(temp_rand<= (p(i)/(1-p(i)*mod(r,round(1/p(i))))))
            countCHs3=countCHs3+1;
            packets_TO_BS3=packets_TO_BS3+1;
            PACKETS_TO_BS3(r+1)=packets_TO_BS3;
            S3(i).type='C';
            S3(i).G=round(1/p(i))-1;
            C3(cluster3).xd=S3(i).xd;
            C3(cluster3).yd=S3(i).yd;
            distance=sqrt( (S3(i).xd-(S3(n+1).xd) )^2 + (S3(i).yd-(S3(n+1).yd) )^2 );
            C3(cluster3).distance=distance;
            C3(cluster3).id=i;
            X3(cluster3)=S3(i).xd;
            Y3(cluster3)=S3(i).yd;
            cluster3=cluster3+1;
            %計算簇頭發送4000bit數據到基站的能量消耗(這里應是所有節點包括簇頭每一輪發送4000bit數據)
            distance;
            if (distance>do)
                S3(i).E=S3(i).E- ( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance )); 
            end
            if (distance<=do)
                S3(i).E=S3(i).E- ( (ETX+EDA)*(4000)  + Efs*4000*( distance * distance )); 
            end
        end     
    
    end
    % S3(i).G=S3(i).G-1;  
   
  end 
 end
end
STATISTICS.COUNTCHS3(r+1)=countCHs3;
%(5)簇內成員選擇簇頭模塊(即簇的形成模塊)
%簇內成員對簇頭的選擇(即簇的形成)算法
for c=1:1:cluster3-1
    x3(c)=0;
end
y3=0;
z3=0;
for i=1:1:n
   if ( S3(i).type=='N' && S3(i).E>0 )
     if(cluster3-1>=1)
       min_dis=Inf;
       min_dis_cluster=0;
       for c=1:1:cluster3-1
           temp=min(min_dis,sqrt( (S3(i).xd-C3(c).xd)^2 + (S3(i).yd-C3(c).yd)^2 ) );
           if ( temp<min_dis )
               min_dis=temp;
               min_dis_cluster=c;
               x3(c)=x3(c)+1;
           end
       end
       %簇內節點(發送4000bit數據)能量消耗
 
            min_dis;
            if (min_dis>do)
                S3(i).E=S3(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S3(i).E=S3(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
        %簇頭(接受和融合這一簇內節點4000bit數據)的能量消耗
            S3(C3(min_dis_cluster).id).E = S3(C3(min_dis_cluster).id).E- ( (ERX + EDA)*4000 ); 
            packets_TO_CH3=packets_TO_CH3+1;

            
      
        S3(i).min_dis=min_dis;
        S3(i).min_dis_cluster=min_dis_cluster;
   else
            y3=y3+1;
            min_dis=sqrt( (S3(i).xd-S3(n+1).xd)^2 + (S3(i).yd-S3(n+1).yd)^2 );
            if (min_dis>do)
                S3(i).E=S3(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S3(i).E=S3(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS3=packets_TO_BS3+1;
   end
  end
end
if countCHs3~=0
   u3=(n-y3)/countCHs3;
 for c=1:1:cluster3-1
    z3=(x3(c)-u3)*(x3(c)-u3)+z3;
 end
 LBF3(r+1)=z3/countCHs3;
else  LBF3(r+1)=0;
end
 STATISTICS.PACKETS_TO_CH3(r+1)=packets_TO_CH3;
 STATISTICS.PACKETS_TO_BS3(r+1)=packets_TO_BS3;
end
countCHs4=0;
cluster=1;%此定義的目的僅僅是給定一個1開始的下標參數,真正的簇頭數應該還減去1
flag_first_dead4=0;
flag_teenth_dead4=0;
flag_all_dead4=0;
%死亡節點數
dead4=0;
first_dead4=0;
teenth_dead4=0;
all_dead4=0;
%活動節點數
allive4=n;
%counter for bit transmitted to Bases Station and to Cluster Heads
packets_TO_BS4=0;
packets_TO_CH4=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
        S4(i).G=0;
        S4(i).cl=0;
    end
  end
  Ea=Et*(1-r/rmax)/n;
  El4(r+1)=0;
  for i=1:100
   El4(r+1)=S4(i).E+El4(r+1);
  end
  Ec4(r+1)=Et-El4(r+1);
%(2)死亡節點檢查模塊
dead4=0;
for i=1:1:n
    %檢查有無死亡節點
    if (S4(i).E<=0)
        dead4=dead4+1; 
        %(3)第一個死亡節點的產生時間(用輪次表示)
        %第一個節點死亡時間
        if (dead4==1)
           if(flag_first_dead4==0)
              first_dead4=r;
              flag_first_dead4=1;
           end
        end
        %10%的節點死亡時間
        if(dead4==0.1*n)
           if(flag_teenth_dead4==0)
              teenth_dead4=r;
              flag_teenth_dead4=1;
           end
        end
        if(dead4==n)
           if(flag_all_dead4==0)
              all_dead4=r;
              flag_all_dead4=1;
           end
        end
    end
    if S4(i).E>0
        S4(i).type='N';
    end
end
STATISTICS.DEAD4(r+1)=dead4;
STATISTICS.ALLIVE4(r+1)=allive4-dead4;
%(4)簇頭選舉模塊
countCHs4=0;
cluster4=1;
for i=1:1:n
 if Ea>0
 p(i)=P*n*S4(i).E*E4(i)/(Et*Ea);
 if(S4(i).E>0)
   temp_rand=rand;     
   if ( (S4(i).G)<=0)  
       %簇頭的選舉,當選的簇頭會把各種相關信存入下面程序所給定的變量中
        if(temp_rand<= (p(i)/(1-p(i)*mod(r,round(1/p(i))))))
            countCHs4=countCHs4+1;
            packets_TO_BS4=packets_TO_BS4+1;
            PACKETS_TO_BS4(r+1)=packets_TO_BS4;
            S4(i).type='C';
            S4(i).G=round(1/p(i))-1;
            C4(cluster4).xd=S4(i).xd;
            C4(cluster4).yd=S4(i).yd;
            distance=sqrt( (S4(i).xd-(S4(n+1).xd) )^2 + (S4(i).yd-(S4(n+1).yd) )^2 );
            C4(cluster4).distance=distance;
            C4(cluster4).id=i;
            X4(cluster4)=S4(i).xd;
            Y4(cluster4)=S4(i).yd;
            cluster4=cluster4+1;
           %計算簇頭發送4000bit數據到基站的能量消耗(這里應是所有節點包括簇頭每一輪發送4000bit數據)
            distance;
            if (distance>do)
                S4(i).E=S4(i).E- ( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance )); 
            end
            if (distance<=do)
                S4(i).E=S4(i).E- ( (ETX+EDA)*(4000)  + Efs*4000*( distance * distance )); 
            end
        end     
    
    end
    % S4(i).G=S4(i).G-1;  
  end 
 end
end
STATISTICS.COUNTCHS4(r+1)=countCHs4;
%(5)簇內成員選擇簇頭模塊(即簇的形成模塊)
%簇內成員對簇頭的選擇(即簇的形成)算法
for c=1:1:cluster4-1
    x4(c)=0;
end
y4=0;
z4=0;
for i=1:1:n
   if ( S4(i).type=='N' && S4(i).E>0 )
     if(cluster4-1>=1)
       min_dis=sqrt( (S4(i).xd-S4(n+1).xd)^2 + (S4(i).yd-S4(n+1).yd)^2 );
       min_dis_cluster=0;
       for c=1:1:cluster4-1
           temp=min(min_dis,sqrt( (S4(i).xd-C4(c).xd)^2 + (S4(i).yd-C4(c).yd)^2 ) );
           if ( temp<min_dis )
               min_dis=temp;
               min_dis_cluster=c;
               x4(c)=x4(c)+1;
           end
       end
       %簇內節點(發送4000bit數據)能量消耗
       if(min_dis_cluster~=0)    
            min_dis;
            if (min_dis>do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
        %簇頭(接受和融合這一簇內節點4000bit數據)的能量消耗
            S4(C4(min_dis_cluster).id).E = S4(C4(min_dis_cluster).id).E- ( (ERX + EDA)*4000 ); 
            packets_TO_CH4=packets_TO_CH4+1;
       else 
            min_dis;
            if (min_dis>do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS4=packets_TO_BS4+1;
            
       end
       S4(i).min_dis=min_dis;
       S4(i).min_dis_cluster=min_dis_cluster;
   else
            y4=y4+1;
            min_dis=sqrt( (S4(i).xd-S4(n+1).xd)^2 + (S4(i).yd-S4(n+1).yd)^2 );
            if (min_dis>do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis)); 
            end
            if (min_dis<=do)
                S4(i).E=S4(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis)); 
            end
            packets_TO_BS4=packets_TO_BS4+1;
   end
  end
end
if countCHs4~=0
   u4=(n-y4)/countCHs4;
 for c=1:1:cluster4-1
    z4=(x4(c)-u4)*(x4(c)-u4)+z4;
 end
 LBF4(r+1)=z4/countCHs4;
 else  LBF4(r+1)=0;
 end
STATISTICS.PACKETS_TO_CH4(r+1)=packets_TO_CH4;
STATISTICS.PACKETS_TO_BS4(r+1)=packets_TO_BS4;
end
r=0:5000;
plot(r,STATISTICS.DEAD3,':b',r,STATISTICS.DEAD4,'-r');
legend('DEEC1','DEEC2');
xlabel('x(time)');
ylabel('y(dead)');
title('\bf DEEC1和DEEC2的死亡節點數隨時間的變化對比');
%plot(r,STATISTICS.PACKETS_TO_BS3,':b',r,STATISTICS.PACKETS_TO_BS4,'-r');
%legend('DEEC1','DEEC2');
%xlabel('x(time)');
%ylabel('y(data)');
%title('\bf DEEC1和DEEC2的數據傳輸對比');
%r=0:5000;
%plot(r,Ec3,':b',r,Ec4,'-r');
%legend('DEEC1','DEEC2');
%xlabel('x(time)');
%ylabel('y(consumption)');
%title('\bf DEEC1和DEEC2的網絡能量消耗對比');
%r=0:100:5000;
%plot(r,STATISTICS.COUNTCHS3(r+1),':b',r,STATISTICS.COUNTCHS4(r+1),'-r');
%legend('DEEC1','DEEC2');
%xlabel('x(time)');
%ylabel('y(clusters)');
%title('\bf DEEC1和DEEC2的簇頭產生數對比');
%r=0:100:5000;
%plot(r,LBF3(r+1),':b',r,LBF4(r+1),'-r');
%legend('DEEC1','DEEC2');
%xlabel('x(time)');
%ylabel('y(balance)');
%title('\bf DEEC1和DEEC2的負載均衡度對比');

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕中文乱码欧美一区二区 | 中文字幕亚洲视频| 国产综合色产在线精品| 久久亚洲欧美国产精品乐播| 激情六月婷婷久久| 国产精品你懂的在线| 91色乱码一区二区三区| 亚洲国产视频一区| 欧美福利视频一区| 极品少妇一区二区三区精品视频| 国产午夜亚洲精品不卡| 99久久精品免费看| 午夜精品免费在线| 精品sm捆绑视频| 99re亚洲国产精品| 亚洲一区二区3| 精品电影一区二区| 99久久精品免费观看| 亚洲成a人v欧美综合天堂下载| 欧美一级二级在线观看| 国产成人精品一区二区三区四区| 国产精品麻豆一区二区| 欧美视频在线一区二区三区 | 欧美日韩国产系列| 国产在线观看一区二区| 亚洲另类在线视频| 日韩欧美一区二区免费| 成人免费va视频| 日韩精品一卡二卡三卡四卡无卡| 亚洲精品一区二区三区四区高清| 91色综合久久久久婷婷| 久久国产精品区| 亚洲欧洲性图库| 一区二区欧美精品| 精品乱码亚洲一区二区不卡| 99久久久无码国产精品| 日韩va欧美va亚洲va久久| 国产精品久久久久桃色tv| 欧美肥妇free| 91麻豆精品一区二区三区| 麻豆精品视频在线观看视频| 亚洲欧美国产77777| 欧美一区二区三区白人| 91麻豆免费看| 国产激情视频一区二区三区欧美 | av一区二区三区四区| 日韩av电影天堂| 伊人色综合久久天天| 久久久美女毛片| 日韩区在线观看| 欧美视频在线观看一区| 99久久综合精品| 国产精品一区专区| 奇米一区二区三区| 亚洲综合成人网| 亚洲天堂av老司机| 久久久精品综合| 日韩欧美一区中文| 欧美亚洲综合在线| 91网站视频在线观看| 高清免费成人av| 国内偷窥港台综合视频在线播放| 亚洲与欧洲av电影| 亚洲日本韩国一区| 国产精品伦一区二区三级视频| 精品国产乱码91久久久久久网站| 欧美人妇做爰xxxⅹ性高电影| 不卡电影免费在线播放一区| 欧美精品在线一区二区三区| 欧美性淫爽ww久久久久无| 91在线国内视频| 不卡一区在线观看| 成人高清视频在线| 成人在线综合网站| 成人激情视频网站| 国产a区久久久| 成人免费高清在线| 国产a精品视频| 成人午夜av电影| 国产成人一级电影| 国产成都精品91一区二区三| 国产美女精品在线| 国产盗摄精品一区二区三区在线| 久久成人久久鬼色| 国产一区在线看| 国产制服丝袜一区| 成人晚上爱看视频| 97超碰欧美中文字幕| 在线视频综合导航| 欧美综合在线视频| 91精品国产综合久久福利软件| 666欧美在线视频| 日韩精品在线一区| 久久精品在线观看| 日韩美女久久久| 亚洲黄色小说网站| 午夜精品久久久| 久久精品国产第一区二区三区| 久久99久久久欧美国产| 国产高清无密码一区二区三区| 高清久久久久久| 在线观看国产一区二区| 777久久久精品| 久久久影院官网| 亚洲视频在线观看一区| 亚洲国产精品精华液网站| 久久av资源站| 大桥未久av一区二区三区中文| 91在线免费视频观看| 欧美三级日韩在线| 欧美精品一区二区三| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 精品久久久久久久一区二区蜜臀| 欧美精品一区二区高清在线观看 | 久久电影国产免费久久电影| 国产精品99久久久久久久女警| 色婷婷综合久久久| 欧美一二三区在线观看| 国产日韩亚洲欧美综合| 亚洲一区二区影院| 国产一区在线不卡| 欧美做爰猛烈大尺度电影无法无天| 欧美一级xxx| 亚洲欧美国产三级| 国产精品伊人色| 欧美午夜不卡在线观看免费| 精品1区2区在线观看| 亚洲制服欧美中文字幕中文字幕| 激情五月婷婷综合| 91福利精品第一导航| 久久精品一区二区| 日韩av中文在线观看| 91影视在线播放| 国产丝袜欧美中文另类| 日韩一区精品视频| 色呦呦国产精品| 国产日韩欧美激情| 男女激情视频一区| 欧美系列亚洲系列| 亚洲欧洲av另类| 国产一区不卡在线| 日韩一区二区电影在线| 亚洲激情图片一区| 成人久久视频在线观看| 欧美sm美女调教| 亚洲大片精品永久免费| www.爱久久.com| 国产欧美精品一区二区三区四区| 日本在线不卡一区| 欧美在线观看禁18| 亚洲欧美激情视频在线观看一区二区三区 | 久久久精品综合| 久久国产三级精品| 91精品国产91久久综合桃花| 一区二区三区在线视频观看| 成人黄色在线视频| 免费成人av在线播放| 欧美日韩mp4| 亚洲大片精品永久免费| 色婷婷精品大视频在线蜜桃视频| 国产精品欧美综合在线| 国产精品中文有码| 国产三级欧美三级| 国产v日产∨综合v精品视频| wwwwxxxxx欧美| 国产一区视频网站| 精品人在线二区三区| 久久疯狂做爰流白浆xx| 欧美大白屁股肥臀xxxxxx| 麻豆国产精品一区二区三区 | 久草这里只有精品视频| 日韩欧美一区二区三区在线| 日本 国产 欧美色综合| 日韩精品一区二区在线观看| 日韩激情一二三区| 日韩欧美亚洲一区二区| 伦理电影国产精品| 久久午夜老司机| 国产91在线看| 日韩一区中文字幕| 色偷偷久久人人79超碰人人澡| 亚洲乱码国产乱码精品精的特点 | 亚洲sss视频在线视频| 欧美日韩三级视频| 日韩精品欧美成人高清一区二区| 91精品国产综合久久婷婷香蕉| 青青草伊人久久| 久久亚洲一区二区三区四区| 国产老女人精品毛片久久| 国产精品视频麻豆| 色婷婷国产精品| 日韩高清不卡一区二区三区| 欧美www视频| 成人美女在线观看| 亚洲一区二区三区国产| 日韩视频一区二区三区在线播放| 国产一区二区剧情av在线| 日韩一区中文字幕| 7777精品伊人久久久大香线蕉的 | 99久久精品国产精品久久 |