国家集训队2002论文集 张宁

上传人:kms****20 文档编号:50743249 上传时间:2018-08-10 格式:PPT 页数:21 大小:307.50KB
返回 下载 相关 举报
国家集训队2002论文集 张宁_第1页
第1页 / 共21页
国家集训队2002论文集 张宁_第2页
第2页 / 共21页
国家集训队2002论文集 张宁_第3页
第3页 / 共21页
国家集训队2002论文集 张宁_第4页
第4页 / 共21页
国家集训队2002论文集 张宁_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《国家集训队2002论文集 张宁》由会员分享,可在线阅读,更多相关《国家集训队2002论文集 张宁(21页珍藏版)》请在金锄头文库上搜索。

1、遗传 算法 的特 点及 其应 用 省、市: 上海市 学 校:复旦附中 姓 名: 张 宁 IOI2002集训队论文目 录 |遗传算法的基本概念|简单的遗传算法选择、交换、变异|遗传算法应用举例子集和问题TSP(旅行商)问题|结束语遗传算法的基本概念|遗传算法(Genetic Algorithms,简称GA)根据适者生存,优胜劣汰等自然进化规则来进行搜索计算和问题求解。对许多用传统数学难以解决或明显失效的复杂问题,特别是优化问题,GA提供了一个行之有效的新途径。 简单的遗传算法|GA把每一个可能的解编码为一个向量,称为 一个染色体,向量的每一个元素称为基因。 所有染色体组成群体。并按预定的目标函数

2、 对每个染色提进行评价,根据其结果给出一 个适应度的值。|算法开始时先随机地产生一些染色体,计算 其适应度,根据适应度对诸染色体进行选择 、交换、变异等遗传操作,剔除适应度低的 染色体,留下适应度高的染色体。|由于新群体的成员是上一代群体的优秀者, 因而在总体上优于上一代。GA就这样反复迭 代,直至满足某种预定的优化指标。上述GA 的工作过程可用图1简要描述。 选 择选择运算使用比较普遍的一种是适应度比例法。其实就是将适应度值视为其权值,权值大的被选中的概率也大。它与各染色体适应度成比例。某一染色体被选中的概率为式中xi为种群中第i个染色体对应的数字串,f(xi)是第i个染色体的适应度值, 是

3、种群中所有染色体的适应度值之和。显然,此法要求染色体的适应度应为正值。 交 换 复制操作虽然能够从旧种群中选择出优秀者,但不能创造新的染色体,因此,遗传算法的开创者提出了交换操作。即:在匹配集中任选两个染色体,随机选择一点或多点交换点位置,交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串。变 异变异运算用来模拟生物在自然界的遗传环境中由于各种偶然因素引起的基因突变,它以很小概率随机地改变遗传基因的值。在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变成0,或由0变成1。通过变异操作,可以使搜索能在尽可能大的空间中进行,获得质量较高的优化解答。 遗传算法应用举例|子集和

4、问题|TSP(旅行商)问题子集和问题GA在子集和问题上的应用|子集和问题SUBSET_SUM:给定正整数集合S和一个整数t,判定是否存在S的一个子集使得S中整数的和为t。|我们已知道该问题是一个NP-完全问题。在实际应用中,我们常遇到的是最优化子集和问题。在这种情况下,我们要找出S的一个子集S,使得其和不超过t,但又尽可能接近于t。子集和问题|下面用遗传算法来解决:|我们可以用n位二进制数来表示每个染色体。每一位,用0、1表示是否属于子集。我们将染色体所表示的子集的元素和与所给t的差异记为适应度,即令染色体x的每一位为xi,所表示元素的值为Si则但是经过实践后发现由于适应度相对差异较小,使得适

5、应度非常接近,难以区分染色体的优劣,使得遗传进化变得非常缓慢,且f(x)可能为负值,因此还需对适应度函数做一下变换,才可以适合本题的要求。令f(k)为当前群体中所有染色体适应度的最大值f(x)=|f(k)-f(x)|所以适应度为f (x)。 子集和问题|选择时可以用前面所介绍的适应度比例法,但可能会因为偶然情况使得优秀的染色体没有子孙。因此,我在这里采用确定性选择法,先计算群体中每个串的生存概率 ,1=j=n,然后计算期望复制数ei=Ps*n,式中:n为群体中染色体的数目。根据ei的值给每个染色体串分配一个复制数。|交换运算与前述相同,不过若进行单点交换有可能使得两个染色体在交换时产生的差异过

6、大,使得遗传变得不稳定,优秀的染色体不能遗传到下一代。因此可以采用多点交换。|变异运算时,只需注意变异概率的取值,至于具体算法如前面所述。子集和问题|在本题中的一些数值不妨取值如下:|种群长度(染色体个数):20|选择概率:0.9|变异概率:0.1|结束条件:当前最优解在100代遗传后仍未改变,或已取到最优解 TSP(旅行商)问题GA在TSP(旅行商)问题求解中的应用|设存在N个城市, Dij表示城i与城j之间的距离, Dij=Dji,现在要求一条遍历所有N个城市,且不走重复路的最短路径(最短哈密尔顿圈)。|这是一个典型NP-完全问题。传统解法对此都并不太奏效下面我们试着用遗传算法来解决这道题

7、目。TSP(旅行商)问题|我们先采用十进制编码,每个染色体由按一定顺序排列的N个城市的序号组成,表示一条可能的旅行路径。适应度为一条旅行路径对应的距离,路径越短的染色体适应度越高。例如,取N=10,城市代号为1至10。例如种群中的染色体:2 8 4 10 5 1 7 3 6 9表示一条旅行路径284105173692 其总路径长我们可以采用非负变换,把最小化优化目标函数变换为以最大值为目标的适应度函数,可以如下定义:其中cmax为可以取为进化过程中路径长度的最大值,或者为了保证f(x)为正而预先设定为一个与种群无关的常数。TSP(旅行商)问题|关于选择运算,可以考虑前面介绍的确定性选择法。|此

8、处的交换运算不同于前,因为两个染色体,若进行简单的交换运算,可能会使得染色体所表示路径中会重复经过同一城市,即同一染色体中的两个基因有着相同的城市编号。因此须改进交换运算。我们可以采用部分匹配交换运算(PMX)。当然也可以不进行交换运算,而直接进行变异运算,因为本例中的变异运算本就隐含了交换的含义。|变异操作与二进制编码时不同,从群体中随机抽取一个染色体,随机抽取两个基因,将两者交换,即颠倒城市次序。|算法的主要部分已经讨论完了,但是还有一点值得提出的,由于遗传算法是一种不断优化的搜索算法,因此,我们可以用贪心算法构造初始群。 TSP(旅行商)问题|题目中的一些数值不妨取值如下:|种群长度(染

9、色体个数):20|变异概率:0.1|结束条件:当前最优解在100代遗传后仍未改变。 遗传算法应用举例|通过两道例题,我们在遗传算法原有简单定义上,加以扩充,介绍了若干高级遗传算法在具体实例中的应用,旨在打开思想的局限性,不仅仅在原有简单定义下做文章,而是充分发挥想象,对于不同问题,采取不同对策,在遗传算法的框架下,安排使用合理的算法,改进原有算法,或与原有算法相结合。这样,才能充分发挥遗传算法的长处解决问题。 结 束 语|遗传算法的原理是简单的,但是如何熟练运用遗传算法却并不是一个简单的问题,理论要切合实际,对于不同问题,遗传算法要稍加变化,就如同画龙点睛一般,切忌不可生搬硬套。我认为遗传算法

10、应当与现有优化算法结合,可产生比单独使用遗传算法或现有优化算法更好,更实用的算法。|本文的主要目的还是让大家对遗传算法能够有一个初步的了解,这样对大家进行深入的实践是有帮助的。希望大家通过本文的指导,能够将遗传算法熟练应用在各个方面。 图 一 Y问题的初始(侯选)解种群满足预定指标编码为染色体(向量)种群P(t)计算各染色体适应度通过遗传运算存优去劣种群P(t+1)复制 交换 变异种群P(t)种群P(t+1)解码染色体问题解答空间N图1 遗传算法工作原理示意图多点交换|不过在本例中使用多点交换,只需进行两点交换即可,其实两点交换与单点交换是类似的。|设有两个父辈染色体A和B:A:1010010

11、0101110B:01001110110001设两个交换点选择如下:A:10100|10010|1110B:01001|11011|0001则两点交换运算就是交换染色体A和染色体B,两个交换点之间的部分,则交换结果如下:A:10100110111110B:01001100100001部分匹配交换运算|部分匹配交换运算先在两父染色体串中各产生两个交换点,把这两点之间的区域定义为匹配区域,再对两个匹配区域中的基因通过对应匹配置换。例如,两父染色体串为:A: 2 8 4 10 * 5 1 7 3 * 6 9B: 5 6 7 1 * 10 2 8 3 * 9 4符号“*”表示交换点。 以染色体A为例,其匹配区域中有四个元素5,1,7,3,与染色体串B中的四个元素10,2,8,3,逐一匹配,即通过在染色体串A内进行元素间的置换,使得匹配区域内这四个元素换为10,2,8,3。为此,染色体串A中的元素。作如下置换:A: 2 8 4 10 * 5 1 7 3 * 6 9A: 1 7 4 5 * 10 2 8 3 * 6 9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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