Slides Prepared by JOHN LOUCKS © 2000 South-Western College Publishing/ITP Slide 1 Chapter 7 Transportation, Assignment, and Transshipment Problems The Transportation Problem: The Network Model and a Linear Programming Formulation The Assignment Problem: The Network Model and a Linear Programming Formulation The Transshipment Problem: The Network Model and a Linear Programming Formulation A Production and Inventory Application The Transportation Simplex Method: A SpecialPurpose Solution Procedure The Assignment Problem: A Special-Purpose Solution Procedure Slide 2 Transportation, Assignment, and Transshipment Problems A network model is one which can be represented by a set of nodes, a set of arcs, and functions (e.g. costs, supplies, demands, etc.) associated with the arcs and/or nodes. Transportation, assignment, and transshipment problems of this chapter, as well as the shortest route, minimal spanning tree, and maximal flow problems (Chapter 9) and PERT/CPM problems (Chapter 10) are all examples of network problems. Slide 3 Transportation, Assignment, and Transshipment Problems Each of the three models of this chapter (transportation, assignment, and transshipment models) can be formulated as linear programs and solved by general purpose linear programming codes. For each of the three models, if the right-hand side of the linear programming formulations are all integers, the optimal solution will be in terms of integer values for the decision variables. However, there are many computer packages (including The Management Scientist) which contain separate computer codes for these models which take advantage of their network structure. Slide 4 Transportation Problem The transportation problem seeks to minimize the total shipping costs of transporting goods from m origins (each with a supply si) to n destinations (each with a demand dj), when the unit shipping cost from an origin, i, to a destination, j, is cij. The network representation for a transportation problem with two sources and three destinations is given on the next slide. Slide 5 Transportation Problem Network Representation 1 d1 2 d2 3 d3 c11 s1 c12 1 c13 c21 c 22 s2 2 c23 SOURCES DESTINATIONS Slide 6 Transportation Problem LP Formulation The linear programming formulation in terms of the amounts shipped from the origins to the destinations, xij , can be written as: Min cijxij ij s.t. xij < si for each origin i j xij = dj for each destination j i xij > 0 for all i and j Slide 7 Transportation Problem LP Formulation Special Cases The following special-case modifications to the linear programming formulation can be made: • Minimum shipping guarantees from i to j: xij > Lij • Maximum route capacity from i to j: xij < Lij • Unacceptable routes: delete the variable Slide 8 Transportation Problem To solve the transportation problem by its special purpose algorithm, it is required that the sum of the supplies at the origins equal the sum of the demands at the destinations. If the total supply is greater than the total demand, a dummy destination is added with demand equal to the excess supply, and shipping costs from all origins are zero. Similarly, if total supply is less than total demand, a dummy origin is added. When solving a transportation problem by its special purpose algorithm, unacceptable shipping routes are given a cost of +M (a large number). Slide 9 Transportation Problem A transportation tableau is given below. Each cell represents a shipping route (which is an arc on the network and a decision variable in the LP formulation), and the unit shipping costs are given in an upper right hand box in the cell. D1 S1 S2 Demand 25 D2 D3 Supply 15 30 20 30 40 35 45 50 30 10 Slide 10 Transportation Problem The transportation problem is solved in two phases: • Phase I -- Obtaining an initial feasible solution • Phase II -- Moving toward optimality In Phase I, the Minimum-Cost Procedure can be used to establish an initial basic feasible solution without doing numerous iterations of the simplex method. In Phase II, the Stepping Stone Method, using the MODI method for evaluating the reduced costs may be used to move from the initial feasible solution to the optimal one. Slide 11 Transportation Algorithm Phase I - Minimum-Cost Method • Step 1: Select the cell with the least cost. Assign to this cell the minimum of its remaining row supply or remaining column demand. • Step 2: Decrease the row and column availabilities by this amount and remove from consideration all other cells in the row or column with zero availability/demand. (If both are simultaneously reduced to 0, assign an allocation of 0 to any other unoccupied cell in the row or column before deleting both.) GO TO STEP 1. Slide 12 Transportation Algorithm Phase II - Stepping Stone Method • Step 1: For each unoccupied cell, calculate the reduced cost by the MODI method described below. Select the unoccupied cell with the most negative reduced cost. (For maximization problems select the unoccupied cell with the largest reduced cost.) If none, STOP. • Step 2: For this unoccupied cell generate a stepping stone path by forming a closed loop with this cell and occupied cells by drawing connecting alternating horizontal and vertical lines between them. Determine the minimum allocation where a subtraction is to be made along this path. Slide 13 Transportation Algorithm Phase II - Stepping Stone Method (continued) • Step 3: Add this allocation to all cells where additions are to be made, and subtract this allocation to all cells where subtractions are to be made along the stepping stone path. (Note: An occupied cell on the stepping stone path now becomes 0 (unoccupied). If more than one cell becomes 0, make only one unoccupied; make the others occupied with 0's.) GO TO STEP 1. Slide 14 Transportation Algorithm MODI Method (for obtaining reduced costs) Associate a number, ui, with each row and vj with each column. • Step 1: Set u1 = 0. • Step 2: Calculate the remaining ui's and vj's by solving the relationship cij = ui + vj for occupied cells. • Step 3: For unoccupied cells (i,j), the reduced cost = cij - ui - vj. Slide 15 Example: BBC Building Brick Company (BBC) has orders for 80 tons of bricks at three suburban locations as follows: Northwood -- 25 tons, Westwood -- 45 tons, and Eastwood -- 10 tons. BBC has two plants, each of which can produce 50 tons per week. How should end of week shipments be made to fill the above orders given the following delivery cost per ton: Northwood Westwood Eastwood Plant 1 24 30 40 Plant 2 30 40 42 Slide 16 Example: BBC Initial Transportation Tableau Since total supply = 100 and total demand = 80, a dummy destination is created with demand of 20 and 0 unit costs. Northwood Westwood Eastwood Dummy 24 30 40 0 30 40 42 0 Plant 1 Plant 2 Demand 25 45 10 Supply 50 50 20 Slide 17 Example: BBC Least Cost Starting Procedure • Iteration 1: Tie for least cost (0), arbitrarily select x14. Allocate 20. Reduce s1 by 20 to 30 and delete the Dummy column. • Iteration 2: Of the remaining cells the least cost is 24 for x11. Allocate 25. Reduce s1 by 25 to 5 and eliminate the Northwood column. • Iteration 3: Of the remaining cells the least cost is 30 for x12. Allocate 5. Reduce the Westwood column to 40 and eliminate the Plant 1 row. • Iteration 4: Since there is only one row with two cells left, make the final allocations of 40 and 10 to x22 and x23, respectively. Slide 18 Example: BBC Iteration 1 • MODI Method 1. Set u1 = 0 2. Since u1 + vj = c1j for occupied cells in row 1, then v1 = 24, v2 = 30, v4 = 0. 3. Since ui + v2 = ci2 for occupied cells in column 2, then u2 + 30 = 40, hence u2 = 10. 4. Since u2 + vj = c2j for occupied cells in row 2, then 10 + v3 = 42, hence v3 = 32. Slide 19 Example: BBC Iteration 1 • MODI Method (continued) Calculate the reduced costs (circled numbers on the next slide) by cij - ui + vj. Unoccupied Cell (1,3) (2,1) (2,4) Reduced Cost 40 - 0 - 32 = 8 30 - 24 -10 = -4 0 - 10 - 0 = -10 Slide 20 Example: BBC Iteration 1 Tableau Northwood Westwood Plant 1 Plant 2 vj 25 24 -4 30 24 5 30 40 40 30 Eastwood +8 40 10 42 32 Dummy 20 0 -10 0 ui 0 10 0 Slide 21 Example: BBC Iteration 1 • Stepping Stone Method The stepping stone path for cell (2,4) is (2,4), (1,4), (1,2), (2,2). The allocations in the subtraction cells are 20 and 40, respectively. The minimum is 20, and hence reallocate 20 along this path. Thus for the next tableau: x24 = 0 + 20 = 20 (0 is its current allocation) x14 = 20 - 20 = 0 (blank for the next tableau) x12 = 5 + 20 = 25 x22 = 40 - 20 = 20 The other occupied cells remain the same. Slide 22 Example: BBC Iteration 2 • MODI Method The reduced costs are found by calculating the ui's and vj's for this tableau. 1. Set u1 = 0. 2. Since u1 + vj = cij for occupied cells in row 1, then v1 = 24, v2 = 30. 3. Since ui + v2 = ci2 for occupied cells in column 2, then u2 + 30 = 40, or u2 = 10. 4. Since u2 + vj = c2j for occupied cells in row 2, then 10 + v3 = 42 or v3 = 32; and, 10 + v4 = 0 or v4 = -10. Slide 23 Example: BBC Iteration 2 • MODI Method (continued) Calculate the reduced costs (circled numbers on the next slide) by cij - ui + vj. Unoccupied Cell (1,3) (1,4) (2,1) Reduced Cost 40 - 0 - 32 = 8 0 - 0 - (-10) = 10 30 - 10 - 24 = -4 Slide 24 Example: BBC Iteration 2 Tableau Northwood Westwood Plant 1 Plant 2 vj 25 24 -4 30 24 25 30 20 40 30 Eastwood +8 40 10 42 36 Dummy +10 0 20 0 ui 0 10 -6 Slide 25 Example: BBC Iteration 2 • Stepping Stone Method The most negative reduced cost is = -4 determined by x21. The stepping stone path for this cell is (2,1),(1,1),(1,2),(2,2). The allocations in the subtraction cells are 25 and 20 respectively. Thus the new solution is obtained by reallocating 20 on the stepping stone path. Thus for the next tableau: x21 = 0 + 20 = 20 (0 is its current allocation) x11 = 25 - 20 = 5 x12 = 25 + 20 = 45 x22 = 20 - 20 = 0 (blank for the next tableau) The other occupied cells remain the same. Slide 26 Example: BBC Iteration 3 • MODI Method The reduced costs are found by calculating the ui's and vj's for this tableau. 1. Set u1 = 0 2. Since u1 + vj = c1j for occupied cells in row 1, then v1 = 24 and v2 = 30. 3. Since ui + v1 = ci1 for occupied cells in column 2, then u2 + 24 = 30 or u2 = 6. 4. Since u2 + vj = c2j for occupied cells in row 2, then 6 + v3 = 42 or v3 = 36, and 6 + v4 = 0 or v4 = -6. Slide 27 Example: BBC Iteration 3 • MODI Method (continued) Calculate the reduced costs (circled numbers on the next slide) by cij - ui + vj. Unoccupied Cell (1,3) (1,4) (2,2) Reduced Cost 40 - 0 - 36 = 4 0 - 0 - (-6) = 6 40 - 6 - 30 = 4 Slide 28 Example: BBC Iteration 3 Tableau Since all the reduced costs are non-negative, this is the optimal tableau. Plant 1 Plant 2 vj Northwood Westwood Eastwood Dummy 45 30 +4 40 +6 0 +4 40 10 42 20 0 5 24 20 30 24 30 36 ui 0 6 -6 Slide 29 Example: BBC Optimal Solution From Plant 1 Plant 1 Plant 2 Plant 2 To Amount Cost Northwood 5 120 Westwood 45 1,350 Northwood 20 600 Eastwood 10 420 Total Cost = $2,490 Slide 30 Example: BBC Partial Spreadsheet Showing Problem Data A B 1 2 Constraint X11 3 #1 1 4 #2 5 #3 1 6 #4 7 #5 8 Obj.Coefficients 24 C D E F G H X22 X23 RHS LHS Coefficients X12 X13 1 1 X21 50 1 1 1 1 1 25 1 1 30 40 30 50 40 45 1 10 42 30 Slide 31 Example: BBC Partial Spreadsheet Showing Optimal Solution A B C D 10 X11 X12 X13 11 Dec.Var.Values 5 45 0 12 Minimized Total Shipping Cost 13 14 LHS Constraints 15 P1.Cap. 50 16 P2.Cap. 30 17 N.Dem. 25 18 W.Dem. 45 19 E.Dem. 10 E X21 20 2490 <= <= = = = F X22 0 G X23 10 RHS 50 50 25 45 10 Slide 32 Example: BBC Partial Sensitivity Report (first half) Adjustable Cells Final Reduced Objective Allowable Allowable Cell Name Value Cost Coefficient Increase Decrease $C$12 X11 5 0 24 4 4 $D$12 X12 45 0 30 4 1E+30 $E$12 X13 0 4 40 1E+30 4 $F$12 X21 20 0 30 4 4 $G$12 X22 0 4 40 1E+30 4 $H$12 X23 10.000 0.000 42 4 1E+30 Slide 33 Example: BBC Partial Sensitivity Report (second half) Constraints Cell $E$17 $E$18 $E$19 $E$20 $E$16 Name P2.Cap N.Dem W.Dem E.Dem P1.Cap Final Shadow Constraint Allowable Allowable Value Price R.H. Side Increase Decrease 30.0 0.0 50 1E+30 20 25.0 30.0 25 20 20 45.0 36.0 45 5 20 10.0 42.0 10 20 10 50.0 -6.0 50 20 5 Slide 34 Assignment Problem An assignment problem seeks to minimize the total cost assignment of m workers to m jobs, given that the cost of worker i performing job j is cij. It assumes all workers are assigned and each job is performed. An assignment problem is a special case of a transportation problem in which all supplies and all demands are equal to 1; hence assignment problems may be solved as linear programs. The network representation of an assignment problem with three workers and three jobs is shown on the next slide. Slide 35 Assignment Problem Network Representation 1 c11 c13 c21 2 c12 c22 1 2 c23 c31 3 c33 WORKERS c32 3 JOBS Slide 36 Assignment Problem Linear Programming Formulation Min cijxij ij s.t. xij = 1 for each worker i j xij = 1 for each job j i xij = 0 or 1 for all i and j. • Note: A modification to the right-hand side of the first constraint set can be made if a worker is permitted to work more than 1 job. Slide 37 Hungarian Method The Hungarian method solves minimization assignment problems with m workers and m jobs. Special considerations can include: • number of workers does not equal the number of jobs -- add dummy workers or jobs with 0 assignment costs as needed • worker i cannot do job j -- assign cij = +M • maximization objective -- create an opportunity loss matrix subtracting all profits for each job from the maximum profit for that job before beginning the Hungarian method Slide 38 Hungarian Method Step 1: For each row, subtract the minimum number in that row from all numbers in that row. Step 2: For each column, subtract the minimum number in that column from all numbers in that column. Step 3: Draw the minimum number of lines to cover all zeroes. If this number = m, STOP -- an assignment can be made. Step 4: Determine the minimum uncovered number (call it d). • Subtract d from uncovered numbers. • Add d to numbers covered by two lines. • Numbers covered by one line remain the same. • Then, GO TO STEP 3. Slide 39 Hungarian Method Finding the Minimum Number of Lines and Determining the Optimal Solution • Step 1: Find a row or column with only one unlined zero and circle it. (If all rows/columns have two or more unlined zeroes choose an arbitrary zero.) • Step 2: If the circle is in a row with one zero, draw a line through its column. If the circle is in a column with one zero, draw a line through its row. One approach, when all rows and columns have two or more zeroes, is to draw a line through one with the most zeroes, breaking ties arbitrarily. • Step 3: Repeat step 2 until all circles are lined. If this minimum number of lines equals m, the circles provide the optimal assignment. Slide 40 Example: Hungry Owner A contractor pays his subcontractors a fixed fee plus mileage for work performed. On a given day the contractor is faced with three electrical jobs associated with various projects. Given below are the distances between the subcontractors and the projects. Projects A B C Westside 50 36 16 Subcontractors Federated 28 30 18 Goliath 35 32 20 Universal 25 25 14 How should the contractors be assigned to minimize total costs? Slide 41 Example: Hungry Owner Network Representation (note the dummy project) 50 West. A 36 16 0 28 Fed. 30 18 B Projects Subcontractors 0 32 35 20 Gol. C 0 25 25 Univ. 14 0 Dum. Slide 42 Example: Hungry Owner Initial Tableau Setup Since the Hungarian algorithm requires that there be the same number of rows as columns, add a Dummy column so that the first tableau is: Westside Federated Goliath Universal A 50 28 35 25 B 36 30 32 25 C Dummy 16 0 18 0 20 0 14 0 Slide 43 Example: Hungry Owner Step 1: Subtract minimum number in each row from all numbers in that row. Since each row has a zero, we would simply generate the same matrix above. Step 2: Subtract the minimum number in each column from all numbers in the column. For A it is 25, for B it is 25, for C it is 14, for Dummy it is 0. This yields: Westside Federated Goliath Universal A 25 3 10 0 B 11 5 7 0 C Dummy 2 0 4 0 6 0 0 0 Slide 44 Example: Hungry Owner Step 3: Draw the minimum number of lines to cover all zeroes. Although one can "eyeball" this minimum, use the following algorithm. If a "remaining" row has only one zero, draw a line through the column. If a remaining column has only one zero in it, draw a line through the row. A B C Dummy Westside 25 11 2 0 Federated 3 5 4 0 Goliath 10 7 6 0 Universal 0 0 0 0 Step 4: The minimum uncovered number is 2 (circled). Slide 45 Example: Hungry Owner Step 5: Subtract 2 from uncovered numbers; add 2 to all numbers covered by two lines. This gives: Westside Federated Goliath Universal A 23 1 8 0 B 9 3 5 0 C Dummy 0 0 2 0 4 0 0 2 Slide 46 Example: Hungry Owner Step 3: Draw the minimum number of lines to cover all zeroes. A B C Dummy Westside 23 9 0 0 Federated 1 3 2 0 Goliath 8 5 4 0 Universal 0 0 0 2 Step 4: The minimum uncovered number is 1 (circled). Slide 47 Example: Hungry Owner Step 5: Subtract 1 from uncovered numbers. Add 1 to numbers covered by two lines. This gives: Westside Federated Goliath Universal A 23 0 7 0 B 9 2 4 0 C 0 1 3 0 Dummy 1 0 0 3 Slide 48 Example: Hungry Owner Step 4: The minimum number of lines to cover all 0's is four. Thus, there is a minimum-cost assignment of 0's with this tableau. The optimal assignment is: Subcontractor Project Distance Westside C 16 Federated A 28 Goliath (unassigned) Universal B 25 Total Distance = 69 miles Slide 49 Transshipment Problem Transshipment problems are transportation problems in which a shipment may move through intermediate nodes (transshipment nodes)before reaching a particular destination node. Transshipment problems can be converted to larger transportation problems and solved by a special transportation program. Transshipment problems can also be solved by general purpose linear programming codes. The network representation for a transshipment problem with two sources, three intermediate nodes, and two destinations is shown on the next slide. Slide 50 Transshipment Problem Network Representation c36 3 c13 s1 1 c37 c14 c15 4 c23 s2 2 SOURCES d1 7 d2 c46 c47 c24 c56 c25 6 5 c57 INTERMEDIATE NODES DESTINATIONS Slide 51 Transshipment Problem Linear Programming Formulation xij represents the shipment from node i to node j Min cijxij ij s.t. xij < si j for each origin i xik - xkj = 0 for each intermediate i j node k xij = dj i xij > 0 for each destination j for all i and j Slide 52 Example: Transshipping Thomas Industries and Washburn Corporation supply three firms (Zrox, Hewes, Rockwright) with customized shelving for its offices. They both order shelving from the same two manufacturers, Arnold Manufacturers and Supershelf, Inc. Currently weekly demands by the users are 50 for Zrox, 60 for Hewes, and 40 for Rockwright. Both Arnold and Supershelf can supply at most 75 units to its customers. Additional data is shown on the next slide. Slide 53 Example: Transshipping Because of long standing contracts based on past orders, unit costs from the manufacturers to the suppliers are: Thomas Washburn Arnold 5 8 Supershelf 7 4 The cost to install the shelving at the various locations are: Zrox Hewes Rockwright Thomas 1 5 8 Washburn 3 4 4 Slide 54 Example: Transshipping Network Representation 75 ARNOLD Arnold 5 Thomas 4 50 Hewes HEWES 60 RockWright 40 5 8 3 4 7 Super Shelf Zrox 1 8 75 ZROX WashWASH BURN Burn 4 Slide 55 Example: Transshipping Linear Programming Formulation • Decision Variables Defined xij = amount shipped from manufacturer i to supplier j xjk = amount shipped from supplier j to customer k where i = 1 (Arnold), 2 (Supershelf) j = 3 (Thomas), 4 (Washburn) k = 5 (Zrox), 6 (Hewes), 7 (Rockwright) • Objective Function Defined Minimize Overall Shipping Costs: Min 5x13 + 8x14 + 7x23 + 4x24 + 1x35 + 5x36 + 8x37 + 3x45 + 4x46 + 4x47 Slide 56 Example: Transshipping Constraints Defined Amount Out of Arnold: Amount Out of Supershelf: Amount Through Thomas: Amount Through Washburn: Amount Into Zrox: Amount Into Hewes: Amount Into Rockwright: x13 + x14 < 75 x23 + x24 < 75 x13 + x23 - x35 - x36 - x37 = 0 x14 + x24 - x45 - x46 - x47 = 0 x35 + x45 = 50 x36 + x46 = 60 x37 + x47 = 40 Non-negativity of Variables: xij > 0, for all i and j. Slide 57 The End of Chapter 7 Slide 58