Bland's rule

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

In mathematical optimization, Bland's rule (also known as Bland's algorithm or Bland's anti-cycling rule) is an algorithmic refinement of the simplex method for linear optimization.

With Bland's rule, the simplex algorithm solves feasible linear optimization problems without cycling.[1][2][3] There are examples of degenerate linear optimization problems on which the original simplex algorithm would cycle forever. Such cycles are avoided by Bland's rule for choosing a column to enter the basis.

Bland's rule was developed by Robert G. Bland, now a professor of operations research at Cornell University.

Algorithm

One uses Bland's rule during an iteration of the simplex method to decide first what column (known as the entering variable) and then row (known as the leaving variable) in the tableau to pivot on. Assuming that the problem is to minimize the objective function, the algorithm is loosely defined as follows:

  1. Choose the lowest-numbered (i.e., leftmost) nonbasic column with a negative (reduced) cost.
  2. Now among the rows choose the one with the lowest ratio between the (transformed) right hand side and the coefficient in the pivot tableau where the coefficient is greater than zero. If the minimum ratio is shared by several rows, choose the row with the lowest-numbered column (variable) basic in it.

Extensions to oriented matroids

In the abstract setting of oriented matroids, Bland's rule cycles on some examples. A restricted class of oriented matroids on which Bland's rule avoids cycling has been termed "Bland oriented matroids" by Jack Edmonds. Another pivoting rule, the criss-cross algorithm, avoids cycles on all oriented-matroid linear-programs.[4]

Notes

  1. Bland (1977).
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.

Further reading

  • Lua error in package.lua at line 80: module 'strict' not found.
  • George B. Dantzig and Mukund N. Thapa. 2003. Linear Programming 2: Theory and Extensions. Springer-Verlag.
  • Kattta G. Murty, Linear Programming, Wiley, 1983.
  • Evar D. Nering and Albert W. Tucker, 1993, Linear Programs and Related Problems, Academic Press.
  • M. Padberg, Linear Optimization and Extensions, Second Edition, Springer-Verlag, 1999.
  • Christos H. Papadimitriou and Kenneth Steiglitz, Combinatorial Optimization: Algorithms and Complexity, Corrected republication with a new preface, Dover. (computer science)
  • Alexander Schrijver, Theory of Linear and Integer Programming. John Wiley & sons, 1998, ISBN 0-471-98232-6 (mathematical)
  • Lua error in package.lua at line 80: module 'strict' not found. (Invited survey, from the International Symposium on Mathematical Programming.)