遗传算法的实例

上传人:简****9 文档编号:95230200 上传时间:2019-08-16 格式:PPT 页数:28 大小:834.50KB
返回 下载 相关 举报
遗传算法的实例_第1页
第1页 / 共28页
遗传算法的实例_第2页
第2页 / 共28页
遗传算法的实例_第3页
第3页 / 共28页
遗传算法的实例_第4页
第4页 / 共28页
遗传算法的实例_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《遗传算法的实例》由会员分享,可在线阅读,更多相关《遗传算法的实例(28页珍藏版)》请在金锄头文库上搜索。

1、遗传算法(GA)的肇始,“ 活的有机体是解决问题的专家。它们所表现出来的各种才能足以使最好的计算机程序自惭形秽。这种现象尤其令计算机科学家们感到痛楚。计算机科学家们为了某种算法可能花费数月乃至数年的脑力劳动,而有机体则能通过进化和自然选择这样一种显然并非定向进行的机制获得这种能力。” - John Holland,遗传算法的思想,Darwin的进化论 - “自然选择、适者生存” 特定环境的考验 种群中个体的选择 种群中的交叉繁殖 种群中个体的变异 上述操作反复执行,个体逐渐优化,遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各 个主要执行步骤。

2、 例:求下述二元函数的最大值: max f(x1,x2)=x12+x22 s.t. x1 1,2,3,4,5,6,7 x2 1,2,3,4,5,6,7 (1) 个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种 符号串。本题中,用无符号二进制整数来表示。 因 x1, x2 为 0 7之间的整数,所以分别用3位无符号二进制整数来表示,将它 们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可 行解。 例如,基因型 X101110 所对应的表现型是:x 5,6 。 个体的表现型x和基因型X之间可通过编码和解码程序相互转换。,(2) 初始群体的

3、产生 遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始 群体数据。 本例中,群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机 方法产生。 如:011101,101011,011100,111001 (3) 适应度汁算 遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传 机会的大小。 本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接 利用目标函数值作为个体的适应度。 (4) 选择运算 选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代

4、群体中。,本例中,我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中 的数量。其具体操作过程是: 先计算出群体中所有个体的适应度的总和 fi ( i=1.2,M ); 其次计算出每个个体的相对适应度的大小 fi / fi ,它即为每个个体被遗传 到下一代群体中的概率, 每个概率值组成一个区域,全部概率值之和为1; 最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区 域内来确定各个个体被选中的次数。,(5) 交叉运算 交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某 两个个体之间的部分染色体。 本例采用单点交叉的方法,其具体操作过程是: 先对群体进

5、行随机配对; 其次随机设置交叉点位置; 最后再相互交换配对染色体之间的部分基因。,可以看出,其中新产生的个体“111101”、“111011”的适应度较原来两个个体 的适应度都要高。,(6) 变异运算 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进 行改变,它也是产生新个体的一种操作方法。 本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是: 首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置, 其中的数字表示变异点设置在该基因座处; 然后依照某一概率将变异点的原有基因值取反。,对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体p(

6、t+1)。,从上表中可以看出,群体经过一代进化之后,其适应度的最大值、平均值都得 到了明显的改进。事实上,这里已经找到了最佳个体“111111”。,注意 需要说明的是,表中有些栏的数据是随机产生的。这里为了更好地说明问题, 我们特意选择了一些较好的数值以便能够得到较好的结果,而在实际运算过程中 有可能需要一定的循环次数才能达到这个最优结果。,遗传算法的一个实例,求解方程: 将方程求解问题转化为生存问题: 解一定在0,10之间,将区间0,10划分成若干个小区间,设想每个小区间为一个生物个体,使下列表达式最小的个体有 最好的生存能力,该个体即为解。,遗传算法的一个实例,如何找到这个最优个体? 可通

7、过 Darwin 的进化论由初始个体经过代代演化,逐渐进化出来。 如何将生物进化的操作转化为计算机可以执行的操作? 通过编码表征生物个体,则生物之间的演化转化为编码的变化。,步骤一:初始化,个体编码:(假定要求小数点后两位) 将0,10划分为1024个小区间 个体 1 0000000000 个体 2 0000000001 个体 3 0000000010 个体 1024 1111111111 种群初始化: 随机生成m个10位二进制串,0,10,定义适应度函数: 选择(适应度较大的个体),步骤二:选择,0.1,0.3,0.2,0.4,A,B,C,D,随机产生 0,1之间 的数 RN,选择个体,选中

8、的优势个体进行交叉 - 由父个体生成子个体,步骤三:交叉,相同的两个父个体生成相同的两个子个体,变异操作 在个体中随机选择一位,改变该位的值,步骤四:变异,交叉和变异操作均以一定概率进行,反复执行步骤二、三、四并记录最优个体(适应度最大的个体) 程序结束时,最优个体即为所求解 程序结束的判定 根据循环次数 根据最大适应度 根据种群中相同个体数与总个体数的比值,步骤五,遗传算法各步骤的评价,选择 - 优胜劣汰 选择操作为种群提供了演进的方向 交叉 - 优优组合 交叉操作的作用在于汇集散布于不同 个体间的局部优势模式 变异 - 寻找新模式 变异操作是种群向外扩展的触角(随机) 好的变异将保留,坏的

9、淘汰,遗传算法的总体评价,优点 解决问题的方法具有普适性 全局收敛性(依概率收敛) 能解决的问题范围很广 不足 求得的解为近似的数值解 对于经典数学可以解决的问题,效率较低,遗传算法的适应度函数,求函数的全局极小值 取 的初始区间,例如:-10,10 将此区间分为1024个小区间,然后编码 若求全局极大值(且为正),可直接取函数值 为其适应度值,据此作概率选择; 若求全局极小值(且为正),可取函数值的倒 数为其适应度值,据此作概率选择。 若不全为负,可统一加上一个正数,使为正。,TSP问题的遗传算法求解,步骤一:个体编码及种群初始化 步骤二:适应度选择 步骤三:交叉操作 步骤四:变异操作 步骤

10、五:重复二、三、四步,直至结束 令城市(点)数目为 N,个体编码 取长度为N的数字串,串中数字互不重复,取值范围为1,N之间的整数。则每一个数字串代表一个个体,个体中数字出现的位置表征路径中城市出现的顺序。 初始种群 令种群中有 M 个个体,可随机产生 M 个数字 串构成初始种群。例如: 将数字串 1234N 上的数字进行随机的交换,步骤一:初始化,适应度的计算,步骤二:适应度选择,1,2,3,4,5,对于个体 ,适应度为:,被选中作为父个体的概率:,选择 M 次 重新生成种群,TSP中交叉算子的特点 要保证生成的解为有效解 从一个父个体中随机选取一段子串A,在另一个父个体中将A中出现的数字去

11、掉形成串B,AB为一个子串,步骤三:交叉操作,此外还有多种交叉算子,常用的变异操作: 随机选取两个相邻位置的数字,交换其顺序。 51243(5) 51234(5),步骤四:变异操作,1,2,3,4,5,1,2,3,4,5,交换3,4,此外还有多种变异算子,反复执行步骤二、三、四 结束判定: 循环执行 G 次 (例如 G=500) 后 当最优个体的总路径长度小于预期时。,步骤五:,中国各省会城市的运行结果,1,2,3,4,5,缺陷:相同父个体生成不同的子个体 以下是相同个体: 12345(1) 54321(5) 反射操作 12345(1) 34512(3) 旋转操作,交叉算子的进一步研究,用群论描述 所有路径的集合形成一个二面体群 A 等价解构成一个正规子群 B A 中陪集的数目为 2N,12345(1) 32154(3) 相同父个体交叉 34215(3) 15234(1) 不同子个体,且和父个体不同,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号