计算智能-遗传算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遗传算法的流程
1. 二进制编码方法 二进制编码方法产 生的染色体是一个 二进制符号序列, 染色体的每一个基 因只能取值 0 或 1 。 假定问题定义的有效解取值空间为 [Umin,Umax ], 其中 D 为有效解的变量维数,使用 L 位二进制符号串表示解的一
维变量 ,则我们可以得到如表 4. 2 所示的编码方式:
评估函数( evaluation function) 用来计算并确定染色 体对应的适应值。
遗传算法原理
选择算子(selection) 按照一定的规则对群体的染色体进 行选择,得到父代种群。一般情况下,越优秀的染色体被 选中的次数越多。 交叉算子(crossover) 作用于每两个成功交配的父代染色 体,染色体交换各自的部分基因,产生两个子代染色体。 子代染色体取代父代染色体进入新种群,而没有交配的染 色体则直接进入新种群。 变异算子(mutation) 使新种群进行小概率的变异。染色 体发生变异的基因改变数值,得到新的染色体。经过变异 的新种群替代原有群体进入下一次进化。
遗传算法原理
遗传算法原理
遗传算法类似于自然进化,通过作用于染色体上的 基因寻找好的染色体来求解问题 。遗传算法对求解问题 的本身一无所知,它所需要的仅仅是对算法所产生的每 个染色体进行评价,并基于适应值来选择染色体,使适 应性好的染色体有更多的繁殖机会。
在遗传算法中,通过随机方式产生若干个所求解问 题的数字编码,即染色体,形成初始种群;通过适应度 函数给每个个体一个数值评价,淘汰低适应度的个体, 选择高适应度的个体参加遗传操作,经过遗传操作后的 个体集合形成下一代新的种群。再对这个新种群进行下 一轮进化。这就是遗传算法的基本原理。
待求解问题的一个有效解为 则该解对应的染色体编码为
因为这种编码方法使用的是变量的真实值,所以浮点数 编码方法也叫做真值编码方法。对于一些多维、高精度 要求的连续函数优化问题,用浮点数编码来表示个体时 将会有一些益处。
格雷码(Gray)是将二进制编码通过一下变换得到的码:
设二进码(β1 β2 …βn)对应的格雷码为(r1 r2 … rn),则
1 从二进码到格雷码的转换为: rk k 1 k 如果k 1 如果k 1
从格雷码到二进码的转换为: r (mod2) k i
i 1
k
其连续的两个整数所对应的编码值之间只有一个码位
是不相同的,其余码位都完全相同。例如十进制数7和 8的二进制编码分别为0111和1000,而格雷码分别为
假设[Umin,Umax ]为[1, 64 ],采用 6 位二进制符号串 进行编码,则某个二进制符号串 010101 代表了数值
22
L 位二进制编码的精度为: 二进制编码的最大缺点是长度较大,当要求采用较 高的精度或表示较大范围的数时,必须通过增加 L 来达到要求。
2. 浮点数编码方法
浮点数编码方法中,每个染色体用某一范围内的一个浮 点数来表示,染色体的编码长度等于问题定义的解的变 量个数,染色体的每一个基因等于解的每一维变量。
单点交叉运算的伪代码:
procedure: One-cut Point Crossover input: pC, parent Pk, k=1, 2, ..., popSize output: offspring Ck begin for k= 1 to popSize // popSize: population size if pc random [0, 1] // pC: the probability of crossover i 0; j 0; repeat i random [1, popSize]; j random [1, popSize]; until (i≠j ) p random [2, L-1];// p: the cut position, L: the length of chromosome Ci Pi [1: p-1] // Pj [p: L]; Cj Pj [1: p-1] // Pi [p: L ]; end end output offspring Ck; end
个染色体与问题的最优解染色体之间的差距较小,则对
应的适应度函数值就会较大。
评估函数常常根据问题的优化目标 来确定,例如求解函数 优化问题时,问题定义的目标函数可以作为评估函数的原 型。 对于一些求解最大值的数值优化问题,我们可以直接套用 问题定义的函数表达式。但是对于其他优化问题,问题定 义的目标函数表达式必须经过一定的变换。例如TSP的目 标是路径总长度为最短,路径总长度变换后就可作为TSP 问题的适应度函数:
遗传算法原理
模式的阶(schema order) : 模式中具有确定取值的
基因个数。
如模式 01***0 的阶为 3
模式的定义长度(schemad defining length) 是指
模式中第一个具有确定取值的基因到最后一个具有
确ቤተ መጻሕፍቲ ባይዱ取值的基因的距离,
例如模式 01***0的定义长度为5 而模式*1****的定义长度为 0
遗传算法原理
Holland 给出了著名的模式定理 (Schema Theory) , 为遗传算法提供了理论支持。
模式(schema) 是指群体中编码的某些位置具有相似 结构的染色体集合。
假设染色体的编码是由 0 或 1 组成的二进制符号序列, 模式 01***0 则表示以 01 开头且以 0 结尾的编码串对应的染 色体的集合,即 {010000, 010010, 010100, 010110, 011000 , 011010 ,0 11100 , 011110} 。
ωn+1=ω1,d(ωj, ωj+1)表示两城市间的距离(路径长度)。
遗传操作:遗传算法的遗传操作主要有三种:选择 (selection)、交叉(crossover)、变异(mutation)。 4. 选择算子:
选择操作也叫做复制(reproduction)操作,根据个 体的适应度函数值所度量的优劣程度决定它在下一 代是被淘汰还是被遗传。 一般地,适应度较大(优良)的个体有较大的存在机 会,而适应度较小(低劣)的个体继续存在的机会也 较小。简单遗传算法采用赌轮选择机制.
遗传算法原理
积木块假设 (Building Block Hypothesi s) ,对模 式定理做了补充,说明遗传算法具有能够找到全局 最优解的能力。 积木块(building block) 是指低阶、定义长度较小且 平均适应值高于群体平均适应值的模式。 积木块假设认为在遗传算法运行过程中,积木块在 遗传算子的影响下能够相互结合,产生新的更加优 秀的积木块,最终接近全局最优解。
遗传算法的流程
1. 染色体的编码
许多应用问题的结构很复杂,我们希望找到一种既 简单又不影响算法性能的编码方式。将问题结构变换为 位串形式编码表示的过程叫做编码;相反的,将位串形 式编码表示变换为原问题结构的过程叫做解码或译码。
关于确定遗传算法染色体编码方式的两条指导原则: 有意义积木块编码原则和最小宇符集编码原则,倡导算 法使用的编码方案应易于产生低阶且定义长度较短的模 式,在能够自然描述所求问题的前提下使用最小编码字 符集
根据每个染色体的适应值得到群体中所有染色体的 适应值总和。 计算每个染色体适应值与群体适应值总和的比 Pi
假设一个具有 N 个扇区 的轮盘,每个扇区对应
群体中的一个染色体,
扇区的大小与对应染色 体的 Pi 值成正比。
1 2 3 4 5 6 7 8 9 10
5. 交叉算子: 交叉操作的简单方式是: 按交叉概率Pc 选择出两个父代 个体P1和P2,将两者的部分码值进行交换。 • 交叉概率的Pc 一般取 值为:0. 4~0.99之间。 • 随机数 Random(0, 1) 小于 Pc ,则表示该染 色体可进行交叉操作 • 随机产生一个有效的 交配位置,父代染色 体交换位于该交配位
第 4 章
遗传算法
(Genetic Algorithm,GA)
了解遗传算法的研究背景,熟练掌握遗 传算法的思想来源和设计流程,掌握遗 传算法的参数设计和影响作用,并能理 解遗传算法的改进和实际应用。
"自然选择"和"优胜劣汰"的进化规律。
遗传信息的重组
遗传算法简介
遗传算法是模仿生物遗传学 和自然选择机理,通过人 工方式构造的一类优化搜索算法,是对生物进化过程进行 的一种数学仿真,是进化计算的一种重要的形式。遗传算 法与传统数学模型截然不同,它为那些难以找到传统数学 模型的难题找出了一个解决方法。同时,遗传算法借鉴了 生物科学中的某些知识,从而体现了人工智能这一交叉学 科的特点。霍兰德(Holland) 于1975年在他的著作 “Adaptation in Natural and Artificial Systems"中首 次提出遗传算法。
遗传算法的流程
GA的算法在解空间中取一群点,作为遗传开始的第一 代。每个点用一个编码数字串表示,其优劣程度用一个 目标函数—适应度函数(fitness function)来衡量。 染色体的编码; 群体的初始化; 适应值评价; 种群选择; 种群交叉; 种群变异; 算法流程
0100和1100 。
符号编码方法是指个体染色体编码串中的基因值取自一
个无数值含义而只有代码含义的符号集。这个符号集 可以是一个字母表,如{A,B,C,D,…};也可以是一个数 字序号表,如{1,2,3,4,5,…};还可以是一个代码表, 如{x1,x2,x3,x4,x5,…},等等。
遗传算法的流程
为了体现染色体的适应能力,引入了对每一个染色体都
能进行度量的函数,叫做适应度函数 (fitness function)。
通过计算适应度函数值 来决定染色体的优劣程度,它体 现了自然进化中的优胜劣汰原则。 在遗传算法中,规定适应值越大的染色体越优。适应度 函数要求能有效地反映每一个染色体的适应能力。若一
遗传算法简介
遗传算法研究内容
遗传算法研究内容
遗传算法原理
遗传算法通过模拟自然界中生物的遗传进化过程,对 优化问题的最优解进行搜索。 算法维护一个代表问题潜在解的群体, 通过对群体的 进化,搜索问题的最优解,算法中引入了类似自然进 化过程中的选择、交叉、变异等算子。 遗传算法搜索全局最优解的过程是一个不断迭代的过 程(每一次迭代相当于生物进化中的一次循环) ,直到 满足算法的终止条件为止。
遗传算法原理
Holland 的模式定理提出,遗传算法的实质是通过选择、 交叉、变异的遗传算子对模式进行搜索。
低阶、定义长度较小且平均适应值高于群体平均适应值 的模式在群体中的比例将呈指数级增长。 随着进化的不断进行,较优染色体的个数将快速增加。
模式定理证明了遗传算法寻求全局最优解的可能性,但 不能保证算法一定能找到全局最优解。
2. 群体的初始化
遗传算法在给定的初始进化群体中进行迭代搜索
采用生成随机数的方法,对染色体的每一维变量进
行初始化赋值 初始化染色体时必须满足优化问题对有效解的定义。 在算法的开始得到一个平均适应值相对较高的初始 群体再进行进化来提高算法的求解性能
3. 适应值评价:用于评估各个染色体的适应值,区分优劣
遗传算法原理
在遗传算法中,问题的每个有效解被称为一个“染色体 (chromosome)” ,也称为“串”,对应于群体中的每 个生物个体( individual) 。 染色体的具体形式是一个使用特定编码方式生成的编码 串,编码串中的每一个编码单元称为"基因(gene)"
遗传算法通过比较适应值(fitness value) 区分染色体的 优劣,适应值越大的染色体越优秀。
置后的所有基因
编码长度为8,产生一个在1~7之间的随机数k,假如现
在产生的是5, 将P1和P2的后3位基因交换:P1的高5位与
P2的低三位组成数串10001001, 这就是P1和P2的一个子代
个体Q1 ;P2的高5位与P1的低3位组成数串11011110, 这
就是P1和P2的另一个子代Q2个体。交换过程如图所示
相关文档
最新文档