遗传算法编码方式

文章详细介绍了遗传算法中不同类型的编码方式,包括二进制编码、实数编码、符号编码、整数编码和排列编码,以及它们的适用场景、优缺点。编码原则涉及完备性、健全性和非冗余性,确保问题空间与表达空间的一一对应。例如,二进制编码简单但适用于离散问题,而实数编码则更适合连续优化问题,具有较高计算精度。
摘要由CSDN通过智能技术生成
  • 术语

    在这里插入图片描述

  • 遗传算法流程

    在这里插入图片描述

  • 编解码过程
    在这里插入图片描述

  • 遗传编码

    • 编码原则

      • 完备性:问题空间的所有解都能表示为所设计的基因型

      • 健全性:任何一个基因型都对应于一个可能解

      • 非冗余性:问题空间(表现型)和表达空间(基因型)一一对应

    将优化变量转为基因的组合表示形式

    • 二进制编码:个体基因型使用二值符号集{0,1}来构成,整个基因型是一个二进制编码符号串。二进制编码符号串的长度与问题所要求的求解精度有关。

      • 优点:实现简单

      • 缺点:变异后表现型很大,不连续,对于连续函数的优化问题,随机性会让局部搜索能力变差

    • 实数编码:解决数值优化问题(尤其是高维、连续优化问题)

      • 优点:计算精确度高,便于和经典连续优化算法结合,适合数值优化

      • 缺点:使用范围有限,只能用于连续变量问题

      • 计算方法

        1. 确定每个决策变量的取值范围。对于每个实数参数,需要确定其取值范围,例如 [0, 1] 或 [-10, 10] 等。

        2. 确定每个个体的维度。维度决定了实数向量的长度,通常根据问题的复杂度和精度要求来确定。例如,若需要保留小数点后 2 位,则向量长度为 10。

        3. 随机生成符合要求的实数向量。对于每个个体,随机生成一个实数向量 x = (x1, x2, … xn),其中 n 表示维度。对于每个 xj,将其映射到相应的取值范围内,可以使用线性变换公式**:xj’ = li + (ui - li) * r**,其中 li 和 ui 分别是第 j 个决策变量的下限和上限,r 是 [0, 1] 之间的随机数。

        4. 将符合要求的实数向量作为个体加入种群。生成符合要求的实数向量后,将其作为一个个体加入种群中。

    • 符号编码:符号的顺序不同表示不同的意义。在使用符号编码时,交叉编译的结果是对符号顺序的改变,而不是改变符号本身所表达的意义。(用于TSP问题)

    • 整数编码:在使用符号编码时,交叉编译的结果是对符号顺序的改变,而不是改变符号本身所表达的意义。常用于优化问题,如序列排序问题、调度问题等

    • 排列编码:

参考链接:

https://blog.csdn.net/KOBEYU652453/article/details/115505145

https://blog.csdn.net/foneone/article/details/105855367

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值