Linear Goal Programming Linear Goal Programming-1 What is Goal Programming? • Single objective in formulating LPs so far – – • Several simultaneous objectives in practice – – – – • Max profit Min cost Max profit Increase reliability Improve employee morale Improve company’s image Goal programming: a way of solving multi-objective problems Linear Goal Programming-2 Categorization of Goal Programming • Nonpreemptive goal programming – Goals with roughly same importance – Assign weights to goals – Construct a single objective function to minimize the weighted sum of deviations from goals • Preemptive goal programming – Hierarchy of priority levels for goals • 1st priority is to satisfy goal 1 • 2nd priority is to satisfy goal 2, etc. – Solve sequentially Linear Goal Programming-3 Three Possible Types of Goals • A lower, one-sided goal – a1 x1 + a2 x2 + … + an xn ≥ b – example: profit exceeds some threshold • An upper, one-sided goal – a1 x1 + a2 x2 + … + an xn ≤ b – example: cost less than some value • A two-sided goal – a1 x1 + a2 x2 + … + an xn = b – example: production equal to forecasted demand Linear Goal Programming-4 Dewright Company Example – Nonpreemptive Goal Programming • The Dewright Company is considering three new products to replace current models that are being discontinued, so their OR department has been assigned the task of determining which mix of these products should be produced. Management wants primary consideration given to three factors: long-run profit, stability in the workforce, and the level of capital investment that would be required now for new equipment. In particular, management has established the goals of (1) achieving a long-run profit of at least $125 million from these products, (2) maintaining the current employment level of 4000 employees, and (3) holding the capital investment to less than $55 million. However, management realizes that it probably will not be possible to attain all these goals simultaneously, so it has discussed priorities with the OR department. This discussion has led to setting penalty weights of 5 for missing the profit goal (per $1 million under), 2 for going over the employment goal (per 100 employees), 4 for going under this same goal, and 3 for exceeding the capital investment goal (per $1 million over). Each new product’s contribution to profit, employment level, and capital investment level is proportional to the rate of production. These contributions per unit rate of production are shown in the following table, along with the goals and penalty weights. Linear Goal Programming-5 Dewright Company Example (Cont’d) Unit Contribution Product Factor 1 2 3 Goal (Units) Penalty Weight Long-run profit 12 9 15 ≥ 125 (millions of dollars) 5 Employment level 5 3 4 = 40 (hundreds of employees) 2(+), 4(-) Capital investment 5 7 8 ≤ 55 (millions of dollars) 3 Linear Goal Programming-6 Dewright Company Example (Cont’d) • Decision variables x1: production rate of product 1 x2: production rate of product 2 x3: production rate of product 3 • Three goals Profit goal: 12 x1 + 9 x2 + 15 x3 ≥ 125 (lower one-sided goal) Employment goal: 5 x1 + 3 x2 + 4 x3 = 40 (two-sided goal) Investment goal: 5 x1 + 7 x2 + 8 x3 ≤ 55 (upper one-sided goal) • Objective function: Min Z = 5(12 x1 + 9 x2 + 15 x3 – 125)+ 2(5 x1 + 3 x2 + 4 x3 – 40)+ + 4(5 x1 + 3 x2 + 4 x3 – 40)+ 3(5 x1 + 7 x2 + 8 x3 – 55)+ where x if x ≥ 0 + x = x- = 0 if x < 0 0 if x > 0 - x = |x| if x ≤ 0 Linear Goal Programming-7 Dewright Company Example (Cont’d) • To put into a proper LP form Let and y1 = 12 x1 + 9 x2 + 15 x3 – 125 y2 = 5 x1 + 3 x2 + 4 x3 – 40 y3 = 5 x1 + 7 x2 + 8 x3 – 55 y1 = y1+ - y1- and y1+ ≥ 0, y1- ≥ 0 y2 = y2+ - y2- and y2+ ≥ 0, y2- ≥ 0 y3 = y3+ - y3- and y3+ ≥ 0, y3- ≥ 0 Linear Goal Programming-8 Dewright Company Example (Cont’d) • Final LP for nonpreemptive goal programming: Min Z = 5 y1- + 2 y2+ + 4 y2- + 3 y3+ subject to 12 x1 + 9 x2 + 15 x3 – (y1+ - y1- ) = 125 5 x1 + 3 x2 + 4 x3 – (y2+ - y2- ) = 40 5 x1 + 7 x2 + 8 x3 – (y3+ - y3- ) = 55 xi, yi+, yi- ≥ 0 i=1,2,3 add any other functional constraints too Linear Goal Programming-9 Dewright Company Example (Cont’d) • Optimal solution: x1 = 25/3 x2 = 0 x3 = 5/3 y1+ = y1- = 0 → y1 = 0 → 1st goal is satisfied y2+ = 25/3, y2- = 0 → y2 = 25/3 → 2nd goal exceeds employment level by 25/3 hundred employees y3+ = y3- = 0 → y3 = 0 → 3rd goal is satisfied Linear Goal Programming-10 Modified Dewright Company Example Preemptive Goal Programming Priority Level Factor Goal Penalty Weight 1st Priority Employment level ≤ 40 2M Capital investment ≤ 55 3M Long-run profit ≥ 125 5 Employment level ≥ 40 4 2nd Priority Linear Goal Programming-11 Modified Dewright Company Example Preemptive Goal Programming (Cont’d) • 1st LP: Min Z = 2M y2+ + 3M y3+ subject to 5 x1 + 3 x2 + 4 x3 – (y2+ - y2- ) = 40 5 x1 + 7 x2 + 8 x3 – (y3+ - y3- ) = 55 xi ≥ 0 i=1,2,3, yi+, yi- ≥ 0 i=2,3 There are multiple optimal solutions with y2+ = 0 and y3+ = 0. To get 2nd LP, drop y2+, y3+ forcing those goals to remain satisfied, also add 2nd priority constraints Linear Goal Programming-12 Modified Dewright Company Example Preemptive Goal Programming (Cont’d) • 2nd LP: Min Z = 5 y1- + 4 y2subject to 12 x1 + 9 x2 + 15 x3 – (y1+ - y1- ) = 125 5 x1 + 3 x2 + 4 x3 + y2= 40 5 x1 + 7 x2 + 8 x3 + y3- = 55 xi ≥ 0 i=1,2,3, y1+, y1-, y2-, y3- ≥ 0 There is a unique solution: x1 = 5, x2 = 0, x3 = 15/4, y1+ = 0, y1- = 35/4, y2- = 0 and y3- = 0. Linear Goal Programming-13 Dewright Company Example: Compare the two solutions • Solution by nonpreemptive goal programming: (x1, x2, x3 ) = (25/3, 0, 5/3) 12 x1 + 9 x2 + 15 x3 = 125 5 x1 + 3 x2 + 4 x3 = 48.33 5 x1 + 7 x2 + 8 x3 = 55 profit employment capital investment • Solution by preemptive goal programming: (x1, x2, x3 ) = (5, 0, 15/4) 12 x1 + 9 x2 + 15 x3 = 116.25profit 5 x1 + 3 x2 + 4 x3 = 40 5 x1 + 7 x2 + 8 x3 = 55 employment capital investment Linear Goal Programming-14 Camyo Manufacturing Example • Camyo Manufacturing produces four parts that require the use of a lathe and a drill press. The two machines operate 10 hours a day. The following table provides the time in minutes required by each part: Part Lathe Drill Press 1 5 3 2 6 2 3 4 6 4 7 4 It is desired to balance the use of the two machines by requiring the difference between their total operation times not to exceed 30 minutes. The market demand limits the number of units produced of each part to at least 10 units. Additionally, the number of units of part 1 may not exceed that of part 2. Linear Goal Programming-15 Camyo Manufacturing Example (Cont’d) • Decision variables xi = number of parts produced per day of type i, i=1, 2, 3, 4 • Operation time goal: – Difference between the time on machine 1 (lathe) and time on machine 2 (drill press) is not to exceed 30 minutes: |time1 – time2| ≤ 30 -30 ≤ time1 – time2 ≤ 30 time1 = 5 x1 + 6 x2 + 4 x3 + 7 x4 lathe time2 = 3 x1 + 2 x2 + 6 x3 + 4 x4 drill press -30 ≤ (5 x1 + 6 x2 + 4 x3 + 7 x4) – (3 x1 + 2 x2 + 6 x3 + 4 x4) ≤ 30 -30 ≤ 2 x1 + 4 x2 - 2 x3 + 3 x4 ≤ 30 Linear Goal Programming-16 Camyo Manufacturing Example (Cont’d) • Final LP for nonpreemptive goal programming: Min Z = y1+ + y2subject to 5 x1 + 6 x2 + 4 x3 + 7 x4 ≤ 600 3 x1 + 2 x2 + 6 x3 + 4 x4 ≤ 600 x1 ≥ 10 x2 ≥ 10 x3 ≥ 10 x4 ≥ 10 x1 - x2 ≤0 2 x1 + 4 x2 - 2 x3 + 3 x4 – (y1+ - y1-) = 30 2 x1 + 4 x2 - 2 x3 + 3 x4 – (y2+ - y2-) = -30 xi ≥ 0, i=1, 2, 3, 4 yi+ ≥ 0, yi- ≥ 0, i=1, 2 lathe, 600 min in a day drill press, 600 min a day demand must exceed 10 units time1 - time2 ≤ 30 time1 - time2 ≥ -30 Linear Goal Programming-17