m基于最小生成树算法的无线传感器网络MCDS生成matlab仿真

简介: m基于最小生成树算法的无线传感器网络MCDS生成matlab仿真

1.算法描述

   一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树 (Minimum Spanning Tree,MST) ;一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有构成一棵树的 n − 1 n-1n−1 条边;对于一个带权 (假定每条边上的权均为大于零的数) 连通无向图 G GG 中的不同生成树,其每棵树的所有边上的权值之和也可能不同;简单来说,对于一个有 n nn 个点的图,边一定是大于等于 n − 1 n-1n−1 条的,最小生成树就是在这些边中选择 n − 1 n-1n−1 条出来连接所有的 n nn 个点,且这n − 1 n-1n−1 条边的边权之和是所有方案中最小的;

    对于一个带权连通无向图G=(V,E),生成树不同,每棵树的权(树中所有边上的权值和)也不同,设R为G的所有生成树的集合,若T为R中权值和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree,MST)

注:

1、最小生成树可能有多个,但边的权值之和总是唯一且最小的

2、最小生成树的边数=定点数-1,砍掉一条则不连通,增加一条则会出现回路

3、若一个连通图本身就是一颗树,则其最小生成树就是它本身

4、只有连通图才有生成树,非连通图只有生成森林

   无线传感器网络(Wireless Sensor Networks, WSN)是一种整合了传感器,网络以及微机电的新型网络技术。WSN具有低功耗、自组织、低成本以及部署方便等优势。因此,WSN被广泛应用在各种通信场景中,如环境监测、火灾预警以及军事防化领域等[]。为了提升WSN的通信性能,降低WSN的能耗,构建WSN的最小连通支配集(Minimum Connected Dominating Set, MCDS)具有十分重要的意义。

   在WSN对应的图定义为G=(V, E, R),V表示的是WSN中所有的节点集合,E表示边的集合,R表示的是WSN节点的可通信半径。假设图G为全连通图,图中所有节点的连接为双向连接。其中,图G的支配集(Dominating Set, DS)可以定义为如下表达式:

fa9fcb5b359213d1b52eb3d78f67a8e7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

公式1中,如果D中至少存在一个节点u与之相邻,此时D为图G的一个支配集。进一步,连通支配集(Connected Dominating Set, CDS)可以定义为如下表达式:

036a54006d41dd916032fb41aa3491e6_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    公式2的含义为当V中任意一个节点属于D或者至少与D中的某个节点连接。其中D表示支配集DS,。那么当DS为连通的,此时DS即为CDS。由于CDS的集合并不是唯一的,其中规模最小的即被称之为MCDS。

2.仿真效果预览
matlab2022a仿真结果如下:

1e3d3fc1b790f1cb4c1085fe13c14793_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
a739e7e172d932884e9c969f32f34a1a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
ec351f05af96d0f6cf4ba979dd1d32cd_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
320733045a493b8334be01093bbcf67d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
6801c01af5eea25d34429e8558177a67_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

Radius    = 25;
Node_Nums = [40:10:150];
for ii = 1:length(Node_Nums)
    ii
    for jj = 1:50
        rng(jj);
        Node_Num = Node_Nums(ii);
        for i=1:Node_Num
            Posxy(i,1)=150*rand(1,1);
            Posxy(i,2)=100*rand(1,1);
        end
        %网络图参数提取
        %度
        %将网络图转换为矩阵的变量
        Connect_matrix = zeros(Node_Num,Node_Num);
        W              = zeros(Node_Num,Node_Num);
        D              = [];%度数
        for i=1:Node_Num
            num = 0;
            for j=1:Node_Num
                if i~=j
                    dist = (Posxy(i,1)-Posxy(j,1))^2+(Posxy(i,2)-Posxy(j,2))^2;
                    if dist < Radius^2 
                       num                 = num+1;
                       Connect_matrix(i,j) = 1;
                    end
                end
            end
            d(i) = num;
            D    = [D,d(i)];%计算度数
        end
 
        x = Posxy(:,1);
        y = Posxy(:,2);
 
    %%
    %下面是对比算法,直接通过最小生成树来产生MCDS,放这里,我们作为对比使用
        [X_,Y_,M,MD,T]=func_tree(Connect_matrix,Node_Num,W,x,y,D);
        Sizes = length(M);
        Ti(jj)= Sizes/Node_Num;
    end
    Ti1(ii)= mean(Ti);
end
p   = polyfit(Node_Nums,Ti1,4);
Ti2 = polyval(p,Node_Nums);
相关文章
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
20 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
3天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
3天前
|
算法 Serverless
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
|
2天前
|
移动开发 算法 计算机视觉
基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真
本项目基于分块贝叶斯非局部均值优化(OBNLM)算法实现图像去噪,使用MATLAB2022A进行仿真。通过调整块大小和窗口大小等参数,研究其对去噪效果的影响。OBNLM结合了经典NLM算法与贝叶斯统计理论,利用块匹配和概率模型优化相似块的加权融合,提高去噪效率和保真度。实验展示了不同参数设置下的去噪结果,验证了算法的有效性。
|
1天前
|
算法 决策智能
基于SA模拟退火优化算法的TSP问题求解matlab仿真,并对比ACO蚁群优化算法
本项目基于MATLAB2022A,使用模拟退火(SA)和蚁群优化(ACO)算法求解旅行商问题(TSP),对比两者的仿真时间、收敛曲线及最短路径长度。SA源于金属退火过程,允许暂时接受较差解以跳出局部最优;ACO模仿蚂蚁信息素机制,通过正反馈发现最优路径。结果显示SA全局探索能力强,ACO在路径优化类问题中表现优异。
|
17小时前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
24天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
62 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
51 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
62 10