📄 adapting1.m.txt
字号:
%适应值计算
%计算适应值并赋值
for i=1:popsize
p1=(min(0,pop(i,1)))^2+(min(0,pop(i,2)))^2+(min(0,pop(i,3)))^2+(min(0,pop(i,4)))^2 ...
+(min(0,3*pop(i,1)-pop(i,3)-2))^2+(min(0,-pop(i,1)+3*pop(i,2)-pop(i,3)+3))^2+ ...
(min(0,-pop(i,2)+4*pop(i,3)-2*pop(i,4)-4))^2+(min(0,-pop(i,1)-pop(i,2)-pop(i,3)+5*pop(i,4)+5))^2; %构造罚函数
u=(3*pop(i,1)-pop(i,3)-2)*pop(i,1)+(-pop(i,1)+3*pop(i,2)-pop(i,3)+3)*pop(i,2)+ ...
(-pop(i,2)+4*pop(i,3)-2*pop(i,4)-4)*pop(i,3)+(-pop(i,1)-pop(i,2)-pop(i,3)+5*pop(i,4)+5)*pop(i,4); %目标函数
pop(i,14)=u+2.5*p1; %增广目标函数
if pop(i,13)>pop(i,14) %若当前适应值优于个体最优值,则进行个体最优信息的更新
pop(i,13)=pop(i,14); %适值更新
pop(i,9:12)=pop(i,1:4); %位置更新
end
end
%计算完适应值后寻找当前全局最优位置并记录其位置
if best_fitness>min(pop(:,13))
best_fitness=min(pop(:,13));
p=find(pop(:,13)==min(pop(:,13)));
gbest_x1=pop(p,1); %全局最优粒子的位置
gbest_x2=pop(p,2);
gbest_x3=pop(p,3);
gbest_x4=pop(p,4);
end
X=[gbest_x1,gbest_x2,gbest_x3,gbest_x4]';
Y=[3*gbest_x1-gbest_x3-2,-gbest_x1+3*gbest_x2-gbest_x3+3,-gbest_x2+4*gbest_x3-2*gbest_x4-4, ...
-gbest_x1-gbest_x2-gbest_x3+5*gbest_x4+5]';
Re=X'*Y;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -