Randomized pivoting rules for the simplex algorithm Upper bounds Uri Zwick – Tel Aviv Univ. MDS summer school “The Combinatorics of Linear and Semidefinite Programming” August 14-16,
Download
Report
Transcript Randomized pivoting rules for the simplex algorithm Upper bounds Uri Zwick – Tel Aviv Univ. MDS summer school “The Combinatorics of Linear and Semidefinite Programming” August 14-16,
Randomized pivoting rules
for the simplex algorithm
Upper bounds
Uri Zwick – Tel Aviv Univ.
MDS summer school
“The Combinatorics of Linear
and Semidefinite Programming”
August 14-16, 2012
Linear Programming
Maximize a linear objective function subject
to a set of linear equalities and inequalities
Find the highest point in a polytope
The Simplex Algorithm
[Dantzig (1947)]
Move up, along an edge to a neighboring
vertex, until reaching the top
Upper bound Theorem for polytopes
[Klee (1964)] [McMullen (1971)]
Number of vertices of a d-dimensional
n-faceted polytope is at most:
Deterministic pivoting rules
Largest improvement
Largest slope
Dantzig’s rule – Largest modified cost
Bland’s rule – avoids cycling
Lexicographic rule – also avoids cycling
All known to require an exponential
number of steps, in the worst-case
Klee-Minty (1972)
Jeroslow (1973), Avis-Chvátal (1978),
Goldfarb-Sit (1979), … , Amenta-Ziegler (1996)
Algorithms for Linear Programming
Simplex (Dantzig 1947)
No polynomial versions known
Ellipsoid (Khachiyan 1979)
Interior-point (Karmakar 1984)
Smoothed analysis based (ST’04, KS’06)
Other (DV’08, …)
Polynomial, but not strongly polynomial
Not “combinatorial”
Is there a
polynomial pivoting rule?
Is the diameter polynomial?
Hirsch conjecture (1957):
The diameter of a d-dimensional,
n-faceted polytope is at most n−d
Refuted Santos (2010)!
Diameter is still believed to be polynomial
Quasi-polynomial upper bound
[Kalai-Kleitman (1992)]
Randomized pivoting rules
Random-Edge
Choose a random improving edge
Random-Facet
To be explained shortly ☺
[Kalai (1992)] [Matoušek-Sharir-Welzl (1996)]
Random-Facet is sub-exponential!
Are Random-Edge and Random-Facet polynomial ???
Random-Facet algorithm(s)
Upper bound
on diameter
[Kalai-Kleitman
(1992)]
Random-Facet
primal version
[Kalai (1992)]
Seidel’s
randomized
LP algorithm
[Seidel (1991)]
Random-Facet
dual version
[Matoušek
Sharir-Welzl
(1992)]
Upper bound on diameter
[Kalai-Kleitman (1992)]
Orient the polytope such that the
target vertex is the highest
Bound the monotone diameter
Active facet
a facet containing a vertex (strictly)
higher than the current vertex
Upper bound on diameter
[Kalai-Kleitman (1992)]
Upper bound on diameter
[Kalai-Kleitman (1992)]
Exercise: Verify and complete the details.
“Wishful” Random Facet
Find a vertex of a random active facet. (How?)
Solve recursively within that facet.
If top not reached, step out of the facet and
recurse.
Primal Random-Facet [Kalai (1992)]
Choose a random facet containing the
current vertex.
Solve recursively within that facet.
If top not reached, do a pivoting step
out of the facet and recurse.
(Toy) Exercise:
Primal Random-Facet in 2D
How do we solve such a recurrence?
One option: generating functions [MSW (1996)]
Seidel’s challenge: Can it be taught?
Once a right bound is known, it is
not too hard to verify it by induction
Solving the recurrence
Exercise: Verify and justify (or find a bug…)
Primal Random-Facet
Non-recursive version
Choose a random permutation of the facets
f1,f2,…,fd containing the current vertex v.
Find the first facet fi that is beneficial to
leave and move to a new vertex v’
contained in a new facet f’i.
Choose a new random ordering of
f1,f2,…,fi-1,f’i. Keep the ordering of
fi+1,…,fd. Repeat.
Exercise: Really?
(Randomized) Bland’s rule
Choose a (random) permutation of all
facets f1,f2,…,fn.
Find the first facet fi containing the
current vertex v that is beneficial to
leave and move to a new vertex v’.
Open problem:
Subexponential ???
Linear Programming Duality
d variables
n inequalities
n variables
n inequalities
d equalities
n-d free variables
n inequalities
Linear Programming Duality
d variables
n inequalities
n-d free variables
n inequalities
Clarkson’s Algorithm [Clarkson (1988)]
No need to consider the case n>9d2
Seidel’s algorithm [Seidel (1991)]
Choose a random inequality and ignore it.
Solve recursively without this inequality.
If the vertex obtained satisfies the ignored
inequality, we are done.
Otherwise, replace the ignored inequality by
an equality and solve recursively.
Dual Simplex Algorithms
Dual Simplex Algorithms
Dual Simplex Algorithms
Dual Pivot Step
Exercise: What is the complexity
of a dual pivoting step?
Dual Random Facet
[Matoušek-Sharir-Welzl (1992)]
Choose a random facet not containing the
current dual vertex.
Solve recursively without this facet, starting
from the current dual vertex.
If the vertex obtained is on the right side of
the ignored facet, i.e., is a vertex, we are done.
Otherwise, do a dual pivoting step to a dual
vertex on the ignored facet and recurse.
Dual Random Facet - Analysis
[Matoušek-Sharir-Welzl (1992)]
Hidden
dimension
Primal vs. Dual
Exercise: Coincidence?
“It is remarkable to see how
different paths have led to
rather similar results so
close in time.”
[Kalai (1992)]
Abstract objective functions (AOFs)
Acyclic Unique Sink Orientations (AUSOs)
Every face should
have a unique sink
AUSOs of n-cubes
2n facets
2n vertices
USOs and AUSOs
Stickney, Watson (1978)
Morris (2001)
Szabó, Welzl (2001)
Gärtner (2002)
The diameter is exactly n
No diameter issue!
Klee-Minty cubes (1972)
Taken from a paper by Gärtner-Henk-Ziegler
Random-Facet-1 “[Kalai (1992)]”
Try to find vertices on cn active facets.
If top not reached, choose a random facet,
go back to the vertex found on it, and solve
recursively within it.
If top not reached, do a pivoting step out of
the facet.
Try again to find vertices on cn active facets.
If top not reached, try again, from any
starting vertex.
Analysis of Random-Facet-1
“[Kalai (1992)]”
RANDOM FACET on the hypercube
[Ludwig (1995)] [Gärtner (2002)]
All correct !
Would never be switched !
There is a hidden order of the indices
under which the sink returned by the first
recursive call correctly fixes the first i bits