FACTOID # 150: The average person in the United Kingdom drinks as much tea as 23 Italians.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Simplex algorithm

In mathematical optimization theory, the simplex algorithm, created by the American mathematician George Dantzig in 1947, is a popular technique for numerical solution of the linear programming problem. An unrelated, but similarly named method is the Nelder-Mead method or downhill simplex method due to Nelder & Mead (1965) and is a numerical method for optimising many-dimensional unconstrained problems, belonging to the more general class of search algorithms. In mathematics, the term optimization, or mathematical programming, refers to the study of problems in which one seeks to minimize or maximize a real function by systematically choosing the values of real or integer variables from within an allowed set. ... In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state. ... Leonhard Euler, considered one of the greatest mathematicians of all time A mathematician is a person whose primary area of study and research is the field of mathematics. ... George Bernard Dantzig (8 November 1914 – 13 May 2005) was a mathematician who introduced the simplex algorithm and is considered the Father of linear programming. He was the recipient of many honors, including the National Medal of Science in 1975, the John von Neumann Theory Prize in 1974. ... Year 1947 (MCMXLVII) was a common year starting on Wednesday (link will display full 1947 calendar) of the Gregorian calendar. ... Numerical analysis is the study of approximate methods for the problems of continuous mathematics (as distinguished from discrete mathematics). ... In mathematics, linear programming (LP) problems involve the optimization of a linear objective function, subject to linear equality and inequality constraints. ... See simplex algorithm for the numerical solution of the linear programming problem. ... Numerical analysis is the study of algorithms for the problems of continuous mathematics (as distinguished from discrete mathematics). ... 2-dimensional renderings (ie. ... In computer science, a search algorithm, broadly speaking, is an algorithm that takes a problem as input and returns a solution to the problem, usually after evaluating a number of possible solutions. ...


In both cases, the method uses the concept of a simplex, which is a polytope of N + 1 vertices in N dimensions: a line segment in one dimension, a triangle in two dimensions, a tetrahedron in three-dimensional space and so forth. A 3-simplex or tetrahedron In geometry, a simplex (plural simplexes or simplices) or n-simplex is an n-dimensional analogue of a triangle. ... In geometry polytope means, first, the generalization to any dimension of polygon in two dimensions, and polyhedron in three dimensions. ... The geometric definition of a line segment In geometry, a line segment is a part of a line that is bounded by two end points, and contains every point on the line between its end points. ... A triangle. ... A tetrahedron (plural: tetrahedra) is a polyhedron composed of four triangular faces, three of which meet at each vertex. ...

Contents

Description

Main article: Linear programming
A series of linear inequalities defines a polytope as a feasible region. The simplex algorithm begins at a starting vertex and moves along the edges of the polytope until it reaches the vertex of the optimum solution.
A series of linear inequalities defines a polytope as a feasible region. The simplex algorithm begins at a starting vertex and moves along the edges of the polytope until it reaches the vertex of the optimum solution.

A linear programming problem consists of a collection of linear inequalities on a number of real variables and a given linear functional (on these real variables) which is to be maximized or minimized. Further details are given in the linear programming article. In mathematics, linear programming (LP) problems involve the optimization of a linear objective function, subject to linear equality and inequality constraints. ... Download high resolution version (1044x791, 19 KB)A graphical description of how the simplex method for solving linear programming problems works. ... Download high resolution version (1044x791, 19 KB)A graphical description of how the simplex method for solving linear programming problems works. ... In geometry polytope means, first, the generalization to any dimension of polygon in two dimensions, and polyhedron in three dimensions. ... In geometry, a vertex (plural vertices) is a special kind of point, usually a corner of a polygon, polyhedron, or higher dimensional polytope. ... The word linear comes from the Latin word linearis, which means created by lines. ... In mathematics, the real numbers may be described informally as numbers that can be given by an infinite decimal representation, such as 2. ... In computer science and mathematics, a variable (IPA pronunciation: ) (sometimes called a pronumeral) is a symbolic representation denoting a quantity or expression. ... In linear algebra, a branch of mathematics, a linear functional or linear form is a linear function from a vector space to its field of scalars. ...


In geometric terms we are considering a closed convex polytope, P, defined by intersecting a number of half-spaces in n-dimensional Euclidean space; each half-space is the area which lies on one side of a hyperplane. If the objective is to maximise a linear functional L(x), consider the hyperplanes H(c) defined by L(x) = c; as c increases, these form a parallel family. If the problem is well-posed, we want to find the largest value of c such that H(c) intersects P (if there is no such largest value of c, this isn't a reasonable question for optimization as it stands). In this case we can show that the optimum value of c is attained on the boundary of P. Methods for finding this optimum point on P work in several ways: some attempt to improve a possible point by moving through the interior of P (so-called interior point methods); others start and remain on the boundary searching for an optimum. In topology and related branches of mathematics, a closed set is a set whose complement is open. ... Look up Convex set in Wiktionary, the free dictionary. ... In geometry polytope means, first, the generalization to any dimension of polygon in two dimensions, and polyhedron in three dimensions. ... In geometry, a half-space is any of the two parts into which a hyperplane divides an affine space. ... Around 300 BC, the Greek mathematician Euclid laid down the rules of what has now come to be called Euclidean geometry, which is the study of the relationships between angles and distances in space. ... A hyperplane is a concept in geometry. ...


The simplex algorithm follows this latter methodology. The idea is to move along the facets of P in search of the optimum, from point to point. Note that, unless the optimum occurs on an edge or face that is parallel to H, the optimum will be unique and occur at a vertex of the polytope. If an optimum is found on an edge or face that is parallel to H, the optimum is not unique and can be obtained at any point on the edge or face. Since the simplex algorithm is concerned only with finding a single optimal point (even if other equally-optimal points exist), it is possible to look solely at moves skirting the edge of a simplex, ignoring the interior. The algorithm specifies how this is to be done. A 3-simplex or tetrahedron In geometry, a simplex (plural simplexes or simplices) or n-simplex is an n-dimensional analogue of a triangle. ...


We start at some vertex of the polytope, and at every iteration we choose an adjacent vertex such that the value of the objective function does not decrease. If no such vertex exists, we have found a solution to the problem. But usually, such an adjacent vertex is nonunique, and a pivot rule must be specified to determine which vertex to pick. Various pivot rules exist.


In 1972, Klee and Minty [1] gave an example of a linear programming problem in which the polytope P is a distortion of an n-dimensional cube. They showed that the simplex method as formulated by Dantzig visits all 2n vertices before arriving at the optimal vertex. This shows that the worst-case complexity of the algorithm is exponential time. Similar examples have been found for other pivot rules. It is an open question if there is a pivot rule with polynomial time worst-case complexity. Year 1972 (MCMLXXII) was a leap year starting on Saturday (link will display full calendar) of the Gregorian calendar. ... In geometry polytope means, first, the generalization to any dimension of polygon in two dimensions, and polyhedron in three dimensions. ... In complexity theory, exponential time is the computation time of a problem where the time to complete the computation, m(n), is bounded by an exponential function of the problem size, n (i. ... In computational complexity theory, polynomial time refers to the computation time of a problem where the time, m(n), is no greater than a polynomial function of the problem size, n. ...


Nevertheless, the simplex method is remarkably efficient in practice. Attempts to explain this employ the notion of average complexity or (recently) smoothed complexity.


Other algorithms for solving linear programming problems are described in the linear programming article. In mathematics, linear programming (LP) problems involve the optimization of a linear objective function, subject to linear equality and inequality constraints. ...


Problem input

Consider a linear programming problem,

maximize mathbf{c}^T mathbf{x}
subject to mathbf{A}mathbf{x} le mathbf{b}, , mathbf{x} ge 0.

The simplex algorithm requires the linear programming problem to be in augmented form. The problem can then be written as follows in matrix form: In mathematics, linear programming (LP) problems involve the optimization of a linear objective function, subject to linear equality and inequality constraints. ...

Maximize Z in:
 begin{bmatrix} 1 & -mathbf{c}^T & 0  0 & mathbf{A} & mathbf{I} end{bmatrix} begin{bmatrix} Z  mathbf{x}  mathbf{x}_s end{bmatrix} = begin{bmatrix} 0  mathbf{b} end{bmatrix}
 mathbf{x}, , mathbf{x}_s ge 0

where x are the variables from the standard form, xs are the introduced slack variables from the augmentation process, c contains the optimization coefficients, A and b describe the system of constraint equations, and Z is the variable to be maximized.


The system is typically underdetermined, since the number of variables exceed the number of equations. The difference between the number of variables and the number of equations gives us the degrees of freedom associated with the problem. Any solution, optimal or not, will therefore include a number of variables of arbitrary value. The simplex algorithm uses zero as this arbitrary value, and the number of variables with value zero equals the degrees of freedom.


Variables of nonzero value are called basic variables, and values of zero values are called nonbasic variables in the simplex algorithm. [This definition is problematic, since basic variables can also take zero value.]


This form simplifies finding the initial basic feasible solution (BF), since all variables from the standard form can be chosen to be nonbasic (zero), while all new variables introduced in the augmented form are basic (nonzero), since their value can be trivially calculated (mathbf{x}_{s,i} = mathbf{b}_{i} for them, since the augmented problem matrix is diagonal on its right half).


Revised simplex algorithm

Matrix form of the simplex algorithm

At any iteration of the simplex algorithm, the tableau will be of this form:

 begin{bmatrix} 1 & mathbf{c}_B^T mathbf{B}^{-1}mathbf{A} -mathbf{c}^T & mathbf{c}_B^T mathbf{B}^{-1}  0 & mathbf{B}^{-1}mathbf{A} & mathbf{B}^{-1} end{bmatrix} begin{bmatrix} Z  mathbf{x}  mathbf{x}_s end{bmatrix} = begin{bmatrix} mathbf{c}_B^T mathbf{B}^{-1} mathbf{b}  mathbf{B}^{-1}mathbf{b} end{bmatrix}

where mathbf{c}_B are the coefficients of basic variables in the c-matrix; and B is the columns of [mathbf{A} , mathbf{I}] corresponding to the basic variables.


It is worth noting that B and mathbf{c}_B are the only variables in this equation (except Z and x of course). Everything else is constant throughout the algorithm.


Algorithm

  • Choose an initial BF as shown above
This implies that B is the identity matrix, and mathbf{c}_B is a zero-vector.
  • While nonoptimal solution:
    • Determine direction of highest gradient
    Choose the variable associated with the coefficient in mathbf{c}_B^{T} mathbf{B}^{-1}mathbf{A} -mathbf{c}^{T} that has the highest negative magnitude. This nonbasic variable, which we call the entering basic, will be increased to help maximize the problem.
    • Determine maximum step length
    Use the begin{bmatrix} mathbf{B}^{-1}mathbf{A} & mathbf{B}^{-1} end{bmatrix} begin{bmatrix} mathbf{x}  mathbf{x}_s end{bmatrix} = mathbf{B}^{-1}mathbf{b} subequation to determine which basic variable reaches zero first when the entering basic is increased. This variable, which we call the leaving basic then becomes nonbasic. This operation only involves a single division for each basic variable, since the existing basic-variables occur diagonally in the tableau.
    • Rewrite problem
    Modify B and mathbf{c}_B to account for the new basic variables. This will automatically make the tableau diagonal for the existing and new basic variables.
    • Check for improvement
    Repeat procedure until no further improvement is possible, meaning all the coefficients of mathbf{c}_B^{T} mathbf{B}^{-1}mathbf{A} -mathbf{c}^{T} are positive. Procedure is also terminated if all coefficients are zero, and the algorithm has walked in a circle and revisited a previous state.

References

  • Greenberg, Harvey J., Klee-Minty Polytope Shows Exponential Time Complexity of Simplex Method University of Colorado at Denver (1997) PDF download
  • Frederick S. Hillier and Gerald J. Lieberman: Introduction to Operations Research, 8th edition. McGraw-Hill. ISBN 0-07-123828-X
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Section 29.3: The simplex algorithm, pp.790–804.
  • Hamdy A. Taha: Operations Research: An Introduction, 8th ed., Prentice Hall, 2007. ISBN 0-13-188923-0

Thomas H. Cormen is the co-author of Introduction to Algorithms, along with Charles Leiserson, Ron Rivest, and Cliff Stein. ... Charles E. Leiserson is a computer scientist, specializing in the theory of parallel computing and distributed computing, and particularly practical applications thereof; as part of this effort, he developed the Cilk multithreaded language. ... Professor Ron Rivest Professor Ronald Linn Rivest (born 1947, Schenectady, New York) is a cryptographer, and is the Viterbi Professor of Computer Science at MITs Department of Electrical Engineering and Computer Science. ... Clifford Stein is a computer scientist, currently working as a professor at Columbia University in New York, NY. He earned his BSE from Princeton University in 1987, a MS from Massachusetts Institute of Technology in 1989, and a PhD from Massachusetts Institute of Technology in 1992. ...

Note

  1. ^ Greenberg, cites: V. Klee and G.J. Minty. "How Good is the Simplex Algorithm?" In O. Shisha, editor, Inequalities, III, pages 159–175. Academic Press, New York, NY, 1972

See also

  • Nelder-Mead method
  • Fourier-Motzkin elimination

See simplex algorithm for the numerical solution of the linear programming problem. ... Fourier–Motzkin elimination is a mathematical algorithm for solving a system of linear inequalities. ...

External links


  Results from FactBites:
 
PlanetMath: simplex algorithm (310 words)
The simplex algorithm is used as part of the simplex method (due to George B. Dantzig) to solve linear programming problems.
The simplex algorithm is used as one phase of the simplex method.
This is version 19 of simplex algorithm, born on 2003-04-24, modified 2006-10-30.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.