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))])
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【达摩老生出品,必属精品,亲测校正,质量保证】 资源名:遗传算法_一维未编码轮盘赌法_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员
资源推荐
资源详情
资源评论
收起资源包目录
遗传算法_一维未编码轮盘赌法_matlab.zip (13个子文件)
Matlab实现无约束条件下普列姆(Prim)算法.docx 14KB
一维未编码轮盘赌法
AcrChrom.m 599B
CalFitness.m 330B
PlotModel.m 353B
MutChrom.m 736B
Roulette.m 892B
CalAveFitness.m 152B
GA.m 2KB
SortFitness.m 1KB
IfOut.m 373B
Initialize.m 334B
CalSumFitness.m 422B
FindBest.m 350B
共 13 条
- 1
资源评论
阿里matlab建模师
- 粉丝: 3331
- 资源: 2784
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功