【Python3】混合流水车间+多目标遗传算法

前言

前面写过单目标混合流水车间调度问题及其遗传算法实现,这里实现多目标混合流水车间调度问题的多目标遗传算法

多目标遗传算法

简介:多目标遗传算法NSGA多目标遗传算法
个人总结如下:多目标遗传算法,与遗传算法的本质区别在于选择操作——多目标遗传算法根据帕累托等级和拥挤度选出优秀的个体。

测试实验

数据来源:参考文献[1]中的实例2
目标包括:

  1. 最小化最大完工时间Makespan
  2. 最小化总空闲时间
  3. 最小化工件的总流程时间,即每个工件的加工开始到加工完成之间的时间和
  4. 最小化总等待时间,即每个工件的流程时间减去其总加工时间

算法参数:种群规模40,迭代次数20,交叉概率0.80,变异概率0.05
得到帕累托前沿:
[[ 23 38 146 19]
[ 24 40 140 20]
[ 24 45 135 10]
[ 24 50 134 15]
[ 25 54 135 8]
[ 25 44 136 10]
[ 25 43 137 10]
[ 25 39 143 20]
[ 25 40 140 15]
[ 25 55 131 8]<

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
混合流水车间调度问题是一个经典的生产调度问题,目标是找到一个最优的调度方案,使得所有任务的完成时间最短。 Python可以使用遗传算法求解混合流水车间调度问题。下面是一个简单的实现步骤: 1. 初始化种群:随机生成一组可能的调度方案作为初始种群。每个个体代表一个调度方案,由任务序构成。 2. 评估适应度:根据每个个体的调度方案,计其适应度值。适应度值可以根据任务的完成时间来衡量,完成时间越短,适应度值越高。 3. 选择:根据适应度值进行选择操作,选择适应度较高的个体作为父代。 4. 交叉:对选择出的父代进行交叉操作,生成新的个体。交叉操作可以采用交换部分任务序的方式,生成不同的调度方案。 5. 变异:对交叉生成的个体进行变异操作,引入一定的变异概率。变异操作可以采用随机交换任务位置的方式,引入一定的随机性。 6. 更新种群:将新生成的个体加入种群,并更新适应度值。 7. 判断停止条件:设定停止条件,例如达到一定的迭代次数或适应度值达到某个阈值。 8. 重复步骤2到步骤7,直到满足停止条件。 通过这样的遗传算法求解,可以得到一个较优的混合流水车间调度方案。 需要注意的是,以上是一个基于遗传算法的简单实现步骤,实际应用还可以结合其他优化方法和启发式规则进行改进和优化,以进一步提高求解的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值