Document not found! Please try again

Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming ...

4 downloads 156 Views 162KB Size Report
Planning and Engineering Department, Asia Pacific Division, FedEx Express, Hong Kong, [email protected]. Kokin Lam. Division of Commerce, City University ...
OPERATIONS RESEARCH

informs

Vol. 52, No. 6, November–December 2004, pp. 965–976 issn 0030-364X  eissn 1526-5463  04  5206  0965

®

doi 10.1287/opre.1040.0144 © 2004 INFORMS

Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach Janny M. Y. Leung

Systems Engineering and Engineering Management Department, The Chinese University of Hong Kong, Shatin, Hong Kong, [email protected]

Guoqing Zhang

Industrial and Manufacturing Systems Engineering Department, University of Windsor, Windsor, Ontario, Canada N9B 3P4, [email protected]

Xiaoguang Yang

Key Laboratory of Management, Decision, and Information Systems, Institute of Systems Science, The Chinese Academy of Sciences, Beijing, China, [email protected]

Raymond Mak

Planning and Engineering Department, Asia Pacific Division, FedEx Express, Hong Kong, [email protected]

Kokin Lam

Division of Commerce, City University of Hong Kong, Kowloon, Hong Kong, [email protected]

In the manufacture of circuit boards, panels are immersed sequentially in a series of tanks, with upper and lower bounds on the processing time within each tank. The panels are mounted on carriers that are lowered into and raised from the tanks, and transported from tank to tank by programmable hoists. The sequence of hoist moves does not have to follow the sequence of processing stages for the circuit boards. By optimising the sequence of hoist moves, we can maximise the production throughput. We consider simple cyclic schedules, where the hoist move sequence repeats every cycle and one panel is completed per cycle. Phillips and Unger (1976) developed the first mixed integer programming model for finding the hoist move schedule to minimise the cycle time for lines with only one hoist. We discuss how their formulation can be tightened, and introduce new valid inequalities. We present the first mixed integer programming formulation for finding the minimum-time cycle for lines with multiple hoists and present valid inequalities for this problem. Some preliminary computational results are also presented. Subject classifications: mixed integer programming: applications, formulation; production/scheduling: applications, cyclic scheduling; industries: chemical, electric, hoist scheduling. Area of review: Optimization. History: Received February 2001; revision received September 2002; accepted August 2003.

1. Motivation

panels. For each step in the processing sequence, each panel must soak in the treatment tank for a (given) minimum amount of time; for most steps, there is also a maximum soak time. In most automated electroplating lines, tanks are arranged in a row without intermediate storage buffers between them. In consecutive treatment stages in the processing sequence, the panels are moved from tank to tank without encountering any intermediate delay; otherwise, defects may be introduced due to oxidization and contamination. However, the tanks may not necessarily be arranged according to the processing sequence, and the optimal layout of the tanks is another important problem to be addressed. Most PCB production lines use programmable hoists for material handling. The panels are mounted on carriers (also called flight-bars) that are lowered into and raised from the tanks, and transported from tank to tank, by the hoists.

The electronics sector is Hong Kong’s biggest export earner, totalling HK$538 billion (US$69 billion) in 2001, with about half of the exports being parts and components that have seen an explosive demand growth in recent years. The global market in electronic components—such as printed circuit boards (PCBs), liquid crystal displays (LCDs), and integrated circuits (ICs)—is characterized by extreme price competition, large number of manufacturers, huge product variety, and short product life cycles. To remain competitive, manufacturers must offer short delivery times and low costs. Thus, improving throughput and reducing production costs are key strategies for survival for manufacturers. The production of PCBs involves a sequence of chemical treatment and electroplating processes that deposit conducting metals, such as copper and tin, on the surface of 965

966

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

Due to the physical size of most tanks relative to the flightbars, and also for quality reasons, two flight-bars cannot be immersed in the same tank simultaneously. The earliest such lines had only one hoist per line, but nowadays lines with two, three, or more hoists and about 10 to 50 tanks are commonly used. The programmable hoist can move in both directions, but all hoists run on a shared track. Therefore, the scheduling problem for multi-hoist lines is significantly more difficult than for single-hoist lines because of the additional problem of hoist collision avoidance.

2. Definitions and Assumptions By a hoist move, we refer to the set of hoist operations that includes lowering the hoist to pick up a flight-bar, raising the flight-bar and pausing over a tank (to allow drip-off of the chemicals), transporting the flight bar to the next processing tank, and lowering and releasing it into the tank. The sequence of hoist moves does not have to follow the sequence of processing stages for the circuit boards. By optimising the sequence of hoist moves, we can maximise the production throughput. In cyclic hoist scheduling, the material-handling hoists are programmed to repeatedly perform a fixed sequence of moves. Each repetition of the sequence of hoist moves is called a hoist cycle. A hoist cycle can be further characterized by its degree m, which is the number of flight-bars entering and exiting the line within the cycle. A cycle of degree one, in which exactly one flight-bar enters and one flight-bar exits the line within a cycle, is also called a simple cycle. For fixed-degree cycles, minimizing the cycle time is equivalent to maximizing production throughput. A hoist schedule consists of the hoist move sequence for each hoist and the associated start-times for the hoist moves (relative to the start of the cycle). This schedule is feasible if all hoist moves required for the processing of the panels are included, the start times are executable by the assigned hoists (without collisions among hoists), and the resulting processing times in the tanks are within the specified bounds. Because of the difficulty of generating a feasible schedule, especially if the scheduling is done manually, most electroplating lines, in practice, employ simple hoist cycles. For the model studied in this paper, we further assume that each processing tank is used only once in the production cycle, there are no duplicate processing tanks for any production stage, and the processing sequence is the same as the tank location sequence.

3. Literature Review 3.1. Single-Hoist Cyclic Scheduling Phillips and Unger (1976) were the first to study the hoistscheduling problem. They presented a mixed integer programming model to determine the optimal simple cycle for

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

a single-hoist line, which was tested on a Richmond Western Electric electroplating line with 13 processing tanks. About a decade later, Shapiro and Nuttle (1988) proposed another branch-and-bound scheme for the cyclic singlehoist problem, which implicitly enumerates the ordering of the moves of the different panels. The cyclic hoistscheduling problem has been proven to be strongly NPcomplete (Crama and van de Klundert 1997a; see also Lei and Wang 1989). Lei and Wang (1994) and Armstrong et al. (1994) also proposed other branch-and-bound schemes. Chen et al. (1998) proposed two branching schemes, the first where each node is defined by the set of tanks containing a panel-in-process at the beginning of a cycle, and the second where the sequence of hoist moves are enumerated implicitly; lower bounds at the nodes of the branch-andbound tree were obtained using a graph-theoretic approach. Baptiste et al. (1992) have also investigated this problem using constraint logic programming. Levner et al. (1997) proposed an On3 log n algorithm to solve the cyclic single-hoist problem (with n processing stages) for the special case of fixed processing times by considering sets of time intervals during which new panels cannot be introduced into production due to travel time restrictions. For a fixed sequence of hoist moves, Lei (1993) devised a binary search procedure to find the optimal integer starting times for the moves in a cyclic hoist schedule so that the cycle time is minimized, assuming integer data. For a fixed hoist-move sequence and without the “no-wait” condition, Kats and Levner (1998) found the minimum cyclic schedule in On2 log n time using a parametric network approach. For the case where both the hoist-move sequence and the processing times are fixed, Kats and Levner (1996) gave an On3  algorithm based on the Bellman-Ford-Moore algorithm for shortest paths. Lei and Wang (1994) applied their branch-and-bound procedure to consider two-degree cycles, and reported that the two-degree cycles obtained gave improvements of up to 43% compared with the simple cycle results. Song et al. (1993) presented a mixed integer programming model and some heuristics for finding a maximum-throughput schedule for m identical parts, which is equivalent to finding a minimum-length m-degree cycle. Kats et al. (1999) gave a formulation for the m-degree cyclic scheduling problem and found the minimum cycle time (for integer data) using a sieve method. Hertz et al. (1996) also studied the problem of minimizing the makespan for m identical parts in the context of a robotized biochemical laboratory, which is equivalent to a variant of the problem that allows some tanks to process several parts simultaneously and allow the use of the same tank for different processing stages. In their extensive computations, they explored the effect of the degree m of the cycle on the cycle time. Ng (1996) considered a different variant of the singlehoist simple cyclic scheduling problem where the hoist is allowed to “pause” during a hoist move. His results on the

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

967

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

standard benchmark and randomly generated problems suggested that the branch-and-bound tree was much reduced and the “pause” times were small. We note that this situation is more restrictive than the no-buffer robotic flowshop (where parts can stay in the tank after processing) studied by Sethi et al. (1992) because the hoist is unavailable for other tasks during the pause. For the no-buffer robotic flowshop, Crama and van de Klundert (1997b) showed that the schedules where the hoist-move sequences are pyramidal (that is, where there exists a move i such that moves prior to i are in increasing order of tank position and moves after move i are in decreasing order of tank position) are dominating, and developed an On3  dynamic programming algorithm for finding a minimum-length cycle. 3.2. Multi-Hoist Lines Lei and Wang (1991) proposed a heuristic algorithm for two hoists that uses a “zoned” approach, where the tanks are partitioned among the two hoists. The two optimal single-hoist schedules are then coupled and refined into a feasible two-hoist schedule with a common cycle time. Heinrichs and Moll (1997) gave a polynomial-time algorithm for finding a feasible schedule when the start times of the moves are given, but where the sequence of the tanks can be different than the processing sequence. They modelled each move as a line segment in the (position-time) Euclidean plane and derive a partial order of these segments. Kats (1982) presented a branch-and-bound scheme for finding the minimum cycle time for a multi-hoist line. However, in his model, the hoists are not necessarily restricted to run on a single track. Varnier et al. (1996) discussed a constraint logic programming heuristic approach to the problem; their model allows duplicate use of tanks and duplicate tanks. Sun et al. (1994) reported on a simulation study of multi-hoist systems. 3.3. Related Problems Lei et al. (1993) developed heuristics for the problem of finding a cyclic schedule to minimize the number of hoists required for the case when the cycle time is given a priori. Kats and Levner (1997) presented an algorithm to find the minimum number of hoists required for all possible cycle lengths when the hoists run on parallel tracks, so there are no collision constraints. The authors presented an On5  algorithm using a successive shortest-path algorithm. Ng (1995) proposed a mixed integer programming approach to determine the optimal number of duplicate tanks for a single-hoist case. A comprehensive survey of deterministic and real-time approaches for hoist scheduling is given in Mak et al. (2000). Crama et al. (2000) provided a comprehensive survey of deterministic cyclic scheduling of more general robotic flowshops. Computational complexity of these and related problems is reviewed by Hall et al. (1998). Lee et al. (1997) surveyed hoist scheduling problems, as well

as automated guided-vehicle scheduling and local search methods for deterministic scheduling problems.

4. The Phillips and Unger Model for Simple Single-Hoist Scheduling For completeness and to motivate the model for multi-hoist scheduling, we present the Phillips and Unger (1976) formulation for finding the minimum-cycle-time simple cyclic schedule for a single hoist. Their model assumes that there are n processing stages, and the tanks are located in the same order as the production sequence. Tank 0 is the loading and unloading station. The hoist move associated with the transport of the part from tank i to tank i + 1 is called move i. (Move n is the transport of the panels from tank n to tank 0 for unloading.) Let N = 1 2 n and N 0 = 0 1 2 n Given di = the time to execute move i, for i ∈ N 0 , ei j = ej i = (empty) hoist travel time from tank i to tank j, for i j ∈ N , Li = the minimum soak time in tank i, for i ∈ N , Ui = the maximum soak time in tank i, for i ∈ N , and M = an n upper bound on the cycle time, e.g., d0 + i=1 di + Li . Let   1 if move j starts after move i for i j ∈ N i < j yij =  0 otherwise,  1 if move j is the last move, zj = for j ∈ N 0 otherwise, ti = start time of move i,

i ∈ N,

and

tmax = latest start time among all moves

Phillips and Unger (1976) formulated the problem of finding a minimum simple cycle for a single-hoist line as: PU 

minimize

tmax +

subject to tmax  ti

i=1

i=1

i = 1 2 n

tmax + zi − 1M  ti n 

n  di + ei+1 0 zi

(1)

i = 1 2 n

zi = 1

ti − d0 − e1i  0

(2) (3)

i = 1 2 n

(4)

tj − ti − di − ei+1 j  yij − 1M ti − tj − dj − ej+1 i  −yij M n  i=1

di + ei+1 0 zi = d

for all i j ∈ N i < j

(5)

for all i j ∈ N i < j

(6) (7)

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

968

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

L1  t1 − d0  U1

(8)

ti − ti−1 + di−1   Ui + 1 − yi−1 i M for all i ∈ 2 n

(9)

ti − ti−1 + di−1   Li − M1 − yi−1 i  for all i ∈ 2 n

(10)

ti + tmax + d − ti−1 + di−1   Ui + Myi−1 i for all i ∈ 2 n

(11)

ti + tmax + d − ti−1 + di−1   Li − yi−1 i M for all i ∈ 2 n t0 = 0

tmax  0

0  yij  1

integer

0  zi  1

integer

ti  0

for all i ∈ N

for all i j ∈ N i < j for all i ∈ N

(12) (13) (14) (15)

Constraint (13) sets move 0 to mark the beginning of the cycle. The indicator variables zi , together with tmax , ensure that the objective denotes the cycle time, which includes the time required (d) for the hoist to perform the last move and return to tank 0. The ordering variables yij and Constraints (4) to (6) ensure that the start times are commensurate with the hoist-move sequence, with sufficient travel time allowed for the hoist. Constraints (9) to (12) ensure that the processing time for each stage is within its lower and upper bounds. 4.1. A Tighter Formulation and Valid Inequalities We note that the Philips and Unger model can be tightened (in the sense of a better linear-programming relaxation) by modifying Constraints (9) and (12) as follows: ti − ti−1 + di−1   Ui

for all i ∈ N

ti + tmax + d − ti−1 + di−1   Li

for all i ∈ N

(9 ) (12 )

Furthermore, the following are valid inequalities for (PU): yij + zi  1 zj  yij zi +

i−1  h=1

for all i j ∈ N i < j

for all i j ∈ N i < j 1 − yhi  +

n  j=i+1

yij  1

(16) (17)

for all i ∈ N

(18)

The first two of these valid inequalities indicate that if move i is the last move, then no other move can follow it and all other moves must precede it. The last set of inequalities specifies that if move i is not the last move, then at least one move must follow it. Table 1 indicates how much the linear-programming relaxation is tightened by Constraints (9 ) and (12 ) and the inclusion of the new valid inequalities. LPPU is the value of the LP-relaxation of the original Phillips and Unger (1996) model. LPV is the LP-relaxation value with

Table 1.

Improved LP-relaxations and reduced B&B tree sizes by additional valid inequalities.

Problem

Tanks

Philips/Unger Copper Zinc

13 12 16

LPPU

LPV

MIPOPT

BBPU

BBV

150 00 165 52 521 00 42 414 44 947 138 90 927 70 1 847 20 178 51 74 00 870 25 1 743 40 1 590 55

Constraints (9 ), (12 ), (16), (17), and (18) included. MIPOPT is the optimal value of the mixed-integer model. Results of our computational testing also indicate that, in solving (PU), the size of the branch-and-bound tree may be reduced significantly. (BBPU and BBV are the sizes of the branch-and-bound tree needed to find the optimal solution for the two formulations.)

5. Multiple Hoist Scheduling—A Mixed Integer Programming Formulation When there are multiple hoists, the scheduling problem becomes much more complicated. Certainly, if two hoists are travelling in opposite directions, we have to ensure that they do not collide. Moreover, because the hoists run on a shared track, they cannot overtake one another. While hoist k is carrying out move i, there must be a sufficient number of hoists available that can access tanks 1 to i − 1 to cover any hoist moves scheduled simultaneously. As in Phillips and Unger (1976), we assume that the tanks are located in the same order as the production sequence, which contains n stages. Further, we assume that tank 0 is the loading station, tank n + 1 is the unloading station, and that there are K hoists numbered consecutively, with the one closest to tank 0 being hoist 1. For simplicity, the hoists are assumed to have zero width, but the model can be modified to take the interhoist distance into account. Implicitly, we assume that the cycle starts with move 0 being performed by hoist 1. Let  = 1 K and let 

1 if move i is done by hoist k for i ∈ N k ∈  0 otherwise,   1 if move i is the last move for hoist 1 i = for i ∈ N 0   0 otherwise,  1 if move j starts after move i yij = for i j ∈ N i = j 0 otherwise zki =

si =

  1  

0

if a panel is in process in tank i at the beginning of the cycle otherwise

ti = start time of move i, C = hoist cycle time.

for i ∈ N 0 , and

for i ∈ N

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

969

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

The problem of finding a minimum cyclic simple hoist schedule for multiple hoists can be formulated as: (MHSP):

minimize C

subject to Hoist assignment and cycle-time definitional constraints: K  zki = 1 for all i ∈ N (19)

k=1 n  j=0

j = 1

(20)

0 +z1i  1 i  z1i

for all i ∈ N

(21)

for all i ∈ N

z1i +j −yij  1

(22)

for all i j ∈ N for all i ∈ N 0

ti +di +ei+1 0 i  C tj −d0 +e1j z1j  0

(23) (24)

for all j ∈ N

(25)

t0 = 0

(26)

Soak-time constraints: ti −ti−1 +di−1   Ui

for all i ∈ N

ti −ti−1 +di−1 +Msi  Li

(27)

for all i ∈ N

ti +C −ti−1 +di−1 −M1−si   Ui ti +C −ti−1 +di−1   Li

for all i ∈ N

for all i ∈ N

ti −ti−1 −di−1 +−Ui +1−si   0 for all i ∈ N

(28) (29) (30) (31)

Move start-time ordering constraints: tj −ti  Myij yij +yji = 1

for all i j ∈ N i = j

(32)

for all i j ∈ N i = j

(33)

Collision avoidance constraints:  K  ti +di +ei+1 j −tj  M 3−yij −zki − zhj h=k

for all i j ∈ N j < i k ∈   K  k h tj +dj +ej+1 i −ti  M 3−yji −zi − zj

(34)

for all i j ∈ N j < i k ∈   k  tj +dj +ej+1 i −ti  M 3−yji −zki − zhj

(35)

for all i j ∈ N i < j k ∈   k  ti +di +ei+1 j −tj  M 3−yij −zki − zhj

(36)

for all i j ∈ N i < j k ∈   K  k h tj +dj +ej+1 i −C +ti   M 2−zi − zj

(37)

for all i j ∈ N j < i k ∈ 

(38)

h=k

h=1

 ti +di +ei+1 j −C +tj   M

2−zki −

K  h=k

zhj

for all i j ∈ N j < i k ∈   k  tj +dj +ej+1 i −C +ti   M 2−zki − zhj

(39)

for all i j ∈ N i < j k ∈   k  ti +di +ei+1 j −C +tj   M 2−zki − zhj

(40)

for all i j ∈ N i < j k ∈ 

(41)

h=1

h=1

Binary variable definitional constraints: zki ∈ 0 1 i ∈ 0 1 si ∈ 0 1 yij ∈ 0 1

for all i ∈ N k ∈  0

for all i ∈ N for all i ∈ N for all i j ∈ N

(42) (43) (44) (45)

The variables zki indicate the assignment of the moves to the hoists. Together with the indicator variables j and Constraints (24) and (25), they ensure that the cycle time is long enough to allow hoist 1 to return to tank 0 for the beginning of the next cycle. Constraints (27) to (30) ensure that the processing time in each tank is within the upper and lower bounds. When si = 0, a panel is processed in tank i within one cycle; the processing time is ti − ti−1 + di−1  and Constraints (27) and (28) ensure feasibility with respect to the soak-time limits. When si = 1, the processing time in tank i spans two hoist cycles; the processing time is C − ti−1 + di−1  + ti and Constraints (29) and (30) ensure soak-time feasibility. Constraint (31) is introduced, using a small constant , to avoid the impractical situation when the pickup time and drop-off time of the panels for a tank coincide (that is, the tank processing time is exactly the cycle length). When si = 1, Constraint (31) ensures that there is a time gap of  between when the previous panel is removed from tank i (at time ti ) and the next panel is placed into tank i (at time ti−1 + di−1 ). Constraints (31) and (28) also ensure that the si s are well defined; that is, si = 1 whenever ti < ti−1 + di−1 . Note that in a multi-hoist setting, si is not necessarily equal to yi i−1 . Indeed, with si = 1 and yi i−1 = 0, move i − 1 can start before move i as long as these two moves are performed by different hoists. (For example, consider the situation for i = 12 in Figure 5.) 5.1. Intuition for the Collision Avoidance Constraints

h=1

h=k

The Constraints (34) to (41) ensure that the hoists do not collide with each other and that there is sufficient travel time in between moves for each hoist. The intuition for these constraints comes from Heinrichs and Moll (1997). In their model, they assume that the pickup/drop-off locations

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

970

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

Figure 1.

Allowable positions for hoists relative to move i.

Figure 2.

Time-way diagram for collision avoidance Constraint (35).

hoist position

hoist position

i+1 i

U(i)

j+1 i+1

R(i)

L(i)

j

i

Infeasible region for hoists h  k

D(i) time ti –ej+1, i ti

ti + di

ti

ti +di

ti +di +ei+1, j tj

tj +dj

time

of the tanks are equally spaced (at unit distance apart) and that the hoists move at constant speeds. Consider the so-called time-way diagram shown in Figure 1, with each point in the positive quadrant indicating a particular location at a particular time. Suppose hoist k moves from tank 0 to tank i, performs move i, and then returns to tank 0. Assuming that the hoist moves at a constant speed of one when travelling empty and a lower constant speed when laden, then the time-space trajectory of hoist k is indicated by the solid line in Figure 1, with hoist move i indicated by the thick part of the line. Because any highernumbered hoist must be above hoist k (i.e., further away from tank 0), the trajectory of any hoist numbered k or higher cannot be in the region Di in Figure 1. Similarly, because any lower-numbered hoist must be below hoist k (i.e., closer to tank 0), then the trajectory of any hoist numbered k or lower cannot be in the region U i in Figure 1. The region Ri indicates those points in time-space that can be reached by hoist k after move i; the region Li indicates those points in time-space that can be accessed by hoist k before move i. Suppose hoist k performs move i and hoist h performs move j. If h > k, then Constraints (34) and (35) ensure that hoist h, when performing move j, does not collide with hoist k performing move i. The situation when move i starts before move j (whence yij = 1 and the right-hand side of (34) is zero) is illustrated in Figure 2. In order for hoist h > k to get to tank j for move j, both hoists h and k must be in tank location j (or lower) by the start time of move j, and hence tj must be no smaller than ti + di + ei+1 j , the time it takes hoist k to move to tank j after move i. If move j starts before move i, then Constraint (35) ensures that the finish time of move j (namely, tj + dj ) is at least ej+1 i time units earlier than ti , to enable hoist h to move past tank i by the start time of move i. If move j, for j < i, is performed by a hoist numbered lower than k, then there is no restriction on its start time (with respect to hoist collision with move i).

Similarly, if h < k, Constraints (36) and (37) prevent collision. The situation for (37) is illustrated in Figure 3. Because hoist h must remain below hoist k, in order to perform move j it must move from tank i (or below) to tank j, and hence move j cannot start until ei+1 j time units after move i is finished (at time ti + di ). Constraints (38) to (41) ensure that the hoist has sufficient travel time and collision is avoided for moves i and j in two consecutive cycles. C + ti is the start time of move i in the next cycle (as measured from t0 ). Thus, if move i is done by hoist k and move j < i is done by hoist h  k, then the earliest time that hoist h can move to tank i (or higher) after move j is tj + dj + ej+1 i , and so move i in the next cycle cannot start earlier than that time, as enforced by Constraint (38). See Figure 4. 5.2. Validity of the Formulation A feasible simple cyclic hoist schedule determines the cycle time and the move start time and hoist assignment for each move. Given the move start times, the variables yij can be determined according to (32) and (33). Furthermore, we set si = 0 if ti > ti−1 + di−1 , and si = 1 otherwise. With Figure 3.

Time-way diagram for collision avoidance Constraint (37).

hoist position

j +1 Infeasible region for hoists h  k j

i +1 i time ti – ej+1, i

ti

ti + di + ei+ 1, j tj

tj + dj

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

971

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

Figure 4.

Time-way diagram for collision avoidance in consecutive cycles.

hoist position

alternative positions are often possible, so there is some flexibility in the choice of paths for the hoists in-between moves. 5.3. Multi-Hoist Lines with Generic Tank Placement

i+1 i

j+1 j

Infeasible region for hoists h  k tj

tj +dj C tj +dj +ej+1,i C+ti

C+ ti +di

time

the variables thus defined, it is easy to verify that all the constraints of (MHSP) are satisfied; thus all Constraints (19) to (41) are valid. To show that (MHSP) is a valid formulation, we also need to show that any feasible solution of (MHSP) defines a feasible simple cyclic schedule. Constraints (19) to (22) ensure that each move is assigned to a hoist and that these assignments are consistent with move 0 assigned to hoist 1, and the designated last move (defined by the i s) of hoist 1. The soak requirements are enforced by Constraints (27) to (30). With the ordering variables yij defined by (32) to be consistent with the move start times, collision avoidance is ensured by Constraints (34) to (41). To check that these eight sets of constraints are sufficient to guarantee collision avoidance, we consider every pair of moves i and j; suppose move i is assigned to hoist k and move j is assigned to hoist h. There are eight possible cases to consider, depending on whether i < j, h  k, and yij = 0 or 1. Hoist collision within the same cycle is a possibility in only the following four cases: • j < i h  k yij = 1, • j < i h  k yji = 1, • i < j h  k yji = 1, and • i < j h  k yij = 1, and collision avoidance is ensured by Constraints (34), (35), (36), and (37), respectively. For hoist moves over two consecutive cycles, collision is a possibility in two cases: • j < i h  k, and • i < j h  k. In the first case, Constraint (38) ensures that the hoist k for move i does not collide with hoist h for move j in the previous cycle, and Constraint (39) ensures collision avoidance with hoist h in the subsequent cycle. Similarly, Constraints (40) and (41) guarantee collision avoidance in the two situations for the second case. For each hoist k, the set of Constraints (34) to (41) restricts its feasible positions for each point in time during the cycle so as to avoid hoist collision. On the other hand, it can be shown that for each point in time in the cycle, there is (at least) one feasible position for hoist k. In fact,

Because different products may have different processing requirements, the location sequence of the processing tanks often does not coincide with the sequence of processing requirements of a product. When panels are processed in the same sequence as the tanks, the panels are always transported to the adjacent (next-higher-numbered) tank. With general tank placement, this is no longer the case, and panels are transported in both directions over longer distances. The problem of collision avoidance becomes much more complicated. A mixed integer programming formulation for this problem is given in Leung and Zhang (2003), along with some preliminary computational results.

6. Valid Inequalities for Cyclic Hoist Scheduling We note that the variables yij define a linear order. Therefore, all valid inequalities for the linear-ordering polytope are valid for (MHSP) and also (PU), for example, • the triangle inequalities (Grötschel et al. 1985): 0  yij +yjk −yik  1

for all distinct i j k ∈ N

(46)

• the directed-cycle inequalities (Grötschel et al. 1985): yiH i1 +

H  h=1

yih ih+1  H − 1 for all subsets i1 i2 iH ⊆ N

(47)

Other well-known families of valid inequalities for linear ordering include the simple fence inequalities and the Möbius ladder inequalities introduced by Grötschel et al. (1985), the diagonal inequalities introduced by Gilboa (1990), and the reinforced-fence inequalities and augmented-fence inequalities introduced by Leung and Lee (1994). Table 2.

Solution times (in CPU minutes) for solving the benchmark problems.

Problem Mini Phillips/Unger Black Oxide 1 Black Oxide 2 Copper Zinc

Tanks

One hoist

Two hoists

Three hoists

8 13 12 12 12 16

0.03 4.89 0.14 0.58 0.03 0.16

0.07 64 hrs 1.46 0.15 0.06 0.77

0.17 7 days 0.37 0.22 0.07 4.30

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

972

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

Table 3.

Lower and upper bounds on optimal cycle times.

Problem Mini (K = 1) Mini (K = 2) Mini (K = 3) P&U (K = 1) P&U (K = 2) P&U (K = 3) BO1 (K = 1) BO1 (K = 2 3) BO2 (K = 1) BO2 (K = 2 3) Cu (K = 1) Cu (K = 2 3) Zinc (K = 1) Zinc (K = 2 3)

LPR ML 

LPT ML or MLKL 

Optimum

MLKL

ML

161 5 161 5 161 5 161 5 161 5 161 5 265 9 265 9 172 25 172 25 923 05 923 05 858 1 858 1

161 5 161 5 161 5 161 5 161 5 161 5 265 9 265 9 172 25 172 25 930 05 923 05 872 3 858 1

281 0 165 5 162 0 521 0 257 0 184 0 299 5 265 9 279 3 240 1 1 847 2 1 800 1 1 743 4 1 680 1

471 0

933 0

1 039 0

1 472 0

781 5

1 549 6

767 8

1 334 6

1 847 2

3 631 1

1 743 4

3 387 0

7. Computational Results We have solved several benchmark problems available in the literature using the formulation (MHSP). These problems are all from actual industrial applications. The data for the Phillips and Unger problem are given in their paper. Data for the other problems were obtained from Professor L. Lei of Rutgers University and are given in the appendix for completeness. In our computations, we have assumed the processing sequence is the same as the tank location sequence. The computations are done using CPLEX (Version 6.5.1) on a SUN Ultra-60. All problems are solved to optimality. See Table 2. We note that the solution time (in CPU minutes) generally increases as the number of hoists increases. Even for most of the threehoist problems, the solution times are acceptable, and are considerably shorter than the days (even weeks) required for manual generation of a feasible schedule. We also note that the solution times vary a lot among the problems; it would be interesting to further investigate what type of data is more amenable to fast solution by branch and bound. As an indication of how difficult these problems are, the linear programming relaxation of these problems is notoriously weak, especially when the upper bound on the solution, M, is also very poor. This implies that fathoming Table 4.

Effect of upper bounds and valid inequalities on solution times. LPR with ML

Problem Mini (K = 1) Mini (K = 3) P&U (K = 1) P&U (K = 2) BO1 (K = 1) BO1 (K = 2) BO2 (K = 1) BO2 (K = 3) Cu (K = 1) Cu (K = 3) Zinc (K = 1) Zinc (K = 3)

of the branch-and-bound tree would be difficult. We have examined several LP-relaxations: LPR is the value of the LPrelaxation of (MHSP) and LPT is the value of the tightened LP-relaxation that includes the triangle inequalities (46) in the formulation; ML is the easily obtained bound of d0 + n i=1 di + Li , and MLKL is the cycle time obtained by applying the single-hoist algorithm of Levner et al. (1997) using Li as the fixed processing time for each stage i. A priori, we expected LPR with M = ML , LPT with M = ML , and LPT with M = MLKL to give successively better linear relaxations. To our surprise, the value LPT is the same for both values of M, and the improvement from LPR is less significant than we expected. Table 3 compares the values of the lower and upper bounds to the optimal solution values. We also investigated the effect on the solution times due to the value of M and the inclusion of valid inequalities. The tightness of the relaxations did have an impact on the solution times and the size of the branch-and-bound tree. In Table 4, B&B indicates the size of the branch-and-bound tree; the CPU times are measured in minutes. We note that while tighter relaxations generally reduce the size of the branch-and-bound tree, the solution times are sometimes longer because a much larger linear program (which may

B&B 837 2 460 52 643 19 403 441 1 237 8 356 6 058 456 94 63 490 13 364

CPU 0 03 0 17 4 89 64 hrs 0 14 1 46 0 58 0 22 0 03 0 07 0 16 4 30

LPT with ML B&B 460 329 4 295 8 933 931 2 114 654 5 752 414 87 37 156 156

CPU 0 03 0 05 8 28 42 hrs 0 33 1 05 1 08 0 55 0 11 1 49 1 50 4 27

LPT with MLKL B&B 583 2 161 49 321 15 337 774 1 547 1 412 10 295 754 26 35 71 37

CPU 0 03 0 19 10 10 3 days 0 35 1 53 1 87 0 69 0 09 0 11 1 13 2 36

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

973

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

Figure 5. 13

Two optimal hoist schedules for three hoists (with same start times and soak times).

hoist position

92

73

12

79

67

11 10

237 224

66

9

203

47

190

8

118

7

99

207

5

103

4

224 211

151

40

3 2

220

122

6

130

25 26

1

time

0

13

50

100

150

241

hoist position 92

73

12

79

11

237

67

224

66

10 9

203

47

190

8

118

7

99

220

122

6

207

5

103

4

224 211

151

40

3 2

200

130

25 26

1 0

time 50

100

be near-degenerate) has to be solved at each node. We also noticed in our computation that there are alternate optimal solutions in many cases. For example, two alternate optimal solutions for a variant of the Black Oxide 1 problem for three hoists are shown in Figure 5. The hoist movements are indicated by solid lines, while the panel movements

150

200

241

are indicated by dashed lines. While both schedules give a cycle time of 241 seconds, and the soak times for all the tanks are identical, the minimum separation of the hoists is larger for the second schedule. This feature is preferred because some hoists may overshoot their mark in practice. How these secondary features can be incorporated

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

974

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

into the solution approach (or in some postoptimization “improvement” routine) is something to be explored in the future.

The automation of the generation of optimal schedules will greatly improve the efficiency and cost-effectiveness for production planning for such lines. From the modelling perspective, in addition to generic tank placement, other practical features to be explored include higher-degree cyclic schedules, the use of duplicate tanks, and the investigation of tank placement relative to the range of products being manufactured.

8. Concluding Remarks This paper presents the first mixed integer programming formulation for the problem of finding a minimum simple cyclic schedule for multiple-hoist PCB production lines.

Appendix Copper: Tank i eij 1 2 3 4 5 6 7 8 9 10 11 12 Li Ui di

1 0 8 8 9 9 11 7 10 6 14 0 15 2 12 9 7 9 5 6 4 2 3 1 120 0 1 000 0 16 7

2

3

4

5

6

8 8 0 1 0 2 8 1 8 5 2 6 3 4 0 1 0 3 2 4 6 5 7 240 0 420 0 16 8

9 9 1 0 0 1 8 0 8 4 1 5 3 3 0 2 0 4 3 5 6 6 8 60 0 180 0 17 6

11 7 2 8 1 8 0 1 0 2 3 3 5 1 2 3 8 6 1 7 4 8 6 60 0 120 0 16 8

10 6 1 8 0 8 1 0 0 3 4 4 5 2 2 2 8 5 0 6 4 7 5 60 0 180 0 19 2

14 0 5 2 4 1 2 3 3 4 0 1 2 1 1 6 2 8 4 9 8 10 9 120 0 300 0 22 5

7 15 2 6 3 5 3 3 5 4 5 1 2 0 2 3 7 3 9 6 10 9 12 1 1 800 0 3 000 0 23 6

8

9

10

12 9 4 0 3 0 1 2 2 2 1 1 2 3 0 5 0 7 3 8 6 9 8 60 0 180 0 20 8

7 9 1 0 2 0 3 8 2 8 6 2 7 3 5 0 0 2 2 3 6 4 7 120 0 300 0 18 0

5 6 3 2 4 3 6 1 5 0 8 4 9 6 7 3 2 2 0 1 4 2 5 600 0 840 0 18 3

11 4 2 4 6 5 6 7 4 6 4 9 8 10 9 8 6 3 6 1 4 0 1 1 45 0 1 000 0 16 9

12 3 1 5 7 6 8 8 6 7 5 10 9 12 1 9 8 4 7 2 5 1 1 0 120 0 1 000 0 18 9

Black Oxide 1: Tank i eij 1 2 3 4 5 6 7 8 9 10 11 12 Li Ui di

1 0 14 3 13 3 12 5 11 1 10 0 9 0 8 0 6 4 5 2 4 1 3 0 240 0

25 9

2

3

4

5

6

7

8

9

10

11

12

14 3 0 1 0 1 8 3 2 4 3 5 3 6 4 7 9 9 1 10 2 12 0 180 0 240 0 18 6

13 3 1 0 0 0 8 2 2 3 3 4 3 5 3 6 9 8 1 9 2 11 0 60 0 90 0 12 4

12 5 1 8 0 8 0 1 4 2 5 3 5 4 5 6 1 7 3 8 4 10 2 60 0 240 0 13 0

11 1 3 2 2 2 1 4 0 1 1 2 1 3 1 4 7 5 9 7 0 8 8 60 0 90 0 18 7

10 0 4 3 3 3 2 5 1 1 0 1 0 2 0 3 6 4 8 5 9 7 7 60 0 120 0 12 6

9 0 5 3 4 3 3 5 2 1 1 0 0 1 1 2 6 3 8 4 9 6 7 120 0 180 0 18 6

8 0 6 4 5 3 4 5 3 1 2 0 1 0 0 1 5 2 8 3 9 5 7 60 0 90 0 13 1

6 4 7 9 6 9 6 1 4 7 3 6 2 6 1 5 0 1 2 2 3 4 1 120 0 145 0 18 8

5 2 9 1 8 1 7 3 5 9 4 8 3 8 2 8 1 2 0 1 1 2 9 60 0 90 0 12 7

4 1 10 2 9 2 8 4 7 0 5 9 4 9 3 9 2 3 1 1 0 1 8 90 0 120 0 20 6

3 0 12 0 11 0 10 2 8 8 7 7 6 7 5 7 4 1 2 9 1 8 0 240 0 420 0 14 6

Black Oxide 2: Tank i

Li Ui

1

2

3

4

5

6

7

8

9

10

11

12

120

180 240

50 90

60 240

50 90

60 120

120 180

60 90

120 180

40 90

35 120

240 422

Note. The values for eij and di are the same as for Black Oxide 1.

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

975

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

Zinc: Tank i eij

1

2

3

4

5

6

7

8

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

0 12 3 14 3 18 2 19 8 21 5 23 3 28 4 30 3 26 6 25 1 10 3 8 7 5 4 3 7 1 8

12 3 0 2 1 5 9 7 5 9 2 11 0 16 1 18 0 14 4 12 8 2 0 3 6 6 9 8 5 10 5

14 3 2 1 0 3 9 5 5 7 2 9 0 14 1 15 9 12 3 10 8 4 0 5 6 9 0 10 6 12 5

18 2 5 9 3 9 0 1 6 3 3 5 1 10 2 12 1 8 5 6 9 7 9 9 5 12 8 14 4 16 4

19 8 7 5 5 5 1 6 0 1 7 3 5 8 6 10 5 6 8 5 3 9 5 11 1 14 4 16 0 18 0

21 5 9 2 7 2 3 3 1 7 0 1 8 6 9 8 8 5 1 3 6 11 2 12 8 16 2 17 8 19 7

23 3 11 0 9 0 5 1 3 5 1 8 0 5 1 7 0 3 4 1 8 13 0 14 6 17 9 19 5 21 5

28 4 16 1 14 1 10 2 8 6 6 9 5 1 0 1 9 1 7 3 3 18 1 19 7 23 0 24 6 26 6

Li Ui di

60 0

16 9

240 0 300 0 16 3

180 0 240 0 18 1

120 0 300 0 10 8

120 0 300 0 13 9

240 0 300 0 16 0

30 0 60 0 17 3

6 5 7 5 18 1

9

10

11

12

13

14

15

16

30 3 18 0 15 9 12 1 10 5 8 8 7 0 1 9 0 3 6 5 2 20 0 21 6 24 9 26 5 28 5

26 6 14 4 12 3 8 5 6 8 5 1 3 4 1 7 3 6 0 1 5 16 3 17 9 21 3 22 9 24 8

25 1 12 8 10 8 6 9 5 3 3 6 1 8 3 3 5 2 1 5 0 14 8 16 4 19 8 21 4 23 3

10 3 2 0 4 0 7 9 9 5 11 2 13 0 18 1 20 0 16 3 14 8 0 1 6 5 0 6 6 8 5

8 7 3 6 5 6 9 5 11 1 12 8 14 6 19 7 21 6 17 9 16 4 1 6 0 3 4 5 0 6 9

5 4 6 9 9 0 12 8 14 4 16 2 17 9 23 0 24 9 21 3 19 8 5 0 3 4 0 1 6 3 5

3 7 8 5 10 6 14 4 16 0 17 8 19 5 24 6 26 5 22 9 21 4 6 6 5 0 1 6 0 1 9

1 8 10 5 12 5 16 4 18 0 19 7 21 5 26 6 28 5 24 8 23 3 8 5 6 9 3 5 1 9 0

1 680 0 1 800 0 18 1

57 0 180 0 10 7

120 0 180 0 15 5

180 0 300 0 10 8

11 5 12 5 15 6

30 0 60 0 10 8

50 0 90 0 14 1

25 0 45 0 14 0

Note. The Mini problem is the truncation of the Phillips and Unger problem to the first eight tanks. For all the problems,  = 01.

Acknowledgments The authors thank the editors and referees for their meticulous review and their suggestions, which greatly improved the paper. They also thank Lawrence Tang for his assistance with some of the computation. The work of the first two authors is supported in part by CERG grant CUHK1196/97H from the Hong Kong Research Grants Council. The work of the third author is supported by grants from the National Natural Science Foundation of China (70221001) and the National Key Research and Development Program of China (2002CB312004). References Armstrong, R., L. Lei, S. Gu. 1994. A bounding scheme for deriving the minimal cycle time of a single-transporter N-stage process with time-window constraints. Eur. J. Oper. Res. 78 130–140. Baptiste, P., B. Legeard, C. Varnier. 1992. Hoist scheduling problem: An approach based on constraints logic programming. Proc. 1992 IEEE Internat. Conf. Robotics Automation, 2. Nice, France, 1139–1144. Chen, H., C. Chu, J.-M. Proth. 1998. Cyclic scheduling of a hoist with time window constraints. IEEE Trans. Robotics Automation 14(1) 144–152. Crama, Y., J. van de Klundert. 1997a. Robotic flowshop scheduling is strongly NP-complete. W. K. Klein Haneveld, O. J. Vrieze, L. C. M. Kallenberg, eds. Ten Years LNMB. CWI tract 122, Amsterdam, The Netherlands, 277–286. Crama, Y., J. van de Klundert. 1997b. Cyclic scheduling of identical parts in a robotic cell. Oper. Res. 45(6) 952–965. Crama, Y., V. Kats, J. van de Klundert, E. Levner. 2000. Cyclic scheduling in robotic flowshops. Ann. Oper. Res. 96 97–124. Gilboa, I. 1990. A necessary but insufficient condition for the stochastic binary choice problem. J. Math. Psych. 34 371–392. Grötschel, M., M. Jünger, G. Reinelt. 1985. Facets of the linear ordering polytope. Math. Programming 33 43–60.

Hall, N. G., H. Kamoun, C. Sriskandarajah. 1998. Scheduling in robotic cells: Complexity and steady state analysis. Eur. J. Oper. Res. 109 43–65. Heinrichs, U., C. Moll. 1997. On the scheduling of one-dimensional transport systems. Report 97-277, Zentrum für Parelleles Rechnen, University of Cologne, Cologne, Germany. Hertz, A., Y. Mottet, Y. Rochat. 1996. On a scheduling problem in a robotized analytical system. Discrete Appl. Math. 65 285–318. Kats, V. 1982. An exact optimal cyclic scheduling algorithm for multioperator service of a production line. Automat. Remote Control 42(4II) 538–543. Kats, V., E. Levner. 1996. Polynomial algorithms for scheduling of robots. E. Levner, ed. Intelligent Scheduling of Robots and Flexible Manufacturing Systems. CTEH Press, Center for Technological Education, Holon, Israel, 77–100. Kats, V., E. Levner. 1997. Minimizing the number of robots to meet a given cyclic schedule. Ann. Oper. Res. 69 209–226. Kats, V., E. Levner. 1998. Cyclic scheduling of operations for a part type in an FMS handled by a single robot: A parametric criticalpath approach. Internat. J. Flexible Manufacturing Systems 10 129–138. Kats, V., E. Levner, L. Meyzin. 1999. Multiple-part cyclic hoist scheduling using a sieve method. IEEE Trans. Robotics Automation 15(4) 704–713. Lee, C.-Y., L. Lei, M. Pinedo. 1997. Current trends in deterministic scheduling. Ann. Oper. Res. 70 1–41. Lei, L. 1993. Determining the optimal starting times in a cyclic schedule with a given route. Comput. Oper. Res. 20(8) 807–816. Lei, L., T. J. Wang. 1989. A proof: The cyclic hoist scheduling problem is NP-complete. Working paper 89-0016, Rutgers University, New Brunswick, NJ. Lei, L., T. J. Wang. 1991. The minimum common-cycle algorithm for cyclic scheduling of two material handling hoists with time windows constraints. Management Sci. 37 1629–1639. Lei, L., T. J. Wang. 1994. Determining optimal cyclic hoist schedules in a single-hoist electroplating line. IIE Trans. 26(2) 25–33.

976

Leung et al.: Optimal Cyclic Multi-Hoist Scheduling: A Mixed Integer Programming Approach

Lei, L., R. Armstrong, S. Gu. 1993. Minimizing the fleet size with dependent time-window and single-track constraints. Oper. Res. Lett. 14 91–98. Leung, J., J. Lee. 1994. More facets from fences for linear ordering and acyclic subgraph polytopes. Discrete Appl. Math. 50 185–200. Leung, J., G. Zhang. 2003. Optimal simple cyclic scheduling for printed circuit board production lines with multiple hoists and general processing sequence. IEEE Trans. Robotics Automation 19(3) 480–484. Levner, E., V. Kats, V. E. Levit. 1997. An improved algorithm for cyclic flowshop scheduling in a robotic cell. Eur. J. Oper. Res. 97 500–508. Mak, R., Y. Wong, J. M. Y. Leung, K. Lam, S. M. Gupta. 2000. The hoist scheduling problem for no-wait production lines—A survey of research. Technical report SEEM2000-05, Systems Engineering and Engineering Management Department, The Chinese University of Hong Kong, Hong Kong. Ng, W. C. 1995. Determining the optimal number of duplicated process tanks in a single-hoist circuit board production line. Comput. Indust. Engrg. 28(4) 681–688. Ng, W. C. 1996. A branch and bound algorithm for hoist scheduling of

Operations Research 52(6), pp. 965–976, © 2004 INFORMS

a circuit board production line. Internat. J. Flexible Manufacturing Systems 8 45–65. Phillips, L. W., P. S. Unger. 1976. Mathematical programming solution of a hoist scheduling program. AIIE Trans. 8(2) 219–225. Sethi, S., C. Sriskandarajah, G. Sorger, J. Blazewicz, W. Kubiak. 1992. Sequencing of parts and robot moves in a robotic cell. Internat. J. Flexible Manufacturing Systems 4 331–358. Shapiro, G. W., H. L. W. Nuttle. 1988. Hoist scheduling for a PCB electroplating facility. IIE Trans. 20(2) 157–167. Song, W., Z. Zabinsky, R. Storch. 1993. An algorithm for scheduling a chemical processing tank line. Production Planning Control 4(4) 323–332. Sun, T. C., K. K. Lai, K. Lam, K. P. So. 1994. A study of heuristics for bi-directional multi-hoist production scheduling system. Internat. J. Production Econom. 33 207–214. Varnier, C., A. Bachelu, P. Baptiste. 1996. A hoist scheduling application in chemical production line. E. Levner, ed. Intelligent Scheduling of Robots and Flexible Manufacturing Systems. CTEH Press, Holon, Israel, 267–281.

Suggest Documents