Beruflich Dokumente
Kultur Dokumente
INFORMS is the largest professional society in the world for professionals in the fields of operations research, management
science, and analytics.
For more information on INFORMS, its publications, membership, or meetings visit http://www.informs.org
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
I N F O R M S
Transactions on Education
http://dx.doi.org/10.1287/ited.1120.0096
2013 INFORMS
Teaching Note
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 Excels 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
115
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Table 1
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
0.37
b
0.20
a
0.21
c
e
0.19
0.18
Station 2
Station 3
Station 4
Station 5
2.
Station 1
0.39
0.36
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
116
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Figure 2
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
117
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Table 4
Table 6
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,D181)
D19:D24
E18
Table 5
Array value x
B18
B19
B20
B21
B22
B23
B24
E18:J24
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
Cell
Formula
D27
E27
D28
=C4
=D29D31
=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 availableat 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
118
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Table 7
Table 8
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
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,D181)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.
119
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Table 9
Result
Formula
Cycle time
Time needed per cycle
Min (theoretical) number of stations
=C4
=SUM(C6:C12)
=CEILING(C13/E35,1)
=MAX(D29:J29)
=E39 E35
=E40E36
=E36/E40
=1E42
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
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
120
3.
Ties in ExcelPertubations
If there are two activities with the same time then the
model will fail because of Excels table lookup. This is
displayed by the example in the spreadsheet named
LOTtie 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 LOTtie 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
121
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Figure 5
4.
122
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Figure 6
Figure 7
What-If Analysis
Figure 8
123
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
Figure 9
5.
Technical Details
=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.
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
124
Weiss: Teaching Note Implementing Line Balancing Heuristics in Spreadsheets
INFORMS Transactions on Education 13(2), pp. 114125, 2013 INFORMS
Figure 12
Checking Names
Figure 13
Computation of Number of Following Tasks and Ranked Positional Weight
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Downloaded from informs.org by [14.139.224.146] on 22 June 2015, at 04:01 . For personal use only, all rights reserved.
5.2.
125
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) 335342.
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) 1620. 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)
7685. 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)
4548. 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) 9395.
Weiss, H. J. 2006. POM-QM for Windows, Version 3. Pearson Prentice
Hall, Upper Saddle River, NJ.