首页 > 其他分享 >m基于节点位置偏好的自组织网络节点度分布的matlab仿真

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

时间:2023-06-04 18:44:08浏览次数:28  
标签:仿真 rand end 网络 matlab X2 Y2 节点

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

2.算法涉及理论知识概要

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

 

       移动自组织网络。一方面,网络信息交换采用了计算机网络中的分组交换机制,而不是电话交换网中的电路交换机制;另一方面,用户终端是可以移动的便携式终端,如笔记本、PDA等,用户可以随时处于移动或者静止状态。无线自组网中的每个用户终端都兼有路由器和主机两种功能。作为主机,终端可以运行各种面向用户的应用程序;作为路由器,终端需要运行相应的路由协议,这种分布式控制和无中心的网络结构能够在部分通信网络遭到破坏后维持剩余的通信能力,具有很强的鲁棒性和抗毁性。

 

       作为一种分布式网络,移动自组织网络是一种自治、多跳网络,整个网络没有固定的基础设施,能够在不能利用或者不便利用现有网络基础设施(如基站、AP)的情况下,提供终端之间的相互通信。由于终端的发射功率和无线覆盖范围有限,因此距离较远的两个终端如果要进行通信就必须借助于其它节点进行分组转发,这样节点之间构成了一种无线多跳网络。

 

       网络中的移动终端具有路由和分组转发功能,可以通过无线连接构成任意的网络拓扑。移动自组织网络既可以作为单独的网络独立工作,也可以以末端子网的形式接入现有网络,如Internet网络和蜂窝网。

 

        度分布是图论和网络理论中的概念。一个图(或网络)由一些顶点(节点)和连接它们的边(连结)构成。每个顶点(节点)连出的所有边(连结)的数量就是这个顶点(节点)的度。度分布是对一个图(网络)中顶点(节点)度数的总体描述。对于随机图,度分布指的是图中顶点度数的概率分布。

       一个节点的度通常定义为该节点连接的所有连接(边) 的总和。 网络的度分布即为网络中节点的度的概率分布或频率分布(统称分布)。 一个节点的度k 通常定义为该节点连接的所有连接(边) 的总和,写成数学表达式为:

d ( i) = Σj ∈Gδij .

 

        度分布是图论和(复杂)网络理论中都存在的概念。首先介绍图的概念。一个图是一个由两个集合和构成的二元组。集合一般由有限个元素构成,其中的元素被称为图的顶点,集合是由各元素构成的集合。集合中的每个元素都是一个非负整数。在无向图中,图中的每个元素,由图中的两个顶点和连接有条边构成。在有向图中,图中的每个元素,由图中的顶点以及有条连向顶点的边构成。并且,如果一个图中所有的都不超过1,那么称图是简单图.

 

3.MATLAB核心程序

 

%%
%局域网偏好的网络拓扑
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]);

 

  

 

标签:仿真,rand,end,网络,matlab,X2,Y2,节点
From: https://www.cnblogs.com/51matlab/p/17456086.html

相关文章

  • LeetCode 450. 删除二叉搜索树中的节点
    classSolution{public:TreeNode*deleteNode(TreeNode*root,intkey){del(root,key);returnroot;}voiddel(TreeNode*&root,intkey){if(!root)return;if(key<root->val)del(root->left......
  • 【滤波跟踪】基于matlab实现GPS+IMU数据融合
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 钛合金先进成形与仿真实验室 西北工业大学 材料学院 博士
    子在川上曰,逝者如斯夫,不舍昼夜。自吾去蜀入秦,凡五年矣。昔之来者,翩翩素衣,白马银鞍,谈笑无忌。今将去也,堪堪而立,褐面黄须,肱股生腴。不得少瑜之梦笔,唯学祖狄而闻鸡。心高气傲以格钛二铝铌之物,智短才疏稍致材料加工之知。为此浅陋之文,以资博士之谋,诚不胜惶恐也。初入长安,即为恩师所知......
  • m基于matlab的WLAN室内无线信道建模与仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要室内无线信道是指室内对无线通信中发送端和接收端之间通路。室内无线信道与传统的无线信道相比,具有两个显著的特点:其一,室内覆盖面积小得多;其次,收发机间的传播环境变化更大。研究表明,影响室内传播的因素主要是建筑......
  • m移动通信系统中越区切换算法的matlab仿真,对比MASN,ASUR,OP
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要硬切换,就是强制切换,其最大的特点是:“先断后连”。在硬切换过程中,用户移动设备仅仅保持与一个基站链接,一旦切换操作被激活,其马上会切断原有的连接,然后再与新的基站建立连接。从一个基站切换到另个基站的过程中,通信......
  • m基于matlab的WLAN室内无线信道建模与仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要      室内无线信道是指室内对无线通信中发送端和接收端之间通路。室内无线信道与传统的无线信道相比,具有两个显著的特点:其一,室内覆盖面积小得多;其次,收发机间的传播环境变化更大。研究表明,影响......
  • m移动通信系统中越区切换算法的matlab仿真,对比MASN,ASUR,OP
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       硬切换,就是强制切换,其最大的特点是:“先断后连”。在硬切换过程中,用户移动设备仅仅保持与一个基站链接,一旦切换操作被激活,其马上会切断原有的连接,然后再与新的基站建立连接。从一个基......
  • Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式
    前言前一篇中,我们讲解了Redis主从的搭建方式,其实很简单呐有木有,都是配置,连句代码都没有,是不是感觉高估了Redis主从的搭建方式?哈哈,没关系,跟着博主,包你全会。今天我们的主题是哨兵,没错,就是哨兵!有了Redis,要是没有哨兵,那真是太可惜了,哨兵是很神圣的一种重要的监测工具,有了哨兵,在Redis主......
  • matlab中通过ode函数求解常微分方程附加简单的钟摆模型
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 5、cloudsim基于CloudSimExample6建立自己云计算仿真平台
    1、项目结构如下: 2、构建MyCloudSim6.java1packagecloudsim;2importjava.text.DecimalFormat;3importjava.util.ArrayList;4importjava.util.Calendar;5importjava.util.LinkedList;6importjava.util.List;78importorg.cloudbus.clou......