在matlab程序运行结果出现Undefined command/function 'fitness'.是什么问题,应该改哪里?
%格式标准化clearall;clc;formatlong;%初始化各个因子c1=1.4962;%学习因子c1c2=1.4962;%学习因子c2w=0.7298;%惯性权...
%格式标准化
clear all;
clc;
format long;
%初始化各个因子
c1=1.4962; %学习因子c1
c2=1.4962; %学习因子c2
w=0.7298; %惯性权重w
N=20; %粒子群规模
D=6; %搜索空间维数(本程序适合3维及以上,不能求解1,2维)
eps=10^(-6); %满足条件限制的误差(在不知道最小值时候不用设置)
MaxDT=500; %粒子群繁殖的代数
%初始化粒子的速度和位置,数据结构用矩阵A表示
A=[];Pg=[];Cross=[];
for i=1:N
for j=1:2*D
A(i,j)=rand;
end
end
for i=1:N
for j=2*D+1:3*D
A(i,j)=A(i,j-2*D);
end
end
%计算各个粒子的适应度
for i=1:N
A(i,3*D+1)=fitness(A(i,1:D),D);
end
%对粒子的适应度进行排序
B=sortrows(A,3*D+1);
%排序后适应度低的前面一半粒子直接进入下一代
NextGeneration=zeros(N,3*D+1);
for i=1:N/2
for j=1:3*D+1
NextGeneration(i,j)=B(i,j);
end
end
%后一半粒子进行遗传选择和交叉操作
for i=1:N/2
for j=1:3*D+1
Cross(i,j)=B(i+N/2,j);
end
end 展开
clear all;
clc;
format long;
%初始化各个因子
c1=1.4962; %学习因子c1
c2=1.4962; %学习因子c2
w=0.7298; %惯性权重w
N=20; %粒子群规模
D=6; %搜索空间维数(本程序适合3维及以上,不能求解1,2维)
eps=10^(-6); %满足条件限制的误差(在不知道最小值时候不用设置)
MaxDT=500; %粒子群繁殖的代数
%初始化粒子的速度和位置,数据结构用矩阵A表示
A=[];Pg=[];Cross=[];
for i=1:N
for j=1:2*D
A(i,j)=rand;
end
end
for i=1:N
for j=2*D+1:3*D
A(i,j)=A(i,j-2*D);
end
end
%计算各个粒子的适应度
for i=1:N
A(i,3*D+1)=fitness(A(i,1:D),D);
end
%对粒子的适应度进行排序
B=sortrows(A,3*D+1);
%排序后适应度低的前面一半粒子直接进入下一代
NextGeneration=zeros(N,3*D+1);
for i=1:N/2
for j=1:3*D+1
NextGeneration(i,j)=B(i,j);
end
end
%后一半粒子进行遗传选择和交叉操作
for i=1:N/2
for j=1:3*D+1
Cross(i,j)=B(i+N/2,j);
end
end 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询