⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layout.m

📁 粒子群算法在排列组合问题中的应用
💻 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 + -