On Modeling Line Balancing Problems in Spreadsheets

Transcription

On Modeling Line Balancing Problems in Spreadsheets
Vol. 4, No. 2, January 2004, pp. 45–48
issn 1532-0545 04 0402 0045
informs
®
doi 10.1287/ited.4.2.45
© 2004 INFORMS
I N F O R M S
Transactions on Education
On Modeling Line Balancing
Problems in Spreadsheets
Cliff T. Ragsdale, Evelyn C. Brown
Department of Business Information Technology, Virginia Polytechnic Institute and State University,
Blacksburg, Virginia 24061, USA {crags@vt.edu, evebrown@vt.edu}
R
agsdale (2003) recently introduced an innovative approach to implementing project management networks
in spreadsheets that greatly simplifies the handling of precedence relations among activities. This paper
demonstrates how a similar technique can be used to create efficient spreadsheet models for line balancing
problems.
1.
Introduction
department where a 0.4 minute cycle time is desired
(adapted from Meredith and Shafer 2003).
The proposed spreadsheet model for this problem
is shown in Figure 2. [Click here http://archive.ite.
journal.informs.org/Vol4No2/RagsdaleBrown/
LineBalancing.xls to download the Excel file for this
example.] Cells E6 through E12 in this spreadsheet
represent decision variables indicating to which
workstation each task is assigned. In the solution
shown, each task has been arbitrarily assigned to a
unique workstation. Formulas in cells I6 through I12
compute the sum of the task times assigned to each
workstation. The total task time for each workstation
must not exceed the desired cycle time of 0.4 minutes
specified in cell I13. Clearly, the solution shown in
Figure 2 is sub-optimal as the activities assigned to
workstations 4 and 5 (i.e., activities d and e) could
be assigned to a single workstation with a cycle
time of 0.37 minutes without violating the required
precedence relations.
Note that a precedence violation occurs if the maximum workstation assigned to a predecessor for a
given task x is greater than (or “downstream” from)
the workstation to which task x is assigned. The maximum workstation assigned to predecessors for each
task is computed in column F by entering the following array formula in cell F6 (and copying it to cells
F7 through F12):
For a given a set of manufacturing tasks and a specified cycle time, the classical line balancing problem
consists of assigning each task to a workstation such
that: (1) each workstation can complete its assigned
set of tasks within the desired cycle time, (2) the
precedence constraints among the tasks are satisfied,
and (3) the number of workstations is minimized.
The line balancing problem appears in most introductory operations management textbooks (Krajewski
and Ritzman 2002, Meredith and Schafer 2003). See
Scholl (1999) for a detailed analysis of this problem.
The precedence relations among activities in a
line balancing problem present a significant challenge for students in formulating and implementing an optimization model for this problem. While
integer programming formulations are possible, they
quickly become unwieldy and increasingly difficult
to solve as problem size increases. As a result, many
authors recommend heuristic approaches to solving
the line balancing problem (Meredith and Schafer
2003, Sabuncuoglu et al. 2000, Suresh et al. 1996).
This paper introduces a simple, efficient approach
to implementing line balancing problems in spreadsheets. The resulting model can be used to facilitate
the discussion of heuristic solution techniques and/or
optimization using the evolutionary search engine in
Premium Solver for Education (provided with numerous spreadsheet-based OR/MS texts).
=MAX(IF(ISERR(FIND($B$6:$B$12,D6)),0,
$E$6:$E$12))
2.
Example
(Note that array formulas must be entered by pressing [Ctrl]+[Shift]+[Enter].) This array formula is comprised of four nested functions (i.e., FIND( ), ISERR( ),
Figure 1 shows the precedence relations and task
times (in minutes) for a credit application processing
45
46
Figure 1
Ragsdale and Brown: On Modeling Line Balancing Problems in Spreadsheets
INFORMS Transactions on Education 4(2), pp. 45–48, © 2004 INFORMS
Example Line Balancing Problem with Desired Cycle Time of
0.40 Minutes
IF( ), and MAX( )) that execute a “loop” or a series of
repeated calculations. Table 1 outlines the operation
of this array formula in determining the maximum
predecessor workstation for activity e (cell F10 in
Figure 2).
Figure 2
To evaluate the array formula for cell F10, Excel
starts with the innermost function and substitutes
each of the values in cells B6 through B12 as the first
argument (denoted by x in Table 1) in the FIND( )
function. In general, the function FIND(x, y) attempts
to find the text string denoted by x within the text
string denoted by y and, if found, returns the starting position of x within y; otherwise, it returns the
Excel error code “#VALUE!”. For example, FIND(“c,”
“c, d”) returns the vaue 1 because the letter “c” occurs
in the first position of the string “c, d.” Thus, in
Table 1 the FIND( ) function returns the value 1 when
cell B8 (containing “c”) is compared to cell D10 (containing “c, d”). Similarly, FIND(“d,” “c, d”) returns
the value 4 because the letter “d” occurs in the fourth
position of the string “c, d” (note that FIND( ) counts
the space following the comma). Thus, in Table 1,
Spreadsheet Model for the Example Line Balancing Problem
Cell
Key cell formulas formula
Copied to
E13
F6
I6
=MAX(E6:E12)
=MAX(IF(ISERR(FIND($B$6:$B$12,D6)),0,$E$6:$E$12)) (Press [Ctrl]+[Shift]+[Enter] to enter.)
=SUMIF($E$6:$E$12,H6,$C$6:$C$12)
—
F7:F12
I7:I12
Ragsdale and Brown: On Modeling Line Balancing Problems in Spreadsheets
INFORMS Transactions on Education 4(2), pp. 45–48, © 2004 INFORMS
Table 1
Determining the Maximum Predecessor Workstation for
Activity e
Cell F10: =MAX(IF(ISERR(FIND($B$6:$B$12,D10)),0,$E$6:$E$12))
Array value x
B6
B7
B8
B9
B10
B11
B12
FIND(x,D10)
ISERR( )
IF( )
#VALUE!
#VALUE!
1
4
#VALUE!
#VALUE!
#VALUE!
TRUE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
0
0
3
4
0
0
0
MAX( ) = 4
the FIND( ) function returns the value 4 when cell
B9 (containing “d”) is compared to cell D10 (containing “c, d”). In every other case, the FIND( ) function
returns the error code “#VALUE!” because none of the
other activities in cells B6 through B12 appear in cell
D10 as immediate predecessors of activity e.
The result of each FIND( ) function is then evaluated by the ISERR( ) function which returns a Boolean
value of TRUE if its argument evaluates to an error
Figure 3
Optimal Solution to the Example Line Balancing Problem
47
code or, otherwise, returns the value FALSE. The IF( )
function then uses this Boolean result to determine
whether to return a value of zero (the default maximum predecessor workstation for tasks without predecessors) or the corresponding value in the range E6
through E12. For instance, because the value in cell
B9 (“d”) is found in cell D10 as an immediate predecessor of activity e, the ISERR( ) function returns the
value FALSE and the IF( ) function returns the corresponding workstation assignment from the range E6
through E12 (i.e., the value 4 from cell E9). Alternatively, because the value in cell B6 (“a”) is not found
in cell D10 as an immediate predecessor of activity e,
the ISERR( ) function returns the value TRUE and the
IF( ) function returns the value zero.
As shown in Table 1, the IF( ) function produces a
series of values that are either zero or the assigned
workstation number for activities that are immediate
predecessors of activity e. The MAX( ) function then
returns the largest of these values (i.e., 4) which represents the workstation to which activity d is assigned.
Note that if an activity has no immediate predecessors
(e.g., activity a) then all the values returned by the
Ragsdale and Brown: On Modeling Line Balancing Problems in Spreadsheets
48
INFORMS Transactions on Education 4(2), pp. 45–48, © 2004 INFORMS
IF( ) function will be zero and, as a result, the maximum predecessor workstation for such an activity
will also be zero.
In Excel 2002 (XP), the steps outline in Table 1 can
be replicated dynamically in the spreadsheet to assist
in one’s understanding of the array formula used in
column F. To do this, select cell F10 and click Tools,
Formula Auditing, Evaluate Formula. You may then
step through the process Excel goes through in evaluating this formula.
Figure 3 shows an optimal solution to the problem
found using Premium Solver for Education. Although
this approach to implementing line balancing problems in spreadsheets is very efficient, the resulting
model is nonlinear and best attacked using Solver’s
evolutionary algorithm. As a result, there is no guarantee that Solver will stop at a global (rather than
local) optimum. However, if a heuristic is used to
specify a good initial starting solution, Solver is usually effective at improving the solution if the initial solution is sub-optimal. (See Meredith and Shafer
2003, p. 193 for a description of the longest operation
time next (LOT) heuristic for this problem.) Of course,
one may also initiate Solver several times in an effort
to ensure that a good solution is found.
3.
Comments
As noted in Ragsdale (2003), the technique presented
above relies on the (case-sensitive) FIND( ) function
to identify each task’s maximum predecessor workstation. Recall that the function FIND(x, y) attempts to
find the text string denoted by x within the text string
denoted by y. As a result, it is critically important to
use task labels that are unique and do not appear as
substrings within other task labels.
For example, the 26 letters of the English alphabet
may be used to uniquely identify up to 26 tasks. However, using the strings “A1” and “A11” as task labels
would not work in the proposed technique because
the FIND( ) function would locate “A1” within “A11”
(i.e., FIND(“A1,”“A11”)=1)—erroneously identifying
task A1 as a predecessor of task A11. Fortunately, use
of the strings “A01” and “A11” as task labels easily
remedies this situation.
Similarly, if one wishes to use numbers rather
than letters to identify tasks, using the numbers
1 2 3 9 as task labels would create matching
problems within task labels 11 12 13 19 (among
others). However, this can be avoided easily by applying Excel’s “Text” format to cells containing task labels
and immediate predecessors (i.e., columns B and D
in Figure 1) and using two-digit numbers for all task
labels (e.g., 01 02 03 09 10 11 12 13 99). If
more than 100 numeric task labels are needed, threedigit numbers (formatted as text) should be used.
4.
Conclusions
This paper introduces an efficient, innovative
approach for modeling line balancing problems in
spreadsheet using array formulas. While the resulting
spreadsheet model is nonlinear and requires heuristic optimization, it makes line balancing problems
far more accessible to students and practitioners than
more complicated integer programming spreadsheet
models for this type of problem (which may also
require heuristic optimization as the problem size
increases). Additionally, it introduces students to the
power provided by array formulas in a motivating
and easily understood fashion.
References
Krajewski, L., L. Ritzman. 2002. Operations Management Strategy and
Analysis, 6th ed. Prectice-Hall, New Jersey.
Meredith, J., S. Shafer. 2003. Introducing Operations Management.
Wiley, New York.
Ragsdale, C. T. 2003. A new approach to implementing project networks in spreadsheets. INFORMS Trans. Ed. 3(3), http://ite.
pubs.informs.org/Vol3No3/Ragsdale/index.php.
Sabuncuoglu, I., E. Erel, M. Tanyer. 2000. Assembly line balancing
using genetic algorithms. J. Intelligent Manufacturing 11
295–310.
Scholl, A. 1999. Balancing and Sequencing of Assembly Lines. Springer
Verlag, Heidelberg.
Suresh, G., V. Vivod, S. Sahu. 1996. A genetic algorithm for assembly line balancing. Production Planning and Control 7(1) 38–46.
∗
∗
∗
To reference this paper, please use:
Ragsdale, C. T. and E. C. Brown (2004), “On Modeling Line Balancing Problems in Spreadsheets,” INFORMS Transaction on Education, Vol. 4, No 2, http://archive.ite.journal.informs.org/Vol4No2/
RagsdaleBrown/.