您现在的位置:首页 >> 网络协议 >> 内容

m基于节点位置偏好的自组织网络节点度分布的matlab仿真

时间:2023/4/8 22:28:10 点击:

  核心提示:12_042_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJeYkpxq

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

       移动自组织(Ad Hoc)网络是一种多跳的临时性自治系统,它的原型是美国早在1968年建立的ALOHA网络和之后于1973提出的PR(Packet Radio)网络。ALOHA网络需要固定的基站,网络中的每一个节点都必须和其它所有节点直接连接才能互相通信,是一种单跳网络。直到PR网络,才出现了真正意义上的多跳网络,网络中的各个节点不需要直接连接,而是能够通过中继的方式,在两个距离很远而无法直接通信的节点之间传送信息。PR网络被广泛应用于军事领域。IEEE在开发802.11标准时,提出将PR网络改名为Ad Hoc网络,也即今天我们常说的移动自组织网络。

4.部分源码

............................................

%%

%局域网偏好的网络拓扑

L  = 50;

X  = rand(1,m0)*SCALE;  

Y  = rand(1,m0)*SCALE; 

fed= [];

for i = 1:m0

    for j = 1:m0

        dist(i,j)=sqrt((X(i)-X(j))^2+(Y(i)-Y(j))^2);

    end

end

 

indx = 0;

NN   = 0;  

while NN < N  

      indx = indx + 1;rng(indx);

      %计算度

      if indx == 1

         X2 = X; 

         Y2 = Y;   

      end

      

      

      degree1 = [];

      for i = 1:length(X2)

          xx= 0;

          for j = 1:length(Y2)

              dist=sqrt((X2(i)-X2(j))^2+(Y2(i)-Y2(j))^2);

              if dist <= Radius & dist > 0

                 xx= xx + 1; 

              end

          end

          degree1(i) = xx;

      end    

        

      degree2 = [];

      di      = [];

      for i = 1:length(X2)

          xx= 0;

          for j = 1:length(Y2)

              dist=sqrt((X2(i)-X2(j))^2+(Y2(i)-Y2(j))^2);

              if dist <= Radius & dist > 0 & dist<= L

                 xx= xx + 1; 

              end

              di(i,j) = dist;

          end

          degree2(i) = xx;

      end    

      

      %计算节点剩余能源

      if indx == 1

         E(1:m0) = E0 - Ec;

         tmps    = E;

      else

         E       = tmps - Ec;

         E       = [E,E0 - Ec];

         tmps    = E;

      end

      

      for i = 1:length(X2)

          d      = di(i,:);

          fed(i) = E(i)^alpha*(1-d(i)/sum(d))^(1-alpha);

      end

      for i = 1:length(X2)

          Para2(i) = fed(i)*degree1(i)/(sum(fed.*degree1));%公式3.3连接8个概率

      end

      %选择概率最大的m个进行连接

      [Vp,Ip] = sort(Para2);

      Mindx   = Ip(end-m+1:end);

      

      %新节点加入网络时遵循的概率表达式

      Parea = (degree2)/sum(degree1);

      [V,I] = max(Parea);

      indx2 = find(Parea>=0.5*V);

      %Nr    = randperm(length(indx2));

      Nr    = floor(length(indx2)*rand)+1;

      if rand > max([0.5,sum(Parea(1:m))])%加入网络时遵循的概率表达式

         if rand > Vp(end-m+1)

            Xnew = X2(indx2(Nr))+L*cos(2*pi*rand);

            Ynew = Y2(indx2(Nr))+L*sin(2*pi*rand);

         else

            Xnew  = rand(1,1)*SCALE; 

            Ynew  = rand(1,1)*SCALE;

         end

      else

         Xnew  = rand(1,1)*SCALE;  

         Ynew  = rand(1,1)*SCALE;  

      end

      

      X2    = [X2,Xnew];

      Y2    = [Y2,Ynew];

      NN    = length(X2);

end

subplot(133);

plot(X2,Y2,'b.');

title('局域网偏好的网络拓扑,L=50');

axis([0,500,0,500]);

12_042_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168