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 wayto
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 prespecified 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
Ideal levels
Goal 2
Feasible Region
Goal 1
Ideal levels
Goal 2
Feasible Region
Distance based on
some metric
Goal 1
Ideal levels
Goal 2
Feasible Region
optimal solution
(minimum distance
to the ideal levels)
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 (contd)
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
7million
10million 5million
$100,000
3million
5million
$60,000
4million
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 nonnegativity 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:
Goal 2: 10x1 + 5x2 60
7x1 + 3x2 40
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 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 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 + s1 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
17
Question:
What guarantee do we have that we can set the
slack variables to zero?
Answer:
We dont have such guarantees, but ... we can
try the best we can ...
best = as small as possible
i.e. minimize !!!!
Want to min s1, min s2 , min s3 .
18
Difficulty
We have more than one slack variable!
How do we minimize three slack
variables simultaneously???
Generally, this cannot be done
WayOut: Measure of distance from
(0,0,...,0). (That is, how close are s1, s2,
and s3 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(s1, s2 , s3 )
7x1 + 3x2 + s1 s+1 = 40
10x1 +
5x2 + s2 s+2 = 60
5x1 +
4x2 + s3 s+3 = 35
100x1 + 60 x2
600
x 1 , x 2, 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 s1
s.t
Goal 1:
7x1 + 3x2 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 s+3 = 35
100x1 + 60x2 600
x1 , x 2 , 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 s1
s.t
Goal 1: 7x1 + 3x2 + s1 s+1 = 40
100x1 + 60x2 600
x1, x2, s1, 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 s1= 0).
Note that if there was a unique solution wed stop
here.
24
Thus, our problem is now
min
s.t
s 2
s1 = 0
Goal 1:
7x1 + 3x2 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 s+3 = 35
100x1 + 60x2 600
x 1 , x 2 , s 1 , s +1 , s 2 , s +2 0
25
equivalently
min
s 2
s 1 = 0
Goal 1:
7x1 + 3x2 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 s+3 = 35
100x1 + 60x2 600
x 1, x 2, s 1 , s + 1, s 2 , s + 2, s 3 , s + 3 0
26
namely
min
Goal 1:
s 2
7x1 + 3x2 s+1
Goal 2: 10x1 + 5x2
= 40
+ s2 s+2 = 60
100x1 + 60x2 600
x1, x2, s+1, s2 , 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
s3
s.t
s1 = 0, s2 = 0
Goal 1: 7x1 + 3x2 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 s+3 = 35
100x1 + 60x2 600
x1, x2, s1, s+1, s2 , s+2, s3 , s+3 0
29
min
s.t
s 3
s1 = 0, s2 = 0
Goal 1:
7x1 + 3x2 + s1 s+1 = 40
Goal 2: 10x1 + 5x2 + s2 s+2 = 60
Goal 3:
5x1 + 4x2 + s3 s+3 = 35
100x1 + 60x2 600
x 1 , x 2 , s 1 , s +1 , s 2 , s +2 , s 3 , s +3 0
30
min
s3
s.t
Goal 1: 7x1 + 3x2 s+1
Goal 2: 10x1 + 5x2 s+2
Goal 3: 5x1 + 4x2
= 40
= 60
+ s3 s+3 = 35
100x1 + 60x2 600
x1, x2, s+1 , s+2, s3 , 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:
Lopt {c(1)x, c(2)x, ...,c(k)x}
s.t.
Ax b
x0
There are k linear objectives, suppose they are
ranked in order of importance to the decision maker.
33
Procedure
Find the optimal solution for the first
objective:
z(1) := opt c(1)x
s.t.
Ax b
x0
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)
x0
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)
x0
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