Komplexität des Simplex-Algorithmus

36

Was ist die Obergrenze für den Simplex-Algorithmus, um eine Lösung für ein lineares Programm zu finden?

Wie würde ich vorgehen, um einen Beweis für einen solchen Fall zu finden? Es scheint, als ob der schlimmste Fall ist, wenn jeder Eckpunkt besucht werden muss, dass es O(2n) . In der Praxis wird der Simplex-Algorithmus jedoch bei Standardproblemen erheblich schneller ausgeführt.

Wie kann ich über die durchschnittliche Komplexität eines Problems nachdenken, das mit dieser Methode gelöst wird?

Alle Informationen oder Referenzen werden sehr geschätzt!

shuttle87
quelle
5
Beachten Sie, dass wir , wie Mashca in einer Antwort sagte , nicht wirklich über den „Simplex-Algorithmus“ verfügen. Abhängig von der Wahl einer Pivot-Regel gibt es viele verschiedene Simplex-Algorithmen.
Tsuyoshi Ito
2
Ein Würfel in der Dimension hat 2 n Eckpunkte. Dies ist also eine Obergrenze für eine beliebige Simplex-Variante von (z. B. Klee-Minty) Würfeln. Es gibt jedoch Polyeder in Dimension n mit 2 n Facetten, wie z. B. doppelzyklische Polytope, mit mehr als 2 n Eckpunkten, so dass 2 n im Allgemeinen keine unmittelbare Obergrenze für die Laufzeit der Simplex-Methode für Matrizen mit quadratischen Randbedingungen ist . n2nn2n2n2n
Rahul Savani

Antworten:

72

Der Simplex-Algorithmus besucht im schlimmsten Fall tatsächlich alle 2n Eckpunkte ( Klee & Minty 1972 ), und dies stellt sich für jede deterministische Pivot-Regel als wahr heraus. In einer wegweisenden Arbeit mit einer geglätteten Analyse haben Spielman und Teng (2001) jedoch bewiesen, dass die erwartete Laufzeit des Simplex-Algorithmus für alle Eingaben polynomisch ist, wenn die Eingaben in den Algorithmus leicht zufällig gestört werden Bei jedem Problem handelt es sich um ein "naheliegendes" Problem, das mit der Simplex-Methode effizient gelöst werden kann. Es deckt praktisch jedes lineare Programm ab, das Sie lösen möchten. Anschließend stellten Kelner und Spielman (2006) vor Ein Simplex-Algorithmus mit Polynom-Zeit-Randomisierung, der alle Eingaben verarbeitet, auch die schlechten für den ursprünglichen Simplex-Algorithmus.

Lev Reyzin
quelle
36

Wie Lev sagte, besucht der Algorithmus im schlimmsten Fall alle 2d Ecken wo dist die Anzahl der Variablen. Die Leistung des Simplex-Algorithmus kann jedoch auch stark von der verwendeten Pivot-Regel abhängen. Soweit mir bekannt ist, ist noch offen, ob es eine bestimmte deterministische Pivotregel mit subexponentieller Worst-Case-Laufzeit gibt. Viele Kandidaten wurden durch niedrigere Ergebnisse ausgeschlossen. Kürzlich zeigten Friedmann, Hansen und Zwick auch die ersten nicht-polynomialen Untergrenzen für einige natürliche randomisierte Pivot-Regeln mit einigen später bereitgestellten Korrekturen .

However, adding to the smoothed analysis result mentioned by Lev: Following Spielman and Tengs seminal paper introducing smoothed analysis, Vershynin improved their bounds further in 2006. He showed that the expected running time on slightly perturbed instances is only poly-logarithmic in the number of constraints n, down from n86.

Matthias
quelle
4
and as JeffE pointed out in a different question (cstheory.stackexchange.com/questions/2149/…) the current best subexponential method is a kind of dual simplex.
Suresh Venkat
The link to the Vershynin paper is dead.
kutschkem
8

To obtain insight into the worst-case and average-case analysis of the simplex method, you should read "Smoothed Analysis: Why The Simplex Algorithm Usually Takes Polynomial Time." by Spielman and Teng.

Christina Boucher
quelle
3

A good reference on why simplex is not running in polynomial time, rather than why it's exponential is Papadimitriou & Steiglitz Combinatorial Optimization, Section 8.6 in which they demonstrate that Simplex is not a polynomial-time algorithm.

hyperboreean
quelle
1

2019 löst der OpenSource-LP-Löser GLPK das Klee-Minty-Cube- ProblemD=200 In weniger als 100 Millisekunden auf einem 2,7-GHz-iMac:

GLPK Simplex Optimizer, v4.65
200 rows, 200 columns, 20100 non-zeros
Preprocessing...
199 rows, 200 columns, 20099 non-zeros
Scaling...
 A: min|aij| =  1.000e+00  max|aij| =  1.607e+60  ratio =  1.607e+60
...
Constructing initial basis...
Size of triangular part is 199
*     0: obj =   0.000000000e+00 inf =   0.000e+00 (200)
*     1: obj = -6.223015278e+139 inf =   0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
Time used:   0.0 secs
Memory used: 3.4 Mb

Kann jemand andere Möglichkeiten vorschlagen, um schwierige Probleme für die Simplex-Methode zu konstruieren, die langsam, aber nicht speichergebunden sind?

Hinzugefügt: Lateinische Quadrate oder 3D-Permutationsmatrizen scheinen viele Eckpunkte zu haben - wie viele?
Theorie und Praxis sind in der Theorie näher als in der Praxis.

Denis
quelle
-1

Der ursprüngliche Simplex-Algorithmus kann abweichen. es wird in bestimmten Fällen wiederholt. Daher keine allgemeine Bindung. Andere Antworten geben Ihnen Antworten auf die verschiedenen Modifikationen des Simplex-Algorithmus.

MdAyq7
quelle