Ex of Goal Programming
Ex of Goal Programming
Introduction: Previously, we dealt with problems with only one objective. When there are multiple
(sometimes conflicting) objectives, LP can’t find a solution to satisfy all the goals. Goal programming seeks
a compromised solution based on the relative importance of each objective. In goal programming, variables
may be negative, constraints may not be strictly binding and there are two or more objectives.
Example of Goal Programming: Conceptual Products is a computer company that produces the CP400 and
CP500 computers. The computers use different mother boards produced in abundant supply by the
company, but use the same cases and disk drives. The CP400 models use two floppy disk drivers and no zip
disk drives whereas the CP500 models use one floppy disk drive and one zip disk drive.
The disk drives and cases are brought from vendors. These are 1000 floppy disk drives, 500 zip disk drives,
and 600 cases available to Conceptual Products on a weekly basis. It takes one hour to manufacture a
CP400 and its profit is Rs. 200 and it takes one and one-half hour to manufacture a CP500 and its profit is
Rs. 500.
The company has four goals:
Priority 1: Meet a state contract of 200 CP400 machines weekly. (Goal 1)
Priority 2: Make at least 500 total computers weekly. (Goal 2)
Priority 3: Make at least Rs. 2,50,000 profit weekly. (Goal 3)
Priority 4: Use no more than 400 man-hour per week. (Goal 4)
Solve the goal programming problem.
1
Objective Functions:
Priority 1: Minimize the amount the state contract is not met: Min d1-
Priority 2: Minimize the number under 500 computers produced weekly: Min d2-
Priority 3: Minimize the amount under Rs. 2, 50,000 earned weekly: Min d3 -
Priority 4: Minimize the man-hours over 400 used weekly: Min d4 –
Formulation Summary:
Minimize, P1 (d1-) + P2 (d2-) + P3 (d3-) + P4 (d4+)
Subject to: 2 x1 + x2 ≤ 1,000
x2 ≤ 500
x1 + x2 ≤ 600
To solve graphically, first graph the functional constraints. Then graph the goals, according to their
priorities.
1200
1000
800 x2
We first draw the Goal 1: x1 + d1- – d1+ = 200. We get the “First Stage Reduced Feasible Region with the
highest priority goal (i.e. goal no. 1) introduced”.
600
Goal 1: x1 + d1- – d1+ = 200.
-
500 d 1
400
d1+
200 2
x2 d1-
d1+
When we next introduce the Goal 3: 0.2 x1 + 0.5 x2 + d3 - – d3+ = 250, we find that there is no feasible region
1000
satisfying all the three goals.
–
Thus, “Min
800d3 “ is achieved when we “Max 0.2 x 1 + 0.5 x2 “. Note that this occurs at the point having
coordinates, x1 = 200 and x2 = 400, so that 0.2 x1 + 0.5 x2 = 240, or d3- = 10.
d2+
600
d2- 500
Second Stage Reduced Feasible Region with the x2 ≤ 500
400
first and second highest priority goals (i.e. Goal
nos. 1 & 2) introduced
200 4
0 x1
0 200 400 600 800 1000 1200
Goal 1: x1 + d1- – d1+ = 200.
x2 d1-
d1+
1200 .
Goal 2: x1 + x2 + d2- – d2+ = 500
1000
The optimal point i.e. [x1 = 200; x2 = 400] has been reached and there is no further scope for the fourth
iteration. We conclude as follows:- There is no third Stage reduced feasible region with the
800 first, second and third highest priority goals (i.e. Goal nos.
1. The first highest priority goal of “Minimization of d 1- " has been fully achieved and d1- = 0.
1, 2 & 3) introduced
+
d2 highest priority goal of “Minimization of d 2- “ has been fully achieved and d2- = 0.
2. The second
third highest priority goal of “Minimization of d 1- “ has not been fully achieved and d3- = 10.
3. The600
4. The fourth highest priority goal of “Minimization of d 4+ “ has not been achieved and d4+ = 400.
d2- 500
x2 ≤ 500
400
200
0 x1
5 d3+
-
0 200 400 600 800 1000 1200 d 3
Currently, the normal operation period for each line is 8 hours. The production manager of the company is
trying to determine the best daily operation hours for the two lines. He sets the priorities to achieve his
goals as given below: -
P1: Produce and deliver 1,200 seats daily.
P2: Limit the daily overtime operation hours of line 2 to three hours.
P3: Minimize under utilization of the regular daily operation hours of each line. Assign differential
weights based on the relative productivity rate.
P4: Minimize the daily overtime operation hours of each line as much as possible. Assign differential
weights based on the relative cost of overtime. It is assumed that the cost of operation is
identical for the two production lines.
Formulate the problem as a Goal programming problem and solve it graphically.
Ans: Let, x1 = daily operation hours for line 1 and x2 = daily operation hours for line 2.
1. Relative productivity rate for the lines is 5:6. (For priority P 3)
2. The production rate ratio for the line is 50:60. Therefore, the relative cost resulting from an hour of
overtime is greater for line 1 than for line 2. In other words, the relative cost of overtime ratio for line 1
to line 2 will be 6:5. (For priority P4).
Negative deviations from the target values are denoted by the subscript (-) and positive deviation by the
subscript (+). P1 is the highest priority followed by P 2 etc and P4 is the lowest priority level for different
goals.
Graphical Solution: To solve this problem, each constraint is graphed at a time, starting with the one that
has the highest priority level deviational variable.
x2
7 24
x2
d1+
8
We see from Fig. 3 that it is not possible to fully achieve the fourth priority level goal i.e. P 4 (6 d2+ + 5 d3+). In other
words, we cannot make both d 2+ and d3+ zero simultaneously. So we try to locate the point in the reduced feasible zone
(see Fig. 4) where the (6 d2+ + 5 d3+) is minimized. It is known that this will occur at one of the corner points i.e. either
at A or at B.
At point A, d2+ = 2.8 and d3+ = 3; therefore, (6 d2+ + 5 d3+) = [6 x 2.8 + 5 x 3] = 31.8.
At point B, d2+ = 6.4 and d3+ = 0; therefore, (6 d2+ + 5 d3+) = [6 x 6.4+ 5 x 0] = 38.4.
x2
As the minimum occurs at point A, hence the optimal solution is achieved at A (10.8, 11).
x1 = 8
+
At point A, d1
Fig. 3
I. We fully satisfy the
d2-first three priority
d2+ level goals; but
II. We have to incur 2.8 hours of overtime for line 1 and 3 hours of overtime for line 2.
The shaded area is the feasible zone
d1- considering the first three constraints
20
where the first, second and third priority
level goals are fully satisfied
d4+
A (10.8, 11) 9
11 x2 = 11
+
d 3 d4
8 B
(14.4, 8) x2 = 8
d3-
x2
x1 = 8
d1+
d1-
20
d4+
A (10.8, 11)
11 x2 = 11
10
d3+ d4
8
B x2 = 8
d 3
- (14.4, 8)
Stepwise procedure for formulation of Goal Programming Model
Problem: A small paint company manufactures two types of paint, latex and enamel. In production, the company uses
10 hours of labor to produce 100 gallons of latex and 15 hours of labor to produce 100 gallons of enamel. The
company has 40 hours of daily labor and 30 hours of overtime labour available each week. Furthermore, if enamel
paint is produced, latex paint must also be produced. Each paint generates a profit at the rate of $1.00 per gallon. The
company has the following objectives listed in decreasing priority (i) avoid the use of overtime, (ii) achieve a weekly
profit of $1000, and (iii) produce at least 700 gallons of enamel paint each week
a) Formulate the linear goal programming model
b) Solve the goal programming model using a graphical method
c) Using the solution to the model, determine the deviation from the goal .
Solution:
Step 1: Rewrite information in a table format- it helps in organizing your thoughts.
Latex Enamel
Labour for 100 gallons (hours) 10 15
Profit for 1 gallon $1 $1
Step 2: State your (functional) constraints: Remember these are your constraints not your goals. Goals do not have to
be met (i.e they can go over or under the required amount) but constraints must always be met. These constraints
are sometimes call functional constraints or hard constraints.
Constraint 1: Labour ≤ 70 hours/ wk (i.e. daily labour/ wk + overtime labour / wk)
Constraint 2: Latex paint ≥ Enamel paint (i.e. this ensures that if enamel paint is produced, latex paint is also
produced)
Step 3: Rewrite your goals as constraints if not given in that form: We know the priorities (i.e. the importance of
each goal) of the goals because the problem states the objectives with decreasing priority.
Note: In goal programming we are required to meet the objective/ goal with the highest priority first i.e. in this case
Goal 1.
P1: Goal 1 - Avoid using overtime i.e. labour has to be ≤ 40 hrs/wk
P2: Goal 2 - Achieve a weekly profit of $1000 i.e. profit ≥ $1000
P3: Goal 3 - Produce at least 700 gallons/wk of enamel paint i.e. enamel paint ≥ 700 gallons/wk
Where P1, P2, P3 are the priorities of the goals, where P1 ≥ P2 ≥ P3
Step 4: Decide decision variables: The decision variables we choose must be used to formulate all goals. In this case,
we goals related to labour, profit and production. All of these goals are determined by the number of latex and
enamel paint we produce each week. Therefore:
L = no. of 100 gallons of latex paint produced per week
E = no. of 100 gallons of enamel paint produced per week
Note: we could have used L = no. of gallons of latex paint produced per week, which will require us to divide the
labour hours by 100
Step 5: Rewrite your functional constraints using your decision variables
Constraint 1: 10 L + 15 E ≤ 70 (Labour constraint)
Constraint 2: L ≥ E
Rewriting:
Constraint 2: L – E ≥ 0 (Production Constraint)
Note: You must always rewrite your constraints such that all decision variables are on the LHS and all constants are on
the RHS.
Step 6: Rewrite your goal constraints using your decision variables
Goal 1: 10 L + 15 E ≤ 40 (Avoid Overtime)
Goal 2: 100 L + 100 E ≥ 1000 (Profit)
Note: Remember L is the no. of 100 gallons of latex paint produced per week, therefore since the profit is $1 per
gallon, then the profit for 100 gallons of latex paint is $100
Goal 3: E ≥ 7 (Enamel Paint Production)
11
Note: Remember E is the no. of 100 gallons of enamel paint produced per week, therefore 7 batches of 100 gallons of
enamel has to be produced to get 700 gallons
Step 7: Add deviation variables to the goal constraints: In formulating a goal programming model, the goal
constraints are always converted to “equality constraints” i.e. and equal sign is used. If you recall, we did a similar
step when solving LP problems using the simplex algorithm, where we incorporated slack and excess variables into the
constraints (Step 1 of Simplex Algorithm).
Let us look at Goal 1
10 L + 15 E ≤ 40
To make this an equality constraint:
10 L + 15 E + Y1- – Y1+ = 40
where Y1- is the slack deviation variable and Y1+ is the excess deviation variable for Goal 1
Yi- : represents how much we must add to make up the goal i.e. the slack (we use the negative sign to represent that
we have fallen short of the goal)
Yi+: represents how much we must subtract to make up the goal i.e. the excess (we use the positive sign to represent
that we have exceeded the goal)
Note: We added both deviation variables to the goal constraints unlike what we would have done for the functional
(hard) constraints. This is because, goal constraints are allowed to go over and go under their constraint value.
Note: The deviation variables have the same units as E and L, which is they are measured in 100 gallons of paint.
This means if the final RHS of Goal 1 was 60 hours i.e.
10 L + 15 E = 60
Then
10 L + 15 E + Y1- – Y1+ = (60 – 20) = 40
This means we would have exceeded the goal by 20 hours (60 – 40 = 20 hrs), i.e. we would be in excess of the goal.
Therefore, we have no slack which means our slack deviation variable, Y1- = 0. Our excess deviation variable would be
Y1+ = 60 – 40 = 20.
Therefore, adding deviation variables to all goal constraints we would have
Goal 1: 10 L + 15 E + Y1- – Y1+ = 40 (Overtime)
-
Goal 2: 100 L + 100 E + Y2 – Y2+ = 1000 (Profit)
Goal 3: E + Y3- – Y3+ =7 (Enamel Prod.)
Step 8: Determine the variables need to be minimized in the objective function
The objective function of a goal programming model requires us to always minimize the variables.
We need now to determine which variables we are required to minimize. The variables we are required to minimize
are always located in the goals.
Let us again look at Goal 1
10 L + 15 E + Y1- – Y1+ = 40
From this goal, if you recall we do not want to go over the 40 daily labour hours available per week i.e.
10 L + 15 E ≤ 40
Therefore, we want to ensure that there is no excess. Since the corresponding excess deviation variable for this goal
is Y1+, we want to make this as small as possible, i.e. minimize this variable.
For Goal 2 (Profit)
100 L + 100 E ≥ 1000
100 L + 100 E + Y2- – Y2+ = 1000
We require the profit to be more than $1000, in other words, we do not want it to fall under $1000. The variable that
corresponds to us fallen under our goal, is our slack deviation variable, Y2-. We thus want to make this as small as
possible, i.e. minimize Y2-.
For Goal 3 (Enamel Paint Production)
E ≥ 7
E + Y3- – Y3+ = 7
We require that enamel paint production be always above 700 gallons. We thus have to ensure that our slack
deviation variable, Y3-, is as small as possible, i.e. minimized.
Note: Remember Y3- and Y3+ are both measured in 100 gallons of paint.
Step 9: Write the objective function with priorities: Thus we are required to minimize Y1+, Y2-, Y3-. By minimizing these
variables we will be able to possibly satisfy our goals.
12
Now we are almost near to writing our objective function. If you recall from Step 3, we said that P1 ≥ P2 ≥ P3, where Pi
represented the goal priorities. When we write the objective function, we use P1, P2, and P3 as the objective variables
coefficients, to denote which variable has the highest priority (these will have actual meaning/ values when we deal
with goal penalties).
Thus the objective function is
Min P1Y1+ + P2Y2- + P3Y3-
Step 10. Write the Goal Programming Model
We need to combine all parts i.e. the functional constraints, goal constraints and the objective function for producing
the goal programming model.
10 L + 15 E ≤ 70 (Labour)
L –E ≥0 (Production)
L, E and all deviational variables are nonnegative.
13