資源簡介
虛擬力算法是一種局部優化算法,廣泛應用與各個領域。這是一個用matlab編寫的虛擬力算法源代碼。
代碼片段和文件信息
%%?無線傳感器網絡布局優化的粒子群導向虛擬力算法仿真程序
clc
clear
close?all
%%
ZawFlag=[00000];%障礙物的啟用設置,為0表示不啟用
BorderLength=1000;%正方形區域的邊界長度
DL=4;%離散化質點的間距,要求DL能夠整除BorderLength
[SxSy]=InitSK(BorderLengthDLZawFlag);%調用子函數,產生正方形區域,并用離散化質點存儲該區域
%%
%?GreenSim團隊原創作品,轉載請注明
%?Email:greensim@163.com
%?GreenSim團隊主頁:http://blog.sina.com.cn/greensim
%?歡迎訪問GreenSim——算法仿真團隊→http://blog.sina.com.cn/greensim
rLower=70;%傳感器節點覆蓋半徑取值范圍的下界
rUpper=70;%傳感器節點覆蓋半徑取值范圍的上界
NodeNum0=50;%設置固定節點個數
[Cx0Cy0r0R0]=InitCovRand(NodeNum0rLowerrUpperZawFlagBorderLength);%調用子函數,產生固定節點
NodeNum1=50;%設置移動節點個數
[Cx1Cy1r1R1]=InitCovRand(NodeNum1rLowerrUpperZawFlagBorderLength);%調用子函數,產生移動節點
figure(1)
DrawCovering0(Cx0Cy0r0ZawFlagBorderLength);
title(‘初始化網絡布局(固定節點)‘)
figure(2)
DrawCovering0(Cx0Cy0r0ZawFlagBorderLength);
hold?on
DrawCovering1(Cx1Cy1r1ZawFlagBorderLength);
title(‘初始化網絡布局(固定節點和可移動節點)‘)
%%
Cx=[Cx0Cx1];
Cy=[Cy0Cy1];
r=[r0r1];
R=[R0R1];
%如需人為指定個別節點的初始位置,請參考下面的語句進行設置(注意指定的坐標不要落入障礙物內)
%Cx(1)=400;Cy(1)=300;%人工指定標號為1的節點的坐標
Move=ones(1NodeNum0+NodeNum1);%節點移動控制參數,等于0表示節點不參與移動
Move(1:NodeNum0)=0;
M=200;%%迭代次數
CC=zeros(1M+1);%計算初始覆蓋率
[CIfCovered]=CovRates(CxCyrSxSy);%計算初始覆蓋率
CC(1)=C;
counter=2;
for?i=1:M
????[CXCY]=Gravitation(CxCyrR0.2SxSyIfCovered);
????[CXCY]=D
- 上一篇:matlabLZW編碼
- 下一篇:matlab實現google pagerank算法
評論
共有 條評論