The Simplex Method The MaximumFlow Problem Maximum Matching
• The Simplex Method • The Maximum-Flow Problem • Maximum Matching in Bipartite Graphs • The Stable marriage Problem
ITERATIVE IMPROVEMENT • In this chapter, we discuss a different approach to designing algorithms for optimization problems • It starts with some feasible solution (a solution that satisfies all the constraints of the problem) and proceeds to improve it by repeated applications of some simple step. • This step typically involves • a small, localized change yielding a feasible solution with an improved value of the objective function. • When no such change improves the value of the objective function, the algorithm returns the last feasible solution as optimal and stops. • Several obstacles to the successful implementation of this idea • First, we need an initial feasible solution • Second, it is not always clear what changes should be allowed in a feasible solution so that we can check efficiently whether the current solution is locally optimal and, if not, replace it with a better one • Third—and this is the most fundamental difficulty— is an issue of local versus global extremum (maximum or minimum)
ITERATIVE IMPROVEMENT • Think about the problem of finding the highest point in a hilly area with no map on a foggy day. A logical thing to do would be to start walking “up the hill” from the point you are at until it becomes impossible to do so because no direction would lead up. You will have reached a local highest point, but because of a limited feasibility, there will be no simple way to tell whether the point is the highest (global maximum you are after) in the entire area. • Fortunately, there are important problems that can be solved by iterative improvement algorithms. 1. The most important of them is linear programming. • the simplex method, the classic algorithm for linear programming • Discovered by the U. S. mathematician George B. Dantzig in 1947, this algorithm has proved to be one of the most consequential achievements in the history of algorithmics.
ITERATIVE IMPROVEMENT Another important problem of maximizing the amount of flow that can be sent through a network with links of limited capacities. • • This problem is a special case of linear programming its special structure makes it possible to solve the problem by algorithms that are more efficient than the simplex method We outline the classic iterative-improvement algorithm for this problem, discovered by the American mathematicians L. R. Ford, Jr. , and D. R. Fulkerson in the 1950 s. • The last two sections of the chapter deal with bipartite matching. This is the problem of finding an optimal pairing of elements taken from two disjoint sets. • Examples include matching workers and jobs, high school graduates and colleges, and men and women for marriage.
The Simplex Method • We have already encountered linear programming (see Section 6. 6)—the general problem of optimizing a linear function of several variables subject to a set of linear constraints: • many important practical problems can be modeled as instances of linear programming • Two researchers, L. V. Kantorovich of the former Soviet Union and the Dutch-American T. C. Koopmans, were even awarded the Nobel Prize in 1975 for their contributions to linear programming theory and its applications to economics. • the U. S. mathematician G. B. Dantzig, who is universally recognized as the father of linear programming in its modern form and the inventor of the simplex method, the classic algorithm for solving such problems
The Simplex Method
The Simplex Method Geometric Interpretation of Linear Programming • Before we introduce a general method for solving linear programming problems, let us consider a small example, which will help us to see the fundamental properties of such problems.
The Simplex Method An Outline of the Simplex Method • Our task now is to “translate” the geometric description of the simplex method into the more algorithmically precise language of algebra • To begin with, before we can apply the simplex method to a linear programming problem, it has to be represented in a special form called the standard form. The standard form has the following requirements: • It must be a maximization problem. • All the constraints (except the non negativity constraints) must be in the form of linear equations with nonnegative right-hand sides. • All the variables must be required to be nonnegative • Thus, the general linear programming problem in standard form with m constraints and n unknowns (n ≥ m) is
The Simplex Method • Thus, the general linear programming problem in standard form with m constraints and n unknowns (n ≥ m) is • It can also be written in compact matrix notations:
- Slides: 22