遗传算法

来源:互联网 发布:健康的零食知乎 编辑:程序博客网 时间:2024/04/27 15:06
 

什么是遗传算法

遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。

遗传算法通 常实现为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即 0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择 多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。

遗传算法的机理

在遗传算法里, 优化问题的解被称为个体,它表示为一个参数列表,叫做染色体或者基因串。染色体一般被表达为简单的字符串或数字串,不过也有其他的表示方法适用。一开始, 算法随机生成一定数量的个体,有时候操作者也可以对这个随机产生过程进行干预,播下已经部分优化的种子。在每一代中,每一个个体都被评价,并通过计算适应 度函数得到一个适应度数值。种群中的个体被按照适应度排序,适应度高的在前面。这里的“高”是相对于初始的种群的低适应度来说的。

下一步是 产生下一代个体并组成种群。这个过程是通过选择和繁殖完成的,其中繁殖包括杂交和突变。选择则是根据新个体的适应度进行的,适应度越高,被选择的机会越 高,而适应度低的,被选择的机会就低。初始的数据可以通过这样的选择过程组成一个相对优化的群体。之后,被选择的个体进入杂交过程。一般的遗传算法都有一 个杂交率的参数,范围一般是0.6~1,这个杂交率反映两个被选中的个体进行杂交的概率。例如,杂交率为0.8,则80%的“夫妻”会生育后代。每两个个 体通过杂交产生两个新个体,代替原来的“老”个体,而不杂交的个体则保持不变。杂交父母的染色体相互交错,从而产生两个新的染色体,第一个个体前半段是父 亲的染色体,后半段是母亲的,第二个个体则正好相反。不过这里的半段不是真正的一半,这个位置叫做杂交点,也是随机产生的,可以是染色体的任意位置。再下 一步是突变,通过突变产生新的“子”个体。一般遗传算法都有一个固定的突变常数,通常是0.01或者更小,这代表突变发生的概率。根据这个概率,新个体的染色体随机的突变,通常就是改变染色体的一个字节(0变到1,或者1变到0)。

经 过这一系列的过程(选择、杂交和突变),产生的新一代个体不同于初始的一代,并一代一代向增加整体适应度的方向发展,因为最好的个体总是更多的被选择去产 生下一代,而适应度低的个体逐渐被淘汰掉。这样的过程不断的重复:每个个体被评价,计算出适应度,两个个体杂交,然后突变,产生第三代。周而复始,直到终 止条件满足为止。一般终止条件有以下几种:

  • 进化次数限制;
  • 计算耗费的资源限制(例如计算时间、计算占用的内存等);
  • 一个个体已经满足最小值的条件,即最小值已经找到;
  • 适应度已经达到饱和,继续进化不会造成适应度更好的个体;
  • 人为干预;
  • 以及以上两种或更多种的组合;

    算法

    选择初始生命种群 
    循环
    评价种群中的个体适应度
    选择产生下一个种群
    改变该种群(杂交和突变)
    直到停止循环的条件满足

    特点

    遗传算法在解决优化问题过程中有如下特点:

  • 遗传算法在适应度函数选择不当的情况下有可能收敛于局部最优,而不能达到全局最优。
  • 对于动态数据,用遗传算法求最优解比较困难,因为染色体种群很可能过早地收敛,而对以后变化了的数据不再产生变化。对于这个问题,研究者提出了一些方法增加基因的多样性,从而防止过早的收敛。其中一种是所谓触发式超级突变,就是当染色体群体的质量下降(彼此的区别减少)时增加突变概率;另一种叫随机外来染色体,是偶尔加入一些全新的随机生成的染色体个体,从而增加染色体多样性。
  • 选 择过程很重要,但杂交和突变的重要性存在争议。一种观点认为杂交比突变更重要,因为突变仅仅是保证不丢失某些可能的解;而另一种观点则认为杂交过程的作用 只不过是在种群中推广突变过程所造成的更新,对于初期的种群来说,杂交几乎等效于一个非常大的突变率,而这么大的突变很可能影响进化过程。
  • 遗传算法很快就能找到良好的解,即使是在很复杂的解空间中。
  • 遗传算法并不一定总是最好的优化策略,优化问题要具体情况具体分析。所以在使用遗传算法的同时,也可以尝试其他算法,互相补充,甚至根本不用遗传算法。
  • 遗传算法不能解决那些“大海捞针”的问题,所谓“大海捞针”问题就是没有一个确切的适应度函数表征个体好坏的问题,遗传算法对这类问题无法找到收敛的路。
  • 对于任何一个具体的优化问题,调节遗传算法的参数可能会有利于更好的更快的收敛,这些参数包括个体数目、杂交律和突变律。例如太大的突变律会导致丢失最优解,而过小的突变律会导致算法过早的收敛于局部最优点。对于这些参数的选择,现在还没有实用的上下限。
  • 适应度函数对于算法的速度和效果也很重要。

    变量

    最简单的遗传算法将 染色体表示为一个数位串,数值变量也可以表示成整数,或者实数(浮点数)。算法中的杂交和突变都是在字节串上进行的,所以所谓的整数或者实数表示也一定要 转化为数位形式。例如一个变量的形式是实数,其范围是0~1,而要求的精度是0.001,那么可以用10个数位表示:0000000000表示0, 1111111111表示1。那么0110001110就代表0.389。

    在遗传算法里,精英选择是一种非常成功的产生新个体的策略,它是把最好的若干个个体作为精英直接带入下一代个体中,而不经过任何改变。

    通过并行计算实现遗传算法一般有两种,一种是所谓粗糙并行遗传算法,即一个计算单元包含一个种群;而另一种是所谓精细并行遗传算法,每一个计算单元处理一个染色体个体。

    遗传算法有时候还引入其他变量,例如在实时优化问题中,可以在适应度函数中引入时间相关性和干扰。

    适用的问题

    遗传算法擅长解决的问题是全局最优化问题,例如,解决时间表安排问题就是它的一个特长,很多安排时间表的软件都使用遗传算法,遗传算法还经常被用于解决实际工程问题。

    跟传统的爬山算法相比,遗传算法能够跳出局部最优而找到全局最优点。而且遗传算法允许使用非常复杂的适应度函数(或者叫做目标函数),并对变量的变化范围可以加以限制。而如果是传统的爬山算法,对变量范围进行限制意味着复杂的多的解决过程,这方面的介绍可以参看受限优化问题和非受限优化问题。

    应用领域

  • 汽车设计,包括材料选择、多目标汽车组件设计、减轻重量等。
  • 机电系统设计。
  • 分布计算机网络的拓扑结构。
  • 电路设计,此类用途的遗传算法叫做进化电路。
  • 电子游戏设计,例如计算平衡解决方案。
  • 机器智能设计和机器人学习。
  • 模糊控制系统的训练。
  • 移动通讯优化结构。
  • 时间表安排,例如为一个大学安排不冲突的课程时间表。
  • 旅行推销员问题.
  • 神经网络的训练,也叫做神经进化。

    参考文献

  • Goldberg, David E (1989), 遗传算法:搜索、优化和机器学习 Kluwer Academic Publishers, Boston, MA.
  • Goldberg, David E (2002), 创新的设计:竞争遗传算法课程 Addison-Wesley, Reading, MA.
  • Harvey, Inman (1992), 物种适应和遗传算法持续进行的基础in 'Toward a Practice of Autonomous Systems: Proceedings of the FirstEuropean Conference on Artificial Life', F.J. Varela and P. Bourgine(eds.), MIT Press/Bradford Books, Cambridge, MA, pp. 346-354.
  • Koza, John (1992), 遗传算法:通过自然选择编写计算机程序
  • Michalewicz, Zbigniew (1999), 遗传算法+数据结构=进化程序 Springer-Verlag.
  • Mitchell, Melanie, (1996), 遗传算法概论 MIT Press, Cambridge, MA.
  • Schmitt, Lothar M (2001), 遗传算法理论 Theoretical Computer Science (259), pp. 1-61
  • Schmitt, Lothar M (2004), 遗传算法理论(二) Theoretical Computer Science (310), pp. 181-231
  • Vose, Michael D (1999), 简单遗传算法:基础和理论 MIT Press, Cambridge, MA.
  • 原创粉丝点击
    热门IT博客
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 揺呼啦圈可以减肥吗 揽收 揽运 揽柿子 家庭揽脆柿子方法 揽柿子方法 揽收什么意思 qq流揽器 携秋水揽星河 欲上青天揽明月 览胜 rangerover是什么车 揽胜陆虎 rangerover什么车 揽胜行政 揽胜加长版 新揽胜 已揽件什么意思 揽件 已揽件到底发货没有 淘宝一直等待揽件陷阱 拼多多2018年揽件超时罚多少 2018拼多多24小时内无揽件信息 揽福 揽福suv 福迪 揽福论坛 福迪揽福 揽胜极光 揽胜运动版 揽胜运动 陆虎揽胜 揽胜行政版 揽胜图片 揽胜价格 长白山揽胜 极光揽胜 揽胜论坛 揽胜运动版和揽胜区别 运动版揽胜