Available online at www.sciencedirect.com
Computers & Operations Research 31 (2004) 1245 – 1258
www.elsevier.com/locate/dsw
Heuristic algorithms for a turbine-blade-balancing problem Wonjoon Choia;∗ , Robert H. Storerb a
School of Industrial Engineering, College of Engineering, University of Ulsan, Mugeo-Dong San 29, Ulsan 680-749, South Korea b Department of Industrial and Systems Engineering, Lehigh University, 200 West Packer Avenue, Bethlehem, PA 18015-1582, USA
Abstract In the turbine-blade manufacturing industry, turbine-blades are machined and then are assembled to form a cylindrical roll of blades. The roll of blades should be balanced as much as possible, since otherwise the e.ciency of the turbine generator might degrade. The turbine-blade balancing problem is known to be NP-hard, thus 2nding an optimal solution is likely to be computationally intractable for large problems. Several heuristic methods for turbine-blade balancing appeared in the literature. We propose heuristic methods for balancing blades based on the number partitioning algorithm. The proposed methods outperformed existing methods remarkably in terms of the accuracy with a negligible increase in the running time. Scope and purpose Turbine-blade balancing is an important task in turbine-blade manufacturing and in the regular overhaul of a turbine. Manual balancing is very time consuming and tedious, and often sophisticated machines are used on the shop 5oor for balancing blades. Exact solution procedures for solving the turbine-blade balancing problem would not be appropriate, since an enormous amount of computer time would be required. However, balancing blades has to be solved in real time on the shop 5oor. Therefore heuristic procedures that can solve the balancing problem with reasonable computational e8ort are desirable. In this paper, we propose several heuristic methods for balancing blades. ? 2003 Elsevier Ltd. All rights reserved. Keywords: Blade balancing; Turbine blades; Number partitioning
1. Introduction A steam turbine may be de2ned as a form of heat engine in which the energy of the steam is transformed into kinetic energy by means of expansion through nozzles, and the kinetic energy of ∗
Corresponding author. Tel.: +82-52-259-2179; fax: +82-52-259-2180. E-mail address:
[email protected] (W. Choi).
0305-0548/$ - see front matter ? 2003 Elsevier Ltd. All rights reserved. doi:10.1016/S0305-0548(03)00078-9
1246
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
Fig. 1. A turbine and turbine blades.
the resulting jet is, in turn, converted into force doing work on rings of blades mounted on a rotating part. In the turbine-blade manufacturing industry, turbine-blades are machined and then are assembled to form a circular roll of blades. An example of a turbine is illustrated in Fig. 1. As a result of manufacturing inaccuracies, the blades to be assembled into the same roll are not normally identical in weights and lengths. Also as a part of regular maintenance operations, turbines should be disassembled, inspected, and reassembled. The weights of the blades will again di8er due to the accumulated wear through use. These variations make the balancing problem tedious and di.cult. The practice of balancing as a part of the maintenance operation in the airline industry is described nicely in Mason and RFonnqvist [1]. The roll of blades should be balanced as much as possible, since otherwise the e.ciency of the turbine generator may degrade and the life of the turbine can be shortened. In this paper, we study methods for balancing the weights of the rotating blades. In Section 2, we de2ne the blade-balancing problem and show a mixed-integer programming formulation of the problem. In Section 3, we review the literature on topics of the turbine blade balancing problem. In Section 4, we propose several heuristic methods for solving the blade-balancing problem, followed by the exposition of the computational experiments in Section 5.
2. Problem denition Suppose we are given a set of n blades whose weights are known. The problem is to determine the location of each blade around the rotor axis so as to minimize the residual unbalance (its de2nition will be given later) in weight distribution. Following other researchers [2,3], we assume that the centers of gravity of all blades are at the same distance r from the center of the rotor axis. We de2ne the following notation: n i j wi w[j] r
total number of blades, equivalently the total number of locations, blade index (i = 1; 2; : : : ; n), location index (j = 1; 2; : : : ; n), weight of blade i, weight of blade at location j, distance between the center of gravity of a blade and the center of rotor axis.
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1247
location 2
location 1 rotor axis
location n
Fig. 2. Blade balancing problem.
The balancing problem can then be de2ned as follows: Given n blades with weight wi and a circle of radius r with n equally spaced locations on its periphery, 2nd an assignment of the blades to the locations that minimizes residual unbalance about the center. The residual unbalance is the magnitude of the vector sum of the moments created by the individual blades about the center. For convenience, we assume a coordinate system in which the origin is at the center of the circle and the positive X -axis goes through one of the n locations as illustrated in Fig. 2. The locations are numbered in counterclockwise order starting with the one coincident with the positive X -axis. So, the coordinates of location j are (r cos((2(j − 1) )=n); r sin((2(j − 1) )=n)); j = 1; 2; : : : ; n. Decision variables xij are de2ned as 1 if blade i is assigned to location j; xij = 0 otherwise: Let cij = wi r cos(2(j − 1) =n); dij = wi r sin(2(j − 1) =n). For a clear exposition of the problem, we repeat the Mason and RFonnqvist’s [1] mixed-integer programming formulation of the problem in the rest of this section. For any solution x we can determine the moment vector (mx ; my ) of the moment weight as mx = my =
n n i=1 j=1 n n
cij xij ;
(1)
dij xij :
(2)
i=1 j=1
Then the residual unbalance of a solution is de2ned by can be stated as follows: Minimize m2x + m2y subject to
m2x + m2y . Now, the balancing problem
(3)
1248
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
mx =
n n
cij xij ;
(4)
dij xij ;
(5)
xij = 1;
j = 1; 2; : : : ; n;
(6)
xij = 1;
i = 1; 2; : : : ; n;
(7)
i=1 j=1
my =
n n i=1 j=1
n i=1 n j=1
xij = 0; 1:
(8)
Eqs. (6) and (7) are assignment constraints for blades and locations. Eqs. (4) and (5) are de2nitions of moments. The above balancing problem is NP-hard. This was shown by Amiouny et al. [2] by reduction from the partition problem which is known to be NP-complete.
3. Literature review The turbine blade balancing problem has been studied by several authors. Mosevich [4] presented an algorithm that consisted of selecting the best of a large number of randomly generated solutions. Laporte and Mercure [5] modeled the problem as a quadratic assignment problem and presented a solution procedure based on Or’s TSP heuristic which outperformed that of Mosevich. Fathi and Ginjupalli [6] also modeled the problem as a quadratic assignment problem and proposed two families of heuristics for it. The 2rst family of heuristics called Placement Heuristics placed the blades in order of weight—the heaviest blade 2rst—choosing for each blade the available location that brings the resulting center of gravity as close as possible to the center of rotor axis. The second family of heuristics called Rotational Heuristics divided the blades into equal-sized subsets, found good sequences for the smaller problems of balancing with only the blades in each subset and then interleaved the sequences. Mason and RFonnqvist [1] tested several local search techniques including pairwise interchange and three-way interchange algorithms. They found that pairwise interchange heuristic was one of the most e.cient methods. Amiouny et al. [1] developed several constructive heuristics for the problem of which two seem to dominate, Ordinal Pairing and Greedy Pairing. Both heuristics begin by sorting the blades from heaviest to lightest. Next, after forming the pairs of consecutive blades in the sorted list, the pairs were sorted in descending order of the di8erence in weights in a pair. Then pairs in the 2nally sorted list were placed across from each other on the rotor axis. The two heuristics di8er as to how the locations of each pair of blades are determined. Ordinal Pairing places the blades in a 2xed pattern. Greedy Pairing places the blades by a greedy algorithm. For each pair, all possible open positions on the circle are examined, and the position that yielded the center of gravity closest to the center
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1249
of the circle was chosen. Ordinal Pairing requires very little computation time and produces good results while Greedy Pairing requires more computation but gives better performance. Choi et al. [7] presented several heuristic methods for the turbine blade balancing problem formulated as a minimax unbalance problem. Storer [8] proposed a heuristic which uses an embedded number partitioning algorithm for the case that the number of blades is even. This heuristic will be described in detail in the next section, since this paper extends this heuristic. Pitsoulis et al. [3] formulated the problem as a quadratic assignment problem and proposed a heuristic based on GRASP (a greedy randomized adaptive search procedure). GRASP is an iterative randomized sampling technique in which each iteration provides an approximate solution to the problem at hand. Each iteration of Pitsoulis et al.’s heuristic consists of three stages. Stage 1 makes the 2rst two assignments of blades to locations. First among the possible n2 (n − 1)2 assignments, a list called the restricted candidate list (RCL) is created by selecting a user-speci2ed number (called RCLsize) of assignments in the ascending order of the ‘partial’ objective function value. Then the 2rst two assignments are chosen randomly from RCL. Stage 2 makes the remaining n − 2 assignments of blades to locations with a similar idea of random selection. Stage 3 improves the solution by employing the pairwise-interchange heuristic. This procedure is repeated over the user-speci2ed number of iterations, except the RCL is constructed only once at the beginning. The authors claimed that their heuristic outperformed current practice and had the best overall performance with respect to other heuristic algorithms taken from the literature.
4. Heuristics 4.1. Storer’s embedded number-partitioning heuristic Storer [8] proposed a heuristic which uses an embedded number partitioning algorithm for the case that n, the number of blades, is even. Initially, the blades are placed in random locations on the circle. Next the center of gravity around ‘the X -axis’ is balanced, and then around ‘the Y -axis.’ To balance the center of mass around an axis, pairs of weights that are symmetric with respect to the axis as shown in Fig. 3 are considered. Next a single number dk for each pair of weights is created (k = 1; 2; : : : ; n=2 − 1) as follows: 2 for the X -axis; dk = |w[k+1] − w[n−k+1] | sin k ; k = 1; 2; : : : ; n=2 − 1: n This number dk is the center of gravity of the pair with respect to the axis of symmetry. An example of calculation of dk is illustrated in Fig. 4. Next a number partitioning algorithm is applied to the set {d1 ; d2 ; : : : ; dn=2−1 } of the pairwise centers of mass. (A form of the number partitioning problem is shown in the appendix.) An extended version of the di8erencing heuristic proposed by Karmarkar and Karp [9] was applied to solve the number partitioning problem. (The di8erencing heuristic is also shown in the appendix.) The result of partitioning is two sets of pairs. The 2nal step is to interchange the weights of each pair in (either) one of the two sets resulting from partitioning. Then the center of gravity with respect
1250
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
X
Fig. 3. Weight pairs symmetric with respect to the X -axis in the Storer’s heuristic.
w [3] θ
X
w [n-1]
d2= w[3]-w[n-1] sin ( θ ) Fig. 4. An example of calculation of d value.
to the axis of symmetry will be nearly balanced and equal to the objective function found by the number partitioning algorithm. The 2nal step of the algorithm is to balance the center of gravity with respect to the second perpendicular (Y ) axis of symmetry. The same algorithm as for the X -axis is applied. Because of the orthogonality of the X - and Y -axis, balancing around the Y -axis will not change the center of mass with respect to the X -axis. We will present a heuristic that is based on Storer’s heuristic. Though Storer [8] dealt with the even-numbered n, we note that the number partitioning heuristic can be employed for odd-numbered n as well. Fig. 5 illustrates an example of pairings with respect to the X -axis with n = 7. In the followings, we assume the number of blades is even for expository simplicity. 4.2. Iterative number-partitioning heuristic The proposed heuristic begins with an arbitrary placement of blades with centroid (Wx ; Wy ), and improves the solution iteratively. Storer’s heuristic 2rst balances the center of gravity around an arbitrarily selected ‘X -axis’, then balances around the ‘Y -axis’ de2ned to be orthogonal to the X -axis. Di8erent from Storer’s Heuristic, we deliberately select the axis around which the center of gravity will be balanced. The axis will be chosen among axes with angles ((i − 1) )=n; i = 1; 2; : : : ; n. We will use ‘axis i’ to denote the axis with angle ((i − 1) )=n, for i = 1; 2; : : : ; n or say that the axis number is i. When the axis number is even, it passes in the middle of two locations, and when the axis number is odd, the axis lies on top of two blade locations, as illustrated in Fig. 6.
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1251
X
Fig. 5. An example of pairing in case of odd-number n (n = 7).
Axis
i
i is even
(a)
Axis
(b)
i
i is odd Fig. 6. Axis i.
We choose to balance around the axis that is nearest to the separating line perpendicular to the line segment linking the center (0,0) and the centroid (Wx ; Wy ) as illustrated in Fig. 7. We choose this axis because it is more likely to move the center of mass closer to the center. The rationale behind the selection of the axis is as follows: The nearer the axis is to the perpendicular separating line, the larger the unbalance of the existing placement with respect to the axis is, since the unbalance with respect to an axis is equal to the distance from the center of gravity to the axis. An example is shown in Fig. 8. One can easily see that the axis of Fig. 8(a) is nearer to the perpendicular separating line than the axis of Fig. 8(b) and that the unbalance in Fig. 8(a) is larger than the unbalance in Fig. 8(b). However it is ‘normally’ easier to improve a placement with large unbalance than a placement with small unbalance.
1252
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
(Wx ,Wy )
Separating Line Fig. 7. The separating line perpendicular to the line segment (0; 0) − (Wx ; Wy ).
(Wx ,Wy )
(Wx , Wy )
Unbalance
Unbalance
(a)
(b)
Fig. 8. Examples for illustrating the relationship between an axis and size of unbalance.
If the selected axis, say axis ’, is odd, blades at locations (’ + 1)=2 + k and (’ + 1)=2 − k are paired for each k = 1; 2; : : : ; n=2 − 1. Similarly if the selected axis ’ is even, blades at locations ’=2 + k and ’=2 − k + 1 are paired for each k = 1; 2; : : : ; n=2. (Here, location j is interpreted as location j + n when j 6 0.) To balance the center of mass around the selected axis, we use the same procedure as described in Storer. First, we arrange each symmetric pair so that the heavier weight in each pair is on the same side of the axis (we do this only for simplicity of the algorithm description). Next a single number dk for each pair of weights is created. This number dk is the center of gravity of the pair with respect to the axis of symmetry. That is, dk = (di8erence in weights of the pair) × sin (di8erence in angles of the pair=2): De2nition of dk can be stated in a more formal way as follows: If the axis ’ is odd, dk = |w[(’+1)=2+k] − w[(’+1)=2−k] | sin( 2 k), for k = 1; 2; : : : ; n=2 − 1, n 2 (k − 1) + ; for k = 1; 2; : : : ; n=2: else dk = |w[’=2+k] − w[’=2−k+1] | sin n n
(9)
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1253
Next a number partitioning heuristic is applied to the set {dk } of the pairwise centers of mass. The result of partitioning is two sets of pairs. The 2nal step is to arbitrarily select one of the two sets of pairs, and interchange the weights of each pair according to the solution of partitioning. The result will be that the center of gravity with respect to the axis of symmetry will be nearly balanced and equal to the objective function found by the number partitioning algorithm. The above process results in a new placement and centroid. We continue repeating the above procedure until an iteration is performed that results in no change in the arrangement of blades. At each iteration, we call the axis that is nearest to the separating line perpendicular to the line segment linking the center (0; 0) and the centroid (Wx ; Wy ) the ‘anchor axis’. Once balance around the anchor axis results in no improvement, we try the following: If an iteration of the balancing algorithm around the anchor axis results in no improvement, we explore other pairings by selecting an axis next to the current axis and then repeat the above process. If we fail again to improve the solution, then we try another untried axis nearest to the anchor axis. The algorithm stops when all axes are tried but no improvement has been achieved. The proposed heuristic can be stated in a more formal way as follows: Begin with an arbitrary placement {w[j] } with the centroid (Wx ; Wy ). Find out the axis nearest to the separating line perpendicular to the line segment linking (0; 0) and (Wx ; Wy ), say axis ’. Set Successful ← true. While (Successful) do { Set ’old ← ’. Get dk for each k by (Eq. (9)). Apply the number partitioning heuristic to {dk } and update the placement {w[j] }. Get the new centroid (Wx ; Wy ) and the new nearest axis ’. If the solution was improved and ’ is di8erent from ’old then Set Toggle ← 1 & ExploreCount ← 0. Else If ExploreCount ¿ n then Set Successful ← false. Else Set ExploreCount ← ExploreCount + 1, ’ ← ’old + Toggle × ExploreCount, Toggle ← Toggle × (−1). Endif Endif } Here, ExploreCount denotes the counter that counts the number of axes tried since the last improving axis and Toggle is a variable to regulate the exploration direction. Toggle has value 1 if the next axis number is greater than the anchor axis number, −1 otherwise. ExploreCount and Toggle ensure that when we fail to improve the solution, the axis to be explored next is always set to the untried axis nearest to the anchor axis either in the clockwise direction or in the counterclockwise
1254
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
direction. The algorithm stops when no improvement has been achieved even until ExploreCount gets the value n. 4.3. Heuristics with random initial solutions The initial arbitrary placement of blades in locations may in5uence the quality of the 2nal solution. With a randomly chosen initial placement, we apply heuristic mentioned above and then repeat the procedures after changing the initial placement randomly until the user-speci2ed time limit. In this paper, we tested randomized versions of Pairwise Interchange Heuristic, Storer’s Heuristic, and Iterative Number-Partitioning Heuristic. We call them Randomized Pairwise Interchange Heuristic, Randomized Storer’s Heuristic, and Randomized Iterative Number-Partitioning Heuristic, respectively. By de2nition, the Ordinal Pairing Heuristic is a kind of construction type algorithm, which does not need an initial placement of blades. So, there is no randomized version associated with Ordinal Pairing Heuristic. The computational results will be shown in the next section. 5. Computational experiments Following Amiouny et al. [2], we generated blade weights from a Normal distribution with a mean of 100 and standard deviation of 5=3. We generated problems over a range of sizes from 20 blades to 200 blades. Again following Amiouny et al. [2], we assume that the circle radius is 100 and the objective function is the Euclidean distance between the center of gravity and the center of the circle. The heuristic to be compared in this test are as follows: Ordinal Pairing Heuristic of Amiouny et al. [2], Pairwise Interchange Heuristic of Mason and RFonnqvist [1], Storer’s Heuristic of Storer [8], Iterative Number-Partitioning Heuristic (Iterative NP Heuristic), GRASP-based Heuristic of Pitsoulis et al. [3], Randomized Pairwise Interchange Heuristic, Randomized Storer’s Heuristic, Randomized Iterative Number-Partitioning Heuristic (Randomized Iterative NP Heuristic). First, four algorithms were compared: Ordinal Pairing Heuristic, Pairwise Interchange Heuristic, Storer’s Heuristic, and Iterative NP Heuristic. For each problem size, 1000 instances were generated. Fig. 9 shows the objective function value averaged over 1000 instances for each problem size. Storer’s Heuristic outperformed the Ordinal Pairing Heuristic and Pairwise Interchange Heuristic for most of cases. Considering the fact that the Pairwise Interchange Heuristic was one of the best methods in the open literature [1] before Storer’s Heuristic was proposed, we can say that Storer’s Heuristic works very nicely for the turbine blade balancing problem. However, the Iterative NP Heuristic improves on Storer’s Heuristic by up to three orders of magnitude. Fig. 10 shows the elapsed time in seconds averaged over 1000 problem instances for each problem size on a PC with a Pentium II 300 MHz processor. As shown in Fig. 10, the Iterative NP Heuristic takes about twice
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1255
1.E+00 1.E-01 0
20
40
60
80
100
120
140
160
180
200
1.E-02
Avg. Residual
1.E-03 1.E-04 1.E-05 1.E-06 1.E-07 Ordinal
1.E-08
Interchange
1.E-09
Storer
1.E-10
Iterative NP
1.E-11 Number of Blades
Fig. 9. Comparison of the avg. residuals of Ordinal Pairing, Pairwise Interchange, Storer’s, and Iterative NP Heuristics.
0.16 Ordinal 0.14
Interchange Storer
Elapsed Time (in Sec)
0.12
Iterative NP
0.10 0.08 0.06 0.04 0.02 0.00 0
20
40
60
80
100
120
140
160
180
200
Number of Blades
Fig. 10. Comparison of the elapsed times of Ordinal Pairing, Pairwise Interchange, Storer’s and Iterative NP Heuristics.
the time of the Interchange Heuristic. However, the time consumed by the Iterative NP Heuristic is not really a problem in the practical sense. In reality, the typical number of blades in a roll is no greater than 200. For n = 200, the Iterative NP Heuristic took just an average of 0:15 s. Our second set of experiments was aimed at testing the more computationally intensive algorithms. We tested randomized heuristics including the GRASP-based heuristic. For each problem size, 30 instances were generated. We set the time-limit for each algorithm to 10 minutes and
1256
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258 1.E+00 20
40
60
80
100
120
140
160
180
200
1.E-01 Rand. Interchange Rand. Storer Rand. Iterative NP GRASP
1.E-02 1.E-03 1.E-04
Avg. Residual
1.E-05 1.E-06 1.E-07 1.E-08 1.E-09 1.E-10 1.E-11 1.E-12 1.E-13 Number of blades
Fig. 11. Comparison of the avg. residuals of Randomized Pairwise Interchange, Randomized Storer’s, Randomized Iterative NP, and GRASP-based Heuristics.
ran each randomized heuristic method. Fig. 11 shows the objective function value averaged over 30 instances for each problem size. The Randomized Iterative NP Heuristic consistently performed best for every problem size. Even though the Interchange Heuristic is much faster than Iterative NP Heuristic, more replications of the Interchange Heuristic did not change the relative ranking of heuristic methods. It is interesting that the GRASP-based Heuristic was outperformed by the Randomized Interchange Heuristic. Pitsoulis et al. [2] claimed that their GRASP-based Heuristic had the best overall performance with respect to other heuristic algorithms taken from literature, but the Randomized Interchange Heuristic was not included in their analysis. The GRASP-based Heuristic also entails relatively large computing overhead due to the preparation of the RCL. The heuristic methods proposed in this paper, namely Iterative NP Heuristic, Randomized Storer’s Heuristic, and Randomized Iterative NP Heuristic work very nicely. In particular, the Randomized Iterative NP Heuristic has better performance than any other heuristic algorithms. The Randomized Iterative NP Heuristic improved on Storer’s Heuristic, the state-of-art method, by up to four orders of magnitude in the unbalance. Also we note that according to our computational experiments, the shape of the average residuals was steady with increments of the time-limit. For application in the real world, we suggest that either the Iterative NP Heuristic or the Randomized Iterative NP Heuristic will be good candidates. Finally we note that Storer’s O(n log n) heuristic, while executing as quickly as ordinal pairing, performs on a par with the Randomized Interchange Heuristic, and better than GRASP.
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
1257
6. Conclusions In the turbine-blade manufacturing industry, turbine-blades are machined and then are assembled to form a circular roll of blades. Turbine-blade balancing is an important task in the turbine-blade manufacturing and regular overhaul of a turbine. The turbine-blade balancing problem discussed in this paper is a combinatorial optimization problem which is NP-hard and thus is hardly expected to be solved exactly in reasonable amount of time. In this paper, we proposed several heuristic methods for the turbine-blade balancing problem varying from fast to fairly computationally intensive. The proposed methods improve an initial placement of blades by solving number partitioning problems iteratively. The most computationally intensive improved on the state-of-art method by up to four orders of magnitude in the same amount of CPU time. The least computationally intensive (a simple O(n log n) heuristic) was on a par with previous approaches allowed to run for ten minutes. Investigation of other pairing schemes and other search heuristics such as a Genetic Algorithm based search heuristic remains as further research topics. Acknowledgements One of the co-authors, Wonjoon Choi, would like to acknowledge the research grant supported by the University of Ulsan in the program year of 2001. Appendix A A.1. Number partitioning problem [8] Partition a set of numbers into two mutually exclusive sets minimizing the absolute di8erence of the sum of the two sets. Letting ai for i = 1; 2; : : : ; N represent N numbers to be partitioned, and S and S represent the two sets of after partitioning, then the problem can be stated as ai − ai : Min i ∈S
i ∈S
Number partitioning problem is known to be NP-complete [10]. A.2. DiAerencing heuristic for the number partitioning problem [8] Step 0: Place the numbers in a list sorted from largest to smallest. Step 1: Let u and v be the top two numbers in the list. Remove u and v from the list. Calculate a new number |u − v|. Step 2: Merge |u − v| back into the list as follows: Starting at the bottom of the sorted list of numbers a[i] and going up, compare |u − v| to a[i] until index d is found such that |u − v| 6 a[d] . Merge |u − v| just below a[d] in the list.
1258
W. Choi, R.H. Storer / Computers & Operations Research 31 (2004) 1245 – 1258
Repeat steps 1 and 2 until one number remains on the list. The last value remaining in the list is the objective function value. References [1] Mason A, RFonnqvist M. Solution methods for the balancing of jet turbines. Computers and Operations Research 1997;24(2):153–67. [2] Amiouny SV, Bartholdi III JJ, Vande Vate JH. Heuristics for balancing turbine fans. Operations Research 2000;48: 591–602. [3] Pitsoulis LS, Pardalos PM, Hearn DW. Approximate solutions to turbine balancing problem. European Journal of Operational Research 2001;130:147–55. [4] Mosevich J. Balancing hydraulic turbine runners: a discrete combinatorial optimization. European Journal of Operational Research 1986;26:202–4. [5] Laporte G, Mercure H. Balancing hydraulic turbine runners: a quadratic assignment problem. European Journal of Operational Research 1988;35:378–81. [6] Fathi Y, Ginjupalli KK. A mathematical model and a heuristic for the turbine balancing problem. European Journal of Operational Research 1993;63:336–42. [7] Choi W, Kang H, Baek T. Turbine blade balancing problems. International Journal of Production Economics 1999; 60 – 61:405–10. [8] Storer RH. Extensions of and uses for the di8erencing algorithm for number partitioning. Report No. 99T-09, Department of Industrial and Manufacturing Systems Engineering, Lehigh University, Bethlehem, Pennsylvania, 1999. [9] Karmakar NRM, Karp RM. The di8erencing method for set partitioning. Report No. UCB/CSD 82/113, Computer Science Division, University of California, Berkley, 1982. [10] Garey MR, Johnson DS. Computers and intractability. San Francisco: Freeman, 1979. Dr. Wonjoon Choi is Professor of Industrial Engineering at the University of Ulsan, MugeoDong San 29, Ulsan, Republic of Korea. He received his B.S. in Business Administration from the Seoul National University in 1977, M.S. in Industrial Engineering from the Korea Advanced Institute of Science and Technology in 1979, and Ph.D. degree in Industrial and Systems Engineering from the University of Florida in 1987. His interests lie in material 5ow systems, simulation, and the theory of constraints. Dr. Robert H. Storer is Professor of Industrial and Systems Engineering, Co-Director of the Manufacturing Logistics Institute, and Co-Director of the Integrated Business and Engineering Honors Program at Lehigh University. He received his B.S. in Industrial and Operations Engineering from the University of Michigan in 1979, and M.S. and Ph.D. degrees in Industrial and Systems Engineering from the Georgia Institute of Technology in 1982 and 1986 respectively. His interests lie in operations research and applied statistics with particular interest in heuristic optimization, scheduling, and logistics.