• 数据挖掘:遗传算法GA Genetic Algorithms


    遗传算法

    简介

    • 它是一种流行的启发式搜索技术
    • 模仿生物进化过程
    • 以进化方式“学习/搜索”的软件程序,类似于生物系统进化的方式
    • 高效、独立于域的搜索启发式方法,适用于广泛的问题域
    • 主题:适者生存
    • 通过让最合适的父母创造后代,朝着越来越好的解决方案迈进

    每个候选解称为染色体。染色体是一串基因,用适应度函数来测量它们的生存能力。染色体可以通过进化来复制自己,交配和突变。

    精英主义:候选解决方案组合在一起,在每个迭代算法中产生后代。被称为一代人。后代也可以成为候选解决方案。从父母和孩子,一组适者生存下来,成为在下一代产生后代的父母。

    相关概念

    • 繁殖:通过繁殖,GA通过选择具有较高适应性评级的父母或通过给予这些父母更大的选择概率来促进繁殖过程,从而产生新一代的潜在改进解决方案。

    • 交叉:一串二进制符号(响应决策变量)来表示染色体(潜在解),交叉意味着在字符串中选择一个随机位置,并将该点右侧或左侧的段与另一个字符串的段交换。

    • 突变:是染色体表示的任意(和最小)变化。它通常用于防止算法卡在局部最优状态。该过程随机选择一条染色体(给具有更好适应值的染色体更多的概率),并随机识别染色体中的一个基因并反转其值(从0到1或从1到0),从而为下一代生成一条新染色体。突变的发生通常设定为非常低的概率(0.1%)。

    • 精英主义:遗传算法的一个重要方面是保留一些最好的解决方案,以便在几代人中发展。这样,您就可以保证最终获得该算法当前应用的最佳解决方案。在实践中,一些最佳解决方案将迁移到下一代。

    Example: The Vector Game

    标识包含 6 个二进制数字的字符串
    猜一个二进制字符串:001010

    默认策略:随机试验和错误。你需要尝试64个猜测,其中一个是你的答案。平均将是32个猜测。

    改进策略:遗传算法的使用
    以迭代的方式,利用遗传算法过程和遗传算子,找到对手的数字序列

    1.展示四个字符串,随机选择。(任意选择四个。通过实验,你可能会发现五六个会更好。假设您选择了以下四个:
    (A) 110100;分数 = 1(即,正确猜测的一位数字)
    (B)111101;分数 = 1
    (C)011011;得分 = 4
    (D) 101100;得分 = 3
    2. 由于没有一个字符串是完全正确的,请继续。
    3.但是,我们可以删除(A)和(B),因为它们的分数很低。保留 C 和 D 并命名 (C) 和 (D) 父项。
    4.通过在第二位和第三位数字之间拆分每个数字来“配对”父母(拆分的位置是随机选择的):
    (C) 01:1011
    (D) 10:1100
    现在将 (C) 的前两位数字与 (D) 的最后四位数字组合在一起(这称为交叉)。结果是(E),第一个后代:
    (E) 011100;得分 = 3
    同样,将 (D) 的前两位数字与 (C) 的最后四位数字组合在一起。结果是(F),第二个后代:
    (F) 101011;得分 = 4
    看起来后代并不比父母好多少。
    5. 现在复制原件(C)和(D)。
    6.配对和交叉新父母,但使用不同的分割。现在你有两个新的后代,(G)和(H):
    (C) 0110:11
    (D) 1011:00
    (G) 0110:00;得分 = 4
    (H) 1011:11;得分 = 3
    接下来,重复步骤2:从所有先前的解决方案中选择要重现的最佳“耦合”。
    您有几个选项,例如 (G) 和 (C)。选择 (G) 和 (F)。
    现在复制和交叉。结果如下:
    (F) 1:01011
    (G) 0:11000
    (I) 111000;得分 = 3
    (J) 001011;得分 = 5
    生成更多后代:
    (F) 101:011
    (G) 011:000
    (K) 101000;得分 = 4
    (L) 011011;得分 = 4
    现在,以 (J) 和 (K) 作为父级重复这些过程,并复制交叉:
    (J) 00101:1
    (K) 10100:0
    (M) 001010;得分 = 6
    就是这样!经过13次猜测,您已经找到了解决方案。与随机猜测策略的预期平均值32相比,这并不坏。

  • 相关阅读:
    MySQL-SQL语言
    5.1.2 配置静态IP地址
    openresty定时任务
    计算机毕业设计springboot基于springboot的游戏交易网络无忧3op09源码+系统+程序+lw文档+部署
    使用 EasyCV Mask2Former 轻松实现图像分割
    【配置环境】Windows下C/C++第三方库管理工具vcpkg安装和使用
    Untiy 一个有意思的透视Shader
    五魔方、二阶五魔方
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    3个管理误区,新晋管理者一定要避免!
  • 原文地址:https://blog.csdn.net/weixin_46530492/article/details/125500605