返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 人工智能|模式识别|机器学习|数字图像处理|SAR图像处理-不仅仅是MATLAB! > 遗传算法(GA)


遗传算法(GA) A discussion board for Genetic Algorithm(GA)



回复
 
LinkBack 主题工具 显示模式
旧 2016-10-11, 01:30 PM   #1
初级会员
 
注册日期: 2016-10-11
帖子: 4
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
76850988@qq.com 正向着好的方向发展
默认 初学者请前辈们帮我看看这错误怎么解决

错误使用 bsxfun
两个输入数组的非单一维度必须相互匹配。

出错 mapminmax.apply (line 11)
y = bsxfun(@minus,x,settings.xoffset);

出错 nnet7.process_fcn (line 28)
out1 = info.apply(in2,out2);

出错 mapminmax (line 38)
y = nnet7.process_fcn(mfilename,x,varargin{:});

出错 fun (line 11)
inputn_test=mapminmax('apply',x,inputps);

出错 Genetic (line 29)
individuals.fitness(i)=fun(x); %染色体的适应度
76850988@qq.com 当前离线   回复时引用此帖
旧 2016-10-11, 01:31 PM   #2
初级会员
 
注册日期: 2016-10-11
帖子: 4
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
76850988@qq.com 正向着好的方向发展
默认 回复: 初学者请前辈们帮我看看这错误怎么解决

%% 该代码为基于神经网络遗传算法的系统极值寻优
%% 清空环境变量
clc
clear

%% 初始化遗传算法参数
%初始化参数
maxgen=100; %进化代数,即迭代次数
sizepop=20; %种群规模
pcross=[0.4]; %交叉概率选择,0和1之间
pmutation=[0.2]; %变异概率选择,0和1之间

lenchrom=[1 1 1]; %每个变量的字串长度,如果是浮点变量,则长度都为1
bound=[3 4.5;2 2.75;40 55]; %数据范围


individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
avgfitness=[]; %每一代种群的平均适应度
bestfitness=[]; %每一代种群的最佳适应度
bestchrom=[]; %适应度最好的染色体

%% 初始化种群计算适应度值
% 初始化种群
for i=1:sizepop
%随机产生一个种群
individuals.chrom(i,=Code(lenchrom,bound);
x=individuals.chrom(i,;
%计算适应度
individuals.fitness(i)=fun(x); %染色体的适应度
end
%找最好的染色体
[bestfitness bestindex]=min(individuals.fitness);
bestchrom=individuals.chrom(bestindex,; %最好的染色体
avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度
% 记录每一代进化中最好的适应度和平均适应度
trace=[avgfitness bestfitness];
76850988@qq.com 当前离线   回复时引用此帖
旧 2016-10-11, 01:31 PM   #3
初级会员
 
注册日期: 2016-10-11
帖子: 4
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
76850988@qq.com 正向着好的方向发展
默认 回复: 初学者请前辈们帮我看看这错误怎么解决

%% 迭代寻优
% 进化开始
for i=1:maxgen
i
% 选择
individuals=Select(individuals,sizepop);
avgfitness=sum(individuals.fitness)/sizepop;
%交叉
individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);
% 变异
individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);

% 计算适应度
for j=1:sizepop
x=individuals.chrom(j,; %解码
individuals.fitness(j)=fun(x);
end

%找到最小和最大适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=min(individuals.fitness);
[worestfitness,worestindex]=max(individuals.fitness);
% 代替上一次进化中最好的染色体
if bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=individuals.chrom(newbestindex,;
end
individuals.chrom(bestindex,=bestchrom;
individuals.fitness(bestindex)=bestfitness;

avgfitness=sum(individuals.fitness)/sizepop;

trace=[trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度
end
%进化结束

%% 结果分析
[r c]=size(trace);
plot([1:r]',trace(:,2),'r-');
title('适应度曲线','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
axis([0,100,0,1])
disp('适应度 变量');
x=bestchrom;
% 窗口显示
disp([bestfitness x]);
76850988@qq.com 当前离线   回复时引用此帖
旧 2016-10-11, 01:33 PM   #4
初级会员
 
注册日期: 2016-10-11
帖子: 4
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
76850988@qq.com 正向着好的方向发展
默认 回复: 初学者请前辈们帮我看看这错误怎么解决

上边程序里边的笑脸是: )
76850988@qq.com 当前离线   回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 01:52 AM


Powered by vBulletin
版权所有 ©2000 - 2017,Jelsoft Enterprises Ltd.
陕ICP备07001583号

SEO by vBSEO ©2009, Crawlability, Inc.