GOAL PROGRAMMING
E N D
Presentation Transcript
GOAL PROGRAMMING
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.)
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
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.
Goal 2 Feasible Region Goal 1
Ideal levels Goal 2 Feasible Region Goal 1
Ideal levels Goal 2 Distance based on some metric Feasible Region Goal 1
Ideal levels Goal 2 optimal solution (minimum distance to the ideal levels) Feasible Region Goal 1
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 ....
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
advertising on 2 types of programs: footy games (x1 dollars spent) soap operas (x2 dollars spent) at most $600,000 be spent Our example (cont’d)
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
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?
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
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
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 • 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 .
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–3to 0)? • eg. Lexicographic !!!
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?)
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 + 60x2 ≤ 600 • x1,x2,s–1 , s+1 , s–2 , s+2 , s–3 , s+3 ≥ 0 • L meaning Lexicographic.
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
1 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: 7x1 + 3x2 + s–1 – s+1=40 100x1 + 60x2 ≤ 600 x1, x2, s–1, s+1 ≥ 0
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.
Thus, our problem is now • min s–2 • s.t 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
equivalently min 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
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
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:
min s–3 • s.t • 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
min s–3 • s.t 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
min s–3 • s.t • 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:
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)
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.
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.
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...
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.
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.)