1 GOAL PROGRAMMING
2 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.) General Note
3 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 ≤ $ Goal 2: Total reliability ≥ 0.95
4 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.
5 Goal 1 Goal 2 Feasible Region
6 Goal 1 Goal 2 Feasible Region Ideal levels
7 Goal 1 Goal 2 Feasible Region Ideal levels Distance based on some metric
8 Goal 1 Goal 2 Feasible Region Ideal levels optimal solution (minimum distance to the ideal levels)
9 LEXICOGRAPHIC IDEA
10 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....
11 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
12 Our example (cont’d) advertising on 2 types of programs: –footy games(x 1 dollars spent) –soap operas(x 2 dollars spent) at most $600,000 be spent
13 Question: How do we incorporate Goals in Optimization Problems? There are three goals: Goal 1: 7x 1 + 3x 2 ≥ 40 Goal 2: 10x 1 + 5x 2 ≥ 60 Goal 3: 5x 1 + 4x 2 ≥ 35 There is also the following constraint: 100x x 2 ≤ 600 and the usual non–negativity constraint: x 1,x 2 ≥ 0
14 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?
15 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
16 Goal 1: 7x 1 + 3x 2 ≥ 40 Goal 2: 10x 1 + 5x 2 ≥ 60 Goal 3: 5x 1 + 4x 2 ≥ 35 We introduce slack and surplus variables to measure the “distance” from the prescribed levels of the goals. Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = 35 s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0 Our Example
17 Observation: The original ( ≥ ) goals would be met, if the slack variables are equal to zero. eg. Original goal: 7x 1 + 3x 2 ≥ 40 Modified goal: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 The original goal is satisfied if s – 1 = 0 (observing the non–negativity constraints), because then we have 7x 1 + 3x 2 = 40 + s + 1 ≥ 40 IDEA
18 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.
19 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 !!!
20 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?)
21 So we set the problem up as the Lexicographic linear programming problem: L– min(s – 1, s – 2, s – 3 ) 7x 1 + 3x 2 + s – 1 – s + 1 = 40 10x 1 + 5x 2 + s – 2 – s + 2 = 60 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0 L meaning Lexicographic.
22 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: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0
23 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 Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1 ≥ 0 1
24 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 we’d stop here.
25 Thus, our problem is now min s – 2 s.t s – 1 = 0 Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2 ≥ 0
26 min s – 2 s – 1 = 0 Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0 equivalently
27 namely min s – 2 Goal 1: 7x 1 + 3x 2 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = x x 2 ≤ 600 x 1, x 2, s + 1, s – 2, s + 2 ≥ 0
28 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:
29 min s – 3 s.t s – 1 = 0, s – 2 = 0 Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0
30 min s – 3 s.t s – 1 = 0, s – 2 = 0 Goal 1: 7x 1 + 3x 2 + s – 1 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 + s – 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s – 1, s + 1, s – 2, s + 2, s – 3, s + 3 ≥ 0
31 min s – 3 s.t Goal 1: 7x 1 + 3x 2 – s + 1 = 40 Goal 2: 10x 1 + 5x 2 – s + 2 = 60 Goal 3: 5x 1 + 4x 2 + s – 3 – s + 3 = x x 2 ≤ 600 x 1, x 2, s + 1, s + 2, s – 3, s + 3 ≥ 0 Solving this we get:
32 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)
33 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 the decision maker.
34 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.
35 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...
36 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.
37 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.)