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 {[email protected], [email protected]} 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/.