分布式流水车间调度问题(DFSP)建模(一)

最近在学习分布式车间调度问题,关于这方面的博客内容好像还比较少,为了方便学习,自己整理了一下相关论文内容,仅供参考。

问题背景

        生产调度是将有限的生产资源分配给特定时间段内的任务,以优化决策者确定的一个或多个目标。其中,最大完工时间(makespan)通常被作为生产调度问题的基本目标。随着智能工厂的发展和新型制造模式兴起,分布式生产环境下的调度问题引起了研究者的极大关注和兴趣。

问题描述

        分布式流水车间调度问题(Distributed  FlowShop Scheduling Problem,DFSP)是一类经典的混合整数线性规划(MILP)问题,需要完成将一组待加工的工件(Jobs)分配到多个工厂进行加工的过程,该过程中存在工厂分配和厂内排产两个子问题。在DFSP中,每个工厂都具有多台机器,不同工厂的机器制造顺序是相同的,每个Job都需要流经工厂内的所有机器。

置换流水车间加工甘特图

         如上图所示,在某一工厂f内有M1,M2,M3三台机器组成的流水线,一次完整的加工中工件工件需要依次经过机器M1,M2,M3。需要注意的是,同一时刻,同一工件只能在一个机器上进行加工,只有完成前一道工序后才能转移至下一台机器进行加工,工件在所有机器上的加工顺序是固定的。对于DFSP,存在多个如上图所示的置换流水车间工厂。

数学模型

        一般来说,DFSP解的表达形式为\pi = \{\pi_1,\pi_2,\cdots,\pi_k,\cdots,\pi_f\},其中\pi_k=\{\pi_k(1),\pi_k(1),\cdots,\pi_k(N_k))\}表示工厂k的Job序列,N_k为工厂k加工Job数量。用P_{\pi_k(i),j}表示工厂k的机器j上加工Job i 的处理时间,D_{\pi_k(i),j}表示工厂k的Job i 离开机器j的时间。那么,在最简单的没有其他加工约束的DFSP中对拥有m台机器的工厂k 的makespan计算如下:

D_{\pi_k(0),1}=0                                                                          虚拟工件0

D_{\pi_k(1),1}=P_{\pi_k(1),1}                                                                第一台机器的第一个工件离开时间

D_{\pi_k(i),1}=D_{\pi_k(i-1),1}+P_{\pi_k(i),1}                                           第一台机器的每一个工件离开时间

D_{\pi_k(1),j}=D_{\pi_k(1),j-1}+P_{\pi_k(1),j}                                         每一台机器的第一个工件离开时间

D_{\pi_k(i),j}=\max\{D_{\pi_k(i-1),j},D_{\pi_k(i),j-1}\}+P_{\pi_k(i),j}           机器j上的工件i需要等待其离开前一台机器且机器j上的上一个工件离开机器j,才能开始加工

C_{\pi_k}=D_{\pi_k(N_k),m}         工厂k的makespan等于最后一台机器的最后一个工件离开的时间

C_{max}=max\{C_{\pi_k}|k=1,2,\cdots,f\}     整个生产计划的makespan等于所有工厂的最大makespan

        关于DFSP的求解方法,暂时还没有从方法论的角度去分析,主要是先把模型理解清楚,后面的决策过程采用元启发式算法和RL的方法应该都可以解决。除此以外,初始解的构造也是影响调度结果的重要因素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值