您现在的位置:首页 >> 智能优化 >> 内容

基于matlab的GA遗传优化计算抛物线的最大值

时间:2023/1/20 21:14:33 点击:

  核心提示:A269,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56XlZ5x

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览





3.算法概述

        遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

4.部分源码

popsize=50;                      %群体大小

chromlength=10;                  %字符串长度(个体长度)

pc=0.6;                          %交叉概率,只有在随机数小于pc时,才会产生交叉

pm=0.001;                        %变异概率

pop=initpop(popsize,chromlength);                     %随机产生初始群体

for i=1:100                                            %20为遗传代数

        [objvalue]=calobjvalue(pop);                  %计算目标函数

        fitvalue=calfitvalue(objvalue);               %计算群体中每个个体的适应度

        [newpop]=selection(pop,fitvalue);                %复制

        [newpop1]=crossover(newpop,pc);              %交叉

        [newpop2]=mutation(newpop1,pc);              %变异

        [objvalue]=calobjvalue(newpop2);                %计算目标函数

        fitvalue=calfitvalue(objvalue);                       %计算群体中每个个体的适应度

        [bestindividual,bestfit]=best(newpop2,fitvalue);                    %求出群体中适应值最大的个体及其适应值

        y(i)=bestfit;                                                       %返回的 y 是自适应度值,而非函数值

        x(i)=decodechrom(bestindividual,1,chromlength)*50/1023;             %将自变量解码成十进制

        pop=newpop2;

end

fplot('-x.*x+50.*x+12',[0,50])

hold on

plot(x,y,'r*')                                          

hold on

[z index]=max(y);             %计算最大值及其位置

xfm=x(index)                   %计算最大值对应的x值

ymax=z

A269

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168