next up previous contents
Next: Solving the Model Up: Introductory Example Previous: Introductory Example


We begin by modeling this problem. Modeling a problem using linear programming involves writing it in the language of linear programming. There are rules about what you can and cannot do within linear programming. These rules are in place to make certain that the remaining steps of the process (solving and interpreting) can be successful.

Key to a linear program are the decision variables, objective, and constraints.

Decision Variables. The decision variables represent (unknown) decisions to be made. This is in contrast to problem data, which are values that are either given or can be simply calculated from what is given. For this problem, the decision variables are the number of notebooks to produce and the number of desktops to produce. We will represent these unknown values by tex2html_wrap_inline811 and tex2html_wrap_inline813 respectively. To make the numbers more manageable, we will let tex2html_wrap_inline811 be the number of 1000 notebooks produced (so tex2html_wrap_inline817 means a decision to produce 5000 notebooks) and tex2html_wrap_inline813 be the number of 1000 desktops. Note that a value like the quarterly profit is not (in this model) a decision variable: it is an outcome of decisions tex2html_wrap_inline811 and tex2html_wrap_inline813 .

Objective. Every linear program has an objective. This objective is to be either minimized or maximized. This objective has to be linear in the decision variables, which means it must be the sum of constants times decision variables. tex2html_wrap_inline825 is a linear function. tex2html_wrap_inline827 is not a linear function. In this case, our objective is to maximize the function tex2html_wrap_inline829 (what units is this in?).

Constraints. Every linear program also has constraints limiting feasible decisions. Here we have four types of constraints: Processing Chips, Memory Sets, Assembly, and Nonnegativity.

In order to satisfy the limit on the number of chips available, it is necessary that tex2html_wrap_inline831 . If this were not the case (say tex2html_wrap_inline833 ), the decisions would not be implementable (12,000 chips would be required, though we only have 10,000). Linear programming cannot handle arbitrary restrictions: once again, the restrictions have to be linear. This means that a linear function of the decision variables must be related to a constant, where related can mean less than or equal to, greater than or equal to, or equal to. So tex2html_wrap_inline835 is a linear constraint, as is tex2html_wrap_inline837 . tex2html_wrap_inline839 is not a linear constraint, nor is tex2html_wrap_inline841 . Our constraint for Processing Chips tex2html_wrap_inline831 is a linear constraint.

The constraint for memory chip sets is tex2html_wrap_inline845 , a linear constraint.

Our constraint on assembly can be written tex2html_wrap_inline847 , again a linear constraint.

Finally, we do not want to consider decisions like tex2html_wrap_inline849 , where production is negative. We add the linear constraints tex2html_wrap_inline851 , tex2html_wrap_inline853 to enforce nonnegativity of production.

Final Model. This gives us the complete model of this problem:


Formulating a problem as a linear program means going through the above process to clearly define the decision variables, objective, and constraints.

next up previous contents
Next: Solving the Model Up: Introductory Example Previous: Introductory Example

Michael A. Trick
Mon Aug 24 14:40:57 EDT 1998