
1、环境依赖
Python/anaconda3、pandas==0.24.2、geatpy==2.7.0、numpy==1.16.2
2、环境配置
1) pycharm和anaconda3安装及配置环境教程
https://www.bilibili.com/video/BV1JT4y1b7yX/?vd_source=f5f2d3ff0f31854c4954564fc8eb4f2a2) 常见错误及解决方法:
https://www.bilibili.com/read/cv29868729/
3、问题概括(有配套数学模型)
作为新能源汽车厂下的汽车电池生产厂,工厂内有三条生产线,项目背景是在新型号汽车的试生产阶段,电池生产厂负责提供试生产阶段各个汽车工厂的电池需求以及研发部门的电池需求,即每个汽车工厂和研发部门会有生产订单。每个生产订单中会有多个不同类型的电池需要在试生产阶段产出,因此制定生产排程计划是决定项目的核心目标。
1.分布式生产,指在一个对应多个生产线。产线因为建设时间不一样,不同产线的有不同的加工机器,机器效率不同。
2.同一个订单的工件要在同一个生产线加工。
3.在特定的生产线上,每个工件可以选择自己在不同机器之间的加工顺序

图1 场景描述
目标函数1:最小化所有订单总的完成时间
目标函数2:最小化所有订单总的加工成本
4、数据说明
产线数据

产线加工时间数据

订单数据

5、算法简介
优化算法采用遗传算法。三层编码。第一层:产线码:指示每个订单在哪个产线加工
第二层:加工顺序码:指示每个工件的加工顺序 -- 机器M1,M2,M3的顺序可以更改
第三层:优先级码:当某几个工件需要同时在同一个机器上加工,根据优先级判断哪个先加工
6、代码说明
该代码配套做了如下实验,每个实验都是独立的函数,可以根据自己的需求自定义。

求解结果

