640 likes | 1.25k Views
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.
E N D
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.)