调度实例
根据框架和符号,简介几个调度问题的实例。
1.柔性流水车间(FFSP)
F
F
c
∣
r
j
∣
∑
w
j
T
j
FFc|r_j|\sum{w_jT_j}
FFc∣rj∣∑wjTj表示一个柔性流水车间(FFSP)。工件具有提交日期和工期,目标是最小化加权滞后和。
考虑一个生产水泥、木炭、狗食等纸袋的工厂。这种作业的基本原材料是纸卷。生产过程由3 个阶段组成:印刷标识、纸袋侧面粘接、纸袋一端或两端缝制。在每一个阶段,用到许多不同的机器。同一阶段里的机器可能在运行的速度、印刷颜色的数量、可处理纸袋的大小等方面略有不同。每个生产订单都说明了某一特定纸袋的数量,这种纸袋必须在承诺的发运日期或工期生产出来并发运出去。不同操作的处理时间与订单数量(即所订袋子的数量)成比例。
延迟交货意味着以信誉损失的形式受到惩罚,惩罚的程度则取决于订单或顾客的重要性和滞后程度。调度系统的目标之一就是最小化这些惩罚之和。当一台机器由一种类型的纸袋转为另一种时,要有一段准备时间。这台机器准备时间的长度取决于连续订单之间的相似度(相同颜色的数量、纸袋大小的差别等)。调度系统的另一个目标是最小化耗在准备时间的总和。
2.柔性作业车间(FJSP)
F
J
c
∣
r
j
,
s
i
j
k
,
r
c
r
c
∣
∑
w
j
T
j
FJc|r_j,s_{ijk},rcrc|\sum{w_jT_j}
FJc∣rj,sijk,rcrc∣∑wjTj指具有
c
c
c个加工中心的柔性作业车间。作业具有不同的发布日期,并且受取决于机器的顺序相关设置时间的约束。存在再循环,因此工作可能会多次访问工作中心。目标是尽量减少总加权迟到。
半导体在高度专业化的设施中制造。存储芯片和微处理器都是这种情况。这些设施的生产过程通常包括四个阶段:晶圆制造、晶圆探针、组装或封装以及最终测试。 晶圆制造在技术上是最复杂的阶段。金属和晶圆材料层以图案构建在硅或砷化镓晶片上以产生电路。每一层都需要许多操作,通常包括:(i)清洁,(ii)氧化,沉积和金属化,(iii)光刻,(iv)蚀刻,(v)离子注入,(vi)光刻胶剥离,以及(vii)检查和测量。因为它由不同的层组成,所以每个晶圆必须经过多次这些操作。因此,在此过程中存在大量的再循环。晶圆以24批通过工厂。某些计算机可能需要设置才能为传入作业做好准备;设置时间通常取决于刚刚完成的批次和即将开始的批次的配置。
生产过程中的订单数量通常为数百个,每个订单都有自己的发布日期和承诺的发货或到期日期。调度程序的目标是满足尽可能多的承诺发货日期,同时最大限度地提高吞吐量。后一个目标是通过最大限度地提高设备利用率来实现的,尤其是瓶颈机器的利用率,从而最大限度地减少闲置时间和设置时间。
3.并行机环境
P
m
∣
r
j
,
∣
∑
w
j
T
j
Pm|r_j,|\sum{w_jT_j}
Pm∣rj,∣∑wjTj表示有
m
m
m台并行机器的系统。工件
j
j
j在提交日期
r
j
r_j
rj到达,并且必须在工期
d
j
d_j
dj离开。工件
j
j
j可以在属于子集
M
j
M_j
Mj的一台机器上加工。若工件没有即使加工完,将引起
w
j
T
j
w_jT_j
wjTj的惩罚。
考虑一个大型机场的候机室,有许多登机口,每天有几百架飞机出发和到达。这些登机口都不一样,每架飞机也不相同。一部分登机口处有很大的空间,很容易容纳下大型飞机(宽机身的)。另一部分登机口位于那些飞机很难进入的地方。事实上,有些飞机可能需要被拖到它们的登机口处。
飞机根据某个调度到达和出发。然而,调度却在很大程度上受限于由诸如天气或其他机场事情所引发的随机因素。在飞机占据登机口的时间里,到达的乘客必须下飞机,飞机需要维修和保养,而出发的乘客必须上飞机。计划好的出发时间可以看作是工期,从而评估飞机的绩效。然而,如果预先知道由于预期的拥塞使得飞机不能按照计划到达时间在下一个机场着陆,那么飞机就不起飞(这种策略可以节约燃料)。如果飞机不允许起飞,运行策略通常是让乘客呆在候机室而不是在飞机上。如果登机延迟,飞机可以在登机口停留一段时间以防其他飞机占用该登机口。
调度者必须以这种方式把飞机分配给登机口,使得分配在物理上是可行的并且优化多个目标。调度者必须把飞机分配给合适的登机口,使得在它们各自的到达时间,登机口是可用的。目标包括最小化航班人员的工作和最小化飞机的延迟。
在这种情形下,登机口是资源,而对飞机的操纵和服务是任务。飞机到达登机口表示任务的开始时间,而出发表示完成时间。
4.单机环境
1
∣
r
j
,
p
r
m
p
∣
∑
w
j
C
j
1|r_j,prmp|\sum{w_jC_j}
1∣rj,prmp∣∑wjCj表示一个单机环境。工件
j
j
j在提交提日期
r
j
r_j
rj进入系统,允许中断。最小化目标为加权完成时间和。
多任务计算机操作系统功能之一是确定 CPU 用于处理不同程序的时间。通常事先并不知道准确的处理时间。然而,这些随机处理时间的分布是可以事先知道的,包括它们的期望值和方差。另外,每个任务通常有某个优先级(操作系统通常允许操作者和用户确定每项任务的优先水平或权重)。在这种情况下,目标是最小化所有任务的加权完成时间的期望之和。
为了避免下面的情况,即时间相对短的任务为了等候更高优先级的时间长的任务而在系统中停留很长一段时间,操作系统将任务划分为小碎片。然后,操作系统让这些任务碎片在CPU中循环,使得在任何给定时间区间内,CPU 都会在每项任务上花一定量的处理时间。如果正好一项任务的处理时间非常短,那么这种方式能够使它相对较快地离开系统。
任务处理的中断通常被称为中断。显然,这种环境下的最优策略会造成大量的中断。
或许还不能立即清楚调度会给既定的目标造成什么影响。花费时间和精力去寻找一种好的调度方法而不是随机选择一种有意义吗?一般的,调度方法的选择确实会对系统绩效造成较大的影响。
从技术和应用的角度来看,调度可能是很困难的。在技术方面遇到的困难类型与其他形式的组合优化和随机建模方面遇到的相似。在应用方面遇到的困难则是完全不同的类型。它们可能取决于用来分析实际调度问题模型的精确度和所需要输入数据的可靠性。
5.顺序决定的准备时间
1 ∣ s j k ∣ C m a x 1|s_{jk}|C_{max} 1∣sjk∣Cmax表示单机系统。 n n n项工件受制于由加工顺序决定的准备时间,而目标是最小化制造期。该问题等效于旅行商问题(TSP),一个旅行商必须以一种方式访问 n n n个城市,使得旅行距离总和最小。
6.一个项目
P ∞ ∣ p r e c ∣ C m a x P\infty|prec|C_{max} P∞∣prec∣Cmax表示一个 n n n 项工件的调度问题,受制于优先约束和不限数量的并行机器(或资源)。整个项目的总时间必须最小化。这种类型的问题在建筑业的项目规划中非常普遍并且已经产生了诸如关键路径法(critical path method,CPM)和项目评审技术(project evaluation and review technique,PERT)的方法。
7.流水车间
F m ∣ P j ∣ ∑ w j C j Fm|P_{j}|\sum{w_jC_j} Fm∣Pj∣∑wjCj表示一个成比例的有 m m m台机器(即 m m m台串行机器)的流水车间。工件 j j j在所有 m m m台机器上的加工时间相同且等于 p j p_j pj(因此才有成比例(proportionate)的术语)。目标是找出 n n n项工件通过系统的顺序,使得加权完成时间总和最小化。
8.作业车间
J m ∣ ∣ C m a x Jm||C_{max} Jm∣∣Cmax表示有 m m m台机器的加工车间调度问题;没有再循环,因此一项工件最多访问一台机器一次。目标是最小化制造期。