调度问题的框架和符号

简介

在所有考虑的调度问题中,工件和机器的数量被假设为有限的,工件的数量记作 n n n,机器的数量被记作 m m m。通常,下标 j j j指一台机器。如果一项工件需要许多加工步骤或操作(工序),则数对( i i i, j j j)指的是工件 j j j在机器 i i i上的加工步骤或操作。

符号

下面的数据是和 j j j相关的:

  1. 加工时间 p i j p_{ij} pij。工件 j j j在机器 i i i上的加工时间。如果工件 j j j的加工时间独立于机器或工件只在一台给定机器上加工则省略下标 i i i
  2. 提交日期 r j r_j rj。工件 j j j的提交日期(release date,释放时间releasetime)指工件 j j j可以开始加工的最早时间;
  3. *工期 d j d_j dj*;工件 j j j承诺的发运或完成时间(承诺交给顾客的时间)。若允许超时,则超时将会受到惩罚;若工期必须满足,则成为最后期限,表示为 d j ‾ \overline{d_j} dj
  4. 权重 w j w_j wj 。工件 j j j的优先程度。如保留该工件在系统中的实际费用,可能是持有或库存成本;也可能表示附加在工件上的价值;

描述方法——三元组

一个调度问题用三元组 α ∣ β ∣ γ \alpha|\beta|\gamma αβγ来描述。 α \alpha α域描述机器环境包含单一一项; β \beta β提供加工特征和约束; γ \gamma γ描述最小化目标。

α \alpha α域表示机器环境

  1. 单一机器( l l l)。单机环境。
  2. 并行同速机( P m Pm Pm)。并行的 m m m个速度相同的机器。对于一个工件,其需要的一个操作可在 m m m个机器的任何一个加工,若其必须在给定子集 M j M_j Mj的一台机器上加工,则项 M j M_j Mj出现在 β \beta β域中。
  3. 并行异速机( Q m Qm Qm)。并行的 m m m个速度不同的机器。机器 i i i的速度记为 v i v_i vi,对于所有工件都相同。工件 j j j耗费在机器 i i i上的时间为 p i j = p j / v i p_{ij}=p_j/v_i pij=pj/vi(假设工件 j j j的所有加工都在机器 i i i上进行)。如果机器速度独立于工件(即对于所有 i i i j j j,有 v i = 1 v_i=1 vi=1 v i j = v i v_{ij}=v_i vij=vi),那么和前种环境相同。
  4. 并行无关联机器( R m Rm Rm)。前一种的一般化。机器加工不同工件的速度不同,机器 i i i以速度 v i j v_{ij} vij加工工件 j j j。相应地, p i j = p j / v i p_{ij}=p_j/v_i pij=pj/vi(假设工件 j j j的所有加工都在机器 i i i上进行)。如果机器速度独立于工件,则和前一种环境相同。
  5. 流水车间( F m Fm Fm)。有串行的 m m m台机器,每项工件都必须经过每台机器加工。所有工件加工路径相同。在一台机器上完成加工后,工件加入到下一台机器的队列中,通常假设工件在所有机器上的队列相同,遵循先进先出(FIFO)规则。若FIFO有效,则这种流水车间成为排列流水车间(置换流水车间),需在 β \beta β域中加入prmu。
  6. 柔性流水车间( F F c FFc FFc)。 F m Fm Fm P m Pm Pm的一般化。代替 m m m个串行机器的是 c c c个串行工位,每个工位有许多并行同速机。每项工件必须先在工位1加工,然后工位2,工位3,如此等等。每个工位相当于并行机组。一个工位的队列可以遵循也可以不遵循先来先服务(FCFS)规则。
  7. 作业车间( J m Jm Jm)。在有 m m m台的车间中,每项工件有预先确定的加工路径。需要区别的是,有的车间工件只能访问一台机器一次,而有些则可能访问一台机器多次,在后者情形中, β \beta β域包含再循环项recrc。
  8. 柔性加工车间( F J c FJc FJc)。是 J m Jm Jm P m Pm Pm的一般化。代替 m m m台机器的是 c c c个加工中心,每个工位有许多并行同速机。每项工件遵循自己的加工路径通过车间,工件 j j j只需要在每个工件中心的一台机器上加工。如果一个工件需要访问她自己加工路径上的一个工作中心多次, β \beta β域包含再循环项recrc。
  9. 开放车间( O m ) 。 Om)。 Om)m$台机器。每项工件在每台机器上可多次加工,但有些时间可以是零。对每项工件的加工路径没有任何限制,允许调度者对每项工件确定加工路径,不同工件可以有不同加工路径。

β \beta β域说明的加工约束和特定限制中可能包含多个选项

  1. 提交日期 r j r_j rj。工件 j j j可开始时间。如果没有出现在 β \beta β域中,工件 j j j可在任何时候开始。和提交日期不同,工期不在该域中规定,目标函数给出了是否有工期要求。
  2. 顺序决定的准备时间( s j k s_{jk} sjk)。 s j k s_{jk} sjk代表工件 j j j和工件 k k k之间的加工顺序决定的准备时间。如果工件 k k k是第1个,则 s 0 k s_{0k} s0k是表示工件 k k k的准备时间;若 j j j是最后一个,则 s j 0 s_{j0} sj0是之后的清理时间( s 0 k s_{0k} s0k s j 0 s_{j0} sj0可能是零)。如果工件 j j j和工件 k k k之间的准备时间都假设0或域顺序无关,则其包含在加工时间中。
  3. 中断(prmp)。中断意味着不必将一项工件在其加工完成前一直保留在机器中。它允许调度者在任何时间中断一个工件的加工,而把另一个工件放到该机器上。中断的工件不会丢失重新返回到机器上时,只需继续完成剩下的工作即可。允许中断时,prmp在 β \beta β域中。
  4. 优先约束(prec)。优先约书可出现在单机或并行机环境中,在一项工件开始加工前,另一项或多项必须先完成。有几种优先约书的特殊形式:如果每项工件最多有一个后继,则该约束称为入数;若每项工作最多有一个前驱,那么称该约束为出数。若 β \beta β域中没有出现prec,则工件不受优先限制.
  5. 工件族( f m l s fmls fmls)。在这种情况下, n n n 个作业属于 F F F个不同的作业系列。 来自同一系列的作业可能具有不同的处理时间,但它们可以在一台机器上一个接一个地处理,而无需在两者之间进行任何设置。但是,如果机器从一个系列切换到另一个系列,例如从系列 g g g 切换到系列 h h h,则需要进行设置。如果此设置时间取决于族 g g g h h h并且与序列相关,则用 s g h s_{gh} sgh 表示。 如果这个设置时间只取决于即将开始的族,即族 h h h,那么它用 s h s_h sh表示。如果它不依赖于任何一个家庭,则用 s s s 表示。
  6. 批处理( b a t c h ( b ) batch(b) batch(b))。一个机器可能同时处理多个如 b b b个工件,也就是说最多可同时处理 b b b个工件。批中工件的处理时间可能不同,整个批只有当最后一个工件结束加工时才算完成,也就是说整个批的处理时间由最大处理时间的工件决定。如果 b = 1 b = 1 b=1,则问题简化为传统的调度环境。另一种特殊情况是 b = ∞ b=\infty b=,即机器在任何时间可处理的工件数量无限。
  7. 故障(brkdwn)。机器故障意味着不能连续使用。假设机器不可用的时间段是固定的(即因为倒班或计划的维护)。若有许多相同并行机器,在任何时间点可用机器的数量是时间的函数(即 m ( t ) m(t) m(t))。
  8. 机器适用限制( M j M_j Mj),当加工环境是 m m m台并行机器 P m Pm Pm时,符号 M j M_j Mj出现在 β \beta β域。当 M j M_j Mj出现,意味着并不是所有 m m m台机器都有能力加工工件 j j j。集合 M j M_j Mj表示可加工机器集合。若 β \beta β域不包含 M j M_j Mj,则工件可在任意机器上加工。
  9. 排列/置换(prmu)。在流水车间中可能出现的约束是每台机器的队列遵循FIFO。
  10. 阻塞(block).可能出现在 F m Fm Fm中。两台连续的机器之间缓冲区有限,则缓冲区满的时候上游机器不允许释放已经加工好的工件。考虑缓冲为零。则下台机器完成加工之前,一台机器完成加工的工件不能离开那台机器。因此,阻塞的工件阻止了下一项工件在这台机器上开始加工。
  11. 无等待(nwt)。无等待需求是 F m Fm Fm中可能发生的另一种现象。工件不允许在两台连续机器之间等待。意味着一项工件在第一台机器上的开始时间不得不推迟,以保证该工件可以不必等待任何机器而通过流水车间。这种操作的一个例子是在轧钢厂中,不允许钢板等待,因为等待过程中会冷却。很明显,无等待条件下,机器仍然按照FIFO规则.
  12. 再循环(recrc)。在加工车间或柔性加工车间中,当一项工件可能访问一台机器或加工中心超过一次时,发生再循环。

其他可能出现在 β \beta β域中的项,如 p j = p p_j=p pj=p意味着所有加工时间相等,而 d j = a d_j=a dj=a意味着所有工期相同。

γ \gamma γ域的情况

最小化的目标是所有工件完成时间的函数。 C i j C_{ij} Cij表示一项工件在一台机器上的完成时间,工件 j j j离开系统时间记为 C j C_j Cj。目标也可能是工期的函数。工件 j j j的延迟定义为
L j = C j − d j L_j=C_j-d_j Lj=Cjdj
当工件完成滞后的时候为正,而当工件提前完成的时候为负。工件 j j j的滞后定义为
T j = m a x ( C j − d j , 0 ) = m a x ( L j , 0 ) T_j=max(C_j-d_j,0)=max(L_j,0) Tj=max(Cjdj,0)=max(Lj,0)
滞后和延迟的不同在于事实上滞后永远不会是负的。工件 j j j的单位惩罚定义为
{ 1 , C j > d j 0 , 其他 \left\{ \begin{array}{lr} 1,&C_j>d_j\\ 0,&其他\\ \end{array} \right. {1,0,Cj>dj其他
延迟、滞后和单位惩罚是3个基本的与工期相关的惩罚函数。最小化的目标函数有:

  1. 制造期( C m a x C_{max} Cmax).其定义为 m a x ( C 1 , C 2 , . . . , C n ) max(C_1,C_2,...,C_n) max(C1,C2,...,Cn),和最后一项离开系统的工件完成时间相等。最小的制造期通常意味着机器的高利用率。
  2. 最大延迟( L m a x L_{max} Lmax)。定义为 m a x ( L 1 , L 2 , . . . , L n ) max(L_1,L_2,...,L_n) max(L1,L2,...,Ln),她度量违反工期的最坏情况。
  3. 加权完成时间和( ∑ w j C j \sum{w_jC_j} wjCj)。 n n n项工件完成时间的加权和给出了一个由调度引起的所有持有或库存成本指标。完成时间和在文献中通常称为流水时间。加权完成时间和则称为加权流水时间。
  4. 折扣加权完成时间和 ∑ w j ( 1 − e − r C j \sum{w_j(1-e^{-rC_j}} wj(1erCj)。这是比前一个更一般的成本函数,现在成本以每单位时间 r r r的比率产生折扣, 0 < r < 1 0<r<1 0<r<1。即,工件 j j j没有在时间 t t t完成,则在 [ t , t + d t ] [t,t+dt] [t,t+dt]时间段内产生的附加成本为 w j r e − r t w_jre^{-rt} wjrert。若在时间t完成,则在时间段 [ 0 , t ] [0,t] [0,t]中产生的总成本为 w j ( 1 − e − r t ) w_j(1-e^{-rt}) wj(1ert) r r r的值通常接近于0,即0.1或10%。
  5. 加权滞后和( ∑ w j T j \sum{w_jT_j} wjTj)。是比加权完成时间更一般化的成本函数。
  6. 加权滞后工件数量( ∑ w j U j \sum{w_jU_j} wjUj)。加权滞后工件数量不仅仅是有学术意义的指标,更是实际中常用目标,这是因为其是一个很容易记录的量。
    以上列出的所有目标函数都是所谓的规则绩效指标. 规则绩效指标是 C 1 C_1 C1 C 2 C_2 C2 ⋯ \cdots C n C_n Cn的非减函数。最近,研究者已经开始研究不规则的目标函数。例如,当工作 j j j具有工期 d j d_j dj时,它可能受制于一个提前惩罚,这里工件 j j j的提前惩罚定义为
    E j = m a x ( d j − C j , 0 ) E_j=max(d_j-C_j,0) Ej=max(djCj,0)这个提前您罚对 C j C_j Cj是非增的目标,如提前总和加匕滞后总和 ,也就是
    ∑ j = 1 n E j + ∑ j = 1 n T j \sum_{j=1}^{n}E_j+\sum_{j=1}^{n}T_j j=1nEj+j=1nTj是不规则的。不规则的、更一般的目标是加权提前和加上加权滞后和,即
    ∑ j = 1 n w j ′ E j + ∑ j = 1 n w j ′ ′ T j \sum_{j=1}^{n}{w'_jE_j}+\sum_{j=1}^{n}{w''_jT_j} j=1nwjEj+j=1nwj′′Tj与工件 j j j提前相关的权重( w j ′ w'_j wj)可以不同于与工件 j j j滞后相关的权重( w j ′ ′ w''_j wj′′)。
    与工期相关的惩罚函数
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古道西风瘦码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值