遗传算法最新版本
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基因型:1000101110110101000111 基因
解码
编码
表现型:0.637197
.
10
初始种群
SGA采用随机方法生成若干个个体的集合,该集合称为初始 种群。初始种群中个体的数量称为种群规模。
适应度函数
遗传算法对一个个体(解)的好坏用适应度函数值来评价, 适应度函数值越大,解的质量越好。适应度函数是遗传算法 进化过程的驱动力,也是进行自然选择的唯一标准,它的设 计应结合求解问题本身的要求而定。
遗传算法原理与应用
赵鹏 pzhao@
.
1
一、基本原理
1.遗传算法起源
遗传算法是由美国的J.Holland教授于1975年在他的专著《自 然界和人工系统的适应性》中首先提出的,它是一类借鉴生物 界自然选择和自然遗传机制的随机化搜索算法。
.
2
群体
变异
子群
竞争
婚配
淘汰的群体
种群
生物进化循环图
被淘汰。生存下来的染色体组成种群,形成一个可以繁衍下一代
的群体。
第三是染色体的结合。双亲的遗传基因结合是通过编码之间的
交配达到下一代的产生。新一代的产生是一个生殖过程,它产生
了一个新解。
最后是变异。新解产生过程中可能发生基因变异,变异使某些
解的编码发生变化,使解有更大的遍历性。
.
6
2、基本遗传算法
色体。由于对解进行了编码,优化问题的一切性质都通过编 码来研究。编码和解码是遗传算法的一个主题。
自然选择规律决定哪些染色体产生超过平均数的后代。遗 传算法中,通过优化问题的目标而人为地构造适应函数以达 到好的染色体产生超过平均数的后代。
当染色体结合时,双亲的遗传基因的结合使得子女保持父 母的特征。
当染色体结合后,随机的变异会造成子代同父代的不同。
.
14
轮盘赌选择方法的实现步骤
(1) 计算群体中所有个体的适应度函数值(需要解码); (2) 利用比例选择算子的公式,计算每个个体被选中遗传
到下一代群体的概率; (3) 采用模拟赌盘操作(即生成0到1之间的随机数与每个
个体遗传到下一代群体的概率进行匹配)来确定各个个体 是否遗传到下一代群体中。
.
15
由于区间长度为3,求解结果精确到6位小数,因此可将 自变量定义区间划分为3×106等份。又因为221 < 3×106 < 222 ,所以本例的二进制编码长度至少需要22位,本例的编码 过程实质上是将区间[-1,2]内对应的实数值转化为一个二进 制串(b21b20…b0)。
.
9
几个术语
个体(染色体)
基本遗传算法(Simple Genetic Algorithms,简称SGA ,又称简单遗传算法或标准遗传算法),是由Goldberg总结 出的一种最基本的遗传算法,其遗传进化操作过程简单,容 易理解,是其它一些遗传算法的雏形和基础。
基本遗传算法的组成
(1)编码(产生初始种群) (2)适应度函数 (3)遗传算子(选择、交叉、变异) (4)运行参数
00000|01110000000010000
11100|00000111111000101 交叉后:
00000|00000111111000101
11100|01110000000010000
.
17
变异算子
所谓变异运算,是指依据变异概率 Pm 将个体编码串中 的某些基因值用其它基因值来替换,从而形成一个新的个体 。遗传算法中的变异运算是产生新个体的辅助方法,它决定 了遗传算法的局部搜索能力,同时保持种群的多样性。交叉 运算和变异运算的相互配合,共同完成对搜索空间的全局搜 索和局部搜索。 SGA中变异算子采用基本位变异算子。
.
5
遗传算法主要处理步骤
首先是对优化问题的解进行编码,称一个解的编码为一个染色
体,组成编码的元素称为基因。编码的目的主要是用于优化问题
解的表现形式和利于之后遗传算法中的计算。
第二是适应函数的构造和应用。适应函数基本上依据优化问题
的目标函数而定。当适应函数确定以后,自然选择规律是以适应
函数值的大小决定的概率分布来确定哪些染色体适应生存,哪些
.
3
生物遗传概念在遗传算法中的对应关系
生物遗传概念
遗传算法中的作用
适者生存
在算法停止时,最优目标值的解有最大的可能被保留
个体(individual) 染色体
(chromosome)
解 解的编码(字符串,向量等)
基因(gene) 适应性(fitness)
解中每一分量的特征(如各分量的值) 适应函数值
.
7
编码
GA是通过某种编码机制把对象抽象为由特定符号按一定顺 序排成的串。正如研究生物遗传是从染色体着手,而染色体 则是由基因排成的串。SGA使用二进制串进行编码。
函数优化示例
求下列一元函数的最大值:
f(x ) xsi1n 0 x ( ) 2 .0
x∈[-1,2] ,求解结果精确到6位小数。
.
8
SGA对于本例的编码
s30.06
s4 0.31
s1 0.14
s2 0.49
轮盘赌选择示意
.
13
轮盘赌选择方法
轮盘赌选择又称比例选择算子,它的基本思想是:各个 个体被选中的概率与其适应度函数值大小成正比。设群体大 小为n ,个体i 的适应度为 Fi,则个体i 被选中遗传到下一代 群体的概率为:
n
Pi Fi / Fi i 1
交ቤተ መጻሕፍቲ ባይዱ算子
所谓交叉运算,是指对两个相互配对的染色体依据交 叉概率 Pc 按某种方式相互交换其部分基因,从而形成两个 新的个体。交叉运算是遗传算法区别于其他进化算法的重要 特征,它在遗传算法中起关键作用,是产生新个体的主要方 法。 SGA中交叉算子采用单点交叉算子。
.
16
单点交叉运算 交叉前:
交叉点
.
11
选择算子
遗传算法使用选择运算来实现对群体中的个体进行优胜劣 汰操作:适应度高的个体被遗传到下一代群体中的概率大; 适应度低的个体,被遗传到下一代群体中的概率小。选择操 作的任务就是按某种方法从父代群体中选取一些个体,遗传 到下一代群体。SGA中选择算子采用轮盘赌选择方法。
.
12
●轮盘赌选择法
群体(population) 种群(reproduction)
选定的一组解(其中解的个数为群体的规模) 根据适应函数值选取的一组解
交配(crossover)
通过交配原则产生一组新解的过程
变异(mutation)
编码的. 某一个分量发生变化的过程
4
遗传算法的主要特征: 进化发生在解的编码上,这些编码按生物学的术语称为染