简单的遗传算法实例(MATLAB版)
遗传算法模拟自然界生物进化过程,依据生存竞争、强者胜出的原则,在寻优时保留有益的基因并淘汰无用的基因kaiyun官方网站登录入口,最终目标是在众多方案中筛选出最契合特定条件的方案,并确定最优解。
基因工程就是模仿生命体基因传递的模拟方式。在遗传计算中,将数据编码形成初始种群之后,基因计算的作用就是针对种群中的各个体,依据它们对环境的适应程度(进行适应度评价)进行特定处理开元棋官方正版下载,以此达成优存劣汰的演变过程。从寻求最佳方案的角度来看,基因计算能让问题的答案开yun体育app官网网页登录入口,在代代相传中不断改进,并趋向于最佳方案。基因计算流程示意图见图示。
遗传算法运用三项核心机制:挑选、组合、改动。各项机制的实施都带有偶然性。因此,群体内个体向理想状态靠拢的路径是随机的。必须指出,这种偶然性处理与传统随机探寻方式不同,前者实施的是高效定向的探寻,后者则进行无目标性的搜寻。
详细讲解部分:略
直接上程序设计吧
求解问题:
求下列函数的最大值
,其中
1.初试化种群
%初始化
函数 pop 被赋值为 initpop 的结果,其中 popsize 是参数,chromlength 也是参数
种群规模乘以基因长度取整等于个体编码长度
一个矩阵被随机生成,其元素取值于集合{0,1},该矩阵的行数等于种群规模,列数等于基因长度
%round对矩阵每一个单元进行园整,这样产生初试种群。
end
initpop.m函数实现种群的初试化
popsize表示种群的大小
染色体的长度由二进制数编码的位数决定,这个长度就是chromlength的值。
2.目标函数值
2.1 二进制数转化为十进制数
...待续,下次再更...
网友留言(0)
评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。