利用粒子群算法设计无线传感器网络中的最优安全路由模型(Matlab代码实现)

news2024/11/13 23:42:36

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

无线传感器网络(WSN)由数十个、数百个甚至数千个自主传感器组成。这些传感器以无线方式嵌入环境中,彼此相距一定距离进行通信,其任务是发现和聚集环境信息,并将其传输到监测中心。传感器节点的连续移动及其有限的电池功率会导致这些类型网络的路由问题。因此,在无线传感器网络中提供可靠和安全的协议似乎至关重要。本文的主要重点是利用人工智能技术,如聚类和粒子群优化(PSO)算法,在无线传感器网络中找到安全高效的路由模型。

📚2 运行结果

主函数部分代码:

function Init
​
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
​
%Field Dimensions - x and y maximum (in meters)
run=1;
iteration=1;
PopNum=30;
VelocityLimit=3.83;
xRank=13.33;  
RepLimit = 100;    % repository limitation number . we can not exceed this number of record in repository
ObjNum=2;
R = 6;
C1 = [1.3 1.5 1.8 1.9 2];      % C1 nd C2 range
Weight = [0.6 0.7 0.8 0.9 1];          % W range
%Energy Model (all values in Joules)
%Initial Energy 
Eo=8;
NodeNum=400;
PlotSizeX=100;
PlotSizeY=100;
X=PlotSizeX*rand(1,NodeNum);
Y=PlotSizeY*rand(1,NodeNum);
​
​
E=Eo*ones(1,NodeNum); %Initil Energy
sender.x=0;
sender.y=0;
%x and y Coordinates of the Sink
sink.x=PlotSizeX/2;
sink.y=PlotSizeY/2;
​
​
​
​
​
% % %Number of Nodes in the field
% % n=300;
% % %Optimal Election Probability of a node
% % %to become cluster head
% % p=0.2;
​
​
%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;
%maximum number of rounds
rmax=5;
​
%%%%%%%%%%%%%%%%%%%%%%%%% END OF PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%
%Computation of do
do=sqrt(Efs/Emp);
MutualDominance=1;
MobilityRate=2;%movement rate of sink
Step=150; %step of modeling
BsTrackX=[sink.x];
BsTrackY=[sink.y];  % save the track of x and y coordinate of sink
​
energy_values=[];
fitness=[];
clusters=[];
index_energy=1;
index_fitness=1;
cluster_index=1;
​
for w=1:Step
    TrackSize=size(BsTrackX);
    [sink.x sink.y]=NodeMovement(BsTrackX(TrackSize(2)),BsTrackY(TrackSize(2)),PlotSizeX,PlotSizeY,MobilityRate);
    BsTrackX=[BsTrackX sink.x];
    BsTrackY=[BsTrackY sink.y];
    SenderNum=ceil(rand()*7);
    for jj=1:SenderNum
        I=ceil(NodeNum*rand());
        while (E(I)<=0)
            I=ceil(NodeNum*rand());
        end
        sender.x=X(I);
        sender.y=Y(I);
        for ii=1:run
           [OutputParticleAC OutputParticleVal OutputFitness OutputRepSize Energy]=PSO(iteration,X,Y,E,sink,sender,xRank,RepLimit,PopNum,C1(3),Weight(4),ETX,EDA,Emp,NodeNum,PlotSizeX,ObjNum,do,VelocityLimit,R,Efs,MutualDominance,I,MobilityRate);
        end      
        
    end
    
    E=Energy;
    energy_values(index_energy,1:NodeNum)=E;
    fitness(index_fitness,1)=OutputFitness(1,1);     
    clusters(cluster_index,1)=-OutputFitness(1,2);
    
    cluster_index=cluster_index+1;
    index_fitness=index_fitness+1;
    index_energy=index_energy+1;
    
    disp(['end of step ',num2str(w),' ']);
end

🎉3 参考文献

[1]蒋溢. 无线传感器网络路由安全关键技术研究[D].电子科技大学,2015.

部分理论引用网络文献,若有侵权联系博主删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day49 5.01 C++刷题

Go不是解释型语言&#xff0c;是编译型语言 Java是混合型语言

MOSFET正向导通,阻断,阈值电压研究

一 设计要求&#xff1a; N-为均匀掺杂、其他均为离子注入所形成的高斯掺杂&#xff1b;P的宽度为10、结深6um&#xff1b;氧化层oxide厚度为0.1um,宽度为10um&#xff1b;氧化层左侧空白需要定义为材料air&#xff1b;所有电极都定义为无厚度&#xff1b;所有的高斯掺杂峰值点…

( 数组和矩阵) 485. 最大连续 1 的个数 ——【Leetcode每日一题】

❓485. 最大连续 1 的个数 难度&#xff1a;简单 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,0,1,1,1] 输出&#xff1a;3 解释&#xff1a;开头的两位和最后的三位都是连续 1 &#xff0c;所以最大…

Vision Transformer架构Pytorch逐行实现

前言 代码来自哔哩哔哩博主deep_thoughts&#xff0c;视频地址&#xff0c;该博主对深度学习框架方面讲的非常详细&#xff0c;推荐大家也去看看原视频&#xff0c;不管是否已经非常熟练&#xff0c;我相信都能有很大收获。论文An Image is Worth 16x16 Words: Transformers f…

iOS审核这些坑,腾讯游戏也踩过

WeTest 导读 在App上架苹果应用商店的过程中&#xff0c;相信大多数iOS开发者往往都有过这样的经历&#xff1a;辛苦开发出来的产品&#xff0c;测试验收也通过了&#xff0c;满怀期待的提交App给苹果审核&#xff0c;结果经常被苹果各种理由拒之门外&#xff0c;苦不堪言。 …

Prometheus监控系统存储容量优化攻略,让你的数据安心保存!

云原生监控领域不可撼动&#xff0c;Prometheus 是不是就没缺点&#xff1f;显然不是。 一个软件如果什么问题都想解决&#xff0c;就会导致什么问题都解决不好。所以Prometheus 也存在不足&#xff0c;广受诟病的问题就是 单机存储不好扩展。 1 真的需要扩展容量吗&#xff…

0x80070570文件或目录损坏且无法读取解决方法

第一种解决方法&#xff1a;命令提示符修复。 1、首先按下“Win标R”键&#xff0c;打开运行。 2、然后如果要修复的文件在E盘&#xff0c;那就输入&#xff1a;chkdsk e: /f&#xff0c;h盘就是&#xff1a;chkdsk h: /f&#xff0c;反正是哪个盘就把中间的字幕改成那个盘的…

ecs思考

VPC网络诊断&#xff0c;从router看起&#xff0c;连接公有子网路有一个默认&#xff0c;再新增一条指向igw路由&#xff1b;连接私有子网路由有一个默认&#xff0c;再新增一条指向NAT网关的路由&#xff0c;其中NAT网关一定要在公有子网中&#xff0c;否则&#xff0c;私有子…

Android 10.0 设置默认浏览器后安装另外浏览器后默认浏览器功能修复

1.前言 在10.0的系统rom定制化开发中,当在系统中有多个浏览器的时候,会在用代码启用浏览器的时候,让用户选择进入哪个浏览器,这样显得特别的不方便 所以产品开发中,要求用RoleManager的相关api来设置默认浏览器,但是在设置完默认浏览器以后,在安装一款浏览器的时候,默认…

〔金融帝国实验室〕(Capitalism Lab)v9.0.00官方重大版本更新!

〖金融帝国实验室〗&#xff08;Capitalism Lab&#xff09;v9.0.00正式发布&#xff01; ◎制作发行&#xff1a;Enlight Software ◎发布时间&#xff1a;2023年04月28日 ————————————— ※v9.0.00更新说明&#xff1a; 1.实现6项数据信息双窗口并列显示&#…

兴寿镇“春踏青,兴寿行”特色旅游线路点靓辛庄

记者&#xff1a;云飞 踏着欢乐的节拍&#xff0c;伴着春日的暖阳&#xff0c;2023年4月29日&#xff0c;北京市昌平区兴寿镇&#xff0c;2023党建引领文旅农产业融合发展系列旅游季——“春踏青&#xff0c;兴寿行”特色旅游线路第二站&#xff0c;在兴寿镇辛庄村圆满举办。 此…

【搭建私有云盘】无公网IP,在外远程访问本地微力同步

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸&#xff0c;虽然谈不上多么新颖&#xff0c;但是其…

《QDebug 2023年4月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1.对 qml 基本类型 list 的编辑 在 Qt5 中&#xff0c;QML 的 list 类型只提供了 push 添加数据&#xff0c;或者重新赋值&#xff0c;没法 pop。到了 Qt6&#xff0c;实测可以对 list 调用 pop/shift 等操作。 Qt5 中可以先…

【Liunx】进程的程序替换——自定义编写极简版shell

目录 进程程序替换[1~5]1.程序替换的接口&#xff08;加载器&#xff09;2.什么是程序替换&#xff1f;3.进程替换的原理4.引入多进程5.系列程序替换接口的详细解析&#xff08;重点&#xff01;&#xff09; 自定义编写一个极简版shell[6~8]6.完成命令行提示符7.获取输入的命令…

Docker 架构

Docker 架构 简介Docker daemon &#xff08;守护进程&#xff09;Docker client &#xff08;客户端&#xff09;Docker registries &#xff08;仓库&#xff09;Images &#xff08;镜像&#xff09;Containers &#xff08;容器&#xff09;The underlying technology &…

前缀和 技巧小记

前缀和 子数组的元素之和&#xff1a;一维前缀和子矩阵的元素之和&#xff1a;二维前缀和前缀和 哈希表&#xff1a;寻找和为 target 的子数组 子数组的元素之和&#xff1a;一维前缀和 前缀和适用于快速、频繁地计算一个索引区间内的元素之和。 int res 0; // 存储区间[…

链表:常见面试题-拷贝特殊链表

题目&#xff1a; 一种特殊的单链表节点类描述如下: class Node { int value; Node next; Node rand; Node(int val) {value val} } rand指针是单链表节点结构中新增的指针&#xff0c;rand可能指向链表中的任意一个节点&#xff08;包括自己&#xff09;&#xff0c;也可…

计算机电脑中了勒索病毒怎么办,Windows系统中了faust勒索病毒解密数据恢复

电脑的操作系统被恶意软件攻击已不再是新鲜的话题了。而攻击的恶意软件中有一种叫做faust勒索病毒&#xff0c;常常袭击Windows电脑系统。如果我们的电脑在使用Windows操作系统时感染了faust勒索软件&#xff0c;请不要慌张&#xff0c;我们可以咨询专业的数据恢复厂商&#xf…

深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用,在训练神经网络的过程中,将稀疏损失加入到常规损失函数的作用主要是降低模型复杂性和提高模型泛化能力。通过引入稀疏性约束,优化算法会在减小常规损失的同时,尽量让参…

快速上手非关系型数据库Redis

一、Redis介绍 1.非关系型数据库&#xff0c;纯内存操作&#xff0c;key-value存储&#xff0c;性能很高&#xff0c;可持久化&#xff08;内存---->保存到硬盘上&#xff09; 2.缓存&#xff0c;计数器&#xff0c;验证码&#xff0c;geo地理位置信息&#xff0c;发布订阅…