- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
遗传算法的特点及其应用
省、市: 上海市
学 校:复旦附中
姓 名: 张 宁
IOI2002集训队论文
目 录
遗传算法的基本概念
简单的遗传算法
选择、交换、变异
遗传算法应用举例
子集和问题
TSP(旅行商)问题
结束语
遗传算法的基本概念
遗传算法(Genetic Algorithms,简称GA)根据适者生存,优胜劣汰等自然进化规则来进行搜索计算和问题求解。
对许多用传统数学难以解决或明显失效的复杂问题,特别是优化问题,GA提供了一个行之有效的新途径。
简单的遗传算法
GA把每一个可能的解编码为一个向量,称为一个染色体,向量的每一个元素称为基因。所有染色体组成群体。并按预定的目标函数对每个染色提进行评价,根据其结果给出一个适应度的值。
算法开始时先随机地产生一些染色体,计算其适应度,根据适应度对诸染色体进行选择、交换、变异等遗传操作,剔除适应度低的染色体,留下适应度高的染色体。
由于新群体的成员是上一代群体的优秀者,因而在总体上优于上一代。GA就这样反复迭代,直至满足某种预定的优化指标。上述GA的工作过程可用图1简要描述。
选 择
选择运算使用比较普遍的一种是适应度比例法。其实就是将适应度值视为其权值,权值大的被选中的概率也大。它与各染色体适应度成比例。某一染色体被选中的概率为
式中xi为种群中第i个染色体对应的数字串,f(xi)是第i个染色体的适应度值, 是种群中所有染色体的适应度值之和。显然,此法要求染色体的适应度应为正值。
交 换
复制操作虽然能够从旧种群中选择出优秀者,但不能创造新的染色体,因此,遗传算法的开创者提出了交换操作。即:在匹配集中任选两个染色体,随机选择一点或多点交换点位置,交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串。
变 异
变异运算用来模拟生物在自然界的遗传环境中由于各种偶然因素引起的基因突变,它以很小概率随机地改变遗传基因的值。在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变成0,或由0变成1。通过变异操作,可以使搜索能在尽可能大的空间中进行,获得质量较高的优化解答。
遗传算法应用举例
子集和问题
TSP(旅行商)问题
子集和问题
GA在子集和问题上的应用
子集和问题SUBSET_SUM:给定正整数集合S和一个整数t,判定是否存在S的一个子集使得S’中整数的和为t。
我们已知道该问题是一个NP-完全问题。在实际应用中,我们常遇到的是最优化子集和问题。在这种情况下,我们要找出S的一个子集S’,使得其和不超过t,但又尽可能接近于t。
子集和问题
下面用遗传算法来解决:
我们可以用n位二进制数来表示每个染色体。每一位,用0、1表示是否属于子集。
我们将染色体所表示的子集的元素和与所给t的差异记为适应度,即令染色体x的每一位为xi,所表示元素的值为Si则
但是经过实践后发现由于适应度相对差异较小,使得适应度非常接近,难以区分染色体的优劣,使得遗传进化变得非常缓慢,且f(x)可能为负值,因此还需对适应度函数做一下变换,才可以适合本题的要求。
令f(k)为当前群体中所有染色体适应度的最大值
f’(x)=|f(k)-f(x)|
所以适应度为f ’(x)。
子集和问题
选择时可以用前面所介绍的适应度比例法,但可能会因为偶然情况使得优秀的染色体没有子孙。因此,我在这里采用确定性选择法,先计算群体中每个串的生存概率 ,1=j=n,然后计算期望复制数ei=Ps*n,式中:n为群体中染色体的数目。根据ei的值给每个染色体串分配一个复制数。
交换运算与前述相同,不过若进行单点交换有可能使得两个染色体在交换时产生的差异过大,使得遗传变得不稳定,优秀的染色体不能遗传到下一代。因此可以采用多点交换。
变异运算时,只需注意变异概率的取值,至于具体算法如前面所述。
子集和问题
在本题中的一些数值不妨取值如下:
种群长度(染色体个数):20
选择概率:0.9
变异概率:0.1
结束条件:当前最优解在100代遗传后仍未改变,或已取到最优解
TSP(旅行商)问题
GA在TSP(旅行商)问题求解中的应用
设存在N个城市, Dij表示城i与城j之间的距离, Dij=Dji,现在要求一条遍历所有N个城市,且不走重复路的最短路径(最短哈密尔顿圈)。
这是一个典型NP-完全问题。传统解法对此都并不太奏效下面我们试着用遗传算法来解决这道题目。
TSP(旅行商)问题
我们先采用十进制编码,每个染色体由按一定顺序排列的N个城
文档评论(0)