Lecture 22 25
Lecture 22 25
Goal Programming
BITS Pilani
Pilani Campus
Outline
• Introduction
• Goal Programming Algorithms
– Weights Method
– Preemptive Method
2
Introduction
3
Goal Programming
• Seeking a compromise solution minimize
deviation from each goal violation.
4
Goal Programming
Fairville is a small city with a population of about 20,000 residents.
The annual taxation base for real estate property is $550 million.
The annual taxation bases for food and drugs and for general sales
are $35 million and $55 million, respectively. Annual local gasoline
consumption is estimated at 7.5 million gallons. The city council
wants to develop the tax rates based on four main goals:
1. Tax revenues must be at least $16 million to meet the city’s
financial commitments.
2. Food and drug taxes cannot exceed 10% of all taxes collected.
3. General sales taxes cannot exceed 20% of all taxes collected.
4. Gasoline tax cannot exceed 2 cents per gallon.
6
Goal Programming
550xp + 35xf + 55xs + .075xg ≥ 16
xg ≤ 2
xp , xf , xs , xg ≥ 0
7
Goal Programming
550xp + 35xf + 55xs + .075xg − S1 + R1 = 16
x g − S4 + R 4 = 2
xp , xf , xs , xg , S1 , S2 , S3 , S4 , R1 , R 2 , R 3 , R 4 ≥ 0
8
Goal Programming
550xp + 35xf + 55xs + .075xg − S1 + R1 = 16
x g − S4 + R 4 = 2
xp , xf , xs , xg , S1 , S2 , S3 , S4 , R1 , R 2 , R 3 , R 4 ≥ 0
xg ≤ 2
xp , xf , xs , xg ≥ 0
xg + s4− − s4+ = 2
Deviational
xp , xf , xs , xg , si− , si+ ≥0 variables
11
Goal Programming
550xp + 35xf + 55xs + .075xg + s1− − s1+ = 16
xg + s4− − s4+ = 2
xp , xf , xs , xg , si− , si+ ≥ 0
xg + s4− − s4+ = 2
xp , xf , xs , xg , si− , si+ ≥ 0
xg + s4− − s4+ = 2
xp , xf , xs , xg , si− , si+ ≥ 0
xg + s4− − s4+ = 2
xp , xf , xs , xg , si− , si+ ≥ 0
16
Goal Programming
• Good compromise solution seeks to minimize the
amount by which each goal is violated.
17
Goal Programming
• Good compromise solution seeks to minimize the
amount by which each goal is violated.
18
Goal Programming
• Good compromise solution seeks to minimize the
amount by which each goal is violated.
The contract prohibits TopAd from using more than 6 minutes of radio
advertisement. Additionally, radio and television advertisements need to reach at
least 45 million people. TopAd has a budget goal of $100,000 for the project.
How many minutes of radio and television advertisement should TopAd use?
Write constraints and goals in mathematical form.
20
Goal Programming (Example 8.2-1)
Traditional approach
x1 : minutes of radio ads, x2 : minutes of television ads
21
Goal Programming (Example 8.2-1)
Traditional approach
x1 : minutes of radio ads, x2 : minutes of television ads
23
Goal Programming (Example 8.2-1)
Goal-based approach
x1 : minutes of radio ads, x2 : minutes of television ads
Constraints:
4x1 + 8x2 ≥ 45 (Exposure goal)
24
Goal Programming (Example 8.2-1)
Goal-based approach
x1 : minutes of radio ads, x2 : minutes of television ads
Constraints:
4x1 + 8x2 + s1− − s1+ = 45 (Exposure goal)
27
Goal Programming (Weights method)
• Weights method
– Combined objective constructed as a weighted sum of
individual goals.
• For the TopAds problem
Minimize:
– z = G1 + G2 (Equally important goals)
28
Goal Programming (Weights method)
• Weights method
– Combined objective constructed as a weighted sum of
individual goals.
• For a general problem with n goals:
• Minimize: 𝐳 = 𝐰𝟏 𝐆𝟏 +𝐰𝟐 𝐆𝟐 + ⋯ + 𝐰𝐧 𝐆𝐧
30
Goal Programming (Weights method)
Final goal formulation
Minimize: z = 2s1− + s2+
Subject to:
4x1 + 8x2 + s1− − s1+ = 45 (Exposure goal)
8x1 + 24x2 + s2− − s2+ = 100 (Budget goal)
x1 + 2x2 ≤ 10 (Max. employees)
x1 ≤ 6 (Max. radio time)
31
Goal Programming (Weights method)
Final goal formulation
Minimize: z = 2s1− + s2+
Subject to:
4x1 + 8x2 + s1− − s1+ = 45 (Exposure goal)
8x1 + 24x2 + s2− − s2+ = 100 (Budget goal)
x1 + 2x2 ≤ 10 (Max. employees)
x1 ≤ 6 (Max. radio time)
35
Goal Programming (Weights method)
Goals:
G1 = 1000x1 + 500x2 + 200x3 ≥ 30,000
G2 = 3000x1 + 800x2 + 250x3 ≤ 25,000
G3 = x1 ≥ 10
No feasible solution (check with TORA).
Objective function?
36
Goal Programming (Weights method)
Minimize:
z = 5s1− + s2+ + 2000s3−
Introduce deviational variables:
Constraints
1000x1 + 500x2 + 200x3 + s1− − s1+ = 30,000
3000x1 + 800x2 + 250x3 + s2− − s2+ = 25,000
x1 + s3− − s3+ = 10
Solution
x1 = 10, x2 = 0, x3 = 100
z = $30,000 (deviation from goals)
37
Goal Programming (Weights method)
Example: DEWRIGHT COMPANY is considering which mix of new products
should be produced (see Table). The management has established the goals of (1)
achieving a long-run profit of at least $125 million from these products, (2)
maintaining the current employment level of 4,000 employees, and (3) holding
the capital investment to less than $55 million. A discussion led to setting penalty
weights of 5 for missing the profit goal (per $1 million under), 2 for going over
the employment goal (per 100 employees), 4 for going under this same goal, and
3 for exceeding the capital investment goal (per $1 million over). Formulate the
goal programming problem.
38
Goal Programming (Weights method)
Goals:
G1 = 12x1 + 9x2 + 15x3 ≥ 125
G2 = 5x1 + 3x2 + 4x3 = 40
G3 = 5x1 + 7x2 + 8x3 ≤ 55
40
Goal Programming (Weights method)
Write the objective function.
Minimize:
z =?
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
41
Goal Programming (Weights method)
Write the objective function.
Minimize:
𝐳 = 𝟓𝐬𝟏− + 𝟐𝐬𝟐+ + 𝟒𝐬𝟐− + 𝟑𝐬𝟑+
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
xi ≥ 0, si ≥ 0
42
Goal Programming (Weights method)
Write the objective function.
Minimize:
z = 5s1− + 2s2+ + 4s2− + 3s3+
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
xi ≥ 0, si ≥ 0
Solve using TORA
25 5
x1 = , x2 = 0, x3 =
3 3
+ +
25 −
− −
s1 = s1 = 0; s2 = 0, s2 = ; s3 = 0, s3+ = 0
3
43
Goal Programming (Preemptive method)
SUMMARY
Original goals:
G1 = 12x1 + 9x2 + 15x3 ≥ 125 (profit)
G2 = 5x1 + 3x2 + 4x3 = 40 (employment)
G3 = 5x1 + 7x2 + 8x3 ≤ 55 (investment)
25 5
Solution: x1 = , x2 = 0, x3 =
3 3
44
Preemptive
Method
45
Goal Programming (Example 8.2-1)
TopAd, an advertising agency with 10 employees, has received a contract to
promote a new product. The agency can advertise by radio and television. The
following table gives the number of people reached daily by each type of
advertisement and the cost and labor requirements.
The contract prohibits TopAd from using more than 6 minutes of radio
advertisement. Additionally, radio and television advertisements need to reach at
least 45 million people. TopAd has a budget goal of $100,000 for the project.
How many minutes of radio and television advertisement should TopAd use?
Write constraints and goals in mathematical form.
46
Goal Programming (Example 8.2-1)
Goal-based approach
x1 : minutes of radio ads, x2 : minutes of television ads
Constraints:
4x1 + 8x2 + s1− − s1+ = 45 (Exposure goal)
49
Goal Programming (Weights method)
Final goal formulation
Step 2: LP2
Minimize: z = s2+
Subject to:
4x1 + 8x2 − s1+ = 40 (Exposure goal)
8x1 + 24x2 + s2− − s2+ = 100 (Budget goal)
x1 + 2x2 ≤ 10 (Max. employees)
x1 ≤ 6 (Max. radio time)
52
Goal Programming (Preemptive method)
Example: Faced with the unpleasant recommendation to increase company’s
workforce by more than 20%, Dewright Company has reconsidered the original
problem formulation. Consequently, management has concluded that a very high
priority should be placed on avoiding an increase in the workforce. Furthermore,
raising more than $55 million for capital investment for the new products would
be extremely difficult, so a very high priority also should be placed on avoiding
capital investment above this level. Thus, the two goals just discussed should be
the first-priority goals, and the other two original goals should be the second
priority. The relative penalty weights are given in Table.
2M
3M
53
Goal Programming (Preemptive method)
Write the 1st priority goal programming formulation.
Minimize:
z =?
Subject to:
?
?
?
2M
3M
54
Goal Programming (Preemptive method) P2
1st priority goal programming formulation.
Minimize:
z = 2Ms2+ + 3Ms3+
Subject to:
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
xi ≥ 0, si ≥ 0
2M
3M
55
Goal Programming (Preemptive method)
1st priority goal programming formulation.
Minimize:
z = 2Ms2+ + 3Ms3+
Subject to:
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
xi ≥ 0, si ≥ 0
2M
3M
57
Goal Programming (Preemptive method) P3
2nd priority goals shouldn’t deteriorate 1st priority goals.
Minimize:
z = 5s1− + 4s2−
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− − 0 = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − 0 = 55
xi ≥ 0, si ≥ 0
2M
3M
58
Goal Programming (Preemptive method)
2nd priority goals shouldn’t deteriorate 1st priority goals.
Minimize:
z = 5s1− + 4s2−
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− = 40
G3 = 5x1 + 7x2 + 8x3 + s3− = 55
xi ≥ 0, si ≥ 0
2M
3M
59
Goal Programming (Preemptive method)
2nd priority goals shouldn’t deteriorate 1st priority goals.
Minimize:
z = 5s1− + 4s2−
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− = 40
G3 = 5x1 + 7x2 + 8x3 + s3− = 55
xi ≥ 0, si ≥ 0
Solve using TORA:
15
x1 = 5, x2 = 0, x3 = UNIQUE
4 SOLUTION
−
35 + (THE END!)
s1 = , s1 = 0; s2− = 0; and s3− = 0
4
60
Goal Programming (Preemptive method)
SUMMARY
Original goals:
G1 = 12x1 + 9x2 + 15x3 ≥ 125 (profit)
G2 = 5x1 + 3x2 + 4x3 = 40 (employment)
G3 = 5x1 + 7x2 + 8x3 ≤ 55 (investment)
15
Solution: x1 = 5, x2 = 0, x3 =
4
Achieves both 1st priority goals and one 2nd priority goals (no
decrease in employment), but falls short of the other 2nd
priority goal (long-run profit 125) by just 35/4!
61
Goal Programming (Preemptive method)
• Streamlined procedure
– finds optimal solution for a preemptive goal programming
problem by solving just one linear programming model.
62
Goal Programming (Preemptive method)
Example: For the Dewright Co. preemptive goal programming problem
summarized in Table. Note:
1. different penalty weights are assigned within each of the two priority levels.
2. individual penalty weights (2 and 3) for the 1st-priority goals are multiplied
by M.
2M
3M
63
Goal Programming (Weights method)
Write the objective function.
Minimize:
z = 5s1− + 2Ms2+ + 4s2− + 3Ms3+
Subject to:
G1 = 12x1 + 9x2 + 15x3 + s1− − s1+ = 125
G2 = 5x1 + 3x2 + 4x3 + s2− − s2+ = 40
G3 = 5x1 + 7x2 + 8x3 + s3− − s3+ = 55
xi ≥ 0, si ≥ 0
Solve using TORA
15 SAME
x1 = 5, x2 = 0, x3 = SOLUTION
4 (THE END!)
64
Goal Programming (Preemptive method)
• Streamlined procedure
– finds optimal solution for a preemptive goal programming
problem by solving just one linear programming model.
x1 + x2 + x3 ≥ 1200
67
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
68
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
69
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
70
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
71
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
All xi ≥ 0
72
Example problem (8-3)
Decision variables:
• x1 : in-state, x2 : out-of-state, x3 : international
Solve using the preemptive method, assuming that the goals are
prioritized in the same order given in the problem.
73
Example problem (8-3)
Goal 1 problem
Minimize 𝑧 = s1−
Subject to :
x1 + x2 + x3 + s1− − s1+ = 1200
74
Example problem (8-3)
Goal 2 problem
Minimize 𝑧 = s2−
Subject to :
x1 + x2 + x3 + 0 − s1+ = 1200
2x1 + x2 − 2x3 + s2− − s2+ = 0
75
Example problem (8-3)
Goal 3 problem
Minimize 𝑧 = s3−
Subject to :
x1 + x2 + x3 − s1+ = 1200
2x1 + x2 − 2x3 − s2+ = 0
−0.1x1 − 0.1x2 + 0.9x3 + s3− − s3+ = 0
76
Example problem (8-3)
Goal 4 problem
Minimize 𝑧 = s4−
Subject to :
x1 + x2 + x3 − s1+ ≥ 1200
2x1 + x2 − 2x3 − s2+ ≥ 0
−0.1x1 − 0.1x2 + 0.9x3 − s3+ ≥ 0
x1 x2 5x3
− − + s4− − s4+ ≥ 0
8 20 9
Solve using TORA…
77
Example problem (8-3)
Goal 5 problem
Minimize 𝑧 = s5−
Subject to :
x1 + x2 + x3 − s1+ ≥ 1200
2x1 + x2 − 2x3 − s2+ ≥ 0
−0.1x1 − 0.1x2 + 0.9x3 − s3+ ≥ 0
x1 x2 5x3
− − − s4+ ≥ 0
8 20 9
−0.2x1 + 0.8x2 − 0.2x3 + s5− − s5+ ≥ 0
79
Thank you!
80