clc, clear, close all
%% 遗传算法_参数设定
N = 100; %种群内个体数目
N_chrom = 1; %染色体节点数
iter = 60; %迭代次数
mut = 0.2; %突变概率
acr = 0.2; %交叉概率
%% 预设矩阵
chrom_range = [0 0; 20 20];%每个节点的值的区间
chrom = zeros(N, N_chrom);%存放染色体的矩阵
fitness = zeros(N, 1);%存放染色体的适应度,在该参数下的模型的值
fitness_ave = zeros(1, iter);%存放每一代的平均适应度
fitness_best = zeros(1, iter);%存放每一代2的最优适应度
chrom_best = zeros(1, N_chrom+1);%存放当前代的最优染色体与适应度
fitness_sum = zeros(1,N);%存放求和的值
%% 初始化种群
chrom = Initialize(N, N_chrom, chrom_range); %初始化染色体
fitness = CalFitness(chrom, N); %计算适应度
chrom_best = FindBest(chrom, fitness, N_chrom); %寻找最优染色体及其适应度值
fitness_best(1) = chrom_best(end); %将当前最优存入矩阵当中
fitness_ave(1) = CalAveFitness(fitness); %将当前平均适应度存入矩阵当中
%% 迭代开始
for t = 2:iter
%种群混乱发展史
chrom = MutChrom(chrom, mut, N, N_chrom, chrom_range, t,fitness_ave,fitness_best); %变异
chrom = AcrChrom(chrom, acr, N, N_chrom); %交叉
%种群发展结果
fitness = CalFitness(chrom, N); %计算适应度
chrom_best_temp = FindBest(chrom, fitness, N_chrom); %寻找最优染色体
if chrom_best_temp(end)>chrom_best(end) %替换掉当前储存的最优
chrom_best = chrom_best_temp;
end
fitness_best(t) = chrom_best(end); %将当前最优存入矩阵当中
fitness_ave(t) = CalAveFitness(fitness); %将当前平均适应度存入矩阵当中
%%替换掉最劣
[chrom,fitness]=SortFitness(chrom,N, N_chrom,fitness);%升序排列
fitness_sum = CalSumFitness(N,fitness);%适应度求和
chrom = Roulette(chrom,N,N_chrom,fitness_sum);%轮盘赌
end
%% 输出遗传算法迭代图
figure(3)
plot(1:iter, fitness_ave, 'r', 1:iter, fitness_best, 'b')
grid on
legend('平均适应度', '最优适应度')
PlotModel(chrom_best)
%% 输出结果
disp(['最优染色体为', num2str(chrom_best(1:end-1))])
disp(['最优适应度为', num2str(chrom_best(end))])
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
一维未编码轮盘赌法.zip (12个子文件)
一维未编码轮盘赌法
CalFitness.m 330B
GA.m 2KB
SortFitness.m 1KB
CalSumFitness.m 422B
CalAveFitness.m 152B
PlotModel.m 353B
IfOut.m 373B
AcrChrom.m 599B
MutChrom.m 736B
FindBest.m 350B
Initialize.m 334B
Roulette.m 892B
共 12 条
- 1
资源评论
- jr99102019-03-27不错,谢谢了。子木呀2019-04-19谢谢支持!
子木呀
- 粉丝: 1498
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功