Goal Programming

 

The Goal Programming approach is the most popular for handling multiple objective problems in Linear Programming.

The basic idea is to convert multiple objectives into a single objective. The resulting model yields what is usually referred to as an efficient solution because it may not be optimum, with respect to all the conflicting objectives of the problem.

 

There are two cases to be considered :

Non-Preemptive Goal Programming : where all the goals are roughly comparable importance.

Preemptive Goal Programming : where there is a hierarchy of priority levels for the goals, so the goal of primary importance   receive first-priority attention, those of secondary importance receive second-priority attention, and so forth ( if there are more than two priority levels ).

 

Let  c1(x),. . . .,ck(x)  be the various objective functions to be optimized over the set of feasible solutions X.

In this approach, instead of trying to optimize each objective function, the decision maker is asked to specify a goal or target value that realistically is the most desirable value for that function.

For r = 1 to k, let gr be the specified goal for cr(x).

At any feasible solution  x є X,  for r = 1 to k, we express the deviation in the rth objective function from its goal, cr(x) - gr , as a difference of two nonnegative variables

                                                          cr(x) - gr = ur+ - ur-                          //   Multiple objectives                                       ( 1 )

Where ur+ , ur-  are the positive and negative parts of the deviation cr(x) - gr. Such that

                                                           ur+      =    0                     if   cr(x) - gr  ≤  0

                                                           ur+      =    cr(x) - gr         if   cr(x) - gr  >  0 

 

                                                           ur-       =   0                      if   cr(x) - gr   ≥  0

                                                           ur-       =   -(cr(x) - gr)      if   cr(x) - gr   <  0                                                               ( 2 )

 

The goal programming model for the original multiobjective problem will be a single objective problem in which we try to minimize a linear function of these deviation variables of the form  1k ( αrur+ + βrur- )     , where αr , βr ≥ 0 for all r , called a penalty function.  

If  objective function cr(x)   is to be maximized then, then feasible solution x which make  ur- = 0 and  ur+ ≥ 0 are desirable, and  ur+ = 0 and       ur- > 0 become more and more undesirable. To guarantee that algorithm seeks solutions in which  ur- is as small as possible, we associate a positive penalty coefficient βr with ur- , and include a term of the form αrur+ + βrur- ( where αr = 0 , βr > 0 ) in the penalty function that the goal programming tries to minimize.

βr > 0 measures the loss or penalty per unit shortfall in the value of  cr(x) from its specified goal of gr. Higher values of βr represent greater importance.                       

If  objective function cr(x)   is to be minimized then, then feasible solution x which make  ur+ = 0 and  ur- ≥ 0 are desirable, and  ur- = 0 and ur+ > 0 become more and more undesirable. So, for these we associate a positive penalty coefficient αr with ur+ , and include a term of the form         αrur+ + βrur- ( where αr > 0, βr = 0 ) in the penalty function that the goal programming tries to minimize. Higher values of αr represent greater importance attached by the decision maker to the objective functions in this class.

So, the goal programming model is the following single objective problem.

 

                                                  Minimize       1k ( αrur+ + βrur- )

                                                  subject to      cr(x) - gr = ur+ - ur-    , r = 1 to k                                                                     ( 3 )

                                                                       ur+ , ur-   ≥  0,  r = 1 to k

                                                                        x є X

 

The optimum solution of ( 3 ) depends critically on the goals selected, and on the choice of the penalty coefficients α = (α1,...,αk),  β = (β1,...,βk). With loss of generality we can assume that the vectors αr, βr are scaled so that 1k ( αr + βr ) = 1. Once  αr, βr are determined, an optimum solution of (3) is the solution to implement. One can solve (3) with different set of goal vectors for the various objective functions. This process can be repeated until at some stage, an optimum solution obtained for (3) seems to be a reasonable one for the original multiobjective problem. Exploring with the optimum solutions of (3) for different goal and penalty coefficient vectors in this manner, one can expect a practically satisfactory solution for the multiobjective problem.

 

 

 

Example on Goal Programming.