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.