91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-08
  • 語言: Matlab
  • 標簽: 節點定位??

資源簡介

無線傳感器網絡節點定位程序,運用遺傳算法,使用MATLAB編程語言

資源截圖

代碼片段和文件信息

%Generic?Algorithm?for?function?f(x1x2)?optimum
clear?all;
clc;
close?all;

%Parameters
Size=100;%種群數量???
G=100;?%迭代次數???
CodeL=10;%編碼長度
NodeNum=7;%錨節點數目
NodeP=[0?1;1?3;2?1;3?4.2;4?3;1.2?3.9;3.4?2.8];%錨節點取值
AimNum=5;%目標節點數目
AimP=[1.2?2.4;2.5?1.4;0.4?3;2.5?3.2;3.6?3.5];%目標點驗證用.
%for?j=1:AimNum
%????for?i=1:NodeNum
%????????D(ji)=roundn(sqrt(sum((NodeP(i:)-AimP(j:)).^2))-1);%網絡節點定位為已知條件(距離Di各錨節點(信標節點)點坐標)?????????
%????end
%end
%D=[sqrt(2)?sqrt(2)?sqrt(2)];%與各錨節點的距離
D=[1.80.61.62.52.91.52.2;2.52.20.62.82.22.81.7;...
????20.62.62.93.61.23;3.31.52.31.11.51.51;...
????4.4?2.630.90.62.40.7];
umax=10;%變量區間
umin=-10;%01區間

%Main?Program
for?a=1:AimNum
????E=round(rand(Size2*CodeL));%初始編碼round四舍五入,rand(Size2*CodeL)產生80*20矩陣,元素(0,1)隨機取,服從均勻分布??
????for?k=1:G
????????time(k)=k;?
????????for?s=1:Size
????????????m=E(s:);%取矩陣的第s行
????????????y1=0;y2=0;%兩個變量在零一區間的初始值

????????????%Uncoding
????????????m1=m(1:CodeL);%取前10個元素,解碼生成y1
????????????for?i=1:CodeL
????????????????y1=y1+m1(i)*2^(i-1);
????????????end
????????????x1=(umax-umin)*y1/1023+umin;%將解碼出來的結果轉換到區間內
????????????m2=m((CodeL+1):(2*CodeL));%?取另外十個元素,解碼生成y2
????????????for?i=1:CodeL
????????????????y2=y2+m2(i)*2^(i-1);
????????????end

????????????x2=(umax-umin)*y2/1023+umin;%將解碼出來的結果轉換到區間內
????
????????????for?i=1:NodeNum
????????????????F1(i)=sum((NodeP(i:)-[x1x2]).^2);%?求到信標節點距離
????????????end
????????????[F2?Idx]=sort(F1);%從小到大排列
????????????Idx_r(a:)=Idx(1:3);
????
????????????F(s)=0;
????????????for?i=1:3
????????????????F(s)=abs(sqrt(sum((NodeP(Idx(i):)-[x1x2]).^2))-D(aIdx(i)))+F(s);%?最優函數n個節點1234....n誤差求和,使最優函數最小
????????????end
????????????F(s)=1./F(s);%見第70行
????????end

????????Ji=1./F;
????%******?Step?1?:?Evaluate?BestJ?******
????????BestJ(k)=min(Ji);

????????fi=F;??????????????????????????%Fitness?Function
????????[OderfiIndexfi]=sort(fi);?????%Arranging?fi?bigger?to?small從大到小排序
????????Bestfi=Oderfi(Size);???????????%Let?Bestfi=max(fi)
????????BestS=E(Indexfi(Size):);??????%Let?BestS=E(m)初始樣本中最優樣本?m?is?the?Indexfi?belong?to?max(fi)
????????bfi(k)=Bestfi;%將每次循環的最優值存到數組中

????%******?Step?2?:?Select?and?Reproduct?Operation******選擇復制
???????fi_sum=sum(fi);%所有的值求和
???????fi_Size=(Oderfi/fi_sum)*Size;%oderfi是排序之后的數組,求數組之中每個元素所占的比例(占的比例大,值大,說明更優)

???????fi_S=floor(fi_Size);????????%Selecting?Bigger?fi?value,floor函數的作用是取比每個元素小的整數。左邊最近的整數(數軸)

???????kk=1;
???????for?i=1:Size
????????????for?j=1:fi_S(i)????????%選擇復制
????????????????TempE(kk:)=E(Indexfi(i):);??%fi_S=floor(fi_Size)這個數組元素是零則不選擇復制,是一就選擇復制(占的比例比較大就是一,占的比例比較小就是零)
????????????????kk=kk+1;?????????????%kk是用于復制的
????????????end
???????end

????%************?Step?3?:?Crossover?Operation?************
????????pc=0.60;????%交叉概率
????????n=ceil(20*rand);%ceil(20*隨機數)20位隨機選擇一位,ceil取比它大得最近的整數
????????for?i=1:2:(Size-1)
????????????temp=rand;
????????????if?pc>temp??????????????????%Crossover?Cond

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6874??2008-05-20?09:16??Genetic_others.m

-----------?---------??----------?-----??----

?????????????????7092????????????????????2


評論

共有 條評論