Benutzer:Heinrich Puschmann/Pivotverfahren (Kladde)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

<-- Geordnete Liste der Belege:

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[12] [13] [14] [15] -->





Pivotverfahren (auch Basisaustauschverfahren) sind Algorithmen der mathematischen Optimierung. Für ein vorgegebenes System linearer Gleichungen in nichtnegativen Variablen wird nach der bestmöglichen von vielen Alternativlösungen (einer sogenannten Optimallösung) gesucht, und auf dieser Suche das Gleichungssystem Schritt für Schritt umgewandelt ohne dabei die Lösungsmenge zu verändern.  Wichtige Pivotverfahren sind die Simplexverfahren und die Criss-Cross-Verfahren.

Pivotverfahren spielen für die Behandlung von linearen Ungleichungen eine analoge und ähnlich wichtige Rolle wie das Gaußsche Eliminationsverfahren für die Lösung linearer Gleichungen; Hauptanwendungsgebiet ist die lineare Optimierung. Sie gehören zu den meistverwendeten Lösungsmethoden in der Unternehmensforschung, der Wirtschaftswissenschaft, dem Gütertransport, und sie werden auch in vielen anderen Gebieten wie im Ingenieurbau (Strukturoptimierung), in der Statistik (Regressionsanalyse) und der Spieltheorie zunehmend eingesetzt[4]. Aufgaben mit zehntausenden Variablen und Ungleichungen sind an der Tagesordnung[5].




Pivotverfahren, oder pivotbasierter Optimierungsalgorithmus kann sich jeder Algorithmus nennen, der für seine Suche nach einem Optimum ein lineares Gleichungssystem aufstellt und in jedem Schritt strategisch ausgewählte Variablen bezüglich der Restvariablen freilegt, wobei sich aufeinanderfolgend freigelegte Variablensätze in nur einer Variable unterscheiden. Wichtige Pivotverfahren sind die Simplex-Verfahren [3][4] und die Criss-Cross-Verfahren [6] in der linearen Optimierung.




Allgemeine Vorgehensweise

[Bearbeiten | Quelltext bearbeiten]

Ein Pivotverfahren geht immer von einem besonders gearteten linearen Gleichungssystem aus, in dem alle Variablen, außer vielleicht einer, nichtnegative Werte annehmen sollen. Jedes System linearer Ungleichungen oder Gleichungen, und auch jede lineare Optimierungsaufgabe, lässt sich nämlich in folgende (englisch dictionary genannte [3]) Buchform bringen:

wobei reelle (in der Praxis freilich immer rationale) Zahlen sind. Diese Darstellung soll aussagen, dass eine Lösung in den Unbekannten gesucht wird, welche die obigen Gleichungen beziehungsweise Ungleichungen erfüllt und dabei die sogenannte Zielvariable so groß wie möglich wählt. Mit Hilfe der Indexmengen

 und 

lässt sich diese Aufgabe auch wie folgt in gedrungener Form ausdrücken:

In jedem Schritt eines Pivotverfahrens ist wie oben eine Teilmenge der Variablen als unabhängig hervorgehoben, während die restlichen Variablen, sogenannte Basisvariablen, als lineare Funktionen der unabhängigen Variablen ausgedrückt werden; in aufeinanderfolgenden Schritten wechselt immer eine der Variablen von unabhängig auf Basisvariable und eine zweite in die umgekehrte Richtung; solche Variablenpaare werden Pivots genannt.


Falls nun beide folgende Optimumbedingungen erfüllt sind, nämlich

  •   für alle     (Zulässigkeit)  und
  •   für alle     (Zielbeschränkung),

dann kann man eine Lösung für die obige Aufgabe erhalten, indem man die unabhängigen Variablen auf die Werte setzt. Zum einen sind die Werte der freigelegten Variablen    dann nichtnegativ, wie gefordert. Zum anderen dürfen sonstige mögliche Lösungen nur unabhängige Variable mit ebenfalls nichtnegativen Werten enthalten, so dass für jede dieser Lösungen die Ungleichung    gilt.

Im folgenden Beispielsystem,

werden die Optimumbedingungen aber an zwei Stellen verletzt, da    und    ist. Zum ersten würde die Versuchslösung    den negativen Wert    enthalten, und zum zweiten könnte dessen Zielvariablenwert    bei Lösungen mit    unter Umständen erhöht werden.


Falls die Optimumbedingungen nicht erfüllt sind, was in der Regel der Fall sein wird, lässt sich das obige lineare Gleichungssystem aber auch andersartig ausdrücken, indem man an Stelle von eine andere, gleich große Teilmenge der Unbekannten auswählt und diese freilegt.  Es sei  eine Umstellung der Unbekannten   also eine Indexfunktion die

erfüllt. Für neue Indexmengen

 und 

erstellen wir dann das Gleichungssystem:

Dabei ist zu beachten, dass Einträge wie  nur für Indexpaare mit  und definiert sind. Die Einträge des so abgewandelten Gleichungssytems lassen sich nun erneut auf die Optimumbedingungen überprüfen,

  •   für alle     (Zulässigkeit)  und
  •   für alle     (Zielbeschränkung),

was wiederum unter Umständen zu einer Lösung der Aufgabe führt.

Die Menge wird Menge der Basisvariablen oder einfach Basis genannt. Ein Standardergebnis der Linearen Optimierung sagt aus, dass für jede lösbare Aufgabe ein Satz Basisvariablen existiert, der zu einer Lösung führt. Bei erfüllten Optimumbedingungen bilden die Basisvariablen eine sogenannte Optimalbasis des Systems.


Jedes nichtverschwindende des obigen Gleichungssystems, dem Pivotsystem, nennt sich Pivotelement, und erlaubt es, die unabhängige Variable an Stelle der Basisvariablen freizulegen, um so weiter nach einer Lösung zu suchen. Das ist die Vorgehensweise eines allgemeinen Pivotverfahrens, wobei aber nicht irgendwelche Pivotelemente gewählt werden, sondern nur sogenannte zulässige Pivots , die folgendes erfüllen müssen:

  • entweder gilt gleichzeitig     und      (Zulässigkeitspivot),
  • oder es gilt gleichzeitig     und      (Zielfortschrittspivot).

Im obigen Beispielsystem

sind wegen der Optimalitätsverletzung    Pivotelement    mit Pivot   und Pivotelement    mit Pivot   zulässig. Wegen der Optimalitätsverletzung    sind aber ebenfalls Pivotelement    mit Pivot ,  und Pivotelement    mit Pivot   zulässig.

Die Beschränkung auf zulässige Pivots verhindert, dass derselbe Pivot zweimal hintereinander ausgewählt wird. Die Regeln, nach denen in jedem Schritt eines dieser zulässigen Pivotelemente ausgewählt wird, hängen vom jeweiligen Verfahren ab; ein Mindestanspruch ist dabei natürlich, dass das Verfahren nach endlich vielen Schritten anhält, was bei ungeeigneter Auswahl von zulässigen Pivots nicht der Fall ist. Fukuda & Terlaky haben 1999 bewiesen, dass für jede lösbare Aufgabe und für jede Ausgangsbasis eine Folge von maximal zulässigen Pivots existiert, die zu einer Optimalbasis führt [7]. Leider liefert ihr Beweis keine Vorgehensweise, um diese Pivots in jedem Optimierungsschritt auch zu finden.

Wie aus der Definition zu ersehen ist, haben Optimalbasen keine zulässigen Pivots, das Verfahren kann in so einem Fall gar nicht fortgeführt werden. Anderseits kann anhand von Argumenten wie im obigen Abschnitt leicht gezeigt werden, dass eine nichtoptimale Basis ohne zulässige Pivots immer zu einer Aufgabe gehört, die keine Lösung hat; entweder, weil das System der Gleichungen und Ungleichungen überhaupt keine Lösung hat (unzulässige Aufgabe), oder, weil sich Lösungen mit beliebig großem finden lassen (unbeschränkte Aufgabe).


Eine erfolgssichere Pivotauswahlregel

[Bearbeiten | Quelltext bearbeiten]

Wir wählen vorerst ein Beispiel ohne Zielvariable, das heißt, mit . In so einem Fall wird keine der Variablen maximiert; es werden nur beliebige (nicht negative) Werte für die Unbekannten    gesucht, die ein vorgegebenes Gleichungssystem erfüllen. In jedem Schritt wollen wir dann den zulässigen Pivot nach folgender Regel wählen:

  1. Wähle   ,
  2. Danach wähle   .

Diese (nicht besonders effiziente) Auswahlregel fällt wegen mit der Kleinster-Index-Pivotauswahl zusammen; es lässt sich beweisen [6], dass diese Auswahl bei jeder lösbaren Aufgabe zu einer Optimalbasis führt.


Wir suchen nun Werte für die Unbekannten   , die folgendes Gleichungssystem erfüllen:


Die zulässigen Pivots im obigen Gleichungssystem sind und ; wir legen an Stelle von frei:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 0 zu Basis 1   (skalierbar und von Firefox animiert bei 2mal anklicken und gedrückt halten)

Das neue System ist


Die zulässigen Pivots sind nun und ; jetzt legen wir an Stelle von frei:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 1 zu Basis 2

Wir erhalten das System


Der einzige zulässige Pivot hier ist ; wir legen deshalb an Stelle von frei:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 2 zu Basis 3

Nun erhalten wir

Da dieses System die Optimalitätsbedingungen erfüllt (und dem entsprechend auch keine zulässigen Pivots hat), erhalten wir die Lösung:

       


Eine kreislaufanfällige Pivotauswahlregel

[Bearbeiten | Quelltext bearbeiten]

Die Reihenfolge, in welcher Variable und Gleichungen eines Pivotsystems aufgelistet werden ist grundsätzlich willkürlich. Dennoch wurden die ersten Pivotauswahl-Strategien, welche Variablen und Gleichungen unabhängig von deren Darstellung im Pivotsystem behandeln (und dazu noch leicht umsetzbar waren), erst 1977 von Bland [2] vorgestellt. In der Anfangszeit der Pivotverfahren (1950-1970), als noch nicht streng zwischen Algorithmen und Datenstrukturen unterschieden wurde, wurden Pivotauswahl-Strategien eher anhand von Datenstrukturen (sogenannte "Tableaus") beschrieben, und bei dieser Art Strategien konnte die Endlichkeit des Verfahrens ohne Zusatzberechnungen meist nicht gewährleistet werden. Es folgt ein Beispiel einer solchen ungeeigneten Pivotauswahl.


Es sei wieder .  Bei ungeeigneter Pivotwahl kann ein Pivotverfahren in einen unendlichen Kreislauf oder Endlosschleife geraten. Als Beispiel für eine naheliegende, aber dennoch ungeeignete, Pivotwahl betrachten wir folgende Regel, die dem weitverwendeten dualen Simplexverfahren nachempfunden ist:

  1. Wähle das kleinste     mit   ,
  2. Danach wähle das kleinste     mit   .


Wir starten mit dem System:

Wir wählen und legen an Stelle dessen frei (nach der kreissicheren Regel im vorherigen Beispiel hätten wir und gewählt). Wir erhalten das System:

Wir wählen , legen an Stelle dessen frei, und erhalten:

Aber dieses Gleichungssystem ist -abgesehen von der Benennung der Veränderlichen- identisch mit dem Startsystem. Die Zahleneinträge des Systems wiederholen sich alle 2 Schritte, nach 6 Schritten wiederholen sich die Gleichungen des Systems in umgestellter Form, und nach insgesamt 12 Schritten wiederholt sich das Startsystem genau, mit den Gleichungen und Unbekannten am ursprünglichen Ort. Das Gesamtsystem von Gleichungen und Ungleichungen hat in Wirklichkeit gar keine Lösung, doch kann das Pivotverfahren mit der oberen Pivotwahl das nicht herausfinden.


Duale Optimierungsaufgaben

[Bearbeiten | Quelltext bearbeiten]

Jeder linearen Optimierungsaufgabe lässt sich, von der obigen Grundform abhängig, eine zweite, duale Optimierungsaufgabe zuordnen; die Koeffizientenmatrix dieser sogenannten dualen Aufgabe ist die negative Transposition der Koeffizientenmatrix der ursprünglichen Aufgabe:

In gedrungener Form wird das zu

(Vorsicht: Bei der Herleitung über diese Formulierung dürfen     nicht durch     ersetzt werden!)

Offenbar führt die duale Umwandlung einer dualen Aufgabe wieder zur ursprünglichen Aufgabe; das ist aber nur dann leicht ersichtlich, wenn die Aufgabe in die hier verwendete Form gebracht wurde.


Schrittweise Umwandlung

[Bearbeiten | Quelltext bearbeiten]

Die obige Beziehung der Koeffizienten zwischen Primalaufgabe und Dualaufgabe gilt nicht etwa nur für die Ausgangsbasis, sondern bleibt erhalten, solange die Basisvariablen nach denselben Pivots umgewandelt werden. Es gilt


Diese Dualitätsbeziehung lässt sich am leichtesten an einem Pivotsystem betrachten, das ausschließlich zwei unabhängige Unbekannte und zwei freigelegte Unbekannte enthält. Wir erhalten dasselbe System, wenn wir zuerst zwei der Unbekannten austauschen und danach die duale Aufgabe herleiten, oder wenn wir diese Schritte in umgekehrter Reihenfolge tun:

   

Dieses Schema zeigt auch an, wie sich die Einträge des Pivotsystems von einem Schritt auf den nächsten verändern. Das Zeichen steht für den gemeinsamen Nenner des Gleichungssystems, das Zeichen für den Zähler des Pivotelements, für einen sonstigen Eintrag der Pivotzeile, für einen sonstigen Eintrag der Pivotspalte, und für einen beliebigen Eintrag abseits von Pivotzeile und Pivotspalte. Einträge der Zielbeitragszeile () und der Basiswertspalte () werden nach denselben Regeln umgewandelt.


Beispiel zur Dualität

[Bearbeiten | Quelltext bearbeiten]

Die Aufgabe im obigen Beispiel hat folgende duale Aufgabe (die Nullen stammen von ):

Bei der ursprünglichen Aufgabe hatten wir an Stelle von freigelegt. Wenn wir im dualen Gleichungssystem an Stelle von freilegen, erhalten wir:

Wenn wir nun an Stelle von freilegen, erhalten wir:

Wenn wir an Stelle von freilegen, erhalten wir:

Der größtmögliche Wert für die Zielvariable ist somit . Das ist derselbe Wert, den auch schon die Anfangslösung hatte, doch war das aus dem ersten Gleichungssystem nicht ersichtlich und ist selbstverständlich nicht immer der Fall.


Criss-Cross-Verfahren

[Bearbeiten | Quelltext bearbeiten]

Criss-Cross-Verfahren[6] (englisch: kreuz und quer) sind kombinatorische Pivotverfahren, das heißt Pivotverfahren, welche nur die Vorzeichen der Systemkoeffizienten und nicht die Koeffizienten selber für die Pivotauswahl in Betracht ziehen. Ihren Ursprung hatten Criss-Cross-Verfahren bei der Untersuchung orientierter Matroiden.


Aufgabenbereich und Forschungsziele

[Bearbeiten | Quelltext bearbeiten]

Die einfachsten aller Pivotverfahren gehören zu den Criss-Cross-Verfahren[6], welche in den 80er-Jahren für Aufgabestellungen von orientierten Matroiden[12] entwickelt wurden. Die wesentlich komplexeren Simplexverfahren[3][4] wurden aber bereits 1947 von George Dantzig für die Lösung linearer Optimierungsprobleme veröffentlicht und haben danach dank ihrer weiten Verbreitung die Suche nach Criss-Cross-Verfahren maßgeblich motiviert. Weitere Pivotverfahren wurden entwickelt für das lineare Komplementaritätsproblem mit suffizienten[16] Matrizen (einschließlich quadratischer[14] Programmierung) und für linear-fraktionale[15] Optimierungsprobleme.

Bei der Ausarbeitung verschiedener Pivotverfahren geht es in der Hauptsache darum, die Anzahl der Pivotschritte und damit auch die Laufzeit des Verfahrens gering zu halten. Während Laufzeitschranken für allgemeine Pivotverfahren, und insbesondere für Criss-Cross-Verfahren, ein noch (2010) offenes Forschungsthema[8] sind, beanspruchen die derzeit schon länger bekannten Simplexverfahren alle eine überpolynomial beschränkte Laufzeit, das ist eine Laufzeit, die sich nicht durch ein Polynom in der Datenspeichergröße beschränken lässt. Zusammenfassend lässt sich sagen, dass Criss-Cross-Verfahren mehr Freiheitsgrade aufweisen als Simplexverfahren, und dass ein Criss-Cross-Verfahren genau aus diesem Grund bei einer guten Pivotauswahl schneller[7] und bei einer schlechten Pivotauswahl langsamer[9] als Simplexverfahren sein kann.


Besondere Criss-Cross-Verfahren

[Bearbeiten | Quelltext bearbeiten]

Das Kleinster-Index-Pivotverfahren ist das bekannteste aller Criss-Cross-Verfahren und erweitert die Kleinster-Index Pivotauswahl [6] aus dem ersten Beispiel. Dafür werden die Unbekannten in einer mehr oder weniger festen Reihenfolge angeordnet und die Pivots wie folgt ausgewählt (wie üblich, sei das Minimum einer leeren Menge unendlich groß):

  1. Suche die Indices     und   .
  2. Falls ,  ist, wähle Pivot  mit  .
  3. Falls ,  ist, wähle Pivot  mit  .

Das lässt natürlich die Frage offen, wie die Variablen angeordnet werden sollen.

Das Häufigster-Index-Pivotverfahren (englisch most frequent index) wählt als seine beiden Pivotvariablen immer diejenige zulässige Variable, welche bis zu diesem Schritt am öftesten für einen Pivot ausgewählt wurde (bei gleicher Prio darf beliebig ausgewählt werden).

Das Criss-Cross-Verfahren mit Stackauswahl (englisch Last-In_First-Out, LIFO) wählt als seine beiden Pivotvariablen immer diejenige zulässige Variable, welche als letzte für einen Pivot ausgewählt wurde (gleiche Prio kann hier nicht vorkommen).


Beispiel zu einem Criss-Cross-Verfahren

[Bearbeiten | Quelltext bearbeiten]

Im folgenden Beispiel sollen Werte für die Variablen gefunden werden, welche das Gleichungssystem

erfüllen und dabei die zusätzliche Zielvariable  auf ein Maximum bringen. Wir benutzen dazu die oben angeführte Pivotauswahl des kleinsten Index.


In unserem Ausgangssystem sind sämtliche Pivots zulässig; die Auswahlregel schreibt aber vor, dass wir freilegen und gegen austauschen:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 0 zu Basis 1   (skalierbar und von Firefox animiert bei 2mal anklicken und gedrückt halten)

Das führt zum neuen System


Hier sind die Pivots , und , zulässig; anhand der Auswahlregel legen wir an Stelle von frei:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 1 zu Basis 2

Wir erhalten das System


Die zulässigen Pivots dieses Gleichungssystems sind und ; wir legen an Stelle von frei:

(Skalierbare animierte Darstellung eines Pivotverfahren-Schrittes)
Basis 2 zu Basis 3

Nun erhalten wir

Dieses Gleichungssystem ist optimal, die entsprechenden Werte der Unbekannten sind:

          


Simplex-Verfahren

[Bearbeiten | Quelltext bearbeiten]

Simplexverfahren[3][4] waren die ersten Pivotverfahren für die Lineare Optimierung, und wurden 1947 von George Dantzig veröffentlicht und seitdem vielfach weiterentwickelt. Die Suche nach einer Pivotauswahl, welche sowohl durchschnittlich schnell und in Extremfällen auch sicher zum Ziel kommen soll, führte zu immer komplexeren Auswahlregeln, die in der Praxis nicht immer streng eingehalten werden, und wegen unvermeidlicher Rundungsfehler meist nicht streng eingehalten werden können.


Primale Simplexverfahren

[Bearbeiten | Quelltext bearbeiten]

Primale Simplexverfahren gehen von einer sogenannten zulässigen Basis mit   für alle  aus, und untersuchen ausschließlich zulässige Basen, bis eine Optimalbasis gefunden wird. Eine wichtige Eigenschaft der primalen Simplexverfahren ist, dass der Wert der Zielvariablen, also , mit jedem Schritt monoton anwächst; würde er streng monoton anwachsen, wäre die Endlichkeit des Verfahrens gesichert. Ein primales Simplexverfahren muss seine Pivots wie folgt wählen:

  1. Wähle ein beliebiges , welches erfüllt.  Zum Beispiel (Bland [2]), suche das kleinste mit dieser Eigenschaft.
  2. Wähle ein beliebiges , welches und erfüllt.  Zum Beispiel (Bland), suche das kleinste mit dieser Eigenschaft.

Um eine zulässige Ausgangsbasis zu erhalten, muss in einer sogenannten 1. Phase eine Hilfsaufgabe gelöst werden.

Ein Standardergebnis der Linearen Optimierung besagt, dass für jede lösbare Aufgabe und für jede zulässige Basis eine Folge zulässiger Pivots existiert, die über ausschließlich zulässige Basen zu einer Optimalbasis führt; unbekannt ist dagegen, ob es eine Folge dieser Art gibt, deren Länge sich polynomial in der Speichergröße der Daten beschränken lässt.


Duale Simplexverfahren

[Bearbeiten | Quelltext bearbeiten]

Duale Simplexverfahren sind Pivotverfahren, die von einer sogenannten dual-zulässigen Basis mit   für alle   ausgehen, und in ihrer Suche nach einer Optimalbasis ausschließlich dual-zulässige Basen untersuchen; der Wert der Zielvariablen nimmt dabei monoton ab. Duale Simplexverfahren erzeugen die gleichen Pivotfolgen wie die auf die duale Aufgabe angewandten primalen Simplexverfahren, und haben deshalb auch grundsätzlich die gleichen Eigenschaften wie die primalen Verfahren. Dass sie für die Lösung vieler angewandter Aufgaben trotzdem den Primalverfahren vorgezogen werden, liegt daran, dass es für viele angewandte Aufgaben leichter ist, eine dual-zulässige Ausgangsbasis zu finden.


Symmetrische Simplexverfahren

[Bearbeiten | Quelltext bearbeiten]

Symmetrische oder primal-duale Simplexverfahren suchen eine zulässige Lösung für das aus primalen und dualem System bestehendes Aufgabenpaar. Um beide Aufgaben auch effizient zu behandeln wird aber nur eine Datentabelle verwendet und die wechselseitige Beziehung dualer Aufgaben ausgenützt. Bei symmetrischen Simplexverfahren entfällt die Aufteilung in Phase 1 und Phase 2.


Weiterführende Hinweise

[Bearbeiten | Quelltext bearbeiten]

Obwohl viele Texte der linearen Optimierung auf dem Markt zu finden sind, erreichen wenige die übersichtliche Klarheit und den zugänglichen Lesestil der Bücher von Chvátal[3] und von Vanderbei[4]. Beide wurden vielfach empfohlen[10][11] und das letztere in der Auflage von 2007 aktualisiert. Das Geschichtswerk vom Begründer der linearen Optimierung, George Dantzig[1], liefert dazu viele lesenswerte Einzelheiten, ist aber für eine Einführung in das Thema weniger geeignet.

Interaktives Applet

[Bearbeiten | Quelltext bearbeiten]

Robert Vanderbei's interaktives Pivotverfahren-Applet von 1997 erlaubt dem Benutzer, ein lineares Gleichungssystem mit freigelegten Basisvariablen aufzustellen und anschließend beliebige Variablen dieses Gleichungssystems umzustellen. Obwohl sich das Applet «Simplex Pivot Tool» nennt, ist es auf ganz allgemeine Pivotverfahren ausgerichtet. Die Koeffizienten können auch rundungsfrei als Bruchzahlen eingesehen werden, werden aber nicht auf einen gemeinsamen Nenner gebracht.


Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. a b George Dantzig (1963): Lineare Programmierung und Erweiterungen., Springer-Verlag, 1963/1966, (Originalausgabe: Linear Programming and Extensions, Princeton University Press, ISBN 0-691-05913-6, pdf-Datei)
  2. a b c Robert Bland (1977): New finite pivoting rules for the simplex method, Mathematics of Operations Research, vol.2, 103-107, pdf-Datei
  3. a b c d e f Vašek Chvátal (1983): Linear Programming., Freeman and Company, ISBN 0-7167-1587-2
  4. a b c d e f Robert Vanderbei (1996/2007): Linear Programming; Foundations and Extensions, 3.ed. Springer (2007), ISBN 978-0-387-74387-5, pdf-Datei, (Alternativausgabe: Linear Programming; Foundations and Extensions, Kluwer, ISBN 978-0-7923-9804-2)
  5. a b Robert Vanderbei (1996): Linear Programming; Foundations and Extensions, 3.ed. Springer (2007), ISBN 978-0-387-74387-5, Kap.21.4: "Simplex Method vs Interior-Point Methods"
  6. a b c d e f Komei Fukuda & Tamás Terlaky (1997): Criss-cross methods: A fresh view on pivot algorithms, Mathematical Programming, 79, 369-395, ps-Datei
  7. a b c Komei Fukuda & Tamás Terlaky (1999): On the Existence of a Short Admissible Pivot Sequences for Feasibility and Linear Optimization Problems, Pure Mathematics and Applications, vol.10, 431-447, ps-Datei
  8. a b Shuzhong Zhang (1999): New variants of finite criss-cross pivot algorithms for linear programming, European Journal of Operations Research, vol.116(3), 607-614, pdf-Datei
  9. a b Komei Fukuda & Bohdan Kaluzny (2004): The criss-cross method can take Ω(n^d) pivots, Symposium on Computational Geometry 2004, 401-408, ps-Datei
  10. a b Leserbewertung von Chvatal's "Linear Programming"
  11. a b Leserbewertung von Vanderbei's "Linear Programming"
  12. a b Oriented matroid
  13. Sufficient Matrices
  14. a b Quadratic Programming
  15. a b Linear Fractional Programming
  16. Referenzfehler: Ungültiges <ref>-Tag; kein Text angegeben für Einzelnachweis mit dem Namen sufficient matrix.