这是一个典型的制造业柔性生产排程项目,包含所有要素:给定订单数据,包含订单数量和交货期;以及订单产品的所有加工工序,工序可加工设备以及最小加工批量和加工时间。每个工序加工完成后都有缓冲时间,每个设备有最大负荷要求,部分工序只能在特定设备上加工,也有一些工序可以在多个设备上加工,这是难点之一
需要先确定设备数量,然后求解每个工序在设备上的加工数量,加工的开始和结束时间。目标是尽量不能逾期,以及整体制造时间最小。
点击空白处退出提示
这是一个典型的制造业柔性生产排程项目,包含所有要素:给定订单数据,包含订单数量和交货期;以及订单产品的所有加工工序,工序可加工设备以及最小加工批量和加工时间。每个工序加工完成后都有缓冲时间,每个设备有最大负荷要求,部分工序只能在特定设备上加工,也有一些工序可以在多个设备上加工,这是难点之一
需要先确定设备数量,然后求解每个工序在设备上的加工数量,加工的开始和结束时间。目标是尽量不能逾期,以及整体制造时间最小。
包括类和对象定义模块,数据读取和对象建立模块,计算设备数量模块,排产求解引擎模块,结果输出与展示模块。读取订单,产品工序和设备数据,订单数据包含交货期,数量,产品等信息,产品工序和设备数据包含产品需要加工的工序,工序可加工的设备,最小批量,以及最小批量加工时间,以及和下一道工序的缓冲时间等。可选择三种不同的求解引擎,最后输出排产详细结果以及排产结果的甘特图。
项目用python实现,设备数量计算采用贪心算法,排产引擎包含了混合整数规划模型(用pyomo建模+scip求解器求解),以及启发式算法(ALNS+NSGA-II)和约束规划(cp_sat),甘特图模块:matplotlib(静态 PNG) + plotly(交互式 HTML)。



评论