GOAL PROGRAMMING 1 General Note • We will now address problems that involve multiple, conflicting objectives that can be tackled by linear programming techniques. • There are various methods that have been proposed – we will not look at all of them. • Bear in mind that there is no “one right way”to approach a problem involving multiple conflicting objectives. (Ignizio and Cavalier – Linear Programming.) 2 3.3 Goal Programming • Basic Idea: • Instead of optimizing a single valued objective function, try to meet a number of pre–specified goals: • Eg • Goal 1: Total cost ≤ $306.75 • Goal 2: Total reliability ≥ 0.95 3 How do you handle the goals? • There are many approaches. For example, you can use the following approach: • 1. Determine a set of “ideal” goals. • 2. Determine a metric in the goal space to measure the distance to the ideal goal. • 3. Minimize the distance to the “ideal” goal. 4 Goal 2 Feasible Region Goal 1 5 Ideal levels Goal 2 Feasible Region 6 Goal 1 Ideal levels Goal 2 Feasible Region Distance based on some metric 7 Goal 1 Ideal levels Goal 2 Feasible Region optimal solution (minimum distance to the ideal levels) 8 Goal 1 LEXICOGRAPHIC IDEA 9 One idea .… (there are other ways, see e.g. Winston) • Rank the goals • Use the lexicographic order : Try to do the best you can with regard to the first (most important) goal. If there is a tie, break it by doing the best you can with regard to the second goal (keeping the first goal at the optimal level) • etc .... 10 An example (adapted from Winston p. 775) • BBDO is trying to determine a TV advertising schedule for Fricke Automobile. Fricke has three goals: • Goals – Goal 1: ad seen by at least 40 million high-income men – Goal 2: ad seen by at least 60 million low income people – Goal 3: ad seen by at least 50 million high-income women 11 Our example (cont’d) • advertising on 2 types of programs: – footy games – soap operas (x1 dollars spent) (x2 dollars spent) • at most $600,000 be spent Footy Show Soap Opera HIM LIP HIW 7 million 10 million 5 million $100,000 3 million 5 million $60,000 4 million Cost 12 Question: How do we incorporate Goals in Optimization Problems? • There are three goals: • Goal 1: 7x1 + 3x2 ≥ 40 • Goal 2: 10x1 + 5x2 ≥ 60 • Goal 3: 5x1 + 4x2 ≥ 35 • There is also the following constraint: • 100x1 + 60x2 ≤ 600 • and the usual non–negativity constraint: • x1,x2 ≥ 0 13 Can we use linear programming? • Dilemma: • There is no objective function: • the goals are not expressed as “functions”, rather they are expressed like “constraints”. • How do we “reformulate” the goals as objective functions? • How do we then use linear programming techniques in this environment? 14 Basic Idea .... • Use slack and surplus variables to measure “distance” to the goal (RHS) • Minimise distance to the ideal levels • Regard these variables as (degenerate) objective functions 15 Our Example • Goal 1: 7x1 + 3x2 ≥ 40 • Goal 2: 10x1 + 5x2 ≥ 60 • Goal 3: 5x1 + 4x2 ≥ 35 • We introduce slack and surplus variables to measure the “distance” from the prescribed levels of the goals. • Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 • Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 • Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 • s–1 , s+1 , s–2 , s+2 , s–3 , s+3 ≥ 0 16 IDEA • Observation: • The original ( ≥ ) goals would be met, if the slack variables are equal to zero. • eg. • Original goal: 7x1 + 3x2 ≥ 40 • Modified goal: 7x1 + 3x2 + s–1 – s+1 = 40 • The original goal is satisfied if s–1 = 0 (observing the non–negativity constraints), • because then we have 17 • 7x1 + 3x2 = 40 + s+1 ≥ 40 • Question: • What guarantee do we have that we can set the slack variables to zero? • Answer: • We don’t have such guarantees, but ... we can try the “best” we can ... • “best” = as small as possible • i.e. minimize !!!! • Want to min s–1, min s–2 , min s–3 . 18 Difficulty • We have more than one slack variable! How do we minimize three slack variables simultaneously??? • Generally, this cannot be done • Way–Out: Measure of distance from (0,0,...,0). (That is, how close are s–1, s–2, and s–3 to 0)? • eg. Lexicographic !!! 19 Ranking • Suppose we rank the goals in their order of importance to us. • SUPPOSE THAT • most important is Goal 1 • next: Goal 2 • least important : Goal 3 (Major problem: How does the decision maker rank the goals?) 20 So we set the problem up as the Lexicographic linear programming problem: • L– min(s–1, s–2 , s–3 ) • 7x1 + 3x2 + s–1 – s+1 = 40 • 10x1 + 5x2 + s–2 – s+2 = 60 • 5x1 + 4x2 + s–3 – s+3 = 35 • 100x1 + 60 x2 ≤ 600 • x1, x2, s–1 , s+1 , s–2 , s+2 , s–3 , s+3 ≥ 0 • L meaning Lexicographic. 21 Example continued ... • If we rank Goal 1 as the most important goal, we then have to consider its slack variable first: • min s–1 • s.t Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1, s–2 , s+2, s– 3 , s+3 ≥ 0 22 observation • The second and third goals are “superfluous” in the sense that we are not worrying about what happens to them at this stage. • thus, the above problem is equivalent to: • min s–1 • s.t 1 Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1 ≥ 0 23 • Solving this problem we obtain the optimal solution s–*1= 0. This means that we can meet the first goal. • See lecture for details. • In this problem there are multiple optimal solutions. Which one should we pick? • According to the lexicographic order, we now have to break ties by optimizing the second goal (keeping the first goal at its optimal level i.e. keeping s–1= 0). • Note that if there was a unique solution 24 we’d stop here. Thus, our problem is now • min • s.t s–2 s–1 = 0 Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1, s–2 , s+2 ≥ 0 25 equivalently s–2 s–1 = 0 Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1, s–2 , s+2, s–3 , s+3 ≥ 0 min 26 namely min s–2 Goal 1: 7x1 + 3x2 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 100x1 + 60x2 ≤ 600 x1, x2, s+1, s–2 , s+2 ≥ 0 27 • If we solve this problem we obtain the optimal solution s–*2= 0 • If there are ties (multiple optimal solutions, as there are here) we have to resolve the situation by looking at the third goal. • Thus, our next problem is: 28 •min •s.t s –3 s–1 = 0, s–2 = 0 Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1, s–2 , s+2, s–3 , s+3 ≥ 0 29 • min • s.t s–3 s–1 = 0, s–2 = 0 Goal 1: 7x1 + 3x2 + s–1 – s+1 = 40 Goal 2: 10x1 + 5x2 + s–2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1, s–2 , s+2, s–3 , s+3 ≥ 0 30 • • s.t min s–3 Goal 1: 7x1 + 3x2 – s+1 = 40 Goal 2: 10x1 + 5x2 – s+2 = 60 Goal 3: 5x1 + 4x2 + s–3 – s+3 = 35 100x1 + 60x2 ≤ 600 x1, x2, s+1 , s+2, s–3 , s+3 ≥ 0 Solving this we get: 31 • • • • Optimal solution: x*1 = 6; x*2 = 0; s–*1 = 0; s–*2 = 0; s–*3 = 5; s+*1 = 2; s+*2 = 0; s+*3 = 0. Conclusion • The optimal lexicographic solution will satisfy the first two goals, but not the third (short by 5 units) 32 General Comment • The procedure that we described can be applied more generally to lexicographic LP problems. • Set up: L–opt {c(1)x, c(2)x, ...,c(k)x} s.t. Ax ≤ b x≥0 • There are k linear objectives, suppose they are ranked in order of importance to 33 the decision maker. Procedure • Find the optimal solution for the first objective: z(1) := opt c(1)x s.t. Ax ≤ b x≥0 • If there is a unique solution stop! Otherwise, continue. 34 • Solve the problem: z(2) := opt c(2)x s.t. Ax ≤ b c(1)x = z(1) x≥0 • If there is a unique solution, stop! • Otherwise, continue... 35 • etc • Solve the following problem: z(p+1) := opt c(p+1)x s.t. Ax ≤ b c(1)x = z(1) c(2)x = z(2) ................... c(p)x = z(p) x≥0 • If there is a unique solution, stop! • Otherwise continue. 36 Comment • Linear Goal programming capabilities are now routinely avialable by commercial LP packages. • The packages do not use the approach described above. (They use some other approaches.) 37