JOURNAL Vol
OF OPERATIONS
3. No. 4. August
MANAGEMENT
1983
Currently Practiced Formulations For the Assemblv Line Balance Problem* Richard E. Gunther** Gordon D. Johnson** Roger S. Peterson**
EXECUTIVE
SUMMARY
New formulations for the assembly line balance problem are proposed based on interviews and surveys of practicing engineers. These formulations are the basis for a model in goal programming form. A branch-and-bound algorithm is developed which can solve the model for an optimum solution. Computational studies show that computer run time is very modest for moderate size problems. Interviews and a survey of practicing engineers were used to develop a list of goals or constraints germane to the assembly line balance problem. These included minimizing working areas or employees, making sure tasks assigned to a station do not exceed the cycle time, and adhering to sequence constraints. These constraints are included in most traditional models. However, additional goals were mentioned. These included avoiding changes in workload assigned to a work area, adhering to layout requirements of the plant, making combinations of tasks interesting, avoiding the combination of physiologically demanding tasks, etc. The additional goals above are incorporated in a new formulation for the assembly line balance problem. This formulation is in goal programming form. The goal programming model attempts to minimize deviations from goals. If deviations are necessary, lowest rankedgoals are violatedJrst. The objective function of the model is based on an ordinal ranking of goals only. The survey mentioned above showed that engineers did not find it d@cult to rank the importance of goals. The proposed goal programming model is a mixed integer linear program. Previous studies have shown that cutting plane and implicit enumeration techniques are inferior to branch-and-bound algo* This paper was funded in part by a grant from the Bureau of Business Services and Research, California State University, Northridge. The authors wish to thank James Vogl, Dr. Lee Krajewski, and the referees for their helpful assistance and suggestions. ** Department of Management Science, California State University, Northridge, Northridge, California. Journal of Operations
Management
rithms. A branch-and-bound method, called GoalOriented Algorithm for Line Balance (GOAL), is developed to solve the formulations proposed in the paper. GOAL was computationally tested with 50 problems. These problems varied in size from 4 to 3.5 tasks. One of the problems was an engine cradle assembly problem encountered by an automobile manufacturer. Computer run times appeared reasonable. For example, the engine cradle problem (35 tasks) required only 16.3 seconds CPU on the DEC PDP II/70 at California State University, Northridge. GoAL s execution time appeared linearly proportional to the number of tasks required for most problems. INTRODUCIION
The assembly line balance problem is well known to operations research and common in industry [2]. Most academic studies consider the problem defined by Salveson [ 131 and formulated by Bowman [ 11. Tasks are assigned to work stations in such a way that: ( 1) task precedence relationships are satisfied, and (2) the sum of the task times at each station is not greater than the time available to do the job or cycle time. The objective of assembly line balancing is to minimize the number of stations. This study reports a survey of practicing engineers. This survey indicates that the traditional academic formulation ignores a number of key goals which can be treated as constraints. To increase the degree of flexibility in working with these new constraints, we have chosen to utilize goal programming notation (3, 71. A model is formulated and examples are solved for optimum answers with branch-and-bound methods. The objective function in the model is based on an ordinal ranking of goals only. Tradeoffs will be considered in a subsequent study. Unlike many previous academic studies in assembly line balance, it is our objective to build a general model based on empirical evidence. The 209
common practice of trying to apply a priori based models to real world applications has not always been successful. A SURVEY OF GOALS LINE BALANCE
IN ASSEMBLY
To provide a list of goals considered to be germane to the assembly line balance problem, extensive interviews were conducted with practicing engineers in an automobile assembly division and several stereo components firms. The following list was the consensus of these engineers: Goal Goal Goal Goal Goal Goal
Goal Goal Goal Goal
Goal
1. Minimizing number of working areas and employees required. 2. Making sure the sum of activity times at a work area does not exceed the cycle time or a percentage of the cycle time. 3. Making sure workload assigned to work area or employees has not increased since last balance. 4. Adhering to layout requirements of plant. Try to avoid moving machines, equipment, etc. 5. Making combination of activities assigned to worker result in jobs that are less boring (or more interesting). 6. Avoid assigning several physically demanding activities to the same work area or worker. 7. Adhering to the technological constraints of sequencing. 8. Assigning tasks with common tooling to the same station. This can reduce the tooling needed. 9. Assigning tasks with common parts to the same station. This can reduce the number of parts inventories. 10. Assigning tasks requiring similar crafts or skills to the same station. This can reduce the number of skilled workers required. 11. Grouping tasks together which require simultaneity of motion.
Some of these goals have been considered in other studies [8, 91. The authors know of no optimizing solution method, however, which considers all or even most of them. Goal 1 is the objective and goals 2 and 7 are the constraints considered in the traditional formulation and solutions of the assembly line balance problem. Goals 8-l 1 can often be satisfied by grouping together tasks to form somewhat larger tasks. For 210
this reason these goals are not included in the goal programming formulation or solution below. (The solution method could be modified slightly to include goals 8-l 1.) Goals l-7 were listed in a survey given to 40 practicing engineers. They were asked to rank the importance of each goal. This study will model ordinal rankings of goals only. Tradeoffs will not be studied. The results of the survey are shown in Table 1. The largest number of responses from a single firm, in an automobile assembly division, was nine and these results are reported separately. The traditional goals 1, 2, and 7 were considered most important. Engineers in general considered sequence constraints, cycle time constraints, and minimizing the number of stations important in that order. Engineers in general ranked layout, workload, and physical constraints next in importance. Job satisfaction was clearly ranked last. A repeated measures ANOVA test shows that the differences in rankings for engineers in general were significant. Each goal was ranked greater than three by at least one engineer. All goals thus appear to be factors in some decisions. No other goals were mentioned more than once with the exception of “assign work using common tooling.” This was mentioned by two engineers in the free response portion of the survey. As might be expected, the auto assembly engineers were more in agreement than engineers in general. This can be seen in the smaller standard deviation of the auto assembly responses. 50% of the respondents felt the survey was easy to answer; 50% felt it was of medium difficulty; 0% felt it was difficult to answer. 55% of the auto assembly engineers felt it was of medium difficulty. In sum, the seven goals were considered to be of importance by at least some engineers. These goals
Importance
TABLE 1 Survey Results of Goals 1 to 7 (Ranked
1 to 7)
Single Auto Assembly Plant
All Firms
Goal
Mean
Standard Deviation
Median
Mean
Standard Deviation
Median
1 2 3 4 5 6 7
3.3 2.8 4.4 4.1 5.2 4.6 2.7
2.2 1.3 1.9 2.0 1.9 1.1 1.6
3.0 2.5 4.5 4.0 6.0 5.0 2.0
1.9 2.1 5.4 4.7 6.7 4.7 2.9
0.9 0.9 1.6 1.8 0.5 1.0 1.7
2.0 2.0 6.0 4.0 7.0 5.0 3.0
American
Production and Jnventory Control Society
will be discussed and incorporated in a goal programming formulation below. It will be shown that the results of surveys such as the one reported on can be used in formulating a problem. It is comforting to know that practicing engineers do not find such a survey difficult to complete. GOAL
PROGRAMMING
FORMULATION
The following model is based on the interviews and survey. Let T = a lower bound for the minimum number of stations. ” 2.i
tj
T = smallest integer 2 ‘=] C
where tj = task time for task j, j = 1, . . . , n n = number of tasks c = cycle time = maximum time allowed for tasks at a work station.
E tjxij + diz- - diz+ = (aJ(c),
= 0 if task j is NOT assigned to station i, i= l,...,m j = l,...,n The seven goals above are discussed in turn. of the Number of Stations-(Goal
1)
The single objective in traditional assembly line balance formulations is minimization of the number of stations. In goal programming, it is treated as a constraint. A goal programming deviational variable di,+ is added. As will be shown later, deviational variables are minimized in the objective function. We have
fI I (Xin -
dil+) = 0
i=T+
(1)
where xin represents the task with no successor (i.e., last task). If more than one task has no successor, a dummy end task with time zero should be used. Cycle Time Constraints-(Goal
i
tjXij I
C,
Journal of Operations
Management
i= l,...,m
(2)
where: tj = task time for task j ai = percent of cycle time that can actually be performed at i c = cycle time. Workload (Goal 3)
Assigned
to Station since Last Balance-
A factor which must be considered in some facilities is the amount of workload assigned to a station under the previous balance. Obviously, this constraint may be ignored for first-time assembly line balancing. But if we are rebalancing an assembly line, any increase in the sum of task times assigned to a station (and thus to individuals) could result in a union grievance or worker morale problem. This is particularly true if the cycle time is unchanged. Again, we utilize the goal programming feature of deviational variables. (Different weights could be used with each variable depending on whether a grievance has previously been filed. Our interviews with practicing engineers revealed that greater importance is put on reducing deviational variables if a grievance has been filed.) The constraint is
2)
Cycle time constraints in most linear programming formulations [see 1, 12, 14, 151 are as shown below: j=l
We modify the basic cycle time constraint in two ways. First, to recognize the task time as a random variable would introduce cumbersome statistical notation. But we can require a slack at each station (a percent of the cycle time), thereby reducing the effective cycle time. Secondly, we introduce the goal programming deviational variables diz- and di2+ for station i. In the objective function, we will include diz+ only; dizP will be omitted. One of our objectives will be to minimize diz+. This will be explained later. However, di2- is excluded from the objective function since another constraint will minimize the number of stations and thus minimize diz-, idle time. The constraint is thus
j=l
Let m = the maximum number of stations desired, where m > T. Let x,~= 1 if task j is assigned to station i
Minimization
where c = cycle time tj = task time for task j.
i= 13
9 * * 7 m,
i tjxij + di3- - di3+ = (hi)(C),
(3)
j=l
where: bi = percent of cycle time assigned to station i the last time before rebalance. 211
Layout Constraint-(Goal
Precedence
4)
In some situations, the existing layout of a plant makes it highly desirable to locate certain tasks at certain stations. For example, painting a car should be done at say, station i, where the equipment is currently set up for painting. The formulation is xij + dib- = 1 (assign task j to station i)
Job Design Constraints-(Goal
5)
Davis [4, 51 demonstrates the effectiveness in a behavioral sense of assigning both rigid and variable (non-rigid) tasks to a worker (or station). Our goal is to distribute among the stations the rigid and thus unpleasant tasks. We try to avoid a concentration of rigid tasks at any one station. Again we will attempt to minimize the deviational variables (dis) in the objective function. The formulation is 5 ejxij + di5- - dis+ = Ei,
j=l
i= l,...,m
(5)
where ej = subjective rigidity measure [5] for task j (large ej means less opportunity for individual decision making). Ei = behavioral tolerance of workers at station i (Ei is also subjective).
0,
I
j=l,...,n,
(7)
prerequisite task to xij (if
“Assign Task Once” Constraints We obviously can assign a task to one and only station. Since xij = 1, if task j is assigned to station i, and xij = 0 otherwise, we can use the constraints: 5
i=l Objective
Xij =
1
for
j = 1, . . . , n.
(8)
Function
In goal programming, the objective function minimizes the deviational variables. These variables can be either cardinally or ordinally weighted. In our model, we will use ordinal weights as follows: Goal
Brief Description
Weight
1 2 3 4 5 6
Number of Stations Cycle Time Workload Layout Job Design Physical
g1 g2 g3
g4 g5
g6
6)
These are very similar to the previous set of constraints. Here, we measure the physical demands of each task. The formulation is: 5 cxij + dib- - die+ = Fi,
j=l
Here gi > gj implies for example that goal i is ranked higher than goal j. Such information could be obtained from surveys such as described above. The general expression for the objective function is: MIN Z = gi[ 2 i=T+
where i= l,...,m
(6)
where 4 = index of physical demands [ 1 I] of task j (e.g., number of calories per task) Fi = physical tolerance of workers at station i (e.g., maximum number of calories the body can stand during the cycle time) 212
and
where xkp = immediate it exists).
for all Xijwhich have physical plant constraints.
xkp
k=l
i= 1, * . . 2 m
and: did+ = 0 or 1,
Constraints-(Goal
2
Xij -
(4)
where: did- = 0 or 1
7)
Here we consider each task which must follow some prerequisite task. These constraints are considered in the traditional formulations. The version below is based on White’s refined version of Bowman’s model [ 15, 11.
xij - did+ = 0 (do not assign j to i)
Physical
Constraints-(Goal
1
Widil+],
g3Li! &+I,
a[?
gz[? di2+], i= I
i=l
g,Li! (45+)1,
t&C +
&+)I,
&ii! (die+)1 (9)
where: did+, dib-, dil+ = 0 or 1 dik 2 0, k = 1, 2, 3, 4, 5, 6.
American Production and Inventory Control Society
T
= theoretical minimum number of stations Wi = weight assigned to station i to minimize the number of stations, such that Wi I Wi+l . Wi could be set at 0. Note that since the model requires that precedence goals be adhered to strictly, no precedence weight appears in the above objective function. The formulation above is a mixed integer goal programming problem. All of the Xij variables have 0, 1 integer constraints, but the deviational variables generally do not. Previous line balancing studies [ 6, 12, 141 did not include the goal programming deviational variables. Lee and Morris [lo] examined a number of algorithms for integer goal programming problems. For large-scale problems likely to be encountered in real world applications, they reported [ 10, p. 2861 that cutting plane and implicit enumeration techniques were both inferior to branch-and-bound algorithms. This study proposes a branch-and-bound algorithm. GOAL-ORIENTED ALGORITHM BALANCE (GOAL): A GENERAL
FOR LINE DISCUSSION
A branch-and-bound algorithm is developed to solve the problem formulated above. The objective is to violate (if necessary) the goals ranked lowest. Further, the algorithm minimizes any deviation from the highest ranked goal that must be violated. This same objective was formulated above. The constraints considered are as previously formulated. The algorithm begins by creating an upper bound for six of the goals. These six goals can be violated. They include number of stations, cycle time, workload since last balance, layout, job design, and physiological constraints. Violation of precedence constraints is not allowed. The upper bound is the sum of the slack (e.g., idle time) that would result with respect to each goal, if the desired number of stations, m, is achieved. GOAL first attempts to satisfy all goals without violation. A set is created of all tasks which by themselves can be assigned to a station. Tasks which violate goals when assigned are not included in the set. If this set is empty, a goal must be violated. This case will be discussed later. This set is then partitioned into one or more subsets. Each subset contains only one task. These subsets become partial solutions. Each partial solution is a brunch. Journal of Operations
Management
In the course of the algorithm, lower bounds, one for each goal, are calculated for partial solutions. This represents the sum of slack in the partial solution. Those partial solutions (or branches) whose lower bounds exceed the upper bound for the problem are fathomed (excluded). Fathomed partial solutions will eventually violate goals. The algorithm then uses a brunch rule to select one of the partial solution subsets for further consideration. The rule used in GOAL is to pick the subset with the largest sum of assigned task times, In trial computer runs it was found that less work remaining to be assigned to a partial solution increases the likelihood that the solution is the best one. If this is true, the time that the algorithm takes to reach a solution is reduced. The algorithm then partitions the set of tasks still eligible for assignment once again. Each of n partitions is added to the partial solution under consideration, creating n more complete though still partial solutions. These partial solutions are then fathomed in the same way as described above. A branch rule then selects another partial solution for further consideration. This process is repeated until a complete solution is found. This would be the answer. If no complete solution is found, a goal must be violated. The goal chosen is the one which has the lowest ranking, i.e., is least important. The bound for that goal is eliminated and feasible answers may violate that goal. The algorithm then goes through the same process as described above for finding a best solution. However, once a complete solution is generated, the algorithm does not stop as before. It uses a branch rule to select another partial solution for completion. It chooses the partial solution that violates the goal least. Any partial solutions that violate a goal more than a complete solution are fathomed. The complete solution which violates the goal the least is the answer. If no complete solution can be found which violates one goal, another goal must be violated. The goal chosen is the goal with the second lowest rank. The procedure described above is repeated until an answer is found or the problem is found to be infeasible. An example is shown in Table 2 and a schematic of a solution is shown in Figure 1. In Figure 1, Z = the degree to which a goal is violated. GOAL:
STEPS
OF THE
ALGORITHM
A detailed description of the algorithm follows. A variable list can be found in Appendix I. 213
TABLE 2 Example Problem Rank
1
2
N/A
3
4
5
Goal
(Cycle)
(# Sta)
(Prec)
(Layout)
(Physical)
none not to Sta 2
fs = 8
ts = 2
fr = 4
tr = 1
4=7
(Work
6 Load)
(Job Design)
Task S
ts = 2
none
T
tr = 1
none
W
tw = 1
S
must be @ Sta 2
fw = 7
tw = 1
4y=8
X
tx = 2
T
none
fx = 8
tx = 2
ex = 7
none
fy = 5
t.f = 2
es = 4
eY = 2
~c t, = 8
2 f, = 32
c
ej = 28
(1) Cycle time: c = 4 (2) Theoretical minimum number of stations T = 8/4 = 2 (3) Desired number of stations = m = 3 = (1.5)T (4) Percent of cycle time actually performed: a = 1 (5) Last cycle time assigned to station: b, = 1, b2 = 1, b3 = .75 (8) Behavioral tolerance at stations: E, = E2 = E3 = 10 (7) Maximum number of calories to be used at station: F, = Fz = F3 = 12
Step 1: Obtain Necessary Data and Rank Goals The algorithm requires only an ordinal ranking of goals. Goals that one does not wish to meet should be specified and the algorithm will ignore them. The values m, n, a, b, C, ej, fj, Ei, Fi, tj, and precedence and layout constraints are input. Step 2: Initialize Sets of Tasks Let {S,} = set of tasks not assigned = all tasks in problem at start. {S,} = set of tasks eligible for assignment =0 {K, } = partial solution under consideration =0 {K2) = best complete solution = 0 {Li} = sets of i other partial solutions = 0 Step 3: Initialize Variables Let m = desired number of stations (In [ 151 it is suggested m = ( 1.5) i
ti/c rounded
j=l
to the nearest integer). N = current station assignment is made 1 g = lumber of goals one wishes to meet
214
Step 4: Determine Upper Bounds for Goals Goal
Upper
Description
1.
Minimization of stations
2.
Cycle time
of number
Bound
= B,
B, = m
B2 = (m)(a)(c)
- 5 tj j=l
3.
Workload balance
since last
B3 = I? (hi)(c) - 5 tj i=l
j=l
4.
Layout
B4 = Zero
5.
Job design
B5 = IF E, - i i=l
6.
Physical
demands
B,=$YFi-if; i= I
I.
ej
j=l
j=l
None used
Sequencing
If any B, < 0, then at least one goal must be violated. In this case the algorithm proceeds to Step 13. Create {S,} c {So> Find a task j E {So} such that if task j were assigned to station N, all g goals would be satisfied.
Step 5:
American
Production
and Inventory
Control Society
FIGURE 1 Solution to Example
1, NO FEASIBLE SOLUTIONSVIOLATE 0 GOALS (NOT PICTURED>, 2, VIOLATION OF 1 GOAL:
SOLUTION IS SHOWN ON UPPER BRANCH: KEY: Z = J (I> =
Iw,yI
p-1
STA, 1
STA, 2
STA, 3
VIOLATIONOF GOAL F, TASK J IS ASSIGNED TO STATION I,
Include all tasks j in {S,} which satisfy all g goals. Note that all tasks are not put in {S,}. Each task j is a candidate for station N. If {S,} = El, the algorithm skips Steps 6, 7, 8 and proceeds to Step 9. If {SO} = 0, the algorithm proceeds directly to Step 14. Step 6: Partition {S,} into h Tasks and Create h New Sets {Li 1 (Branches)
The algorithm partitions {S,} into its h tasks whereh= I,..., n. Each task is then added to the solution is set (K,} creating h partial solutions. Each partial solution is a new set {Li). This new set represents a new branch in the problem. It con-
Journal of Operations
p-1
Management
tains one additional task, which represents a task assignment to station N. Step 7: Use Branch Rule to Determine
Which (Li} Should be Considered Further Determine the sum of assigned task times for each {Li}. The {Li} with the largest sum is placed in {K,} and removed from {Li}. {K,} contains only one partial solution. The last task placed in {K,} is removed from {SO}.
Step 8: Repeat Steps 5, 6, 7 until {S,} = 0
All assignments to station N in {K, } are completed when {S,} = 0.
215
Step 9: Calculate Lower Bounds for {Kr } When {S,} = 0, lower bounds are calculated to see if {K,} should be fathomed. The algorithm calculates Bb: B; = N B; = (N)(a)(c) - C tj B3 = i$ (hi)(c) - i
tj
Bh = 1 if task j which must be assigned to station i has nut been assigned to station i 0 otherwise B; = 5 Ei - c ej, for all assigned tasks j i=l
Bk
=
5 i=l
j
Fi - 2 4, for all assigned tasks j j
Step 10: If All Bi I B,, Add a Station. Otherwise Go to Step II. If B;!I B,, N = N + 1. A new station is available for assignment. The algorithm repeats Steps 5, 6, 7, 8, 9 and 10. Step II: Fathom {K,}. If at least one Bb > B,, {K,} is fathomed. A fathomed {K, } will eventually violate a goal. It is discarded. The partial solution with the greatest sum of task times is removed from {L} and replaces {K, }. If {L} = 0 and this step cannot be performed by the algorithm, it proceeds directly to Step 13. Step 12: {So) Is Changed to Include All Tasks Except Those in {K, }. Repeat Steps 5- 11 until {L} and {K,} Is0or {So} 1~0. Step 13: If {L}, {K,}, and {K2 > = 0, Violate Lowest Ranked Goal. There is no feasible solution without violating a goal. Case 13a: If Violated Goals Are Ranked Higher Than Goal 1 (Number of Stations), Let m = m + 1. Return to Step 4. One additional station for assignment is permitted. N = 1. Case 13b: If Violated Goals Are Ranked Lower Than Goal 1, Set g = g - 1. Return to Step 5. The violated goal is no longer treated as a constraint in the additional steps. Step 14: If {S,} = 0, {K, } Contains a Complete Solution. Case 14a: If No Goals Violated, Stop. The optimum answer is in {K, }. 216
Case 14b: If Goals Violated, Check Partial Solutions in {Li} to See if Answer in {K, } Can Be Improved. When {Li} = 0, Stop. The answer in {K,} goes into {K,}. The algorithm places the partial solution from (Li} with the largest sum of task times into {Kr }. Unless {Li} = 0, the algorithm goes to step 5. While repeating steps the algorithm fathoms any partial solution removed from {Li} which violates a goal the same as or more than the solution in {K2}. If {Li} = 0, GOAL stops. The solution is in {K,}. COMPUTATIONAL
RESULTS
GOAL was coded in Basic and executed on the DEC PDP 1 l/70 at California State University, Northridge. An interactive version was programmed which allowed for input of data at the terminal. To serve as a realistic example, an actual assembly line balance problem was used to test the GOAL program. The final assembly operation of a major automobile manufacturer is the setting. A feeder assembly line, independent of the primary assembly line, assembles engine cradles. There are 73 independent tasks to be performed. However, several tasks (such as those requiring the same tooling) needed to be done together and were combined. This resulted in 35 remaining tasks. The work is currently done in nine stations. Data was gathered from plant records and observation. For example, standard task times were obtained from plant records but the actual times used in assembly line balance were not available and had to be estimated through direct observation. These data are shown in Appendix II. The ranking of goals is based on the automobile manufacturer survey results from Table 1. Including the real world auto assembly problem described above, 25 representative assembly line balance problems were created. The number of tasks varied in the problems from 4 to 35. Two versions of each were run with GOAL. The first version included the eight goals included in the formulation above. The second version involved a reformulation of each problem with only the traditional constraints of cycle time and precedence. Thus 50 problems were tested in all. The execution times for the test problems including the auto assembly problem are shown in Table 3. The mean CPU time in seconds for the traditional formulation compares favorably with other branch-and-bound methods. See [8]. This is true even though GOAL was not developed to solve traditional formulations. American Production and Inventory Control Society
TABLE 3 Computational Results
Problems
FIGURE 2 CPU As A Function of Number of Tasks
Mean
Mean
Mean
Stations
Tasks
(Seconds)
All
CPU
6.9
17.1
6.04
6.4
17.1
4.51
7.5
17.1
7.57
9’
35”
16.30’
Traditional Formulation
CPU SECONDS) + 14 12
10
New Formulation
8 6
Auto Assembly
4 2
* Exact Value
0I 2 4 6 8 10/ 12 14 16 18 23 22 24 26 28 30’
The new formulation resulted in a somewhat larger CPU time. In the example problems with the new formulation, the number of stations goal was not necessarily ranked high. Thus, the number of stations utilized often increased. The additional constraints and stations resulting from the new formulation thus required additional computation. The increase in CPU time appeared rather modest, however. Mean CPU time as a function of number of tasks is shown in Figure 2. 80% of the solutions generated fell between the upper and lower limits. It is striking to see that time increases in a linear, not exponential manner, as is the case with many existing assembly balance methods. In addition, unlike many existing methods such as COMSOAL [2], GOAL results in an optimum answer. TABLE 4 Solutions to Auto Engine Cradle Assembly Problem Tasks Traditional
Assigned
Formulation: Station 1 2
l
New
1, 2, 3, 4 5, 6, 7, 6, 9, 17
Formulation:
16.3 CPU*
12.6 CPU
1, 2, 3, 4
3
10, 11,14
5, 6, 7, a, 9 10,ll
4
12, 13, ia
12,13 14, 15, 16
5
15, 16
6
19, 20, 21, 25
17, ia, 19, 20, 21
7
22, 23, 24, 26, 27
22, 23, 24
a
28, 29, 30, 31, 32, 34
25, 26, 27, 28, 29
9
33, 35
30, 31, 32, 33, 34, 35
Same as solution currently being used.
Journal of Operations
Management
NUMBER OF TASKS
GOAL can solve realistic problems, such as the engine cradle example, in rather modest time. See Table 4. Several engineers were interviewed in the same California automobile assembly division. They all agreed that the solution generated by GOAL with the new constraints was superior to the traditional solution. SUMMARY
A goal programming formulation of the assembly line balance problem was developed from a survey of practicing engineers. It considered problem goals not considered in traditional formulations. An algorithm, GOAL, has been developed to solve the goal programming formulation. GOAL’s execution time appears linearly proportional to the number of tasks required. Even large automobile assembly problems requiring several hundred tasks would appear, from the results shown in Figure 2, to run for only several minutes. Future studies of interest might include experiments with larger problems, interactive versions of GOAL, models with a cardinal objective function, additional bounds for GOAL, and an investigation of the practical implementation of job design constraints. Like other behavioral aspects, the job design issue is difficult to include in a mathematical model. However, it cannot be ignored. REFERENCES Bowman, E. H., “Assembly Line Balancing by Linear Programming,” Operations Research, Vol. 8, No. 3, 1960, pp. 385-389. Buffa, E. S. and J. G. Miller, Production-Inventory Systems: Planning and Control, Irwin, Homewood, Ill., 1979. Charnes, A. and W. W. Cooper, Management Models and Industrial Applications of Linear Programming, Wiley, New York, 1961. Davis, L. E., “Job Satisfaction Research: The Post-Industrial View,” Industrial Relations, Vol. 10, I97 1, pp. I76- 193. 217
Socio-Technical View. Report 5. Davis, L. E., Job Satisfaction-A 575-l-69, Los Angeles, UCLA, 1969. “Assembly-Line Bal6. Held, M., R. M. Karp, and R. Sharesian, ancing-Dynamic Programming with Precedence Constraints,” Operations Research, Vol. 11, No. 3, 1963, pp. 442-459. 7. Ignizio, J. P., Goal Programming and Extensions, Lexington Books, Lexington, Mass. 8. Johnson, R. V., “The Assembly Line Balance Problem with Formulation Irregularities,” Management Science, Vol. 29, No. 11, 1983. 9. Kilbridge and Wester, “A Review of Analytical Systems of Line
10.
Il. 12.
13. 14.
15.
Balancing,” Operations Research, Vol. 10, No. 5, 1962, pp. 626-38. Lee, S. M. and R. L. Morris, “Integer Goal Programming Methods,” TIMS Studies in the Management Sciences: Multiple Criteria Decision Making, North Holland Publishing Co., 1977. Niebel, B. W., Motion and Time Study, Irwin, 1976, pp. 236-237. Patterson, J. H. and J. J. Albracht, “Assembly-Line Balancing: Zero-One Programming with Fibonacci Search,” Operations Research, Vol. 23, No. 1, 1975, pp. 166-172. Salveson, M. E., “The Assembly Line Balancing Problem,” Journal of Industrial Engineering, Vol. 6, No. 3, 1955, pp. 18-25. Thangavelu, S. R. and C. M. Shetty, “Assembly Line Balancing by Zero-One Integer Programming,” AIIE Transactions, Vol. 3, 1971, pp. 61-68. White, W. W. “Comments on a Paper by Bowman,” Operations Research, Vol. 9, 196 1, pp. 274-276.
ej Fi
4 g h i j (K) (L) m N n P 1%)
APPENDIX
I: VARIABLES
Variable
DeJinition
a
Percent of cycle-time actually performed. Cycle time most recently assigned to station i. Upper bound for goal g. Test value-upper bound of current partial solution. Flag set (flag = 1) to show that the violation of goal g is allowed (i.e. no longer a goal). Desired cycle time. Behavioral tolerance (boredom allowance) at station i.
bi B, BI: BI
C
I5
218
{So) T G X
xij
Z
Task rigidity (inherent boredom) for task j. Maximum calorie expenditure allowed at station i. Work load (in calories) for task j. The amount of goals in the current model. The number of tasks in the current set {S,). Station number (i = 1 to n). Task number (j = 1 to n). The partial solution being analyzed. The set of solutions (branches) not being evaluated currently . . . in the first iteration, {L} = 0. Maximum number of stations (needed/desired) m > T The station which is currently being analyzed for assignment of tasks. Quantity of tasks in the current problem. The quantity of tasks in (S,} The set of all tasks (yet to be assigned) which satisfy all g goals. {S,) = {So) The set of all tasks yet to be assigned. Lower bound for the minimum number of stations. An individual task time (for task j). Number of goals which must be violated. Integer variable. Xij = 1 if task j is assigned to station i. Xij = 0 is task j is not assigned to station i. Degree to which goal is violated.
American
Production and Inventory Control Society
APPENDIX
II: AUTO ENGINE
CRADLE ASSEMBLY
Rank
N/A
1
Goal
(Prec)
(# Sta)
Task
PROBLEM 2
3
(Cycle)
(Layout)
4
5
(Physical)
(Work Load)
Description
1
Get cradle
none
N/A
t, = 29
must be @ sta 1
f, = 0
t, = 29
2
Read frame specs.
1
N/A
fZ = 3
none
f2 = 0
fZ = 3
3
Assemble rt. frame
2
N/A
t3 = 5
not to 2, 4, 6, 9
fj = 1
tx = 5
4
Loose assbl. t-t. frame
3
N/A
tq = 22
not to 2, 4, 6, 9
f4 = 0
t4 = 22
5
Attach manifest
1
N/A
t5 = 6
none
f5 = 0
t5 = 6
6
Read spring specs.
5
N/A
t(j = 14
none
fs=
tg=
7
Place spring insulators
1, 6
N/A
t7 = 2
none
f7 = 0
t7 = 2
8
Assbl. left 6 frame
6
N/A
t8 = 5
not to 1, 3, 5, 7, 8
fs = 1
ts = 5
9
Loose assbl. left frame
8
N/A
tg = 22
not to 1, 3, 5, 7, 8
f9 = 0
ts = 22
10
Loose assbl. i-t. LCA
1
N/A
t ,0 = 30
not to 2, 4, 6, 9
f,,J = 10
t,,J = 30
11
Secure rt, fr. mount
4
N/A
tll = 23
not to 2, 4, 6, 9
f,, = 0
t11
12
Loose assbl. left LCA
1
N/A
t,2 = 30
not to 1, 3, 5, 7, 8
f,z = 10
t,2 = 30
13
Secure left fr. mount
9
N/A
t ,3 = 23
not to 2, 4, 6, 9
f,3 = 0
fl3
14
Place i-t. spring
7, 10
N/A
t 14 -2 -
not to 2, 4, 6, 9
f,4 = 2.5
t,4 = 2
15
Prep. for secure t-t. LCA
14
N/A
t,s = 19
not to 2, 4, 6, 9
f,s = 2.5
t15
16
Secure i-t. LCA
15
N/A
tl6
29
not to 2, 4, 6, 9
f,6 = 0
t,6 = 29
17
Get keepers
None
N/A
t 17 -2 -
none
f,7 = 0
t,7 = 2
18
Place left spring
7, 12
N/A
t 18 -2 -
not to 1, 3, 5, 7, 8
Journal of Operations
Management
=
18
fs = 2.5
=
=
=
14
23
23
19
f,8 = 2
219
APPENDIX
II (Continued)
Rank
N/A
1
2
Goal
(Prec)
(# Sta)
(Cycle)
(Layout)
4
3
(Physical)
5 (Work Load)
19
Prep for secure LCA
18
N/A
t19 = 19
not to 1, 3, 5, 7, 8
fig = 2.5
t,9 = 19
20
Secure left LCA
17, 19
N/A
tx, = 29
not to 1, 3, 5, 7, 8
f20 = 0
tx, = 29
21
Invert cross member
16, 20
N/A
t2, = 6
none
f2, = 15
t2, = 6
22
Place front brake pipe
21
N/A
tzz = 10
none
f22 = 0
t22 = 10
23
Loose assbl. brake pipe
22
N/A
t 23~
16
none
f23 = 0
tz3 = 16
24
Secure front brake pipe
23
N/A
tzz, = 23
none
f& = 0
t24 = 23
25
Loose assbl. rt. bumper
21
N/A
t25 = 5
not to 2, 4, 6, 9
f25 = 0
t25 = 5
26
Secure rt. bumper
25
N/A
f26 = 5
not to 2, 4, 6, 9
f2fj = 0
f26 = 5
27
Prepare for mating
24, 26
N/A
t2, = 5
none
f2, = 0
t2, = 5
28
Mate Xmember to engine
11, 13, 27
N/A
t28 = 40
not to 2, 4, 6, 9
f2* = 0
f28 = 40
29
Remove rt. ball jt. cap
28
N/A
t 29 -2 -
not to 2, 4, 6, 9
f29 = 0
t29 = 2
30
Left Xmember to engine
21
N/A
t3o = 5
not to 1, 3, 5, 7, 8
f30 = 0
t30 = 5
31
Secure left bumper
30
N/A
t31 = 5
not to 1, 3, 5, 7, 8
fj, = 0
f31
32
Install heat shield
21,31
N/A
t32 = 1
none
f32 = 0
t32 = 1
33
Mate Xmember to engine
11, 13, 27, 32
N/A
t33 = 40
not to 1, 3, 5, 7, 8
43 = 0
t33 = 40
34
Remove manifest
27
N/A
t34 = 2
none
f34 = 0
t34 = 2
220
American
=
5
Production and Inventory Control Society
APPENDIX
II (Continued)
Rank
N/A
1
2
Goal
(Prec)
(# Sta)
(Cycle)
(Layout)
N/A
t35 = 2
not to l,, 3, 5, 7, 8
35
Remove left ball jt. cap
33
3
4
(Physical) 45 = 0
5 (Work Load) t35 = 2
( 1) Cycle time: C = 60 (2) Theoretical minimum number of stations T = 8 (3) Desired number of stations = m = 9* (4) Percent of cycle time actually performed: a = 1 (5) Last workload assigned to station: b, = 59, bz = 49, b3 = 53, bq = 53, bs = 50, bb = 58, b, = 49, bs = 57, bs = 55
(6) Maximum number of pounds lifted or pushed at station: F, = F2 = F3 = Fq = F5 = F6 = F, = F8 = Fg = 20
* Current
Solution
Journal of Operations
Management
221