加速遗传算法 matlab,求加速遗传算法,不是自适应遗传算法

就是用第一次、第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到预定加速循环次数, 结束整个算法的运行Ζ 此时就把当前群体中最佳个体或某个优秀个体指定为 AGA 的结果,以上 8 步构成AGA来自金菊良的《标准遗传算法的改进方案——加速遗传算法》我主要想将ga改写...
摘要由CSDN通过智能技术生成

就是用第一次、第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到预定加速循环次数, 结束整个算法的运行Ζ 此时就把当前群体中最佳个体或某个优秀个体指定为 AGA 的结果,以上 8 步构成AGA来自金菊良的《标准遗传算法的改进方案——加速遗传算法》我主要想将ga改写为aga,但是对上面的话不太明白ga程序如下:% 下面举例说明遗传算法 %

% 求下列函数的最大值 %

% f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] %

% 将 x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为 (10-0)/(2^10-1)≈0.01 。 %

% 将变量域 [0,10] 离散化为二值域 [0,1023], x=0+10*b/1023, 其中 b 是 [0,1023] 中的一个二值数。 %

% %

%--------------------------------------------------------------------------------------------------------------%

%--------------------------------------------------------------------------------------------------------------%

% 编程

%-----------------------------------------------

% 2.1初始化(编码)

% initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),

% 长度大小取决于变量的二进制编码的长度(在本例中取10位)。

%遗传算法子程序

%Name: initpop.m

%初始化

function pop=initpop(popsize,chromlength)

pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵,

% roud对矩阵的每个单元进行圆整。这样产生的初始种群。

% 2.2 计算目标函数值

% 2.2.1 将二进制数转化为十进制数(1)

%遗传算法子程序

%Name: decodebinary.m

%产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制

function pop2=decodebinary(pop)

[px,py]=size(pop); %求pop行和列数

for i=1:py

pop1(:,i)=2.^(py-i).*pop(:,i);

end

pop2=sum(pop1,2); %求pop1的每行之和

% 2.2.2 将二进制编码转化为十进制数(2)

% decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置

% (对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1),

% 参数1ength表示所截取的长度(本例为10)。

%遗传算法子程序

%Name: decodechrom.m

%将二进制编码转换成十进制

function pop2=decodechrom(pop,spoint,length)

pop1=pop(:,spoint:spoint+length-1);

pop2=decodebinary(pop1);

% 2.2.3 计算目标函数值

% calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真ÿ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自适应遗传算法(Adaptive Genetic Algorithm,AGA)是一种基于遗传算法(Genetic Algorithm,GA)的变种算法,并且在遗传算法的基础上增加了自适应策略。自适应遗传算法能够根据问题的特性和解的需,在迭代过程中自动地调整交叉、变异和种群大小等参数,以提高算法的性能和效果。 在使用MATLAB实现自适应遗传算法时,首先需要定义问题的目标函数和约束条件。然后,确定遗传算法的相关参数,如交叉概率、变异概率、种群大小等。接下来,可以利用MATLAB提供的遗传算法工具箱,比如“ga”函数,快速地编写自适应遗传算法的代码。 在编写代码时,可以利用MATLAB提供的内置函数和工具进行操作。例如,使用“ga”函数可以方便地定义目标函数和约束条件,并设置解的参数。还可以通过自定义适应性函数来实现自适应策略,根据问题的特性动态调整算法的参数,从而提高解效率。 在运行自适应遗传算法后,可以通过分析算法的收敛曲线、找到最优解以及评估算法性能来评估算法的优劣。可以使用MATLAB提供的绘图函数,如“plot”函数,绘制目标函数值的变化趋势图,并观察算法是否能够找到全局最优解。 总之,利用MATLAB实现自适应遗传算法,不仅能够简化编程过程,还可以通过MATLAB的丰富工具和函数来评估算法的性能,并根据问题的特性动态调整算法的参数,以提高解效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值