初识遗传算法(一): 基本概念

本文介绍了遗传算法的基础知识,包括如何代表个体、评估适应度函数、选择算法和后代变异的操作。遗传算法通过模拟自然选择和基因遗传过程,解决复杂问题。
摘要由CSDN通过智能技术生成
通过借鉴大自然中物种的繁衍概念,演化算法通过在计算机中模拟每个个体的基因序列(和该个体的表现型),并通过组合多个个体,形成种群。对种群中的每个个体,采用类似大自然的自然选择,基因突变等手段促使种群的繁衍,最终达到想要的目标。

构成演化算法的四大要素: 1.代表个体的方法,2.测量个体适应度的函数,3.选择算法,4.后代变异(包含交叉遗传crossover,基因突变mutation)


1.代表个体的方法


对于自然中每个生物而言,决定其适应大自然的程度的一般是基因序列,即基因序列决定了该生物的种种特性(即表现型), 而这些特性又决定了其是否适应环境。而对于计算机模拟的遗传算法而言,如果用真实的基因序列来表达个体未免太过复杂,所以也就有了如下一些表达个体基因的方法。
(1)基因型的结构化表达
对于这种表达方式,最出名的就是神经网络了(ANNs), 利用模拟神经的结构,搭建网络。除了神经网络外,有限状态机也是常用的一种方法。
(2)树状图表达法
对于这种表达法,较为出名的有John Koza的genetic programming,这种表达法较为显著的一个优势是很直观,很好解释,但随着时间的推移,树的不断增大,会导致’膨胀’(bloat),虽然膨胀能很好的削弱突变带来的干扰性,但是与此同时会使树的直观可解释性大幅下降并会导致树的功能紊乱。通过惩罚项能很好地缓解’bloat’。
(3)基于语法的表达方式
'Lindenmayer' 系统是其中的一种,S对应着ABA,A对应着aBa,B对应着AbA,先由一个S开始,即ABA, 其中的A接着换位aBa, B换为AbA,所以即
S->ABA->aBaAbAaBa->aAbAaaBabaBaaAbAa … 一直循环下去知道达到要求的迭代数为止,并去掉其中的大写字母
(4)基于String的表达方式
这是最为常见的一种表达方式,接下来也将默认使用这种表达方式来讲述其他的内容,此处的string既可以是字符也可以是数字或者是二进制的数字串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值