Network simplex algorithm
In mathematical optimization, the network simplex algorithm is a graph theoretic specialization of the simplex algorithm. The algorithm is usually formulated in terms of a minimum-cost flow problem. The network simplex method works very well in practice, typically 200 to 300 times faster than the simplex method applied to general linear program of same dimensions.[1]
History
[edit]For a long time, the existence of a provably efficient network simplex algorithm was one of the major open problems in complexity theory, even though efficient-in-practice versions were available. In 1995 Orlin provided the first polynomial algorithm with runtime of where is maximum cost of any edges.[2] Later Tarjan improved this to using dynamic trees in 1997.[3] Strongly polynomial dual network simplex algorithms for the same problem, but with a higher dependence on the numbers of edges and vertices in the graph, have been known for longer.[4]
Overview
[edit]The network simplex method is an adaptation of the bounded variable primal simplex algorithm. The basis is represented as a rooted spanning tree of the underlying network, in which variables are represented by arcs, and the simplex multipliers by node potentials. At each iteration, an entering variable is selected by some pricing strategy, based on the dual multipliers (node potentials), and forms a cycle with the arcs of the tree. The leaving variable is the arc of the cycle with the least augmenting flow. The substitution of entering for leaving arc, and the reconstruction of the tree is called a pivot. When no non-basic arc remains eligible to enter, the optimal solution has been reached.
Applications
[edit]The network simplex algorithm can be used to solve many practical problems including,[5]
- Transshipment problem
- Hitchcock transportation problem
- Assignment problem
- Chains and antichains in partially ordered sets
- System of distinct representatives
- Covers and matching in bipartite graphs
- Caterer problem
References
[edit]- ^ Bazaraa, Mokhtar S.; Jarvis, John J.; Sherali, Hanif D. (2010). Linear Programming and Network Flows (4th ed.). Wiley. p. 453.
- ^ Orlin, James B. (1997-08-01). "A polynomial time primal network simplex algorithm for minimum cost flows". Mathematical Programming. 78 (2): 109–129. doi:10.1007/BF02614365. hdl:1721.1/2584. ISSN 0025-5610. S2CID 3107792.
- ^ Tarjan, Robert E. (1997-08-01). "Dynamic trees as search trees via euler tours, applied to the network simplex algorithm". Mathematical Programming. 78 (2): 169–177. doi:10.1007/BF02614369. ISSN 0025-5610. S2CID 18977577.
- ^ Orlin, James B.; Plotkin, Serge A.; Tardos, Éva (June 1993), "Polynomial dual network simplex algorithms", Mathematical Programming, 60 (1–3): 255–276, CiteSeerX 10.1.1.297.5730, doi:10.1007/bf01580615, S2CID 5838223
- ^ Chvatal, Vasek (1983). "20". Linear Programming. Macmillan. pp. 320–351. ISBN 9780716715870.
External links
[edit]- Solving Network Problems Section 14, p B-113 shows an example execution