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

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

1.算法仿真效果
matlab2022a仿真结果如下:

45691e3282d5376ae1a2a45ed4d9b6fd_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
b7a645b4b73ed7a7e39b485f6f8f0b71_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
2699c83a3f0392dcfc6eb76f34f99a8d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
eeefc98eeffcac962745c77264e45a4c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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]);
相关文章
|
2天前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
1天前
|
传感器 算法
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。
|
1天前
|
监控 算法 数据安全/隐私保护
基于扩频解扩+turbo译码的QPSK图传通信系统matlab误码率仿真,扩频参数可设置
本项目基于MATLAB 2022a实现图像传输通信系统的仿真,涵盖QPSK调制解调、扩频技术和Turbo译码。系统适用于无人机图像传输等高要求场景,确保图像质量和传输稳定性。通过仿真,验证了系统在不同信噪比下的性能,展示了图像的接收与恢复效果。核心代码实现了二进制数据到RGB图像的转换与显示,并保存不同条件下的结果。
16 6
|
2天前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
6月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
162 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
138 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
9月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
9月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章