行政院國家科學委員會補助專題研究計畫成果報告
※※※※※※※※※※※※※※※※※※※※※※※※※
※
※
※ 具實用性及交期導向之 IC 封裝廠排程演算法則 ※
※ 之設計與應用 ※
※
※
※※※※※※※※※※※※※※※※※※※※※※※※※
計畫類別:R個別型計畫 □整合型計畫
計畫編號:NSC 90-2218-E-009-019-
執行期間:90 年 08 月 01 日至 91 年 07 月 31 日
計畫主持人:彭文理教授
計畫共同主持人:鍾淑馨教授
計畫參與人員: 鄭博化
羅湘君
莊佳蒨
本成果報告包括以下應繳交之附件:
□赴國外出差或研習心得報告一份
□ 赴大陸地區出差或研習心得報告一份
□ 出席國際學術會議心得報告及發表之論文各一份
□國際合作研究計畫國外研究報告書一份
執行單位:國立交通大學工業工程管理學系
中
華
民
國
九十一
年
九
月
十八
日
行政院國家科學委員會專題研究計畫成果報告
計畫編號:NSC
90-2218-E-009-19-執行期限:90 年 08 月 01 日至 91 年 07 月 31 日
主持人:彭文理 交通大學工業工程與管理系
共同主持人:鍾淑馨 交通大學工業工程與管理系
計畫參與人員:鄭博化 羅湘君 莊佳蒨 交通大學工業工程與管理系
1. Backgr ound and Motivation
The major four sections for the IC manufacturing include the wafer fabrication, the wafer probing (wafer sorting), the IC packaging, and the final testing. And on time delivery is the major objective of IC packaging factories. Due to the high cost of the manufacturing by using the ceramic process, most of the IC packaging factories use plastic packaging. The manufacturing process of plastic packaging generally contains the following eleven process stages, (1) tapping, (2) lapping (wafer back grinding), (3) die sawing, (4) die bonding, (5) wire bonding, (6) molding, (7) marking, (8) plating, (9) de-flash and trimming, (10) forming, and (11) final testing (Manzione (1990)).
In the IC packaging factory, a group of machines are arranged in parallel at each stage of the process, and jobs in hundreds of product types are to be processed. The processing times of each job at different process stage may not be the same but predetermined. Each job must be processed on any of the parallel machines at each process stage. Therefore, the manufacturing system in the IC packaging factory can be considered as a flexible flow shop. The IC packaging scheduling problem (ICPSP) we investigate is a variation of the flexible
flow-shop problem, and a generalization of the parallel-machine scheduling problem.
In real situations, the ICPSP involves constraints on job clusters, job-cluster dependent processing time, due dates, machine capacity, and sequentially dependent setup time at each of the multiple process stages. Therefore, the ICPSP is considerably more difficult to solve than the classical
parallel-machine scheduling problem
investigated by Ho and Chang (1995), Gabrel (1995), Schutten and Leussink (1996), Cheng and Gen (1997), Ruiz-Torres et al. (1997), Park and Kim (1997), and Lee and Pinedo (1997). The development of an efficient scheduling system is essential in the IC packaging industry, as it improves the efficiency of the production with dynamic orders, and tight due dates restrictions.
2. Pur pose
In the research, we formulate the ICPSP as an IP problem to minimize the total machine workload. The IP model considers the due date restrictions, which includes the processing time and the setup time in the capacity constraints, thus reflects the real situations more accurately than those considered by Salvador (1973), Arthanari (1974), Wittrock (1988), and Sriskandarajah and Sethi (1989). In addition, we propose two efficient solution procedures to solve the
ICPSP approximately, with efficient job schedules that minimize the total machine
workload. For most factories, wafer sawing
(die sawing), die mounting, and wire bonding are three most critical manufacturing stages among all, and the machine numbers at those stages are enormous. Scheduling those machines under the production environment with many factors mentioned above, has become a rather difficult task for the IC packaging factories. For most cases, the due dates for the jobs are usually settled between the customers and the factories. Therefore, some tardiness (lateness) must be considered to ensure the job completion of the orders. Minimizing the total workload allows the process to fully utilize the system
capacity, thus increases the overall
productions.
3. Researching Theor y 3.1 Fr amewor k
First, let the manufacturing environment consists of a set of processing stages, and all jobs must be processed through the P stages and completes the necessary operations
within every stage. We also define Mp =
{m ,p1 m , ...,p2 mpK} as the machine group at
the p-th stage and containing a set of KP
identical machines. We note that the cluster R0 includes J0 = J01 + J 02 + ⋅⋅⋅ + J 0P jobs in
each process stage. Because the cluster R0
is to denote the idle status of the Kp parallel
machines of each stage, the number of the
cluster R0 in each stage are equal to the
number of the parallel machines in each stage. Let Wp = {Wp1, Wp2, ... , WpK} be the
predetermined machine capacity at the p-th stage expressed in terms of processing time
units. And then, we define R = {R0, R1,
R2, ... , RI} as the I + 1 clusters of jobs to be
processed with each job cluster Ri = {rij | j =
1, 2, ... , Ji} containing Ji jobs. Since each job
rij must be processed through a set of
manufacturing process consists of p-stage, rij
= {rijp | p = 1, 2, P} denote the job rijp
processed on the p-th stage. Let nij be the
lot size (number of dies) of job rij.
pip : the unit processing time for each die for
each job rijp in cluster Ri (rijp ∈ Ri) on
machine m , pk
p ii'
s : the sequentially dependent setup time
between any two consecutive jobs rijp (∈Ri)
and ri'j'p (∈Ri') from different job clusters
on each machine m .pk
xijpk : the variable indicating whether the job
rijp is scheduled on machine m of the p-thpk
stage, with xijpk = 1 if job rijp is scheduled to
be processed on machine m of the p-thpk
stage, and xijpk = 0 otherwise.
tijpk : the starting time for job rijp to be
processed on machine m of the p-th stage,pk
where tijpkis between the time windows (bij1,
eijP) of job rij.
(bij1, eijP) : the service time windows,
bij1 : the earliest starting time to process job
rij1 of the first process
eijP : the latest starting time to process job rijP
of the last process. eijP =dij− nijpiP.
Let yiji'j'pk be the precedence variable,
whereyiji'j'pk should be set to 1 if the two
jobs rijp and ri'j'p are scheduled on machine pk
m and job rijp precedes job ri'j'p (not
otherwise. Further, let ziji'j'pk be the
direct-precedence variable, where ziji'j'pk
should be set to 1 if the two jobs rijp and ri'j'p
scheduled on machine mpk and job rijp
precedes job ri'j'p directly, and where
pk j i ij
z ' ' = 0 otherwise.
3.2 Integer Progr amming For mulation To find a schedule for the jobs which minimizes the total machine workload without violating the machine capacity and the service time windows constraints, we consider the following integer programming model shown by Table 1.
3.3 Multi-Stage Sequential Savings Algor ithm
The MSSS algorithm for the ICPSP is essentially based on the well-known savings procedure of Clark and Wright (1964) for the
vehicle routing problem, with some
modifications. Each process stage, therefore, can be treated as a parallel-machine scheduling problem. Consequently, one solution strategy we may take is to solve
each single-stage ICPSP problem
sequentially to obtain the stage solutions, then combine them into a complete ICPSP solution.
The MSSS algorithm is
proceeding as follows.
First,
apply
the
sequential-savings
procedure
to
obtain
stage 1 solution. We
then
use
the
job
completion
times
obtained from stage 1
solution as the ready
times b
ijpfor the jobs to
be processed at stage 2,
and solve the ICPSP for
stage 2. Repeat this
step until we obtain all
the P stage solutions.
All the P stage solutions,
are then combined to
form a complete ICPSP
solution. Variations of
the MSSS algorithm
may be considered by
setting
various
due
dates for each stage
sequentially, then solve
for the resulting single
stage
ICPSP
to
generating
multiple
solutions. The best
among all combined
solutions
then
is
selected as the solution
for the ICPSP.
The Sequential-Savings
algorithm,
initially,
calculates the savings of
all pairs of jobs and
creates a list by sorting
the
savings
in
descending order of
their magnitudes. The
algorithm then selects
the first feasible pair of
jobs from the top of the
list to start a new
schedule (initialization
of the first schedule).
We note that a selected
pair of jobs is feasible
and will be added to the
machine schedule if it
does not violate the
machine
capacity
constraints
and
the
starting time windows
constraints. Starting
from the top of the
savings
list,
the
Sequential-Savings
algorithm expands the
schedule by finding the
first feasible pair of jobs
on the list then adding it
to either one of the two
ends of the schedule.
If the current schedule
cannot be expanded,
choose the first feasible
pair of jobs from the top
of the list to start
another new schedule.
Repeat such steps until
all jobs are scheduled.
The savings,
SAij i'j'p,
which we considered in
the MSSS algorithm is
defined
as
p i i p i ip p j ij i' ' s s ' s ' SA = U + U -,
for all pairs of jobs
rijpand
r i'j'p, where
sii'prepresents the setup
time between any two
consecutive
jobs
)
( i
ijp R
r ∈
and
r i'j'p (∈Ri')from
different
job
clusters
on
each
machine
mkp,
the
notation U denotes the
machine is in idle status,
and
sUip(
sUi'p)
represents the setup
time to prepare an idle
machine to process job
) ( ijp
ijp r' '
r
. We write a
C
++program to proceed
with the steps of the
Sequential-Savings
algorithm. Considering
the short run time it
takes, and the single
solution obtained, the
MSSS algorithm can
effectively
solve
large-scale ICPSP, and
is considered efficient.
3.4 Multi-Stage Par allel Inser tion Algor ithm
The multi-stage parallel-insertion
algorithm (MSPI) can effectively handle large-scale problems. The MSPI algorithm for the ICPSP is essentially based on the parallel-insertion procedure presented by Potvin and Rousseau’s (1993) for the vehicle routing problem with time windows, with some modifications. Note that the IC packaging process consists of multiple manufacturing stages, each process stage therefore can be treated as a parallel-machine scheduling problem. Consequently, one solution strategy we may take is to solve
each single-stage ICPSP problem
sequentially to obtain the stage solutions, then combine them into a complete ICPSP solution.
The MSPI algorithm is
proceeding as follows.
First,
apply
the
parallel-insertion
procedure
to
obtain
stage 1 solution. We
then
use
the
job
completion
times
obtained from stage 1
solution as the ready
times b
ijpfor the jobs to
be processed at stage 2,
and solve the ICPSP for
stage 2. Repeat this
step until we obtain
solutions for all K
stages. All K stage
solutions,
are
then
combined to form a
complete
ICPSP
solution. Variations of
the MSPI algorithm
may be considered by
setting various possible
due dates for each stage
sequentially, then solve
for the resulting single
stage
ICPSP
to
generating
multiple
solutions. The best
among all combined
solutions
then
is
selected as the solution
for the ICPSP.
At the initialization step,
the
parallel-insertion
procedure constructs a
set
of
machine
schedules
simultaneously.
The
procedure
uses
a
generalized
regret
measure
over
all
schedules to select the
best unscheduled job,
which can foresee the
difficulty of inserting
jobs
into
machine
schedules. Let PS
pkbe
the partial schedule of
machine
mpkat
process stage p, where
) u , ... , u , u , ... , (u PSpk = pk0 pk(n−1) pkn pkL P 1,..., p , K ..., 1, k 0, u upk0 = pkL = = p =
where u
pknis the n-th
job
scheduled
on
machine
mpkat the
process stage p, and u
pk0and
u
pkLrepresent
pseudo jobs. For each
unscheduled
job
r
ijpassigned to machine
pk
m
, we first compute
its insertion cost on
each position of the
partial schedule of each
machine at the process
stage p.
At process stage p,
) u , r , (u ëpk pk(n−1) ijp pknrepresents
the
additional setup time
occurred if job r
ijpis
inserted between the (n
- 1)th and n-th positions
of the partial schedule
PS
pk. In some cases,
job insertion may cause
the postponement of
starting processing time
of jobs already on the
partial schedule. If the
postponement is against
the starting service time
windows
constraint,
) u , r , (u ëpk pk(n−1) ijp pknis
set to be an arbitrary
large value.
) u , r , (upk(n 1) ijp pkn pk − ë=
p ) I(u ) I(u p ) iI(u p i ) I(upk(n 1) s pkn s pk(n 1) pkn s − + − −where u
pk(n-1)and u
pknjobs on partial schedule
PS
pkbefore job r
ijpis
inserted, I(u
pkn) is the
function that returns the
product type of the job
being scheduled on the
n-th position of partial
schedule PS
pk.
Let
) u , r , (u ë*pk pk(n*−1) ijp pkn*d
enote
the
lowest
insertion cost due to the
insertion of job r
ijpinto
the
partial
schedule
PS
pk.
)] u , r , (u [ min ) u , r , (u pk pk(n1) ijp pkn l 1,..., n * pkn ijp 1) * pk(n pk * − = − = ë ëHowever, we may not
choose next inserted job
r
ijpwith
lowest
) (r
ë*pk ijp
,
since
insertion problem may
occur for jobs with
larger insertion cost.
To quantify the future
insertion difficulties for
a job on each machine,
the generalized regret
measure
σ
(r
ijp) of job r
ijpis defined. The regret
measure looks ahead
what can be lost later, if
a given job is not
immediately
inserted
into its best alternative
machine at the process
stage
p,
which
summaries
the
differences of insertion
cost between the best
alternative machine and
all
other
alternative
machines.
Hence,
unscheduled jobs with
larger regret value must
be inserted in higher
priority, since these
jobs are more difficult
to find feasible insertion
position
among
all
machines.
In
the
parallel
insertion
algorithm, instead of
using
ë*pk(rijp), the
candidate inserted job
* ijp
r
is selected with
largest
regret
value
σ
(r
ijp).
)] (r [ max ) (r ijp r * ijp ijp σ = ó ∑ = σ ≠ ' − − * ' ' * * pk pk pk ijp 1) (n pk pk * pkn ijp 1) pk(n pk * ijp) [ (u ,r ,u )- (u ,r ,u )] (r ë ëwhere
)] u , r , (u [ë min ) u , r , (u ë *pk pk(n*1) ijp pkn* p K 1,..., k * n ' pk ijp 1) * (n ' pk ' pk * − = − =and
insert
* ijp rbetween
upk'(n*−1)and
* n ' pk u. At each process
stage, the steps of
algorithm are described
in the following:
(Step 1) At each process stage, obtain
the partial schedules for all machines
using the largest criterion to select a
jobs r
ijp, which causes an idle
machine
mpkto spend the largest setup
time to prepare for the processing of
job r
ijp.
(Step 2) The following three sub-steps
are
proceeded
to
execute
the
scheduling procedures until all the jobs
are scheduled.
(a) For each unscheduled lot, first
compute its best feasible insertion
position by
ë*pk (upk(n*−1),rijp,upkn*)at
each machine’s partial schedule
PS
pk.
(b) Compute the regret value
σ
(r
ijp) for
each job. Choose the next inserted
job
*ijp
r
with largest
σ
(r
ijp) among
all unscheduled jobs.
(c) The best lot
*ijp
r
is inserted into the
lowest insertion cost position of the
machine determined by
ë (r* )ijp pk
*
.
We
implement
the
MSPI algorithm using
the C
++programming
language to execute the
Parallel-Insertion
procedure at each of the
P stages.
4. Achievements
In this study, we formulated ICPSP as an integer programming model the presented an efficient solution procedure, called the Multi-Stage Parallel Insertion algorithm, to solve the ICPSP case, which minimizes the total machine workload.
Major achievements:
1. Develop the integer programming model for the ICPSP with the total machine workload minimized. And write C++ programming language code to generate the IP model.
2. Use integer programming software
(Cplex) to illustrate the applicability of the linear integer programming model, and derive the optimal solution for ICPSP. Transfer the ICPSP the ICPSP into
vehicle routing problem with
time-window(VRPTW)network problem. 3. Develop multi-stage sequential savings
algorithm (MSSS) to solve the ICPSP approximately and effectively handle large-scale problems.
4. Develop multi-stage parallel-insertion algorithm (MSPI) to solve the ICPSP approximately and effectively handle large-scale problems.
References
[1] Arthanari, T. S. (1974). On some
problems of sequencing and grouping. PhD thesis, Indian Statistical Institute, Calcutta.
[2] Cheng, R. and Gen, M. (1997). Parallel machine scheduling problem using memetic algorithms. Computers and Industrial Engineering, 33(3-4), 761-764.
[3] Gabrel, V. (1995). Scheduling jobs within time windows on identical parallel machines: new model and
algorithms. European Journal of
Operational Research, 83, 320-329.
[4] Ho, J. C. and Chang, Y. L. (1995). Minimizing the number of tardy jobs for m parallel machines. European Journal of Operational Research, 84, 343-355. [5] Lee, Y. H. and Pinedo, M. (1997).
Scheduling jobs on parallel machines with sequence-dependent setup times.
European Journal of Operational
Research, 100, 464-474.
[6] Manzione, L. T. (1990). Plastic
Packaging of Microelectronic Devices.
Technical Report, AT&T Bell
Laboratories.
[7] Ovacik, I. M. and Uzsoy, R. (1996). Decomposition methods for scheduling semiconductor testing facilities. The
International Journal of Flexible
Manufacturing Systems, 8, 357-388. [8] Park, M. W. and Kim, Y. D. (1997).
Search heuristics for a parallel machine scheduling problem with ready time and due dates. Computers and Industrial Engineering, 33(3-4), 793-796.
[9] Potvin, J. Y. and Rousseau, J. M. (1993). A Parallel route building algorithm for the vehicle routing and scheduling problem with time windows. European Journal of Operational Research, 66, 19-26.
[10] Salvador, M. S. (1973). A solution of a special class of flow-shop scheduling
problems. Proceedings of the
Symposium on the Theory of
Scheduling and its Applications, 83-91, Springer-Verlag, Berlin.
[11] Schutten, J. M. J. and Leussink, R. A. M. (1996). Parallel machine scheduling with release dates, due dates and family setup times. International Journal of Production Economics, 46-47, 119-125. [12] Sriskandarajah, C. and Sethi, S. P.
(1989). Scheduling algorithms for
flexible flowshop: worst and average case performance. European Journal of Operational Research, 43, 143-160. [13] Wittrock, R. J. (1988). An adaptable
scheduling algorithm for flexible flow lines. Operations Research, 36, 445-453.
Table 1 The IP model for ICPSP minimize ∑ ∑ ∑ ∑ + ∑ ∑ ∑ ∑ = = = = = = = = L } ) ( { 1 0 1 0 1 ' 0 1 ' ' ' ' l K 1 k I i J j I i J j iip I i J j ijijpk ip ij ijpk i i ' i s z p n x subject to ∑ = = p K k ijpk p j i x 1 , , all for 1, (1) ∑ = = 0 1 0 J j jpk p,k x 1, for all (2) p,k s z p n x pk I i J j I i J j iip I i J j ijijpk ip ij ijpk i i ' i all for , W ) ( ≤ ∑ ∑ + ∑ ∑ ∑ ∑ = =0 1 = =0 1 '=0 =1 ' ' ' ' (3) all for 1, 2) ( Q ) ( y y x x - i, j, p,k pk j i ijpk p ijpk j i pk j i ij ' ' + ' ' − + ' ' ≥ (4) , all for 1, 2) ( Q ) (yiji'j'pk +yi'j'ijpk + p xijpk+xi'j'pk- ≤ i j, p,k (5) j, p,k i x x y
yijijpk ij ijpk ) Qp( ijpk i jpk ) 0, for all ,
( ' ' + ' ' − + ' ' ≤ (6) all for 0, 1) ( Q ) ( yiji'j'pk +yi'j'ijpk − p xi'j'pk−xijpk+ ≤ i, j, p,k (7) j, p,k i x x y y pk j i ijpk p ijpk j i pk j i ij ) Q ( 1) 0, for all , ( ' ' + ' ' − − ' ' + ≤ (8) p,k j i z yiji'j'pk ≥ iji'j'pk , for all , , (9) i,j,p,k z I i J j ijijpk i all for 1, ≤ ∑ ∑ =1 =1 ' ' ' ' (10) i,j,p,k z I i J j ijijpk i all for 1, ≤ ∑ ∑ =1 =1 ' ' ' ' (11) p,k z x I i J j ijpk r r ijijpk i j i ij all for 1, = ∑ ∑ − ∑ = =0 1 ≠ '' ' ' (12) k p j i y t s p n
tijpk+ ij ip+ ii'p− i'j'pk+Qp( iji'j'pk-1)≤0, for all , , , (13) k p j i -z y t s p n
tijpk+ ij ip+ ii'p− i'j'pk+Qp( iji'j'pk+ iji'j'pk 2)≤0, for all , , , (14) k p j i ,...,P , p -z y t p n
ti'j'(p−1)k'+ i'j' i'(p−1) − i'j'pk+Qp( iji'j'pk+ iji'j'pk2)≤0, for =23 and all , , , (15) k p j i -z -y -z y -z y pk j i ij pk j i ij p pk j i ij pk j i ij p pk j iji pk j i ij** + ** Q ( * * + ** 2)−Q ( ' ' ' ' 1)≥2,for all , , , (16) , all and 1, ..., 2, 1, and 1,2,..., for ), 1 G2 1 G1 -x -x i I p P- jk t x p n
tijpk+ ij ip ijpk≤ ij(p+1)k' + p( ijpk)+ p( ij(p+1)k' = = (17)
∑ ∑ = = = = P p K k ijpk j I i P x p 1 1 all and 1,2,..., for , (18) k p j i x b
tijpk≥ ij1 ijpk, for all , , , (19)
k p j, i x e
tijpk≤ ijP ijpk, for all , , (20)
j, p,k i
xijpk∈{0,1}, forall , (21)
p,k j i yiji'j'pk∈{0,1}, forall , , (22) p,k j i ziji'j'pk∈{0,1}, forall , , (23)