📄 layout.m
字号:
function F=Layout(x,m,r,R)
%layout()计算每个粒子的适应值
%F每个粒子的适应值
%F1每个粒子位置对应的最大铌包络圆半径
%F2每个粒子位置对应的不平衡量
a1=1.5; %
a2=0.01;
b1=0.01; %
b2=0.5;
dim=length(x);
n=dim/2;
x1=[];
y1=[];
omega=1;
for i=1:n
x1=[x1;x(2*i-1)];
y1=[y1;x(2*i)];
end
F1=max(sqrt(x1.*x1+y1.*y1)+r);
F2=sqrt((sum((omega^2*m).*x1))^2+(sum((omega^2*m).*y1))^2);
f1=sqrt(x1.*x1+y1.*y1)+r-R;
for i=1:n
u1=zeros(1,n);
if f1(i)>0
u1(i)=1;
end
end
f1=u1*f1;
f2=[];
for i=1:n
u2=zeros(1,n-1);
xi=x1(i);
yi=y1(i);
ri=r(i);
xtemp=[x1(1:(i-1));x1((i+1):end)];
ytemp=[y1(1:(i-1));y1((i+1):end)];
rtemp=[r(1:(i-1));r((i+1):end)];
f2i=[];
for j=1:(n-1)
f2itemp=ri+rtemp(j)-sqrt((xi-xtemp(j))^2+(yi-ytemp(j))^2);
f2i=[f2i;f2itemp];
if f2itemp>0;
u2(j)=1;
end
end
f2=[f2;u2*f2i];
end
f2=sum(f2);
F=a1*F1+a2*F2+b1*f1+b2*f2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -