Implementing Line Balancing Heuristics in Spreadsheets

Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Vol. 13, No. 2, January 2013, pp. 114–125
ISSN 1532-0545 (online)
I N F O R M S
Transactions on Education
http://dx.doi.org/10.1287/ited.1120.0096
© 2013 INFORMS
Teaching Note
Implementing Line Balancing
Heuristics in Spreadsheets
Howard J. Weiss
Department of Marketing and Supply Chain Management, Fox School of Business, Temple University,
Philadelphia, Pennsylvania 19122, hweiss@temple.edu
T
wo previous papers in INFORMS Transactions on Education demonstrated an innovative Excel array formula
approach that can be used for the handling of precedences in project management and assembly line balancing models. In this paper I combine the array formula approach with a clever but simple precedence coding
system to present an efficient spreadsheet for performing assembly line balancing using the heuristic method
that is common in operations management textbooks. In addition, I demonstrate to students a perturbation
method to handle ties in algorithms in Excel and also demonstrate the application of Excel’s Scenario Manager
to line balancing.
Key words: assembly line; balancing; heuristic; priority rule; Excel; array formula; scenarios
History: Received: September 2011; accepted: March 2012.
1.
Introduction
and Brown (2004). The evolutionary search engine is
standard in Solver in Excel 2010 but was not in versions prior to that. Although it is now standard it was
very time consuming because it required thousands of
subproblems to be solved for Ragsdale and Brown’s
(2004) small example.
Basically, there is only one heuristic that is presented in the textbooks, but there are different priority rules that can be used within the heuristic.
I outline the heuristic in §2. Table 1 displays the
priority rules included in the Meredith and Shafer
(2003) and Krajewski et al. (2013) textbooks referenced by Ragsdale and Brown (2004), in the Jacobs
and Chase (2011) textbook and also in the textbooks
examined by Meile (2005) in his article titled Selecting
the Right OM Textbook for the Right Course. The table
also indicates that both the WinQSB and POM-QM for
Windows software packages each contain all five rules.
The model presented in this paper could be used
in different ways in the classroom. Because I teach an
operations course, I do not ask the students to build
the model but rather use it as a template for solving
problems with the same number of tasks as the template. I do point out to the students the inclusion of
Excel’s array formulas in the model and the use of
Excel’s Scenario Manager.
Ragsdale and Brown (2004, p. 45) noted, that “line
balancing problems appear in most introductory
operations management (OM) textbooks.” In addition, line balancing methods appear in general quantitative methods problem solving educational software
packages such as WinQSB (Chang 2003) and POMQM for Windows (Weiss 2006). Ragsdale and Brown
(2004) created a nonlinear optimization model for
assembly line balancing that could be solved using
the evolutionary search engine in Premium Solver for
Education. However, most, if not all, operations management textbooks do not include any optimization
models but instead present a heuristic method that
relies on priority rules. In this paper I use Ragsdale’s
(2003) innovative Excel array formula approach for
precedence handling and some clever but simple
precedence coding in order to implement in Excel
the heuristic that appears in the textbooks. The major
advantages of the formulation in this paper compared
with Ragsdale and Brown (2004) are that this method
matches the method presented in the textbooks, the
method does not require knowledge of mathematical
programming, and the method solves the problem as
soon as the data is entered as opposed to using Excel’s
evolutionary search engine as proposed by Ragsdale
114
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
115
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Table 1
Priority Rules for Assembly Line Balancing Displayed in
Operations Management Textbooks and Software Packages
Table 2
Longest
Most
Ranked Shortest Fewest
operation following positional operation following
time
tasks
weight
time
tasks
Davis and Heineke
(2004), 5e
Heizer and Render
(2011), 10e
Jacobs and Chase
(2011), 13e
Krajewski et al.
(2013), 10e
Meredith and Shafer
(2003), 3e
Reid and Sanders
(2007), 3e
Stevenson
(2007), 9e
WinQSB, 2
POM-QM, 3
Construction and Use of the
Spreadsheet Model
I use the same example as originated in Meredith and
Shafer (2003) and used by Ragsdale and Brown (2004).
Figure 1 has been copied from Ragsdale and Brown
Figure 1
Example Line Balancing Problem
0.37
b
0.20
a
0.21
c
e
0.19
d
0.18
Station 2
Station 3
Station 4
Station 5
In the next section I develop the spreadsheet using
the longest operation time rule. As can be seen in
Table 1, this is the most common rule among the
textbooks and also the first rule that is discussed in
most textbooks. In the following section I demonstrate that although ties may be easy to handle
when solving a problem by hand they need to be
considered when developing Excel spreadsheets or
difficulties will ensue. Following that I extend the
ideas of the longest operation time rule to present
the easy changes for using the four other common
priority rules—most following tasks, ranked positional weight, shortest processing time, least following tasks. In addition, I demonstrate the value of
Excel’s Scenario Manager to students for creating a
summary of the results obtained using the five different methods.
2.
Station 1
0.39
0.36
f
g
The Balancing Process
Task
Task time
(in minutes)
Remaining
unassigned
time
(in minutes)
A
D
B
C
E
F
G
020
018
037
021
019
039
036
0.20
0.02 idle
0.03 idle
0.19
0.00 idle
0.01 idle
0.04 idle
Feasible
remaining
tasks
A
D
None
None
E
None
None
Finished
Task with
longest
operation
time
A
D
E
(2004). The times displayed are in minutes and the
cycle time is given as 0.4 minutes.
Each iteration of the heuristic executes the following steps.
Step 1. Determine how many tasks are feasible.
That is, identify and count those tasks that
(i) have had their precedences met,
(ii) have not yet been scheduled, and
(iii) do not require more time than the time
remaining at the station.
Step 2. If there does not exist a task that is feasible
then
(i) begin a new station (increment the station
count), and
(ii) allocate a complete cycle time to that station.
Step 3. Schedule the task that best satisfies the priority rule.
Observe that one task is assigned to a station at
each iteration. Therefore, the number of iterations will
equal the number of tasks.
In Table 2 we demonstrate the table that would
be created by following these steps using the longest
operation time rule. Table 2 is similar to the style of
Exhibit 6A.11 in Jacobs and Chase (2011) or Exhibit
12.12 in Davis and Heineke (2004) except that I have
added a row above Station 1 to demonstrate that at
the beginning of this example only task A is feasible.
This example, which we have taken from Ragsdale
and Brown (2004), is somewhat uninteresting because
there is never more than one feasible task at each step.
Our next example, with ties, will be more interesting.
2.1. Setting Up the Spreadsheet
I provide the workbook file ALB.heuristics.xls as
a supplement to this paper. The first worksheet,
“Longest Operation Time (LOT),” appears in Figure 2.
The cells shaded in green contain the original data as
they would appear in a typical OM textbook. To the
left of this table of data, in column A, the times that
appear in column C have been duplicated because
I will need to perform an Excel VLOOKUP based on
the times, and the lookup values must be in the first
column of the table.
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
116
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Figure 2
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Spreadsheet Model for Longest Operation Time Rule
The iteration section of the spreadsheet has two sections. The top of the iteration section (rows 17 to 24)
is used to keep track of which tasks are ready for
scheduling. One of the more difficult aspects of creating spreadsheets for line balancing (and project management) is dealing with the precedence constraints.
To do this I am going to use a code for the status of
each task during each step of the process. In implementing the heuristic for this problem, typically one
keeps track of which precedences have been met for
any task. However, a simple observation is that it is
not necessary to know the specific precedences that
have been met but simply the number of precedences
that have been met! For example, task E has two
precedences so when two precedences for this task
have been met, task E is ready to be scheduled. The
codes for the activities that are used in the spreadsheet are displayed in row 16 of the spreadsheet and
in more detail in Table 3.
Thus, in order to keep track of the number of unmet
precedences I need to begin by determining the number of precedences that exist for each task and then
subtract one each time that one of the precedences
for this task is met. The formulas to be used are in
Table 4.
Table 3
Task Codes
Code
Meaning
−1
0
n>0
The task has already been scheduled
The task is ready to be scheduled
The number of precedences remaining for this task
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
117
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Table 4
Table 6
Maintaining the Task Codes
Cell
Formula
Copied to
D18
=SUM(IF(ISERR(SEARCH($B$18:$B$24,$D6)),0,1))
(Press [Ctrl] + [Shift] + [Enter] to enter.)
=IF(ISERR(SEARCH(D$32,$D6&$B6)),D18,D18−1)
D19:D24
E18
Table 5
Computation of the Initial Number of Precedences for Task E
Array value x
B18
B19
B20
B21
B22
B23
B24
E18:J24
SEARCH (x, D10)
ISERR( )
IF( )
#Value!
#Value!
5
7
#Value!
#Value!
#Value!
TRUE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
0
0
1
1
0
0
0
Sum = 2
The original count of precedences for each task
is given in cells D18:D24. (Because this is based
on the initial data I have color coded the cells in
orange). The formula uses Excel’s array formula previously described by Ragsdale (2003) and also used
in Ragsdale and Brown (2004). Table 5 displays an
example of the initial precedence count for task E that
is displayed in cell D22:
Cell D22 = “=SUM(IF(ISERR(SEARCH($B$18:
$B$24,$D10)),0,1))”.
Notice that the formula in cells D18:D24 uses the
SEARCH function rather than Excel’s FIND function to avoid the upper/lower case problems noted
in Ragsdale (2003) and repeated in Ragsdale and
Brown (2004).
The formulas in the following columns (E18:J24)
will subtract one from the precedence count if the
most recent task scheduled (row 32) is one of the
precedences for this task. Also, I have included
the current task name in the search so that if this is
the task that is scheduled the number of precedences
will drop by 1 from 0 to −1 and the task will not be
scheduled a second time.
This array formula approach is different from the
one in Ragsdale and Brown (2004). They used an
array formula to create constraints that ensured that
the station number of every task was at least as
high as the station number for each of that task’s
predecessors.
2.2. Iterating
The assembly line balancing heuristic can now be performed. The formulas to be used are in Table 6. The
iteration steps are performed as follows in the spreadsheet. Note that some of the copying begins in column
Determining If a Task Is Available and Will Fit in the
Remaining Time
Cell
Formula
D27
E27
D28
=C4
=D29−D31
=SUM(IF($C$6:$C$12<=D27,1,0)
∗
IF(D18:D24=0,1,0))
(Press [Ctrl7 + 6Shift7 + 6Enter] to enter.)
=IF(D28>=1,D27,$C$4)
1
=IF(E28>=1,D30,D30+1)
=MAX(IF($C$6:$C$12<=D29,1,0)
∗
IF(D18:D24=0,$A$6:$A$12,0))
(Press [Ctrl7 + 6Shift7 + 6Enter] to enter.)
=VLOOKUP(D31,$A$6:$B$12,2,FALSE)
D29
D30
E30
D31
D32
Copied to
F27:J27
E28:J28
E29:J29
F30:J30
E31:J31
E32:J32
D but that for the time available (row 27) and the station number (row 30) the copying begins in column
E because column D contains initial values, which I
have indicated by color coding them orange.
Row 27. Time available—at the beginning of the
problem, the time available (D27) is the cycle time as
given in cell C4. Because this is initial data it is color
coded as orange. For all other iterations (E27:J27) the
time available is the time that was previously available minus the time for the task that was just placed
into the balance during the previous iteration one column to the left.
Row 28. We need to determine if any task is feasible. A task is feasible if it meets the following three
conditions:
Condition 1. The task has not been performed
already (code > −1).
Condition 2. The task has had its precedences met
(code = 0).
Condition 3. The task will fit in the remaining time.
Note that the way the activities are coded means
that if condition 2 is met then condition 1 is met
because the code will be 0 which is greater than −1.
The approach I have taken is to count the number
of tasks that meet the requirements. Obviously, if the
results are 0 then a new station needs to be added,
otherwise one of the ready tasks can be included into
the station. The formula for this is the array formula.
=SUM(IF($C$6:$C$12<=D27,1,0)∗ IF(D18:D24=0,1,0)).
The first IF statement checks that the task will fit
into the remaining time, and the second IF statement
tests that the code for the task is 0. The multiplication performs an AND operation. Note that an IF
statement is used inside the SUM because the AND
statement does not function properly inside the array
function. The product of the two IF statements will
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
118
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Table 7
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Table 8
Computation of the Number of Tasks That Fit in the
Remaining Time
Identification of the Longest Operation Time That Fits in the
Remaining Time
Array
value
IF($C$6:$C$12<=E27,1,0)
Array
value
IF(E18:E24=0,1,0)
Product
Array
value
IF($C$6:$C$12
<=E29,1,0)
Array
value
C6
C7
C8
C9
C10
C11
C12
1
0
0
1
1
0
0
D18
D19
D20
D21
D22
D23
D24
0
1
1
1
0
0
0
0
0
0
1
0
0
0
C6
C7
C8
C9
C10
C11
C12
1
0
0
1
1
0
0
E18
E19
E20
E21
E22
E23
E24
IF(D18:D24=0,
$A$6:$A$12,0)
0
0037
0021
0018
0
0
0
Product
0
0
0
0.18
0
0
0
Sum = 1
Max = 0018
be 1 if and only if both conditions are met. The SUM
function is used to count the number of tasks that
meet the requirements at each iteration. Table 7 displays an example of the count of the tasks that will fit
in the remaining 0.20 minutes after task A has been
scheduled:
This formula finds the first task that takes that
amount of time. This will cause problems in case of
ties, which I will discuss in the next section.
Finally the formula for the task completion table is
determined as follows. The code in cell E18 is
Cell E28 = “=SUM(IF($C$6:$C$12<=E27,1,0)
∗
IF(E18:E24=0,1,0))”0
Rows 29 and 30. If one or more tasks fit into the
allotted time then simply continue. If not, another station needs to be added (increment the station number by one) and the available station time needs to
be reset to the cycle time. The following statements
accomplish this.
Row 29. =IF(D28>=1,D27,$C$4) where D28 is the
number of tasks that are ready, D27 is the time available and C4 is the cycle time.
Row 30. Cell D30 is set to 1 because this is the starting station number, again colored orange. All other
cells in the row are based on the following formula:
=IF(E28>=1,D30,D30+1), where E28 is the number
of tasks that fit, and D30 is the current station number.
Row 31. At this point the task to schedule needs to
be determined. The formula for row 31 is conceptually the same as for the formula for row 27. The difference is that the time used to test whether the task
will fit is now given by the adjusted time in row 28
rather than the original time in row 26. In addition,
the task code should be returned rather than a count
of the number of available activities. The MAX function selects the task that has the longest operation
time:
=MAX(IF($C$6:$C$12<=E29,1,0)
∗
IF(E18:E24=0,$A$6:$A$12,0)).
Table 8 displays an example of determining the
longest time that will fit into the remaining time.
Row 32. A table lookup is used to find the name
and time of the task with the given code:
=VLOOKUP(D31,$A$6:$C$12,2,FALSE)0
=IF(ISERR(SEARCH(D$32,$D6&$B6)),D18,D18−1)0
The number of unmet precedences is reduced by
one if one of its precedences was completed or if the
task itself was completed. The results of the iterations
can be seen by looking at the columns D through J
one column at a time from left to right.
2.3. Summary Results
Most of the textbooks present summary results for
any rule. The summary results are displayed in
rows 36 to 44 of the spreadsheet for our example in
Figure 2. The formulas are very straightforward and
are displayed in Table 4.
In addition, some textbooks, such as Heizer and
Render (2011) reduce the cycle time that is used when
there is idle time at every station. The minimum
idle time is given by the minimum of the available
times in row 27. This could easily be added to the
spreadsheet. In this particular example, the minimum
time is 0 at station 3 where tasks C and E are both
scheduled.
2.4. Adding or Deleting Activities
This example has seven activities but it is very
straightforward to insert or delete activities. In Figure 3 we display an example of adding three rows. To
add activities do the following:
1. Select any row after the first row in the table
of data and insert however many additional rows
are needed. Note that several formulas include references to the times in $C$6.$C$12. Inserting a task after
task A will correctly modify these formulas beyond
$C$12 or to $C$6.$C$15 in our example of adding
three rows. Inserting a row before row A will not
modify these formulas and therefore not include all
of the tasks.
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
119
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Table 9
Computation of Summary Statistics
Result
Formula
Cycle time
Time needed per cycle
Min (theoretical) number of stations
=C4
=SUM(C6:C12)
=CEILING(C13/E35,1)
Actual number of stations
Time allocated per cycle
Idle time per cycle
Efficiency
Balance delay
=MAX(D29:J29)
=E39∗ E35
=E40−E36
=E36/E40
=1−E42
Enter the tasks, times, and predecessors for the new
tasks and copy the lookup criterion from the cell
above in column A to the new rows as I have done in
rows 8, 9, and 10.
2. Select the corresponding rows in the iterations
table and right click and insert the same number of
rows as in the table above. Copy the row above the
Figure 3
Inserting Tasks into the Model
Explanation
This is given rather than computed
This is the sum of the task times
This is the amount of total task time divided by the cycle time and
rounded up to the nearest integer
This is the maximum (or last) station number
This is the number of stations multiplied by the cycle time
This is the time allotted minus the time required
This is the ratio of the time required and the time allotted
This is 1 minus the efficiency
new rows in the iteration table as I have done in rows
23, 24, and 25.
3. In the iteration table, insert three columns prior
to the last column as shaded in pink in Figure 3. Copy
the column on the left of the inserted column, column G in the example, all the way to the last iteration
on the right. The columns need to be inserted into the
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
120
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
iteration rows rather than appended to the end of the
iteration rows in order for the formulas in the results
summary to be updated properly.
Deleting activities is even easier. Simply delete the
rows in each of the two tables that correspond to the
activities and delete the extra iterations on the right
of the iterations section.
3.
Ties in Excel—Pertubations
If there are two activities with the same time then the
model will fail because of Excel’s table lookup. This is
displayed by the example in the spreadsheet named
“LOT—tie” shown in Figure 4. The time for task C
has been changed to 0.18, which is identical to the
time for task D. The table lookup fails as can be seen
by the highlighted cells in row 32 in Figure 4.
To preclude a tie from happening I need to perturb
the lookup criterion for each task as displayed in the
spreadsheet titled “LOT—tie prevention” and shown
in Figure 5. The need to perturb solution methods
in order to get them to work has existed long before
Excel was used. With respect to linear programming, Gass (1993, p. 335) noted, “In 1952, we knew
that perturbing the linear constraints would counteract degeneracy.” The perturbation method suggested
then was to modify numbers by a very small amount
so as to not allow for any ties while not significantly
Figure 4
Spreadsheet Model for Modified Example with Tie
changing the problem because the perturbation is to
be very, very small. In a similar fashion, I have added
a tie prevention column, E, with unique amounts that
are much smaller than the task times in order to perturb the lookup criterion in column A without making a major change in the task times being examined.
The prevention codes need to be much smaller than
the task times because otherwise the prevention codes
might create ties that did not exist initially. In our
example the lookup criteria for tasks C and D will be
given as 0.17997 and 0.17996 as can be seen in row 31
of the spreadsheet where we use the perturbed time
rather than the actual time to identify the activity to
be scheduled. Each of these two times is virtually the
0.18 it is supposed to be but the difference between
the two values is enough for Excel’s VLOOKUP function to distinguish between them and break the tie. It
is important to subtract the perturbation factor rather
than add the perturbation factor. If we add the factor
then if the time remaining is equal to the task time the
method will think that the task cannot fit because it is
too long. For example, if task E takes 0.19 minutes, its
perturbation factor is 0.00005 and the time remaining
in the station is 0.19, then if we add the perturbation factor the method will think that task E cannot
fit because it will compare 0.19 to 0.19005. A byproduct of subtracting the perturbation factors is that any
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
121
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Figure 5
Spreadsheet Model for Modified Example with Tie
ties will be resolved in alphabetical order of the task
names if the perturbation factors are increasing.
Notice that for finding the next task I look up the
perturbed activity time rather than the actual activity
time as displayed in row 31. This means that I need
to add a row to look up the actual activity time in
order to keep track of the actual time available at the
station. This appears in row 33.
4.
Multiple Priority Rules
In the first two examples the longest operation time
rule has been used to decide which task to place in
the station when multiple tasks are ready and will fit.
There are other rules that could be used and the original spreadsheet can easily be modified to allow for
selecting from among the five rules that are presented
in §1 of this paper.
4.1. Other Priority Rules
In the spreadsheet titled “Multiple Priority Rules”
and displayed in Figure 6 I have modified the data
section of the spreadsheet to create a table that incorporates the priority measures for each job for each of
the priority rules. Note that task C has been set to its
original time of 0.21.
Column G is simply the processing time in column C. Column H contains the number of following
tasks and column I contains the ranked positional
weight (sum of the weights of the task and all of its
followers). In §5 of this paper we demonstrate how to
compute these two values using Excel. Columns J and
K contain the inverse of columns G and H because
the rule is reversed from longest to shortest or most
to least.
A data input cell, F3, has been added to select
which method should be used, and the methods have
been numbered 1 through 5 in cells G4 through K4.
Most of the cells are identical to the previous
spreadsheet. The only change is in the lookup criterion used for each cell. Thus, formerly I had in cells
A6:A12 the task time minus the perturbation factor,
for example,
A6=C6−E6
To vary the rule that is used, I used a table lookup
to find the criterion from the new table that has been
created on the right of the data. The formula for A6 is
=OFFSET(F6,0,$F$3)−E6
To see results from different rules simply change
cell F3 from 1 to 2 to 3 to 4 to 5.
4.2. Using Excel’s Scenario Manager
Once I have implemented all of the decision rules into
the spreadsheet it is easy and useful to use Excel’s
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
122
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Figure 6
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Spreadsheet Model for Multiple Priority Rules
Scenario Manager to compare all of the results in one
spreadsheet. The Scenario Manager can be found on
the data tab under the what-if analysis dropdown as
shown in Figure 7.
Scenarios allow for easy changes of values in the
cells in the spreadsheet. The Scenario Manager offers
the option to add scenarios and we have added one
scenario for each of the five balancing rules as displayed in Figure 8.
For each of the priority rules we have indicated that
the cell we wish to change is cell F3, the cell with the
code for which priority rule to use as displayed in
Figure 9.
For the value we simply put the code for the rule,
1 through 5, into cell F3 as displayed in Figure 10.
Figure 7
What-If Analysis
Figure 8
The Scenario Manager
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
123
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Figure 9
Selecting the Cell(s) to be Changed for the Scenario
5.
Technical Details
Two technical details should be addressed. The first
addresses the names of the tasks and the second
explains the computation of the number of following
tasks and the ranked positional weight.
5.1. Restriction on Names
Our spreadsheets have the same drawback as
Ragsdale and Brown’s (2004) in that one must be careful with naming the tasks in order to ensure that the
name of one task is not wholly contained in the name
of another. For example, if one task is named A and
another task is named A1 this will cause problems
when searching for precedences. For this reason we
have added a name check below the original spreadsheet in rows 49 through 56 as shown in Figure 12.
I have placed the names of the tasks in row 49 and
in column B, placed the formula
Figure 10
Changing the Rule That is Used
Finally, from the Scenario Manager window (see
Figure 8) we select the summary button and are
presented with a summary of the results for all
five methods on one spreadsheet as displayed in
Figure 11. Column A was copied from the original
spreadsheet. It is not created by Scenario Manager. It
can be easily seen from the summary table that for
this particular example all rules lead to the same number of stations.
Figure 11
Automated Summary of Results Using Scenario Manager
=IF(ISERR(SEARCH($B50,C$49)),0,1)
into cell C50, and copied the formula to all 49 cells
in the 7 by 7 table. If the row name in column B is
found in the column name in Row 49 then a 1 is the
result of the IF statement, otherwise there is an error
and a 0 is the results. In the example in Figure 12 I
have changed the name of the last task to cc in order
to demonstrate that a 1 is picked up in cell I52. Also
notice that a 1 is placed in each diagonal cell because
the row name is the same as the column name. Finally,
in cell B1 we have included the following code:
=IF(SUM(C50:I56)>COUNT(C6:C12), “There is a
problem with the task names. One name is contained
with another. ‘,’ ”).
This will display an error message if the number of tasks with names contained in another task,
SUM(C50:I56), is greater than the number of tasks,
COUNT(C6:C12), as is the case in this example where
the sum is 8 but there are only 7 tasks.
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
124
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Figure 12
Checking Names
Figure 13
Computation of Number of Following Tasks and Ranked Positional Weight
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
INFORMS Transactions on Education 13(2), pp. 114–125, © 2013 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
5.2.
Computing the Number of Following Tasks
and the Ranked Positional Weight
To compute both the number of following tasks and
the ranked positional weight for each task I will follow the same approach that was taken by Weiss (1987)
for classifying the states of a Markov chain. Figure 13
displays the computations.
In cells C63:I69 I have converted the immediate
precedence list from the original data into a precedence matrix, P = 4pij 5, where pij = 1 if task i is an
immediate predecessor of task j or if i = j. I need the
latter condition for the matrix multiplications to follow. The matrix P is akin to a one-step Markov transition matrix. The formula for creating this matrix is
C63 = “=(1−ISERROR(SEARCH($B63,C$61)))
+($B63=C$62)”0
This formula is then copied to the remaining cells
down to I69.
Cells C73:I79 are given by multiplying the matrix P
by itself. This is accomplished by using the array formula MMULT. The matrix P 2 can be interpreted as a
two step precedence matrix. That is, pij is 1 or greater
if task i precedes task j in no more than two steps.
For example, notice that cell H73 is positive because
examining Figure 1 you can get from task A to task F
through task B in two steps whereas I73 is 0 because
there is no path from task A to task G in two steps
or fewer.
Because there are seven tasks in the example, it will
take no more than six steps to go from one task to
another. Therefore, we need to multiply until we at
least have reached P 6 . Thus we square P 2 to yield P 4
and square P 4 to yield P 8 , which is more than sufficient. If an element is positive in P 8 then task i precedes task j.
The next step is to count the number of following
tasks that we have done in J92:J99 by counting the
number of positive entries in each row and subtracting 1 since pii = 1 for all tasks but task i does not
follow itself. The last step is to place the task times at
the bottom of the table in row 100 and then for each
task to sum the task times of all of the followers. The
last step is accomplished with another array formula:
K93 = ”=SUM(IF(C93:I93,C$100:I$100,0)).” For each
element in C93:I93, if it is positive then the
125
corresponding element in C100:I100 will be included
in the sum.
Note that inserting or deleting tasks is now difficult.
It may be easier to start from scratch copying the steps
in this paper for creating the spreadsheet rather than
trying to insert rows.
Supplementary Material
Files that accompany this paper can be found and
downloaded from http://ite.pubs.informs.org/.
Acknowledgments
I am grateful to the anonymous referees and the editor
for their feedback and for their improvements in the Excel
spreadsheets used in this paper.
References
Chang, Y. 2003. Win QSB. Version 2.0, John Wiley & Sons, New
York.
Davis, M., J. Heineke. 2004. Operations Management: Integrating
Manufacturing and Services, 5th ed. McGraw-Hill/Irwin, Boston.
Gass, S. I. 1993. Encounters with degeneracy: A personal view. Ann.
Oper. Res. 47(2) 335–342.
Heizer, J., B. Render. 2011. Operations Management, 10th ed. Pearson
Prentice Hall, Upper Saddle River, NJ.
Jacobs, F. R., R. B. Chase. 2011. Operations and Supply Chain Management, 13th ed. McGraw-Hill, Boston.
Krajewski, L., L. Ritzman, M. Malhotra. 2013. Operations Management: Processes and Supply Chains, 10th ed. Pearson Prentice
Hall, Upper Saddle River, NJ.
Meile, L. 2005. Selecting the right OM Textbook for the Right
Course. Decision Line 36(3) 16–20. http://www.decisionsciences
.org/DecisionLine/Vol36/36_3/36_3books.pdf (last accessed
on July 15, 2012)
Meredith, J., S. Shafer. 2003. Introducing Operations Management.
John Wiley & Sons, New York.
Ragsdale, C. T. 2003. A new approach to implementing project
networks in spreadsheets. INFORMS Transactions Ed. 3(3)
76–85. http://www.informs.org/Pubs/ITE/Archive/Volume
-3/A-New-Approach-to-Implementing-Project-Networks-in
-Spreadsheets (last accessed on July 15, 2012)
Ragsdale, C. T., E. C. Brown. 2004. On modeling line balancing
problems in spreadsheets. INFORMS Transactions Ed. 4(2)
45–48. http://www.informs.org/Pubs/ITE/Archive/Volume
-4/On-Modeling-Line-Balancing-Problems-in-Spreadsheets
(last accessed on July 15, 2012)
Reid, R. D., N. Sanders. 2007. Operations Management: An Integrated
Approach, 3rd ed. John Wiley & Sons, New York.
Stevenson, W. 2007. Operations Management, 9th ed. McGraw
Hill/Irwin, Boston.
Weiss, H. J. 1987. A non-recursive algorithm for classifying the
states of a finite Markov chain. Eur. J. Oper. Res. 28(1) 93–95.
Weiss, H. J. 2006. POM-QM for Windows, Version 3. Pearson Prentice
Hall, Upper Saddle River, NJ.