简单的遗传算法问题之实数编码(二)

遗传算法编码问题

对于遗传算法而言,如何将问题的解转换为“染色体”是一个关键问题。通常而言实数编码解决的是约束优化问题,整数编码求的是组合优化问题。选择合适的编码是解决遗传算法问题的基础工作。

对于非字符串编码方法来说,在编码和解码之间存在三个核心的问题:

  1. “染色体”的可行性:解码之后的解是否是在可行域内,是否违背约束 “
  2. 染色体”的合法性:产生的解是否在解空间内,产生的解有可能不在解空间内
  3. 编码空间和解码空间匹配的不唯一:有可能会产生n对1 和1对n的mapping, 其中1对n的mapping会导致整个过程的失败。

编码示例(TSP问题)

TSP问题描述:假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。(为了更直观的示例,我们将n设为6,六个城市的编码分别为1,2,3,4,5,6)

这里写图片描述

1.将解直接编码为二进制,如果有6个城市,则编码为30个二进制。 但这种编码不能直接判断约束条件,会产生很多不可行解。

2.循环路径编码,将所有城市的编码的序号作为一个解。(132465) 但是会产生n对1的mapping, (132465 ;324651;1564231 对应的都是同一个解),做交叉、变异很可能产生不合法解,因此在做交叉、变异的时候要规避产生不合法的解。

3.第三种编码,将编码位置作为城市序号,如城市1到城市3,则编码第一位为3,城市2到城市4,则编码第二位为4,以此类推,可以将循环路径编码中的132465;324651等,编码为342615,这种编码方式可以减少冗余,进行有效的同一循环路径的判断,但若直接进行交叉变异容易产生具有子回路的不可行解,如243615这种编码中的城市3到城市3,这属于不可行解,这种具有子回路的不可行解不好判断。

论文tips:改mutation 和crossover的

选择
crowding strategy: 将与子代最像的父代替换掉,加强了种群的多样性

Stochastic Sampling
(1) Roulette wheel selection :实数优化和组合优化
(2) Stochastic universal sampling

Deterministic Sampling
(1) (u+ λ )-selection : 适合组合优化
(2) (u, λ )-selection
(3) Truncation selection
(4) Block selection
(5) Elitist selection
(6) The generational replacement
(7) Steady-state reproduction

Mixed Sampling
(1) Tournament selection: 随机抽取10个,将这10个里面选一个最好的解放进下一代
(2) Binary tournament selection
(3) Stochastic tournament selection
(4) Remainder stochastic sampling

tips:常用的方法为Roulette wheel selection 和(u+ λ )-selection

实数编码示例
在上一篇博客的示例中我们采用了二进制编码了解决了一个无约束问题,在这里我们将采用实数编码来解决同样的问题。

问题描述

maxf(x1,x2)=21.5+x1sin(4π
  • 38
    点赞
  • 228
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值