求助:基于Pyomo构建流水车间调度问题的抽象模型
流水车间调度问题的Pyomo建模尝试
问题背景
最近我在试着用Pyomo搭建一个流水车间调度问题的抽象模型,具体的问题设定是这样的:
- 待加工工件:柜子、门、椅子,一共3个
- 加工机器:切割、焊接、包装,所有工件必须严格按照切割→焊接→包装的顺序完成加工
- 优化目标:最小化整个生产流程的完工时间(也就是所有工件都完成最后一道工序的最早时间)
目前的Pyomo代码框架(flowshop.py)
from pyomo.environ import * # 创建抽象模型实例 flowshop = AbstractModel() # 定义集合:工件集合、机器集合 flowshop.jobs = Set() flowshop.machines = Set() # 定义参数:机器数量、工件数量 flowshop.machinesN = Param() flowshop.jobsN = Param() # 加工时间参数(代码未完成,应为(job, machine)的二维参数) flowshop.proc_T = Param(flowsho...
后续待完善的部分
目前代码还只是搭了基础的框架,接下来还需要补充这些内容:
- 完整定义
proc_T参数,用来存储每个工件在每台机器上的具体加工时间 - 决策变量:比如各工件在各机器上的开始加工时间/结束加工时间,或者用来表示工件加工顺序的0-1变量
- 约束条件:
- 同一台机器上,两个工件的加工不能重叠
- 每个工件必须完成前一道工序后,才能开始下一道工序
- 目标函数:最小化所有工件的最后完工时间(即所有机器上最后一个工件的结束时间的最大值)
内容的提问来源于stack exchange,提问作者Curious Iitian
相关产品推荐
相关产品推荐

