next up previous contents
Next: About this document Up: Multiple Criteria Decision Making Previous: Analytic Hierarchy Process

Goal Programming

Goal Programming is a fancy name for a very simple idea: the line between objectives and constraints is not completely solid. In particular, when there are a number of objectives, it is normally a good idea to treat some or all of them as constraints instead of objectives.

Again, a particular example will illustrate this best. Suppose we are developing an advertising campaign. We would like to reach three groups of people: High Income Women (HIW), Teenage Boys (TB), and Retired Men (RM) (the product is obvious). We can advertise on TV and/or in a magazine. An ad in each of these gives the following audience:

tabular67

Our budget is $600,000.

Now, if we did not need to worry about TB and RM, then we would have a simple linear program to optimize the number or HIW reached:

Maximize 7x+3y
Subject to
tex2html_wrap_inline195

with solution x=6, y=0, reaching 42 million HIW. Similar calculations show that the maximum number of TB is 60 million, and the maximum number of RM is 40 million. We could take each of the values as ``goals'' and try to find a solution that comes close to all of the goals. Since it is impossible to reach all of the goals simultaneously, we would penalize ourselves for not reaching a goal. This penalty (probably an artificial value) would depend on the importance of reaching a particular group. So, if we value HIW more than TB more than RM, we could end up with penalties of 200, 100 and 50 respectively. We create new variables tex2html_wrap_inline199 to represent our failure in meeting a goal, and create a new linear program

Minimize tex2html_wrap_inline201
Subject to
tex2html_wrap_inline203
tex2html_wrap_inline205
tex2html_wrap_inline207
tex2html_wrap_inline195

The solution to this is tex2html_wrap_inline211 . We meet the first two goals, and fall short on the third. We could experiment with other weights to see if we can find a ``better'' solution.

That is really all there is to goal programming: change some objectives into constraints by adding slack and/or surplus variables to represent deviation from a goal. There are some algorithmic changes possible to allow a more effective solution, but for the majority of applications, simply using a linear programming package like Solver is completely adequate.


next up previous contents
Next: About this document Up: Multiple Criteria Decision Making Previous: Analytic Hierarchy Process

Michael A. Trick
Sat Nov 23 11:53:32 EST 1996