基于 A* 搜索算法来优化无线传感器节点网络的平均电池寿命(Matlab代码实现)

news/2024/7/5 4:55:10

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

A*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法。它有较好的性能和准确度。本文使用 A* 搜索算法来优化无线传感器节点网络的平均电池寿命。​​

📚2 运行结果

主函数部分代码:

close all;
clear;
clc;
%-------------------------------
%Number of Nodes in the field
 n=200;
%n=input('Enter the number of nodes in the space : '); 
%Energy Model (all values in Joules)
%Initial Energy 
Eo=0.1;
%Eo=input('Enter the initial energy of sensor nJ : ');
%Field Dimensions - x and y maximum (in meters)
% xm=input('Enter x value for area plot : ');
% ym=input('Enter y value for area plot : ');  
xm=100;
ym=100;
​
%x and y Coordinates of the Sink
sink.x=1.5*xm;
sink.y=0.5*ym;
​
%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;
​
%Values for Hetereogeneity
%Percentage of nodes than are advanced
m=0.5;
%\alpha
a=1;
​
%maximum number of rounds
%rmax=input('enter the number of iterations you want to run : '); 
rmax=200;
%------------------
​
%Computation of do
do=sqrt(Efs/Emp);
​
%Creation of the random Sensor Network
figure(1);
hold off;
for i=1:1:n
    S(i).xd=rand(1,1)*xm;
    XR(i)=S(i).xd;
    S(i).yd=rand(1,1)*ym;
    YR(i)=S(i).yd;
    S(i).G=0;
    %initially there are no cluster heads only nodes
    S(i).type='N';
   
    temp_rnd0=i;
    %Random Election of Normal Nodes
    if (temp_rnd0>=m*n+1) 
        S(i).E=Eo;
        S(i).ENERGY=0;
        plot(S(i).xd,S(i).yd,'o-r');
        hold on;
    end
    %Random Election of Advanced Nodes
    if (temp_rnd0<m*n+1)  
        S(i).E=Eo*(1+a);
        S(i).ENERGY=1;
        plot(S(i).xd,S(i).yd,'+');
        hold on;
    end
end
​
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
plot(S(n+1).xd,S(n+1).yd,'o', 'MarkerSize', 12, 'MarkerFaceColor', 'r');
figure(1);  
% figure(1)
%  plot(o1,o2,'^','LineWidth',1, 'MarkerEdgeColor','k', 'MarkerFaceColor','y', 'MarkerSize',12);
%    hold on
%First Iteration
%counter for CHs
countCHs=0;
%counter for CHs per round
rcountCHs=0;
cluster=1;
​
countCHs;
rcountCHs=rcountCHs+countCHs;
flag_first_dead=0;
​
for r=0:1:rmax
    r;
​
  %Operation for epoch
    if(mod(r, round(1/p) )==0)
        for i=1:1:n
            S(i).G=0;
            S(i).cl=0;
        end
    end

🎉3 参考文献

[1]梁艺凡,谭丽,冯挺.A~*进路搜索算法的研究与实现[J].铁道标准设计,2013,No.613(02):117-119+127.

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


http://lihuaxi.xjx100.cn/news/1085110.html

相关文章

基于PaddleServing的串联部署 ocr 识别模型

要点&#xff1a; 使用paddleserving服务 1 首先需要安装PaddleServing部署相关的环境 PaddleServing是PaddlePaddle推出的一种高性能、易扩展、高可用的机器学习服务框架。PaddleOCR中使用PaddleServing主要是为了将训练好的OCR模型部署到线上环境&#xff0c;提供API服务&a…

[创新工具和方法论]-02- DOE实验设计步骤

文章目录 1.DOE设计1.1 基于OFAT的传统实验设计&#xff1a;1.2 基于DoE的现代实验设计&#xff1a;1.3 DOE和OFAT的比较1.4 如何利用好DOE1.4.1 规划1.4.2 筛选1.4.3 表征1.4.4 优化1.4.5 确认 2. 步骤2.1陈述实际的问题和实验的目的2.2因果链分析,提取重要的因子2.3选择Y的响…

一个快速去除黑背景和其他颜色背景,生成透明PNG图的小工具

做粒子效果或者其他一些图案的时候&#xff0c;时常能找到不少原图&#xff0c;但是却有黑色的背景或者其他背景色&#xff0c;导致用起来比较麻烦。这个小工具就可以方便的去除黑背景&#xff0c;生成透明PNG图&#xff0c;可以把想要的图案方便的取出来。 链接请见&#xff…

ChatGPT技术原理 第二章:自然语言处理基础

目录 2.1 语言模型 2.3 词嵌入 2.4 注意力机制 2.5 生成式模型 2.1 语言模型

【前端面经】JS-对象的可枚举性

JavaScript中的对象是非常重要的数据类型&#xff0c;它们作为编程中的基础构建块&#xff0c;可以被用来表示各种数据结构。对象是由属性构成的&#xff0c;每个属性都包含一个名字和一个值。属性值可以是基本类型或其他对象。在JavaScript中&#xff0c;对象属性有许多特性&a…

go破冰之旅·9·数组与切片(一)

一次5-10分钟即可搞定&#xff0c;实用效率&#xff01; 上文中&#xff0c;我们重点看了下函数的常用实践及各种玩法&#xff1a;函数相关 本文开始分为几小节我们来看看go中的数组和切片如何play&#xff0c;因篇幅和效率控制&#xff0c;本文重点看看数组。 目录 数组 数…

华为OD机试 - 羊、狼、农夫过河(Python)

题目描述 羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。 要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。 只计算农夫去对岸的次数,回程时农夫不会运送羊和狼。 备注:农夫…

计算机网络知识复习

目录 TCP/IP协议群做了哪些事情&#xff1f; TCP协议为什么是3次握手&#xff0c;4次挥手&#xff1f; 如果网络延迟是30ms&#xff0c;那么Ping(基于UDP的)一个网站需要多少ms&#xff1f; 如果请求一个HTTP协议的网站&#xff0c;TTFB至少ms&#xff1f; CDN更换图片&am…