1.摘要
遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。
2.商旅问题中
一个售货员必须访问n个城市,恰好访问每个城市一次,并最终回到出发城市。
在遗传算法中 将路径变为序列 视作是一个染色体 每个城市作为基因的单位 总路径长度可以视为该染色体的适合度值(Fitness Value)
遗传算法的核心是通 不断的演变进化 挑选更优秀的染色体群落 让染色体适合度值不断降低收敛
从而得到最优解
初始阶段:
随机生成N个城市序列 作为染色体祖先群落 群落中每一个染色体代表一个路径解

通过基因互换和基因突变分别生成x和y个新的染色体

基因互换:
从祖先群落中随机选取两a,b两组 从a组中随机选取一部分基因序列 在b中剔除相同基因(a中选取的基因为246 在b中剔除246)

同时将剩余基因(剔除完246之后 b基因序列变为1375)连接 将a组中截取(246)的部分接入

这样就形成了一个基因互换染色体

基因变异:
从祖先群落中随机选取一组染色体 从中截取一段基因序列

打乱顺序形成新染色体:

现在我们把新生成的N组染色体 和原来的N组祖先染色体 放在一起 对其适合度值进行排序

排序之后:

选取适合度最低的N组染色体 作为本次进化的优胜者 用他们替换祖先群落 然后循环之前的步骤

整体的流程:

3.在深度学习中

传入一个6*6的 由0 1 组成的网格图
将其扁平化为1*36的一维向量 原图染色体:

1.生成祖先群落
随机生成一个包含5个染色体的祖先群落

2.基因互换
随机选择2对染色体进行基因互换
随机选择互换位置 截取长连续基因序列 进行同位置基因对调 2对染色体完成基因互换之后
生成4个新染色体

3.基因变异
从原群落中随机选择一个染色体 在随机位置进行基因变异 0变1 1变0
生成最后一个新染色体

4.排序适合度值
最后把10个染色体放在一起 分别和原图染色体求基因差值的平方和 就是本案例的适合度值

选择最小的5个染色体 作为优胜染色体群落

5.逆扁平化
将适合度值最小的染色体 逆扁平化重新绘制在6*6的网格图上

到此为止 一次循环已经完成
进行下一次循环之前 将优胜染色体群落替换祖先群落 重复步骤
最终将会得到原图

23万+

被折叠的 条评论
为什么被折叠?



