第三篇 遗传算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 遗传算法 遗传算法(Genetic Algorithm)是一种通过自然进化过程搜索最优解的方法。过去30年中,在解决复杂的全局优化问题方面,遗传算法取得了成功的应用,并受到了人们广泛的关注。在优化问题中,如果目标函数是多峰的,或者搜索空间不规则,就要求所使用的算法必须具有高度的鲁棒性,以避免在局部优化解附近徘徊。遗传算法的优点恰好是擅长全局搜索。另外,遗传算法本身并不要对优化问题的性质作一些深入的数学分析,从而对那些不太熟悉数学理论和算法的使用者来说,无疑是方便的。 大家知道,生物遗传物质的主要载体是染色体,在遗传算法中,染色体是一串数据(或数组),用来作为优化问题的解的代码,其本身不一定是解。遗传算法一般经过这样几个过程:首先,随机产生一定数目的初始染色体,这些随机产生的染色体组成一个种群。种群中染色体的数目称为种群的大小或种群的规模。然后,用评价函数来评价每个染色体的优劣,即染色体对环境的适应程度(称为适应度),用来作为以后遗传操作的依据。接着,进行选择过程,选择过程的目的是为了从当前种群中选出优良的染色体。判断染色体的优良与否的准则就是各自的适应度,即染色体的适应度越高,其被选择的机会就越多。通过选择过程,产生一个新的种群。对这种新的种群进行交叉操作,交叉操作是遗传算法中主要的遗传操作之一。接着进行变异操作,变异操作的目的是挖掘种群中的个体的多样性,克服有可能陷入局部解的弊病。这样,经过上述运算产生的染色体称为后代。然后,对新的种群(即后代)重复进行选择、交叉和变异操作,经过给定次数的迭代处理以后,把最好的染色体作为优化问题的最优解。 遗传算法已被广泛应用业于最优控制、运输问题、调度、生产计划、资源分配、统计及模式识别等,下面我们介绍一下遗传算法的一些基本知识。 第一节 优化问题的遗传算法 回顾一下单目标规划、多目标规划及目标规划模型的基本形式。在数学规划中,目标函数不一定是单峰的,可行域也不一定是凸集。最优化问题的解有两种表示方式:二进制向量或浮点向量。使用二进制向量作为一个染色体来表示决策变量的真实值,向量的长度依赖于要求的精度,但使用二进制代码的必要性已经受到了批评。求解复杂优化问题时,二进制向量表示结构有时不太方便。 另一种表示方法是浮点向量,每一个染色体由一个浮点向量表示,其长度与解向量相同。这里用向量表示最优化问题的解,其中是维数,则相应的染色体也是。 一、关于约束条件的处理 对于约束条件的处理关键是 (1)消除约束条件中的等式约束。例如假设,,通过解这个方程组,将变量用另外的变量表示,代入到模型中,就形成了一个没有等式约束的维优化问题。 (2)设计恰当的遗传操作以保证所有新产生的染色体在可行域中。 为了保证染色体的可行,必须对遗传操作过程中得到的每一个染色体进行检查,对每一个优化问题,最好设计一个C语言子函数,其输出值为1表示染色体是可行的,0表示不可行。例如,对于约束条件 , 可以作如下的一个子函数: 从开始循环 若,返回0; 直到结束 返回1。 最后值得注意的是,在设计程序时,应该注意到一些隐含的约束,即有些虽然是可行解,但不可能是最优解。例如数学规划模型 其中是可行域,但是我们知道最优解一定在区间,所以为了减少程序的搜索空间,应当增加约束条件 这类隐含约束一般不难发现,尤其对实际的管理问题。因此尽可能的增加隐含条件。 二、初始化过程 定义整数pop-size作为染色体的个数,并且随机的产生pop-size个初始染色体。一般情况下,由于优化问题的复杂性,解析底产生可行的染色体是困难的。此时,可以采用下述两种方法之一作为初始过程。 第一种方法:设决策者能够给出可行域中的一个内点,记为。定义一个足够大的数,以保证遗传操作遍及整个可行域。不仅在初始化过程中使用,而且在变异操作中也使用。按照下面的方法产生pop-size个染色体。在中随机的选择一个方向,如果满足不等式约束,则将作为一个染色体,否则,置为0和之间的一个随机数,直到可行为止。由于是内点,所以在有限步内,可以找到满足不等式约束的可行解。重复以上过程pop-size次,从而产生pop-size个初始染色体。 三、评价函数 评价函数(记为)用来对种群中的每个染色体设定的一个概率,以使该染色体被选择的可能性与种群中其它染色体的适应性成比例,即通过轮盘赌,适应性强的染色体被选择产生后代的机会要大。 第一种方法,设目前该代中的染色体为,可以根据染色体的序进行再生分配,而不是根据其实际的目标值。无论是何种数学规划都可以作一个合理的假设,即在染色体中,决策者可以给出一个序的关系,使染色体由好到坏进行重排,就是说,一个染色体越好,其序号越小。

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档