%% 清空环境
clc
clear
%% 遗传算法参数
maxgen=30; %进化代数
sizepop=100; %种群规模
pcross=[0.6]; %交叉概率
pmutation=[0.01]; %变异概率
lenchrom=[1 1]; %变量字串长度
bound=[-5 5;-5 5]; %变量范围
%% 个体初始化
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=[];
%% 进化开始
for i=1:maxgen
% 选择操作
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);
if mod(i,10)==0
warning off
individuals.chrom=nonlinear(individuals.chrom,sizepop);
end
% 计算适应度
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(worestindex,:)=bestchrom;
individuals.fitness(worestindex)=bestfitness;
avgfitness=sum(individuals.fitness)/sizepop;
trace=[trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度
end
%进化结束
%% 结果显示
[r c]=size(trace);
figure
plot([1:r]',trace(:,1),'r-',[1:r]',trace(:,2),'b--');
title(['函数值曲线 ' '终止代数=' num2str(maxgen)],'fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('函数值','fontsize',12);
legend('各代平均值','各代最佳值','fontsize',12);
ylim([1.5 8])
disp('函数值 变量');
ylim([-0.5 8])
grid on
% 窗口显示
disp([bestfitness x]);
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB智能算法30个案例分析 源代码.zip (84个子文件)
MATLAB智能算法30个案例分析 源代码
chapter16.rar 18KB
chapter3.rar 5KB
chapter10.rar 3KB
chapter7.rar 4KB
chapter1.rar 2KB
chapter15.rar 12KB
chapter26.rar 3KB
chapter19.rar 5KB
chapter9.rar 705B
chapter20.rar 11KB
chapter25.rar 169KB
chapter2
案例3非线性
test.m 269B
fun.m 79B
Code.m 389B
Genetic.m 3KB
nonlinear.m 233B
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
案例2
test.m 269B
fun.m 112B
Code.m 389B
Genetic.m 3KB
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
案例3
test.m 269B
fun.m 79B
Code.m 389B
Genetic.m 3KB
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
案例2非线性
test.m 269B
Genetic.asv 3KB
fun.m 112B
Code.m 389B
Genetic.m 3KB
nonlinear.m 233B
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
案例1
test.m 269B
Genetic.asv 3KB
fun.m 139B
Code.m 389B
Genetic.m 3KB
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
案例1非线性
test.m 269B
main.m 3KB
fun.m 139B
Code.m 389B
nonlinear.m 293B
Mutation.m 1KB
Select.m 850B
Cross.m 1KB
chapter27.rar 2KB
chapter17.rar 32KB
chapter21.rar 713B
chapter29.rar 4KB
chapter2.rar 26KB
chapter4.rar 7KB
chapter5.rar 92KB
chapter1
example1.m 2KB
example2.m 2KB
chapter8.rar 3KB
chapter3
GABPMain.m 2KB
BPfun.m 1KB
callbackfun.m 2KB
data.mat 2KB
Objfun.m 404B
chapter30.rar 172KB
chapter22.rar 3KB
chapter28.rar 8KB
chapter11.rar 11KB
chapter6.rar 628B
chapter12.rar 28KB
chapter18.rar 7KB
chapter13.rar 718KB
chapter23.rar 3KB
chapter14.rar 141KB
chapter24.rar 6KB
共 84 条
- 1
资源评论
- cph_att2024-03-15资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
- 2301_772062592023-06-27超级好的资源,很值得参考学习,对我启发很大,支持!
- tony_66938162024-04-25资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
weixin_42653672
- 粉丝: 93
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功