遗传算法(GA)的matlab实现

这篇博客介绍了如何使用MATLAB实现遗传算法(GA)来计算最大值。通过编码与解码、初始化种群、选择操作、交叉操作、变异操作等步骤详细阐述了算法流程。实验结果显示,遗传算法成功找到了19.8949的最大值和最优解0.12749。
摘要由CSDN通过智能技术生成

一、TASK

compute the maximum value:

 

二、实现过程

1.     编码与解码

编码:

在编码之前需要确定求解的精度,设定求解的精度为小数点后六位,即10^6。这样可以将每个自变量x的解空间划分为(1-0)*10^6=1000000个等分。使n满足 (1-0)*10^6<2^n-1,这里n表示使上式成立的最小整数,即表示自变量x的基因串的长度。因为2^19<40000<2^20 ,所以n取20。解码:

二进制基因串转变成十进制:例如基因串 可以翻译为:

x=0+decimal( ) 。

2.      初始化种群

设种群大小为pop_size,每个染色体或个体的长度为chromo_size,假设生成的初始种群为(v1, v2, …, vpop_size)。

 

3.      选择操作

选择操作即从前代种群中选择个体到下一代种群的过程。一般根据个体适应度的分布来选择个体。以初始种群(v1, v2, …, vpop_size)为例,假设每个个体的适应度为(fitness(v1), fitness(v2),…,fitness(vpop_size)),一般适应度可以按照解码的过程进行计算。以轮盘赌的方式选择个体。

随机转动一下轮盘,当轮盘停止转动时,若指针指向某个个体,则该个体被选中。很明显,具有较高适应度的个体比具有较低适应度的个体更有机会被选中。但是这种选择具有随机性&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值