Abstract

Modern automated production lines usually use one or multiple computer-controlled robots or hoists for material handling between workstations. A typical application of such lines is an automated electroplating line for processing printed circuit boards (PCBs). In these systems, cyclic production policy is widely used due to large lot size and simplicity of implementation. This paper addresses cyclic scheduling of a multihoist electroplating line with constant processing times. The objective is to minimize the cycle time, or equivalently to maximize the production throughput, for a given number of hoists. We propose a mathematical model and a polynomial algorithm for this scheduling problem. Computational results on randomly generated instances are reported.

1. Introduction

Modern automated production lines usually use one or multiple computer-controlled robots or hoists for material handling between workstations. A typical example is an automated electroplating line for processing printed circuit boards (PCBs). Such a production line usually consists of a loading station, a sequence of chemical tanks, an unloading station, and a crew of identical programmable hoists, as shown in Figure 1. Parts to be processed enter the system from the loading station, and then are processed successively through tanks, and finally leave the system from the unloading station. Each tank contains chemicals required for a specific electroplating step in the processing of parts such as acid cleaning, acid activating, copper plating, rinsing, and so on. Each tank can process only one part at a time. The processing time in a tank may be a given constant or allowed to vary within a given window. Due to specific characteristics of chemical treatment, as soon as the processing operation of a part is completed in a tank, it must be immediately removed from that tank and transported to the next one without any delay. Otherwise, defective parts may be produced due to oxidization and contamination. In an automated electroplating line, the movements of parts between the tanks are performed by a crew of computer-controlled hoists on a single track. By optimizing the sequence and start times of the hoist moves, we can optimize the throughput of the line. This problem is commonly known as the hoist scheduling problem in the literature [19].

Due to large lot size in electroplating operations, the production is often organized in a cyclic manner, and only one part type is processed repeatedly in the line in a production period. In such a cyclic production system, the hoists are programed to perform a fixed sequence of moves repeatedly. Each repetition of the sequence is called a cycle. The duration of a cycle is called the cycle time or the cycle length. Normally, one raw part enters and one finished part leaves the line within a cycle. The throughput rate is the inverse of the cycle time. Therefore, minimizing the cycle time is equivalent to maximizing the throughput of a production line.

This paper addresses cyclic scheduling of a multihoist electroplating line with constant processing times, that is, the processing times of a part in tanks are constants. This type of scheduling problem arises typically from high-precision electroplating systems, in which the quality of treatment of a part mainly depends on its processing times in tanks. In literature, some studies (e.g., [1, 35, 7, 8, 1012]) deal with the scheduling problem with time windows, that is, the processing time of parts in each tank must fall into a given time window. This problem is NP-hard both for the single-hoist case and for the multihoist case. Hence, the researchers proposed heuristics or branch-and-bound algorithms for the single-hoist or multihoist scheduling problem with time windows. It should be noted that the polynomial algorithm developed in this paper for the problem with constant processing times can be served as a heuristic for the problem with time windows.

For the scheduling problem with constant processing times, Agnetis [13] developed polynomial algorithms for lines with two or three tanks and a single hoist for material handling. The same problem for any given number of tanks was shown to be solvable in polynomial time by Levner et al. [14]. Che and Chu [6] extended Levner’s work and developed an efficient algorithm for single-hoist electroplating lines with multifunctional and/or duplicate tanks. As the number of tanks increases, material handling between the tanks often becomes bottlenecks. To eliminate such bottlenecks and increase the throughput, it is a common practice to use more than one hoist in an electroplating line with more than 10 tanks. Karzanov and Livshits [15] appear to be the first authors to study the cyclic multihoist scheduling problem. They studied the system with parallel tracks (i.e., hoists travel along their respective tracks) and proposed an algorithm to find the minimal number of hoists for a given cycle time, where N is the number of tanks in a production line. Kats and Levner [16] extended their results and found that the problem of minimizing the number of hoists for all possible cycle times can be solved in time. Kats and Levner [17] also developed an algorithm for the multihoist scheduling problem for a given hoist assignment.

In the above studies, the researchers assumed that the hoists travel along their respective parallel tracks and, therefore, the collision avoidance among the hoists was not addressed. However, almost all practical electroplating lines have only one available track. This paper addresses the single-track, multihoist scheduling problem with constant processing times. When the hoists travel along a common track, the problem is much more complicated than that with parallel tracks. With parallel tracks, it is not required to address collision avoidance constraints among the hoists and the problem can be reduced to either an assignment problem or a simple variant of a single-hoist problem if the hoist assignment is given. However, for electroplating lines with a single track, we must address the collision avoidance constraints among the hoists either on the track or on the tanks. As will be shown in this paper, the solution of the problem with a single track differs from that for parallel tracks. Liu and Jiang [18] proposed an efficient algorithm for the single-track, two-hoist scheduling problem with constant processing times. In this paper, we develop a mathematical model and a corresponding polynomial algorithm for the single-track, multihoist scheduling problem with constant processing times.

2. Problem formulation

Consider an electroplating line consisting of a loading station chemical tanks, , and an unloading station . The stations or tanks are arranged in a row from left to right in the following order: , as shown in Figure 2. A single type of parts is to be processed in the line. The part flow can be described as follows. After a part is removed from , it is processed successively through tanks and finally leaves the system from . Each tank can process at most one part at a time and the processing time in is a given constant . There are K identical hoists on a single track, which are responsible for transporting parts between the tanks. Without loss of generality, we assume that the hoists are numbered, from left to right, from 0 to , as shown in Figure 2. For simplicity, the hoist movement of transporting a part from to is called move. Each move i consists of three simple hoist operations: (1) lift up a part from ; (2) transport the part to ; and (3) lower the part onto . The time required for the hoists to perform move is , where lifting up a part from and lowering a part onto take and , respectively. The hoist movement without transporting any part is called a void move. The time for the hoists to perform a void move from to is 's satisfy the triangular inequality. Finally, let constant δ be the allowable minimum distance among the hoists on the track in order to avoid collision, that is, if the distance between two hoists is less than δ, then a collision happens between them. For simplicity of notation, δ is measured in time in the remainder, which is equal to the allowable minimum distance divided by the travel speed of the hoists.

The hoists are programed to perform a fixed sequence of moves repeatedly. The sequence of moves performed by the hoists during a cycle is called a cyclicschedule. Our objective is to find a cyclic hoist schedule such that the cycle time T is minimized. A cyclic hoist schedule consists of the set of moves performed by each hoist and their respective starting times relative to the start of the cycle. To define a hoist schedule, let be the starting time of move i relative to the start of a cycle, and be the index of the hoist to perform move i (i.e., move i is performed by hoist ), Thus, a cyclic schedule can be uniquely defined by .

Figure 3 illustrates a cyclic schedule for an electroplating line with three chemical tanks (not including the loading station and the unloading station ) and two hoists for material handling. Three complete cycles are illustrated in Figure 3. Without loss of generality, we assume that , that is, move 0 happens at the start of a cycle which also implies that a part is introduced into the system at the start of a cycle. Note that if , we can change the origin of the time axis such that . From Figure 3, we see that parts are introduced into the system at time instant . Each hoist performs a fixed sequence of moves cyclically. For this example, we have , that is, hoist 0 performs moves 0 and 2 cyclically, while hoist 1 executes moves 1 and 3 repeatedly. From Figure 3, a cyclic schedule is uniquely defined by .

Our objective is to find a cyclic hoist schedule denoted by such that the cycle time T is minimized. A cyclic schedule is feasible if and only if it satisfies the following four families of constraints:

(i)processing time constraints. The parts’ processing time in is exactly ;(ii)tank capacity constraints. Each tank can process at most one part at a time;(iii)hoist availability constraints. There is no conflict in the use of the same hoist between any pair of moves executed by that hoist, since any hoist cannot perform two moves at the same time;(iv)collision-free constraints. The hoists travel on a single track and no collisions happen during a cycle.

As mentioned above, at the start of each cycle, a part is introduced into the system from the loading station. This means that the parts are introduced into the line at time instant , as shown in Figure 3. For the sake of simplicity, the part introduced into the system at time is called part n. With this definition, move i of part n represents the hoist movement of transporting part n from to . Let be the completion time of the jth processing operation of part 0, which is also the starting time of move j of part 0. From Figure 3, can be calculated by using the following formula: with . By definition, is the completion time of the jth processing operation of part n and also the starting time of move j of part n, for any , for any . In steady state, the starting time of move j within (i.e., relative to the start of a cycle) is given by Figure 3 illustrates the above relationship between and .

In the following, we formulate our problem using the notion of prohibited intervals of the cycle time, which was first introduced by Levner et al. [14] into the cyclic scheduling of no-wait systems. Note that the part processing time requirements are implicitly taken into account by using (2.1) and (2.2) to compute the starting times of the moves, as soon as T is known.

2.1. Formulation of the tank capacity constraints

The tank capacity constraints require that the processing of any two successive parts on the same tank cannot be overlapped, since each tank can process one part at a time. Furthermore, by taking into account the times required for lifting up a part from a tank and lowering a part onto a tank, we must have This relation leads to

2.2. Formulation of the hoist availability constraints

The hoist availability constraints require that there is no conflict in the use of the same hoist between any pair of moves executed by that hoist. This implies that there must be sufficient time interval between the start of any two moves performed by the same hoist, since any hoist cannot perform two moves at the same time. This means that, for any pair of moves if move i and move j are performed by the same hoist (i.e., ), then move i of any part must be executed either sufficiently before or sufficiently after move j of any part. Due to the cyclic nature of the problem, it is sufficient to consider the hoist availability constraints for move i of part 0 and move j of part n (for any ) if move i and move j are performed by the same hoist. Therefore, for any pair of moves such that , move i of part 0 must be done either sufficiently before or sufficiently after move j of part n, for any

Appendix A shows that when part n enters the system, for any , where , part 0 must have left the system. Hence, there is no more conflict in the use of the hoist between part 0 and part n when . So, we need to consider only those 's such that . In fact, is the upper bound on the number of parts simultaneously processed in a production line.

Figure 4(a) shows the case when move i of part 0 happens after move j of part n, while Figure 4(b) shows the case when move i of part 0 is done before move j of part n. By definition, move i of part 0 starts at and ends at , and move j of part n starts at and ends at , as shown in Figures4(a) and 4(b). It follows from Figure 4(a) that where is the time for the hoist to travel, upon completion of move j of part n, from to to perform move i of part 0. Similarly, it follows from Figure 4(b) that where is the time for the hoist to travel, upon completion of move i of part 0, from to to perform move j of part n.

To simplify the notation, define . According to (2.5) and (2.6), in any case, we must have Equations (2.7) are equivalent to

Example 2.1. An electroplating line consists of three tanks, that is, . There are two hoists available in the system, that is, . The processing times are as follows: . For all, the time for a void move from to is obtained by using with . For all The times required for executing moves: We set δ = 1. For this example, according to (2.1), we have . By definition,

2.3. Formulation of the collision-free constraints

In this subsection, we formulate the collision-free constraints among the hoists. This is accomplished by considering possible collisions in the execution of moves. For any two moves i and j executed by different hoists, if their execution requires that the hoists use a common zone of the track, then either move i must sufficiently precede move j or move j must sufficiently precede move i. Otherwise, possible collisions between the hoists may happen, since they use a common zone of the track at the same time. In the remainder of the paper, for any two moves i and j, without loss of generality, we assume that . Three cases should be considered.

Case 1. and , see Figure 5(a). In this case, in view of the part flow shown in Figure 2, no collisions will happen between the two hoists during their execution of moves i and j.

Case 2. and , see Figure 5(b). In this case, hoist and hoist may collide at , onto which a part is lowered by hoist and from which another part is lifted up by hoist .

Case 3. , see Figure 5(c). In this case, hoists and will use an overlapping zone of the track from to in order to execute moves i and j, and collisions may happen between them when passing through this overlapping zone.

From this analysis, when there are multiple hoists on a single track, collisions may happen among hoists not only when they use an overlapping zone of the track, but also when using the same tank, from which a part is lifted up by one hoist and onto which another part is lower down by another hoist. Such a tank is called a boundary tank in this paper. In the following, we will first address Case 3 and then consider Case 2.

2.3.1. Execution of two moves requires using an overlapping zone of the track

By Case 3 (see Figure 5(c), hoists and will use an overlapping zone of the track from to in order to execute moves i and j, and collisions may happen between them. In order to avoid collision between hoists and such that , they cannot use this overlapping zone at the same time. There must be sufficient time interval between them in using this overlapping zone. This means that, for any pair of moves such that , move i of part 0 must be done either sufficiently before or sufficiently after move j of part n, for any .

Figure 6(a) shows the case when move i of part 0 is done after move j of part n, that is, . In order to avoid collision, after hoist finishes move j of part n, it should arrive at before hoist and should move to a higher position than (i.e., move to a position nearer to the unloading station than ), as shown in Figure 6(a). Note that the earliest time at which hoist arrives at is and the latest time at which hoist arrives at is , and the allowable minimum distance among the hoists is δ. Hence, as shown in Figure 6(a), the following constraint must be satisfied: Similarly, as shown in Figure 6(b), if move i of part 0 is done before move j of part n, that is, , we must have From (2.9) and (2.10), we have The constraints (2.11) can be equivalently written as

2.3.2. Execution of two moves requires using a boundary tank

By Case 2 (see Figure 5(b)), hoists and may collide at , onto which a part is lowered by hoist and from which another part is lifted up by hoist . In order to avoid collision, part m (for any ) must have been lifted up from , for any , when part arrives at . Note that part m will leave at time , and part will arrive at at time . knowing that the allowable minimum distance among the hoists is δ, in order to avoid collision between hoists and , we must have This relation leads to This relation can be equivalently written as

From the above formulation of the problem, we see that the collision-free constraints can be formulated as (2.12) and ((2.15)). It should be emphasized that this formulation of the collision-free constraints is complete, since by Cases 1, 2, and 3 (or Figures5(a), 5(b), and 5(c)) possible combinations of and are all taken into account for any pair of moves Note that (2.8) and (2.12) can be generalized as

According to (2.4), (2.15)), and (2.16), the multihoist electroplating line scheduling problem considered in this paper can be formulated as the following prohibited intervals for the cycle time T: subject to (2.4), (2.15)), and (2.16).

Note that (2.4), (2.15)), and (2.16) can be equivalently written as where vector is called the hoist assignment in the remainder. It can be found from (2.18) that is a union of R-parameterized open prohibited intervals for the cycle time T. For a given is a union of open prohibited intervals for the cycle time T.

In this Section, we formulate our problem as a series of prohibited intervals for the cycle time, that is, . Each family of the problem constraints (i.e., tank capacity constraints, hoist availability constraints, and collision-free constraints) corresponds to a set of prohibited intervals for T, for example, the hoist availability constraint between a pair of moves such that corresponds to a set of prohibited intervals , for . Due to this property, for a given hoist assignment R, if , then such a T must be feasible, since, by definition, such a T falls into no prohibited intervals in , and consequently all problem constraints must be satisfied.

3. Problem analysis

In this Section, we perform a property analysis for the mathematical model we developed in the above Section. Based on this analysis, we will show that the optimal cycle time for the problem is necessarily one of special values of the cycle time. Hence, the optimal cycle time can be found by detecting the feasibility for each one of these special values of the cycle time, and our problem is thus reduced to a feasibility checking problem for a given value of T.

Theorem 3.1. Given a hoist assignment R, the optimal cycle time , where

Proof. Given a hoist assignment is a union of open prohibited intervals which are not necessarily disjoint. However, can be considered as a union of disjoint prohibited intervals after merging of the intersecting ones. Therefore, can be rewritten as with

Example 1 (continued)
If , that is, move 0 and move 2 are performed by hoist 0 while move 1 and move 3 are executed by hoist 1, according to (2.18), the following relation holds After merging of the intersecting prohibited intervals in , we have . Hence,

We can easily find that the optimal cycle time is necessarily the upper bound of the first open prohibited interval, that is, , since is the smallest cycle time that is not prohibited by . Note that the upper bound of any disjoint prohibited interval, after merging of the intersecting intervals, is necessarily an upper bound of one of the prohibited intervals before merging of the intersecting intervals. This means that is necessarily one of the upper bounds of the prohibited intervals before merging of the intersecting ones. Therefore, it follows from (2.18) that . Thus, we have Theorem 3.1.

Corollary 3.2. For any hoist assignment R, always holds where

The correctness of Corollary 3.2 is straightforward, since we have for any such that , and for any such that .

By Theorem 3.1 and Corollary 3.2, we have the following corollary.

Corollary 3.3. The optimal cycle time for the problem .

By Corollary 3.3, the optimal cycle time can be found by detecting the feasibility for each value of the cycle time in in increasing order until the first feasible cycle time is found, which is the optimal cycle time for the problem. Our problem is thus reduced to the feasibility checking problem for a given value of T.

Example 1 (continued)
The set = 17, 18, 21, 22, 22.5, 23, 23.5, 30, 31, 32, 33, 35, 35.5, 44, 45, 46, 47, 70, 71. Th optimal cycle time for the problem can be found by checking the feasibility of these values of the cycle time in increasing order.

4. Feasibility checking for a given value of T

As mentioned in Section 2, for a given hoist assignment R, if , then such a T must be feasible. Hence, given a value of T, say must be feasible if there exists a hoist assignment R such that . Such an R is accordingly called a feasible hoist assignment for . Thus, to check feasibility for , we only need to check whether there exists a feasible hoist assignment R for . If so, then is feasible. Our basic idea is to first derive sufficient and necessary constraints that R must satisfy in order that . By solving the derived constraints for R, we then detect the feasibility for and obtain a feasible hoist assignment R if is feasible.

Theorem 4.1. For a given cycle time , in order that , a sufficient and necessary condition is that R satisfies the following constraints: where , where is the smallest integer greater than or equal to x.

Proof. Note that is equivalent to (2.4), (2.15), and (2.16) hold for . Constraint (2.4)) means that if , then must be infeasible and no further feasibility checking is needed. Hence, in the remainder, without loss of generality, we assume that . With this assumption, (2.4)) is always satisfied. In the following, we will first derive the sufficient and necessary constraints that R must satisfy in order that ((2.15)) holds for (Part A), and then we will derive the sufficient and necessary constraints that R must satisfy in order that (2.16) holds for (Part B).

Part A. The sufficiency and necessity of (4.1) in order that ((2.15)) holds for .

We first derive the necessary constraints that R must satisfy in order that ((2.15)) holds for . Since for any such that , in order that ((2.15)) holds for , the following relation must hold The correctness of (4.5) is clear, since if (4.5) was not satisfied, then we have and , for some and , and consequently ((2.15)) will be violated for . Since takes only integer, (4.5) is equivalent to (4.1). Hence, in order that ((2.15)) holds for must satisfy (4.1).

We now prove the sufficiency of (4.1) in order that ((2.15)) holds for . Assume that ((2.15)) does NOT hold for when (4.1) holds. We will show that this assumption will lead to contradictory facts and thus is incorrect. By assumption, since ((2.15)) does NOT hold for , there must exists an i such that and . By letting, we have for this specified i. Since, by assumption, (4.1) holds and , according to (4.1), we must have . This is in contradiction with the fact that . This means that the assumption that ((2.15)) does NOT hold for when (4.1) holds is incorrect. We, thus, prove the sufficiency of (4.1) in order that ((2.15)) holds for .

Part B. The sufficiency and necessity of (4.2) in order that (2.16) holds for .

We first derive the necessary constraints that R must satisfy in order that (2.16) holds for . Since , for any such that , in order that (2.16) holds for , the following relation must hold

The correctness of (4.6) is clear, since if (4.6) was not satisfied, then we have and , for some and consequently (2.16) will be violated for . As shown in Appendix B, checking whether there exists an such that is equivalent to checking whether , where . As a result, (4.6) can be equivalently expressed as Since and take only integers, (4.7) is equivalent to (4.2). Hence, in order that (2.16) holds for must satisfy (4.2).

We now prove the sufficiency of (4.2) in order that (2.16) holds for . Similarly, assume that (2.16) does NOT hold for when (4.2) holds. We will also show that this assumption will lead to contradictory facts and thus is incorrect. By assumption, since (2.16) does NOT hold for , we must have for some , such that . By letting, we have for the specified and j. Since, by assumption, (4.2) holds and for the specified and j, according to (4.2), we must have . This is in contradiction with the fact that . This means that the assumption that (2.16) does NOT hold for when (4.2) holds is incorrect. We, thus, prove the sufficiency of (4.2) in order that (2.16) holds for .

Since there are K hoists in the production line, we must have With the line configuration in Figure 2, it is easy to find that move 0 must be performed by hoist 0 in order to avoid collision among the hoists. Thus, without loss of generality, we assume that . With this assumption, constraints (4.8) can be equivalently written as (4.3) and (4.4).

To sum up, in order that , a sufficient and necessary condition is that R satisfies the constraints (4.1)–(4.4).

Example 1 (continued)
We illustrate the feasibility checking for . According to (4.1)–(4.4), in order that , a sufficient and necessary condition is that R satisfies the following constraints:
We illustrate how to derive (4.12). By definition, we derive . Hence, . This leads to and according to (4.2). The latter relation is redundant. We, thus, derive (4.12). The other constraints can be derived in a similar way. Note that the constraints , for all, are redundant with the consideration of (4.9)–(4.11) and thus were not shown here.
By Theorem 4.1, (4.1)–(4.4) are the sufficient and necessary constraints that R must satisfy in order that . Note that each constraint in (4.1)–(4.4) can be equivalently written in the form of , where is an integer, . Due to this special structure, solving (4.1)–(4.4) can be transformed into a longest-path problem in a directed graph, as will be described in detail. In a directed graph , where V and E are, respectively, the set of vertices and the set of arcs, a weight is associated with each arc . Let and be, respectively, the head and the tail of arc (i.e., arc e goes from vertex to vertex ). Let denote the potential of vertex . Thus, each arc e represents a constraint .
The directed graph constructed from (4.1)–(4.4) contains vertices, the potentials of which are, respectively, . Each constraint in the form of from (4.1)–(4.4) is represented by an arc from vertex i to vertex j with weight . Thus, the set of constraints in (4.1)–(4.4) can be represented as With the constructed directed graph, a hoist assignment R satisfies (4.1)–(4.4) if and only if all the arcs in graph satisfy (4.14). Let C be a directed cycle (circuit) on graph , then by (4.14) Since , we have Thus, if there are positive circuits in the associated directed graph, then (4.1)–(4.4) are said to be infeasible in sense that they cannot lead to any feasible hoist assignment. On the other hand, if there is no positive circuit in the directed graph, then (4.1)–(4.4) are said to be feasible or self-consistent and a feasible hoist assignment can be derived from them. The following theorem gives how to derive a feasible hoist assignment R if (4.1)–(4.4) are feasible or self-consistent and its complexity.

Theorem 4.2. For a given cycle time , if there is no positive circuit in the directed graph constructed from (4.1)–(4.4), then a feasible hoist assignment R must exist and it can be obtained in in the worst case.

Proof. Let be the length of the longest path from vertex 0 to vertex i on graph satisfying where denotes the longest path from vertex k to vertex i. By definition, . It is easy to see that satisfies (4.14), which also implies that such an R satisfies (4.1)–(4.4). By Theorem 4.1, such an R is a feasible hoist assignment for . Thus, solving (4.1)–(4.4) and consequently checking the feasibility for can be transformed into solving a longest path problem for the corresponding directed graph, which can be solved in , where and are, respectively, the number of vertices and the number of arcs in the directed graph. For this problem, we have . Hence, we have Theorem 4.2.

Example 1 (continued)
The directed graph corresponding to (4.9)–(4.13) is shown in Figure 7. By solving the longest path problem for this graph, we obtain . We, thus, find a feasible hoist assignment for . This implies that is feasible. It can be shown that the values of the cycle time less than in are all infeasible. Therefore, is the optimal cycle time for the problem. From (2.2), we have . The optimal cyclic schedule for is shown in Figure 3. We see from Figure 3 that hoists 0 and 1 use the overlapping zone from to . We also see that there is sufficient time interval between them in entering into the overlapping zone. Hence, possible collisions between them are avoided.

5. Algorithm and complexity analysis

The process to solve the hoist scheduling problem considered in this paper can be summarized as follows.

Step 1. Calculate the completion time , for all according to (2.1).

Step 2. Calculate for all , and .

Step 3. Construct set .

Step 4. Sort all the values of the cycle time in in increasing order. Check the feasibility for each given value of T, say , in in increasing order as follows.

Step. Calculate , for all

Step. Using (4.1)–(4.4) to derive the sufficient and necessary constraints that R must satisfy in order that .

Step. Construct the directed graph and solve the corresponding longest path problem. If is feasible, obtain the corresponding R, and go to Step 5. Otherwise, go to Step 4.1 to check the feasibility for the next value of the cycle time in .

Step 5. Compute the move starting times for the optimal cycle time by using (2.2).

Theorem 5.1. The multihoist scheduling problem with constant processing times is solvable in time in the worst case.

Proof. Steps 1 and 2, respectively, require and times. By the definition of , the total number of the values of the cycle time in is . Hence, Step 3 can be implemented in time. In Step 4, sorting all the values of the cycle time in in increasing order requires time.
For each given , Step 4.1 can be done in time. Step 4.2 can be implemented in . By Theorem 4.2, Step 4.3 can be implemented in in the worst case. Without loss of generality, we assume that each hoist in the line must perform at least one move and each move can be performed by one and only one hoist. With this assumption, there are at most hoists really used for material handling in a production line with N processing tanks. Hence, we assume that . Thus, for each given , Steps 4.14.3 can be done in . It is known that the total number of the values of the cycle time in is . To sum up, the algorithm runs in time.
Note that . This leads to . Therefore, the algorithm runs in time in the worst case.

6. Computational results

The proposed algorithm was encoded in C++. In this section, we first use an example to verify the correctness of the proposed algorithm. Randomly generated instances are then used to further evaluate the performance of the algorithm. The computational experiment was done on a PC with a Pentium IV 3.0 GHz processor.

The example has 20 processing tanks numbered from 1 to 20, stations 0 and 21 being the loading station and the unloading station, respectively. The processing times for tanks 1 to 20 are 160, 180, 90, 150, 200, 190, 290, 170, 290, 230, 240, 86, 180, 300, 240, 180, 310, 200, 170, and 70, respectively. For any i such that , the time for a void move from to , that is, . The other void move times are obtained accordingly with , where . The move times , where for any .

Note that the problem with constant processing times, as addressed in this study, can be considered as a special case of the problem with time windows, that is, zero-width time window. Hence, we can also solve the example using the branch-and-bound algorithm proposed in [5]. Table 1 gives the computational results for the example using the proposed algorithm and the branch-and-bound algorithm in [5]. In Table 1, the columns with provide with the optimal multihoist cycle times for the example, while the columns with CPU represent their corresponding computation times (measured in seconds).

It can be observed from Table 1 that the optimal multihoist cycle times obtained with the proposed polynomial algorithm are the same as those obtained with the branch-and-bound algorithm in [5]. However, our polynomial algorithm significantly outperforms the branch-and-algorithm regarding computation times. This is due to the fact that the algorithm developed in this study exploits specific properties to the problem with constant processing times. The optimal 4-hoist schedule for the example is shown in Figure 8.

In addition, randomly generated instances were used to evaluate the performance of the proposed algorithm. The test instances were generated as follows using integer uniform distributions. For any i such that , the time for a void move from to , that is, , was randomly generated on [2, 5]. The other void move times are obtained accordingly with , where . The move times is set to , where for any i such that . The processing times were generated on [30, 300]. We fix the value of N = 20, 30, 40, and 50. For each N = 20, 30, 40, and 50, 100 test instances were generated. We consider five values of K : 1, 2, 3, 4, and 5, and test problems were solved.

Table 2 reports the average reduction in optimal cycle times (or equivalently improvement on the throughput) achieved by the multihoist schedules with respect to the single-hoist schedules, calculated by the optimal single-hoist cycle time divided by the optimal multihoist cycle time. We see from Table 2 that the reduction in optimal cycle times achieved by the multihoist schedules is very significant, ranging from 2.08 to 9.37.

Table 3 gives the average computation times in CPU seconds for test instances. It can be seen from Table 3 that the algorithm developed in this study is very efficient. Note that practical electroplating lines generally have 10 to 20 processing tanks and 1 to 3 hoists. For this size of problems, the computation times are within 80 milliseconds. For the 20-tank and 30-tank instances with 1 to 5 hoists, our algorithm found optimal cycle times generally within one second. Even for the very large problem with 50 tanks and 5 hoists, the proposed algorithm can obtain the optimal solution within 25 seconds.

A further examination of Table 3 reveals that the computation times increase with the number of tanks and hoists, as the algorithm runs in time in the worst case according to its complexity estimation, but the computation times increase not so rapidly with the number of tanks as the complexity of the algorithm indicates. This may be due to the fact that the complexity analysis is a worst-case estimation and sometimes may be far from the reality. To find the optimal cycle time, the values of the cycle time in are checked in increasing order until a feasible one is found. In the complexity estimation, the number of values of the cycle time to be checked is estimated at in the worst case. This estimation is too pessimistic. In fact, only a small part of the values of the cycle time in needs to be checked before the optimal cycle time is found, and more importantly, the total number of values of the cycle time in is significantly less than its theoretical estimation (less than 10% for most of the instances), since most values of and in are less than and the values of and/or may take the same value.

7. Conclusion

This paper proposed a polynomial algorithm for the no-wait cyclic multihoist scheduling problem in an electroplating line. Computational results on randomly generated instances have shown that the algorithm is very efficient. The algorithm developed in this study can be served as a subroutine or a heuristic in solving the problem with time windows.

An important extension of this study is to develop efficient heuristic for the hoist scheduling problem with time windows, which is an NP-hard problem, using the algorithm developed in this study as a subroutine. To achieve this extension, we should take the processing times, which must be within given time windows, as decision variables of our problem. If all processing times are fixed, then the corresponding problem can be solved using the proposed algorithm. Thus, the key to solving the problem with time windows is to design efficient search strategy to find an optimal combination of fixed processing times within given time windows. This is our ongoing work.

Appendices

A. Upper bound on the number of parts simultaneously processed in a production line

It is known that part 0 arrives at the unloading station at time and part n is introduced into the system at time nT. In order that when part n enters the system, part 0 has already left the system, it is sufficient that It follows from (2.4) that This means that (A.1) must hold for .

On the other hand, since the K hoists have to perform all the moves within a cycle, we must also have It follows from (2.4) and (A.3) that Hence, (A.1) must hold for n ≥(N + K).

To sum up, when part n enters the system, for any , where , part 0 must have left the system; can be understood as the upper bound on the number of parts simultaneously processed in a production line.

B. Equivalence of (4.6) and (4.7)

In constraints (4.6), for all, we must check whether there exists an , such that . This requires that be checked from n = 1 to . Hence, will be checked for at most times. In fact, this is not necessary.

By definition, , where is the smallest integer greater than or equal to x. This implies that is smallest integer such that . Hence, for any , we always have , that is, for any . On the other hand, since is the smallest integer n such that , we must have . Hence, we check whether .

Case 1. if , then for any , we also have . As a result, in this case, we have for any .

Case 2. if , we find an such that .

From this analysis, for all, checking whether there exists an , such that is equivalent to checking whether .

Acknowledgments

This work was partially supported by the National Natural Science Foundation of China, under Grant no. 50605052 and the Program for New Century Excellent Talents in Universities of Ministry of Education, China, under Grant no. NCET-06-0875.