云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 变异概率自适应调整的遗传算法GA程序

变异概率自适应调整的遗传算法GA程序

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 3:57:30

变异概率自适应调整的遗传算法算例

一:优化函数:f?x??x*sin?10*x??2,x?[?1,?2]A.变异概率自适应调整公式:

B.遗传算法参数

Pm1?Pm2??fmax?f???,f?favg?Pm1?fmax?favgPm???P,f?favg?m1(1)种群规模设为80,遗传算子分别为轮盘法选择,多点点交叉和多点自适应变异; (2)交叉概率0.7,变异概率0.01; (3)最大进化代数为100代,保优操作。 C.程序框图

位串解码得参数 计算目标函数值 函数值向适应值映射 适应值调整 选择、交叉、自适应变异

1

开始 确定实际问题参数对参数集进行编码 初始化群体P(t) 群体评价 群体P(t+1)(更新) 满足停止准则 遗传操作 结束 图 1 程序流程框图

二:程序及运行结果

(1)%变异概率自适应调整的GA程序

%优化函数为f=x*sin(10*x)+2,其中,-1=

%种群规模设为80,遗传算子分别为轮盘法选择,多点点交叉和多点自适应变异。 %交叉概率0.7,变异概率0.01 %最大进化代数为100代,保优操作。

%**********************%主函数***************************************** function main()

global chrom lchrom oldpop newpop varible fitness popsize sumfitness %定义全局变量

global pcross pmutation temp bestfit maxfit gen bestgen global maxgen po pp mp np lchrom=12; %染色体长度 popsize=80; %种群大小 pcross=0.7; %交叉概率 pmutation=0.01; %变异概率 maxgen=100; %最大代数 po=0.1; %淘汰概率 pp=0.1; %保护概率 mp=floor(pp*popsize); %保护的个数 np=floor(po*popsize); %淘汰的个数 initpop; % 初始化种群 for gen=1:maxgen

objfun; %计算适应度值 pp_po; %执行保优操作 select; %选择操作 selfmutation; %自变异操作 crossover; %交叉操作 end best

bestfit % 最佳个体适应度值输出

2

bestgen % 最佳个体所在代数输出 figure gen=1:maxgen;

plot(gen,maxfit(1,gen)); % 进化曲线 hold on;

plot(bestgen,bestfit); xlabel('Generation'); ylabel('Fitness');

%********************** 产生初始种群 ************************************ function initpop()

global lchrom oldpop popsize chrom for i=1:popsize

chrom=rand(1,lchrom); % lchrom=12 染色体长度 for j=1:lchrom if chrom(1,j)<0.5 chrom(1,j)=0; else

chrom(1,j)=1; end end

oldpop(i,1:lchrom)=chrom; end

%************************%计算适应度值************************************ function objfun()

global lchrom oldpop fitness popsize chrom maxfit gen varible avgfiness savgfitness % a=0;b=3; a=0;b=10; for i=1:popsize chrom=oldpop(i,:); c=decimal(chrom);

varible(1,i)=a+c*(b-a)/(2.^lchrom-1); %对应变量值 fitness(1,i)=varible(1,i)*sin(10*varible(1,i))+2;

3

end

avgfitness=sum(fitness)/popsize; lsort; % 个体排序

maxfit(1,gen)=max(fitness); %求本代中的最大适应度值maxfit

%************************二进制转十进制********************************** function c=decimal(chrom) global lchrom popsize c=0;

for j=1:lchrom

c=c+chrom(1,j)*2.^(lchrom-j); end

%************************* 个体从小到大排序 ************************ function lsort()

global popsize fitness oldpop for i=1:popsize j=i+1;

while j<=popsize

if fitness(1,i)>fitness(1,j)

tf=fitness(1,i); % 适应度值 tc=oldpop(i,:); % 基因代码 fitness(1,i)=fitness(1,j); % 适应度值互换 oldpop(i,:)=oldpop(j,:); % 基因代码互换 fitnescs(1,j)=tf; oldpop(j,:)=tc; end j=j+1; end end

%*************************保优操作***************************** function pp_po()

global popsize oldpop np

i=np+1; % np=floor(po*popsize); %淘汰的个数np

4

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

变异概率自适应调整的遗传算法算例 一:优化函数:f?x??x*sin?10*x??2,x?[?1,?2]A.变异概率自适应调整公式: B.遗传算法参数 Pm1?Pm2??fmax?f???,f?favg?Pm1?fmax?favgPm???P,f?favg?m1(1)种群规模设为80,遗传算子分别为轮盘法选择,多点点交叉和多点自适应变异; (2)交叉概率0.7,变异概率0.01; (3)最大进化代数为100代,保优操作。 C.程序框图 位串解码得参数 计算目标函数值 函数值向适应值映射 适应值调整 选择、交叉、自适应变异 1 开始 确定实际问题参数对参数集进行编码 初始化群体P(t) 群体评价 群体

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com