Two Variable Goal Programming Model with Priorities

Page 1 2 3

The example we are looking at is a two variable problem where  goals are listed according to priority (i.e. no penalties) and no prior solution is given (more information here).

We are looking at a problem modified from Ignizio (1976)[1].

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:

·        avoid the use of overtime

·        achieve a weekly profit of $1000

·        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 to the formulation of goal programming model

 Note: You can skip Steps 1-3 if you are proficient in formulating goal programming models

 Step 1: Rewrite information in a table format

You may skip this step if you can easily find the information in the problem, but 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)

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 (see 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 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 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, that 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 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.

 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. 

Min

 

 

 

P1Y1+

+ P2Y2-

 

+ P3Y3-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s.t.

 

 

 

 

 

 

 

 

 

 

 

     10 L

+ 15 E

 

 

 

 

 

 

≤ 70

(Labour)

 

L

– E

 

 

 

 

 

 

≥ 0

(Production)

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.)

 

 

 

All variables ≥ 0

 

 

 

 

 Next: Solve with Lindo

 Back to ME30B main page

 

 

 


 

[1] Ignizio, J.P. (1976), Goal Programming and Extensions, D.C. Heath and Company, Lexington, Massachusetts.