一个关于调度的paper

Scheduling Back-End Operations in Semiconductor Manufacturing

摘要

本文提出了一种新的算法模型去最大化封装和测试的批量的吞吐量,而且确保关键批量的权重优先级。该问题是一个混合整数规划问题,采用反应贪婪随机自适应搜索算法(greedy randomized adaptive search procedure, GRASP)求解。在GRASP的一阶段,机器和工具套件(machine-tooling)暂时性的固定,迭代求得一个可行解,这个过程重复很多次。在第二阶段,一个新的领域搜索算法是对阶段一中找到的一个不错的subset进行的,利用线性规划-基于蒙特卡罗模拟的算法,在所带来的解的邻域内识别出新的机床组合(machine-tooling),并通过优化相应的批次分配寻求改进。该方法在一家大型半导体制造商提供的数据上进行了测试。结果表明,GRASP可以在一半的时间内获得与CPLEX相当的高质量解决方案。

1.介绍

集成电路制造包括4个环节:晶圆制造、晶圆探针、电子封装、最终测试。本文的工作目标是为了提高机器设置和批次在封测时的加工效率(Assembly and test, AT),本文提出了一个解决AT调度问题的一个新的模型方法,该模型的目标是最大化处理批量的加权和,和最小化关键设备的加权短缺。该模型是一种大规模的混合整数线性规划,当货物批次(lots)和工具套件-温度组合(tooling-temperature combination)的数量相对较少时,可以使用任意一种商业求解器求解。对于更现实的实例,我们设计了一种基于两阶段分解的解决方案方法,首先设置机器,然后分配货物批次。在阶段一,使用贪心随机自适应搜索(greedy randomized adaptive search procedure, GRASP),通过对随机选择的机器-工具配置(machine-tooling configurations)重复应用分解策略,在第一阶段获得一组高质量的可行解。在第二阶段,通过一种新颖的线性规划-基于蒙特卡罗的邻域搜索方案去优化这个可行解,阶段二也用到了分解策略。

2.封装和测试

随着前端操作的产量效率提高,提高后端设施处理大量产品的能力的需求也相应增加。由于一个给定的电路可以以许多不同的方式封装,所以在这个阶段产品类型会出现爆炸式增长。后端操作的主要步骤可能包括20到40个进程。与大量关于晶圆制造的文献相比,对 AT 操作的研究很少。以下参考文献中提到的问题与我们的相似,但不完全相同。其他文献研究的问题和我们类似,但不相同。Knutson[11]等人研究了AT设施中的货物批量,以匹配客户的订单。为了处理机器设置等问题,Song 等人应用蚁群优化算法,减少瓶颈机在装配和测试过程中的转换时间。Zhang 等[13]提出了一个两阶段的能力规划框架来重新配置 AT 操作中的工具包组件。第一个层次侧重于中期规划,而第二个层次为个别设施制定可执行计划。作者还为第一级问题提出了一个混合整数线性规划模型。这种方法在英特尔的 AT 网站上得到了成功的应用,每年节省了1000万美元的组件采购费用。

3.问题描述(关于问题的一些假设)

在后端流程中,成品晶圆经过泛多的检查和测试,每一步可能需要长达3小时,在进入成品库存之前,每个晶圆都要经过多达 32 次操作。在每一个操作过程中,一个处于队列中的货物批次(lot)必须分配给一个合适的机器集合,这些机器集合可能包含上百个机器,并且当两个相邻的货物批次(lot)包含了不同的设备(device)时,则两个lots之间会发生一个设置(setup),设置或转换由一组技术人员执行,通常需要两个小时,但可能需要更少的时间,具体取决于工具(tooling)。如果现在的设备必须在高温下的机器上测试,而下一个设备则要求室温,其他的条件都固定不变,则这个设置时间(setup time)就是机器冷却的时间,通常是一个小时,在这个问题中,劳动力通常不是限制。
每个货物批次(lot)包含同一个设备的芯片,从几百到几千不等,两个货物批次(lot)也可能包含同一个设备的不同数量的芯片。每个lot都有其对应的客户和交付日期,如果交货延迟,就会有惩罚,惩罚是迟交付时间和交货量的函数。因为setups是非常耗时的,所以对于规划者来说,以一种需要尽可能少的setup和考虑到到期日的方式来分配大量的machine和tooling到machine上是至关重要的。
lot的age是当前时间减去它进入机器的时间。对于每一个操作,每个lot都会被分配到一个特定的机器,为了符合条件,机器必须按照批次的工艺路线表的规定用合适的tooling piece去setup,并且必须能够在要求的温度下运行。Machines被分为几个系列,在大多数情况下,来自同一个系列的两台机器是相同的,但是相同的机器,其温度可能不同,因此也不能互换。在大多数操作中,tooling piece是有限资源,和machine一样,tooling piece也被分为几个系列,并且只能在各自限定下的温度工作。
对于一个lot,需要选择一个加工路线(route),每个route都有其特定的machine,tooling和操作温度。我们规定,每个被分配的lot都会被完全处理,没有抢占,每台机器在计划期时间内只能被设置一次,只在一个温度下运行。
每个计划期间(planning horizon)通常是一个轮次或者是一天。其中处理的lots的子集可能包含所谓的 key device 和 package device,对于这两种类型的 device,任何没有满足的要求都会导致巨大的损失。因此要着重处理这两种设备。常规的lot的分配取决于他们的age和在设施中的剩余周期时间。

问题说明:

给定的一个计划期、AT操作、一批lots,确定怎么用工具去设置每个机器的特定温度,以达到在不违反系统容量的情况下,加权处理的批量之和最大化。该解决方案还应尽量减少关键设备和封装设备的数量,以满足其需求。

4.数学模型

AT调度问题可以建模成一个混合整数规划问题(MIP),如下(模型1):

目标函数(1a)的设计目的是最大化在规划范围内处理的批量的总加权数,并最小化关键设备和包装设备的总加权短缺。 w l = l o t   a g e + r e m a i n i n g   c y c l e   t i m e w_l=lot \ age + remaining \ cycle \ time wl=lot age+remaining cycle time 是 lot l 的权重,其中 w l k w_l^k wlk w l p w_l^p wlp 是设备 k ∈ K , p ∈ P k \in K, p\in P kK,pP 的不足的惩罚。

在这里插入图片描述

在这里插入图片描述

5.求解方法

模型1的规模主要取决于分配 lot 的变量 x i l s x_{ils} xils,和 x i l s x_{ils} xils 在(1b)中约束条件的数量,其规模都随着 lot 的数量线性增长。为了使实际生产中求解模型1的运行时间保持在合理范围,我们提出了一种启发式的两阶段分解方案嵌入到 GRASP 算法中,我们的方法是第一阶段首先给定机器的配置(machine-tooling),即固定 y i λ y_{i\lambda} yiλ, 然后就得到了我们成为 low level problem(LLP),其中 x i l s x_{ils} xils 是决策变量,在第二阶段(文中也称为 upper level)使用一种策略去求解我们在第一阶段固定的 machine-tooling pairs。

GRASP的阶段一采用自适应贪心的方法随机选择 y y y 变量,从而发现多种高质量的可行解,然后求解 LLP 问题去获得此时的最优 lot 分配情况。这个步骤将会被重复很多次。

GRASP的阶段二试图用领域搜索方法(high-level neighborhood search)优化从阶段一中发现的高质量可行解的子集。

A. Low level problem

当工具设置(tooling setup)变量 y i λ y_{i\lambda} yiλ 固定为 y ˉ i λ \bar{y}_{i\lambda} yˉiλ,则模型1就化简为模型2(LLP)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模型2的包含了大约 ∑ i ∈ M ∑ l ∈ L ( i , λ i ˉ ) ∣ S ( i , l , λ i ˉ ) ∣ + ∣ K ∣ + ∣ P ∣ \sum_{i\in M}\sum_{l\in L(i, \bar{\lambda_i})}|S(i, l, \bar{\lambda_i})|+|K|+|P| iMlL(i,λiˉ)S(i,l,λiˉ)+K+P个变量和 ∣ L ∣ + ∣ M ∣ + ∣ K ∣ + ∣ P ∣ |L|+|M|+|K|+|P| L+M+K+P 个约束条件,相比模型1是一个相当大的减少。但是仍然是一个比较困难的整数规划问题。因为我们要求重复求解模型2。我们提出对模型2应用线性松弛规划,然后在其解的指导下构造可行解。比如我们
线性松弛规划的解为 x L P x^{LP} xLP, 可行解的构造过程如下:

x i l s I P = x i l s L P , i f   x i l s L P = 1 x^{IP}_{ils}=x_{ils}^{LP}, if \ x_{ils}^{LP} = 1 xilsIP=xilsLP,if xilsLP=1
x i l s I P = 0 , o t h e r w i s e x^{IP}_{ils}=0, otherwise xilsIP=0,otherwise

根据 x i l s I P x^{IP}_{ils} xilsIP,我们令 L 0 L_0 L0 代表还没有被分配的 lot, L i L_i Li 代表被分配到 机器 i i i 的 lot。对于device j j j,其 output 和 shortage 被定义如下:

o u t ( j ) = ∑ i ∈ M ∑ l ∈ L i ∩ L ( j ) n l c l i p s , ∀ j ∈ D out(j)=\sum_{i\in M}\sum_{l\in L_i \cap L(j)}n_l^{clips}, \forall j \in D out(j)=iMlLiL(j)nlclips,jD
s h ( j ) = n ( j ) − o u t ( j ) sh(j)=n(j)-out(j) sh(j)=n(j)out(j)

其中 n ( j ) n(j) n(j) 是 device j 的在约束(2d)和(2e)下的目标输出,即,当 j j j 是 key device 或 package device 时, n ( j ) = n j m i n − c h i p s n(j)=n_{j}^{min-chips} n(j)=njminchips,当 j j j 是常规设备时, n ( j ) = − ∞ n(j)=-\infty n(j)=,因为其没有要求。

没有分配的 lot l ∈ L 0 l \in L_0 lL0 的受益函数定义如下:

b e n ( l ) = w l + ( w d l / C ) ⋅ m i n { n l c h i p s , s h ( d l ) } ⋅ I { s h ( d l ) > 0 } ⋅ I { d l ∈ { K ∪ P } } ben(l)=w_l+(w_{d_l}/C)\cdot min\{n_l^{chips},sh(d_l)\}\cdot I\{sh(d_l)>0\}\cdot I\{d_l\in\{K\cup P\}\} ben(l)=wl+(wdl/C)min{nlchips,sh(dl)}I{sh(dl)>0}I{dl{KP}}

其中 d l d_l dl 是 lot l l l 所包含的 device。

根据 x I P x^{IP} xIP 我们可以计算出一个可行解中未分配 lot 的 b e n ( l ) ben(l) ben(l),对于每个machine i ∈ M i\in M iM,令 t i I P t_{i}^{IP} tiIP为 i 执行其所分配 lot 所消耗的时间。然后我们使用算法 N 1 ( x I P ) N_1(x^{IP}) N1(xIP) 去尽可能的分配 lot 到可利用的机器上面,然后再使用算法 N 2 ( X I P ) N_2(X^{IP}) N2(XIP) 去执行领域搜索。两个算法如下所示:

在这里插入图片描述

在这里插入图片描述

B. Upper Level Problem

LLP 模型的解实际上是关于变量 y y y 的函数,Upper Level Problem(ULP)旨在确定最佳机器设置,以使总体目标 (1a) 最大化。 以下数学模型用于此目的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-da08lyH8-1656915490852)(1656490572372.png)]

由于目标函数不是显式的,所以我们不可能直接求解模型4,所以,我们提出采用 GRASP 算法求解,在每个阶段一,从 machine-tooling 构造一个候选列表(Candidate List, CL)并且根据每个元素的收益将 CL 排序,然后再利用 CL 列表构造一种受限的候选列表(Restricted candidate list, RCL),其长度是根据上一次迭代解的质量动态调整的。

令 SIM 是相同机器的集合(set of identical machines),每个元素的样式是 ( j , λ ) ∈ S I M × Λ ( i ) (j,\lambda) \in SIM \times \Lambda(i) (j,λ)SIM×Λ(i),可行解是随机从RCL中选取的满足容量约束的 ( j , λ ) (j, \lambda) (j,λ) 组合,正如前面提到的那样,阶段一产生的解被传送到阶段二应用邻域搜索算法去提高。

Build the CL

CL 里的每个元素都是一个三元组, j ∈ S I M j\in SIM jSIM,和设置工具(tooling setup) λ ∈ Λ ( i ) \lambda \in \Lambda(i) λΛ(i),和它们相关的收益 b e n ( j , λ , L 0 ) ben(j, \lambda, L_0) ben(j,λ,L0),计算公式如下:
b e n ( j , λ , L 0 ) = m a x { ∑ l ∈ L ( j , λ ) ∩ L 0 b e n ( l ) z l : ∑ l ∈ L ( j , λ ) ∩ L 0 n l c h i p s r i l s z l ≤ H i , z l ∈ L ( j , λ ) ∩ L 0 } ben(j, \lambda, L_0)=max\{\sum_{l\in L(j,\lambda)\cap L_0}ben(l)z_l:\sum_{l\in L(j,\lambda)\cap L_0}\frac{n_l^{chips}}{r_{ils}}z_l \le H_i, z_l \in L(j, \lambda)\cap L_0\} ben(j,λ,L0)=max{lL(j,λ)L0ben(l)zl:lL(j,λ)L0rilsnlchipszlHi,zlL(j,λ)L0}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CXRIkHYq-1656915490852)(1656493926066.png)]

Self-adjusted RCL

RCL 是 CL 的前几个元素,因为 RCL 指导阶段一的求解,所以需要在解的质量方面和多样性方便保持平衡。它的长度为 l R C L l_{RCL} lRCL,显然,如果 l R C L l_{RCL} lRCL 太大,解的质量可能不好,如果太小,解的多样性可能不足,所以我们使其自适应的动态调整。假设 l R C L ∈ { 2 , 3 , ⋯   , l ˉ R C L } l_{RCL}\in\{2, 3, \cdots, \bar{l}_{RCL}\} lRCL{2,3,,lˉRCL}, l ˉ R C L } \bar{l}_{RCL}\} lˉRCL} l R C L l_{RCL} lRCL 的最大长度,在 GRASP 迭代过程中, l R C L l_{RCL} lRCL 在动态调整。

A = { α 1 , α 2 , ⋯   , α m } A=\{\alpha_1, \alpha_2, \cdots, \alpha_m\} A={α1,α2,,αm} l R C L l_{RCL} lRCL 的取值范围,令 p i p_i pi 代表 α i \alpha_i αi 的取值概率,初始化 p i = 1 m , i = 1 , 2 , ⋯   , m p_i=\frac{1}{m}, i=1, 2, \cdots, m pi=m1,i=1,2,,m

为了观察概率是怎样动态调整的,令 ϕ ⋆ \phi^{\star} ϕ 是 GRASP 上一轮次迭代的最优解,并且令 l R C L = α i l_{RCL}=\alpha_i lRCL=αi的解的平均值为 A i A_i Ai,定义
q i = ( A i ϕ ⋆ ) δ , i = 1 , 2 , ⋯   , m q_i=(\frac{A_i}{\phi^{\star}})^\delta, i=1, 2, \cdots, m qi=(ϕAi)δ,i=1,2,,m

为衡量 α i \alpha_i αi 下的算法性能指标,其中 δ \delta δ 是一个重塑指标, δ \delta δ 越大, q i q_i qi 越小,然后再归一化 p i = q i / ∑ γ y = 1 m q γ , i = 1 , … , m p_i = q_i/\sum_{\gamma y = 1}^{m}q_{\gamma}, i=1, \dots, m pi=qi/γy=1mqγ,i=1,,m

Grading the ( S I M , Λ ) (SIM, \Lambda) (SIM,Λ) Combinations

我们为了挑选出一个使解的效果很好的 machine-tooling pair ( j , λ ) (j, \lambda) (j,λ),然后我们设计了一个 scoring list(SL) 对每一个 ( j , λ ) (j, \lambda) (j,λ) 组合评分,SL 中的每个元素也是一个三元组, ( j , λ , S j λ ) (j, \lambda, S_{j\lambda}) (j,λ,Sjλ),令 ϕ k \phi_k ϕk 是阶段一的(4a)第k次迭代的函数值,令 ϕ j λ ⋆ \phi_{j\lambda}^\star ϕjλ 是目前 ( j , λ ) (j, \lambda) (j,λ) 组合的最佳函数值,并且 y ˉ i λ k \bar{y}_{i\lambda}^k yˉiλk 是相应的 machine-tooling pair。 S j λ S_{j\lambda} Sjλ 定义为 ( j , λ ) (j, \lambda) (j,λ) 在阶段一的平均目标函数值和最佳目标函数值的函数。

在这里插入图片描述

其中 n P h a s e I n^{Phase I} nPhaseI 是阶段一的总的迭代次数。这个评分公式强调了 ϕ j λ ⋆ \phi_{j\lambda}^\star ϕjλ 。常数 c 是为了避免评分为0,通常设为1000。

( j i , λ i , b i ) (j^i, \lambda^i, b^i) (ji,λi,bi) 是 RCL 的第 i i i 个元素,我们重写一下上面的概率公式:

在这里插入图片描述

其中 δ \delta δ 是重塑参数,通常设置为50,可以加强强调功能,但是为了避免过于强调,我们对概率设置一个最小限制:

在这里插入图片描述

ϵ \epsilon ϵ 通常设置为 0.01。

Phase I:Construct Initial Solution

每个阶段一迭代都会结合 CL、RCL、SL 和启发式求解器为模型 (1) 生成一个可行的解决方案。伪代码如下:

在这里插入图片描述

Phase Ⅱ LP-BASED Local Neighborhood Search

局部分支是一种将邻域搜索、强化和多样化等元启发式概念嵌入到分支界定法中的技术,目的是在合理的时间内高质量的解决问题。给出一个可行解 y ˉ \bar{y} yˉ,令 Y ˉ = { ( i , λ ) : y ˉ i λ = 1 , i ∈ M , λ ∈ Λ ( i ) } \bar{Y}=\{(i, \lambda):\bar{y}_{i\lambda}=1, i\in M, \lambda \in \Lambda(i)\} Yˉ={(i,λ):yˉiλ=1,iM,λΛ(i)},我们定义其 local branch cut 如下:

Δ ( y , y ˉ ) = ∑ ( i , λ ) ∈ Y ˉ ( 1 − y i λ ) ≤ K \Delta (y,\bar{y})=\sum_{(i, \lambda)\in \bar{Y}}(1-y_{i\lambda})\le K Δ(y,yˉ)=(i,λ)Yˉ(1yiλ)K

这个约束条件会生成当前可行解 y ˉ \bar{y} yˉ 的一个半径为 K 的一个邻域。在阶段二的每一个外部循环,将上面的不等式作为约束条件加入到模型1中求松弛解,记为 y L P = ( y i λ L P , i ∈ M , λ ∈ Λ ( i ) ) y^{LP}=(y_{i\lambda }^{LP}, i\in M, \lambda \in \Lambda(i)) yLP=(yiλLP,iM,λΛ(i)),所以可以将 y i λ L P y_{i\lambda }^{LP} yiλLP 看作用工具 λ \lambda λ 来设置 机器 i i i 的概率,然后我们在阶段二的内循环使用蒙特卡洛方法模拟,最终我们得到用工具 λ \lambda λ 来设置 机器 i i i 的概率 y i λ L P y_{i\lambda }^{LP} yiλLP,一旦工具选择确定之后,我们就可以用前面的方法去求解 LLP 问题。

在这里插入图片描述

C. Summary of GRASP

在阶段一,利用每个 lot 的收益去构造 RCL,从而用贪心的方式获得可行解,然后在阶段二使用 LPLB 算法去对可行解进行改进,伪代码如下:

在这里插入图片描述

6.计算结果

首先对比 GRASP 启发式算法和使用 CPLEX 求解器求解问题的时间,问题的参数设置如下:

  • n P h a s e I n^{Phase I} nPhaseI=1000

  • 对于 RCL, l ˉ R C L = 11 \bar{l}_{RCL}=11 lˉRCL=11, δ = 50 \delta = 50 δ=50

  • 对于评分规则(SL), δ \delta δ=50, c c c=1000, ϵ \epsilon ϵ = 0.01

  • 在阶段二,K = 1, n L P L B n^{LPLB} nLPLB=10

在这里插入图片描述

在这里插入图片描述

7.结论

本文提出了一个半导体制造业后端操作调度的数学模型。为了在不依赖第三方软件的情况下有效地解决该问题,我们提出了一个嵌入了一个两阶段启发式算法的GRASP算法。GRASP 第一阶段的新颖之处在于 RCL 作为解的质量函数的动态调整,以及使用评分规则来指导机器的设置,在第二阶段,设计了基于局部分支和蒙特卡罗采样的邻域搜索来改进第一阶段的解。广泛的测试表明,与CPLEX的解差不多的的目标函数值可以在更少的时间用 GRASP 获得。这些结果证实了公共领域软件与智能启发式相结合可以与顶级商业产品竞争。尽管如此,在第二阶段算法方面仍有改进的余地。

的质量函数的动态调整,以及使用评分规则来指导机器的设置,在第二阶段,设计了基于局部分支和蒙特卡罗采样的邻域搜索来改进第一阶段的解。广泛的测试表明,与CPLEX的解差不多的的目标函数值可以在更少的时间用 GRASP 获得。这些结果证实了公共领域软件与智能启发式相结合可以与顶级商业产品竞争。尽管如此,在第二阶段算法方面仍有改进的余地。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值