print Print
Please select which sections you would like to print:
verifiedCite
While every effort has been made to follow citation style rules, there may be some discrepancies. Please refer to the appropriate style manual or other sources if you have any questions.
Select Citation Style
Feedback
Corrections? Updates? Omissions? Let us know if you have suggestions to improve this article (requires login).
Thank you for your feedback

Our editors will review what you’ve submitted and determine whether to revise the article.

Also known as:
mathematical programming
Key People:
Richard Karp

Basic ideas

A simple problem in linear programming is one in which it is necessary to find the maximum (or minimum) value of a simple function subject to certain constraints. An example might be that of a factory producing two commodities. In any production run, the factory produces x1 of the first type and x2 of the second. If the profit on the second type is twice that on the first, then x1 + 2x2 represents the total profit. The function x1 + 2x2 is known as the objective function.

Clearly the profit will be highest if the factory devotes its entire production capacity to making the second type of commodity. In a practical situation, however, this may not be possible; a set of constraints is introduced by such factors as availability of machine time, labour, and raw materials. For example, if the second type of commodity requires a raw material that is limited so that no more than five can be made in any batch, then x2 must be less than or equal to five; i.e., x2 ≤ 5. If the first commodity requires another type of material limiting it to eight per batch, then x1 ≤ 8. If x1 and x2 take equal time to make and the machine time available allows a maximum of 10 to be made in a batch, then x1 + x2 must be less than or equal to 10; i.e., x1 + x2 ≤ 10.

optimization problemConstraint set bounded by the five lines x1 = 0, x2 = 0, x1 = 8, x2 = 5, and x1 + x2 = 10. These enclose an infinite number of points that represent feasible solutions.

Two other constraints are that x1 and x2 must each be greater than or equal to zero, because it is impossible to make a negative number of either; i.e., x1 ≥ 0 and x2 ≥ 0. The problem is to find the values of x1 and x2 for which the profit is a maximum. Any solution can be denoted by a pair of numbers (x1, x2); for example, if x1 = 3 and x2 = 6, the solution is (3, 6). These numbers can be represented by points plotted on two axes, as shown in the figure. On this graph the distance along the horizontal axis represents x1 and that along the vertical represents x2. Because of the constraints given above, the feasible solutions must lie within a certain well-defined region of the graph. For example, the constraint x1 ≥ 0 means that points representing feasible solutions lie on or to the right of the x2 axis. Similarly, the constraint x2 ≥ 0 means that they also lie on or above the x1 axis. Application of the entire set of constraints gives the feasible solution set, which is bounded by a polygon formed by the intersection of the lines x1 = 0, x2 = 0, x1 = 8, x2 = 5, and x1 + x2 = 10. For example, production of three items of commodity x1 and four of x2 is a feasible solution since the point (3, 4) lies in this region. To find the best solution, however, the objective function x1 + 2x2 = k is plotted on the graph for some value of k, say k = 4. This value is indicated by the broken line in the figure. As k is increased, a family of parallel lines are produced and the line for k = 15 just touches the constraint set at the point (5, 5). If k is increased further, the values of x1 and x2 will lie outside the set of feasible solutions. Thus, the best solution is that in which equal quantities of each commodity are made. It is no coincidence that an optimal solution occurs at a vertex, or “extreme point,” of the region. This will always be true for linear problems, although an optimal solution may not be unique. Thus, the solution of such problems reduces to finding which extreme point (or points) yields the largest value for the objective function.