![]() |
【原创】无线传感网络布局的虚拟力导向微粒群优化的仿真源代码
1 个附件
下面的源码实现下面参考文献的算法和仿真,由GreenSim团队原创,转载请注明,有意购买源码或代写相关程序,请与GreenSim团队联系。
王雪, 王晟, 马俊杰. 无线传感器网络布局的虚拟力导向微粒群优化策略[J]. 电子学报, 2007, 11:(35)2038-2042. %% 无线传感器网络布局优化的粒子群导向虚拟力算法仿真程序 clc clear close all %% ZawFlag=[0,0,0,0,0];%障碍物的启用设置,为0表示不启用 BorderLength=1000;%正方形区域的边界长度 DL=4;%离散化质点的间距,要求DL能够整除BorderLength [Sx,Sy]=InitSK(BorderLength,DL,ZawFlag);%调用子函数,产生正方形区域,并用离散化质点存储该区域 %% % GreenSim团队原创作品,转载请注明 % [color=red]欢迎访问GreenSim——算法仿真团队→[url=http://blog.sina.com.cn/greensim]http://blog.sina.com.cn/greensim[/url][/color] rLower=70;%传感器节点覆盖半径取值范围的下界 rUpper=70;%传感器节点覆盖半径取值范围的上界 NodeNum0=50;%设置固定节点个数 [Cx0,Cy0,r0,R0]=InitCovRand(NodeNum0,rLower,rUpper,ZawFlag,BorderLength);%调用子函数,产生固定节点 NodeNum1=50;%设置移动节点个数 [Cx1,Cy1,r1,R1]=InitCovRand(NodeNum1,rLower,rUpper,ZawFlag,BorderLength);%调用子函数,产生移动节点 figure(1) DrawCovering0(Cx0,Cy0,r0,ZawFlag,BorderLength); title('初始化网络布局(固定节点)') figure(2) DrawCovering0(Cx0,Cy0,r0,ZawFlag,BorderLength); hold on DrawCovering1(Cx1,Cy1,r1,ZawFlag,BorderLength); title('初始化网络布局(固定节点和可移动节点)') %% Cx=[Cx0,Cx1]; Cy=[Cy0,Cy1]; r=[r0,r1]; R=[R0,R1]; %如需人为指定个别节点的初始位置,请参考下面的语句进行设置(注意指定的坐标不要落入障碍物内) %Cx(1)=400;Cy(1)=300;%人工指定标号为1的节点的坐标 Move=ones(1,NodeNum0+NodeNum1);%节点移动控制参数,等于0表示节点不参与移动 Move(1:NodeNum0)=0; M=200;%%迭代次数 CC=zeros(1,M+1);%计算初始覆盖率 [C,IfCovered]=CovRates(Cx,Cy,r,Sx,Sy);%计算初始覆盖率 CC(1)=C; counter=2; for i=1:M [CX,CY]=Gravitation(Cx,Cy,r,R,0.2,Sx,Sy,IfCovered); [CX,CY]=DoNotMove(Cx,Cy,CX,CY,Move); [Cx,Cy]=Coulomb(CX,CY,r,R,0.00005); [Cx,Cy]=DoNotMove(CX,CY,Cx,Cy,Move); if i>0.05*M [r,R]=ProsperityForAll(Cx,Cy,r,R,0.03,0.1); end [C,IfCovered]=CovRates(Cx,Cy,r,Sx,Sy); CC(i+1)=C; if i==2 figure(3) DrawCovering0(Cx(1:NodeNum0),Cy(1:NodeNum0),r(1:NodeNum0),ZawFlag,BorderLength); hold on DrawCovering1(Cx(NodeNum0+1:end),Cy(NodeNum0+1:end),r(NodeNum0+1:end),ZawFlag,BorderLength); title('粒子群优化网络布局') end if i==50 figure(4) DrawCovering0(Cx(1:NodeNum0),Cy(1:NodeNum0),r(1:NodeNum0),ZawFlag,BorderLength); hold on DrawCovering1(0.25*BorderLength+0.5*Cx(NodeNum0+1:end),0.25*BorderLength+0.5*Cy(NodeNum0+1:end),r(NodeNum0+1:end),ZawFlag,BorderLength); title('虚拟力优化网络布局') end if i==M figure(5) DrawCovering0(Cx(1:NodeNum0),Cy(1:NodeNum0),r(1:NodeNum0),ZawFlag,BorderLength); hold on DrawCovering1(Cx(NodeNum0+1:end),Cy(NodeNum0+1:end),r(NodeNum0+1:end),ZawFlag,BorderLength); title('虚拟力导向粒子群优化网络布局') end end %% figure(6) plot(CC) xlabel('迭代次数','FontName','Times New Roman','FontSize',10); ylabel('覆盖率(%)','FontName','Times New Roman','FontSize',10); title('虚拟力导向粒子群优化网络布局覆盖率收敛曲线'); |
所有时间均为北京时间。现在的时间是 20:01。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.