遗传算法基本简介及改进方向

遗传算法

基本简介
遗传算法是一种启发式算法,其基本思想是根据达尔文进化论而来,遗传算法主要包括:初始种群的生成、选择、交叉、变异;通过不断地对种群进行迭代,使得结果不断靠近最优解,最终达到优化的目的。基本流程图如下所示:
在这里插入图片描述

初始种群
一般使用规则进行种群初始化
选择
轮盘赌法则
本文采用轮盘赌法则执行个体选择操作:如图 3 4所示,首先根据每个个体的适应度值大小以及所有个体的适应度总和,计算出每个个体适应度占所有个体适应度总和的比例,轮盘再根据每个个体所占比例划分大小不同的扇形区域,在执行选择操作时,旋转轮盘,指针停下的位置则代表该位置的个体被选中,可以进入下一代进化。可以看出,所占扇形区域位置越大的个体被选择的概率就越大(如图中,扇形区域5的个体被选中)。个体v的选择概率计算公式为:
在这里插入图片描述

(3-2)
式中,f(v)表示个体v的适应度值,Nind为种群大小。
在这里插入图片描述

 图 轮盘赌示意图

交叉
两点交叉
交叉操作采用两点交叉的策略进行,两点交叉操作过程如图 3 5所示,随机选取父代中的两条染色体V1和V2,并随机选取两个不重叠的基因位置点作为交叉点,将两个交叉的基因片段进行互换。
图 3 5 两点交叉操作示意图
从图 3-5中可以看出,在执行两点交叉操作时会导致染色体中部分基因缺失和重复,如 中多了一个基因3,少了一个基因1,因此在基因片段互换之后,还需要对染色体进行基因修正,将染色体中多余的基因用缺失的基因填补,其原理如图 3 6所示。
在这里插入图片描述

图 基因修正操作示意图
在这里插入图片描述

其他交叉方式
均匀交叉、POX交叉……
变异
插入变异算子
变异算子是遗传算法中另一种产生新个体的操作,它与交叉操作有所不同,变异操作仅针对一条染色体进行变异,其主要方式是将染色体上不同位置的基因进行互换。变异操作能有效改善算法的局部搜索能力,并且能够有效防止基因遗失来维持种群的多样性,从而避免算法的早熟现象。目前,针对离散优化问题的变异方式较多,包括插入变异、交换变异以及倒序变异等。其中,插入变异可根据插入顺序的不同分为前插入变异和后插入变异。本文采用前插入变异算子,其具体操作思路是随机选择两个不同的基因位置点pos1和pos2,将 pos2位置上的基因插入到pos1前面,pos1以及pos1和pos2之间的基因往后顺移一位,插入变异操作如图所示。
在这里插入图片描述

图 插入变异操作示意图
在这里插入图片描述

结果
在这里插入图片描述

改进方向
在这里插入图片描述

 编码解码的改变:常见有整形编码和小数编码两种方式
 变邻域搜索
 关键路径法
 混合算法,群智算法+模拟退火或者禁忌搜索结果都会好。

参考文献:

  1. 基于工序编码和邻域搜索策略的遗传算法优化作业车间调度_赵诗奎
  2. 基于极限调度完工时间最小化的机器选择及FJSP求解_赵诗奎
  3. 求解柔性作业车间调度问题的两级邻域搜索混合算法_赵诗奎
  4. 基于遗传算法的柔性资源调度优化方法研究_赵诗奎 (1)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

self.键盘上的钢琴师.LX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值