Lineares Programmieren


Lineares Programmieren (LP), auch genannt lineare Optimierung, ist eine Methode, um das beste Ergebnis (z. B. maximale Gewinn oder niedrigste Kosten) in a zu erzielen mathematisches Modell deren Anforderungen werden durch dargestellt lineare Beziehungen. Die lineare Programmierung ist ein spezieller Fall der mathematischen Programmierung (auch bekannt als Mathematische Optimierung).
Lineare Programmierung ist eine Technik für die Optimierung von a linear Zielfunktion, vorbehaltlich lineare Gleichheit und lineare Ungleichheit Einschränkungen. Es ist realisierbare Region ist ein konvexes Polytop, was ein Satz ist, definiert als die Überschneidung von endlich vielen halbe Leerzeichenjedes davon wird durch eine lineare Ungleichheit definiert. Seine objektive Funktion ist a real-geschätzt affine (lineare) Funktion auf diesem Polyeder definiert. Eine lineare Programmierung Algorithmus findet einen Punkt in der Polytope wo diese Funktion den kleinsten (oder größten) Wert hat, wenn ein solcher Punkt vorhanden ist.
Lineare Programme sind Probleme, die in ausgedrückt werden können kanonische Form wie
Hier die Komponenten von x sind die Variablen zu bestimmt, c und b sind gegeben Vektoren (mit was angeben, dass die Koeffizienten von c werden als Einzelreihe-Matrix verwendet, um das Matrixprodukt zu bilden) und A ist eine Selbstverständlichkeit Matrix. Die Funktion, deren Wert maximiert oder minimiert werden soll ( in diesem Fall) wird als die genannt Zielfunktion. Die Ungleichheiten Ax≤b und x ≥ 0 sind die Einschränkungen, die a angeben konvexes Polytop über die die Zielfunktion optimiert werden soll. In diesem Zusammenhang sind zwei Vektoren vergleichbar Wenn sie die gleichen Dimensionen haben. Wenn jeder Eintrag in der ersten oder gleich den entsprechenden Eintrag in der zweiten ist, kann der erste Vektor weniger als der zweite Vektor ist.
Lineare Programmierung kann auf verschiedene Studienfelder angewendet werden. Es wird in der Mathematik und in geringerem Maße im Geschäft weit verbreitet. Wirtschaftund für einige technische Probleme. Branchen, die lineare Programmiermodelle verwenden, umfassen Transport, Energie, Telekommunikation und Fertigung. Es hat sich als nützlich bei der Modellierung verschiedener Arten von Problemen in als nützlich erwiesen Planung, Routing, Planung, Abtretung, und Design.
Geschichte
Das Problem der Lösung eines Systems linearer Ungleichheiten reicht zumindest so weit zurück Fourier, der 1827 eine Methode zum Lösen veröffentlichte,[1] und nach dem die Methode von Fourier -Motzkin -Eliminierung benannt.
1939 wurde eine lineare Programmierformulierung eines Problems, das dem allgemeinen linearen Programmierungsproblem entspricht Sowjet Mathematiker und Ökonom Leonid Kantorovich, der auch eine Methode zur Lösung vorgeschlagen hat.[2] Es ist eine Art, wie er sich entwickelt hat, während Zweiter Weltkrieg, um Ausgaben und Renditen zu planen, um die Kosten der Armee zu senken und Verluste zu erhöhen, die dem Feind auferlegt werden. Kantorovichs Arbeit wurde zunächst in der vernachlässigt UdSSR.[3] Etwa zur gleichen Zeit wie Kantorovich, der niederländisch-amerikanische Ökonom T. C. Koopmans formulierte klassische wirtschaftliche Probleme als lineare Programme. Kantorovich und Koopmans teilten sich später die 1975 mit Nobelpreis in Wirtschaftswissenschaften.[1] 1941, Frank Lauren Hitchcock formulierte auch Transportprobleme als lineare Programme und gab eine Lösung, die dem später sehr ähnlich ist Simplex -Methode.[2] Hitchcock war 1957 gestorben und der Nobelpreis wird nicht posthum ausgezeichnet.
In den Jahren 1946–1947,, George B. Dantzig Unabhängig entwickelte allgemeine lineare Programmierformulierung für Planungsprobleme in der US -Luftwaffe.[4] 1947 erfand Dantzig auch das Simplex -Methode Das wurde zum ersten Mal in den meisten Fällen das lineare Programmierungsproblem effizient angeht.[4] Als Dantzig ein Treffen mit organisierte John von Neumann Um seine Simplex -Methode zu diskutieren, vermutete Neumann sofort die Theorie von Dualität Indem er erkannte, dass das Problem, in dem er gearbeitet hatte Spieltheorie war äquivalent.[4] Dantzig lieferte am 5. Januar 1948 einen formellen Beweis in einem unveröffentlichten Bericht "Ein Satz über lineare Ungleichheiten".[3] Dantzigs Arbeiten wurden 1951 der Öffentlichkeit zur Verfügung gestellt. In den Nachkriegsjahren wandten viele Branchen sie in ihrer täglichen Planung an.
Dantzigs ursprüngliches Beispiel war es, die beste Aufgabe von 70 Personen zu 70 Arbeitsplätzen zu finden. Die Rechenleistung, die erforderlich ist, um alle Permutationen zu testen, um die beste Zuordnung auszuwählen, ist groß. Die Anzahl der möglichen Konfigurationen übersteigt die Anzahl der Partikel in dem Beobachtbares Universum. Es dauert jedoch nur einen Moment, um die optimale Lösung zu finden, indem Sie das Problem als lineares Programm aufstellen und das anwenden Simplex -Algorithmus. Die Theorie hinter der linearen Programmierung reduziert drastisch die Anzahl der möglichen Lösungen, die überprüft werden müssen.
Es wurde zuerst gezeigt, dass das lineare Programmierungsproblem in der Polynomzeit von löslich ist Leonid Khachiyan 1979,,[5] Aber ein größerer theoretischer und praktischer Durchbruch auf dem Feld kam 1984, als Narendra Karmarkar stellte eine neue vor Innenpunktmethode zur Lösung von Problemen linearprogrammierende Probleme.[6]
Verwendet
Die lineare Programmierung ist aus mehreren Gründen ein weit verbreitetes Optimierungsfeld. Viele praktische Probleme in Unternehmensforschung kann als lineare Programmierungsprobleme ausgedrückt werden.[3] Bestimmte besondere Fälle von linearer Programmierung, wie z. Netzwerkfluss Probleme und Mehrmoditätsfluss Probleme werden als wichtig genug angesehen, um viele Forschungen zu spezialisierten Algorithmen für ihre Lösung herzustellen. Eine Reihe von Algorithmen für andere Arten von Optimierungsproblemen wirkt durch Lösen von LP-Problemen als Unterprobleme. Historisch gesehen haben Ideen aus der linearen Programmierung viele der zentralen Konzepte der Optimierungstheorie inspiriert, wie z. Dualität, Zersetzung, und die Bedeutung von Konvexität und seine Verallgemeinerungen. Ebenso wurde die lineare Programmierung in der frühen Bildung von stark verwendet Mikroökonomie und es wird derzeit im Unternehmensmanagement verwendet, wie Planung, Produktion, Transport, Technologie und andere Probleme. Obwohl sich die modernen Managementprobleme ständig verändern, möchten die meisten Unternehmen gerne Gewinne maximieren und minimieren Sie die Kosten mit begrenzten Ressourcen. Google verwendet eine lineare Programmierung, um YouTube -Videos zu stabilisieren.[7] Daher können viele Probleme als lineare Programmierprobleme charakterisiert werden.
Standardform
Standardform ist die übliche und intuitivste Form der Beschreibung eines linearen Programmierproblems. Es besteht aus den folgenden drei Teilen:
- A lineare Funktion zu maximieren
- z.B.
- Problembeschränkungen der folgenden Form
- z.B.
- Nicht negative Variablen
- z.B.
Das Problem wird normalerweise in ausgedrückt Matrix bildenund wird dann:
Andere Formen wie Minimierungsprobleme, Probleme mit Einschränkungen für alternative Formen sowie Probleme mit negativen Variablen kann immer in ein äquivalentes Problem in Standardform umgeschrieben werden.
Beispiel
Angenommen, ein Landwirt hat ein Stück Ackerland, sagen wir L km2, mit Weizen oder Gerste oder einer Kombination aus beiden gepflanzt werden. Der Landwirt hat eine begrenzte Menge an Dünger, F Kilogramm und Pestizid, P Kilogramm. Jeder quadratische Kilometer Weizen erfordert F1 Kilogramm Dünger und P1 Kilogramm Pestizid, während jeder Quadratkilometer Gerste erfordert F2 Kilogramm Dünger und P2 Kilogramm Pestizid. Lasst uns1 Seien Sie der Verkaufspreis von Weizen pro Quadratkilometer und s2 Sei der Verkaufspreis von Gerste. Wenn wir das mit Weizen und Gerste gepflanzte Landgebiet bezeichnen x1 und x2 Anschließend kann der Gewinn maximiert werden, indem optimale Werte für auswählen x1 und x2. Dieses Problem kann mit dem folgenden linearen Programmierungsproblem in der Standardform ausgedrückt werden:
Maximieren: | (Maximieren Sie den Umsatz (der Gesamtwellverkauf von Weizen zuzüglich des gesamten Gersteumsatzes) - Umsatz ist die "objektive Funktion")) | |
Vorbehaltlich: | (Grenze der Gesamtfläche) | |
(Begrenzung des Düngers) | ||
(Begrenzung des Pestizids) | ||
(kann keine negative Fläche pflanzen). |
In Matrixform wird dies:
- maximieren
- vorbehaltlich
Augmented Form (Slack -Form)
Lineare Programmierprobleme können in eine umgewandelt werden Augmented Form Um die gemeinsame Form der anzuwenden Simplex -Algorithmus. Dieses Formular führt nicht negativ ein Slack Variablen Ungleichungen durch Gleichheiten in den Einschränkungen zu ersetzen. Die Probleme können dann im Folgenden geschrieben werden Blockmatrix bilden:
- Maximieren :
wo sind die neu eingeführten Slack -Variablen, sind die Entscheidungsvariablen und Ist die Variable maximiert.
Beispiel
Das obige Beispiel wird in die folgende erweiterte Form umgewandelt:
Maximieren: (Zielfunktion) vorbehaltlich: (erweiterte Einschränkung) (erweiterte Einschränkung) (erweiterte Einschränkung)
wo sind (nicht negative) Slack-Variablen, die in diesem Beispiel den ungenutzten Bereich, die Menge an nicht verwendeten Dünger und die Menge an nicht verwendeten Pestiziden darstellen.
In Matrixform wird dies:
- Maximieren :
Dualität
Jedes lineare Programmierungsproblem, das als als bezeichnet bezeichnet wird ursprünglich Problem kann in a konvertiert werden Dual Problem, was eine Obergrenze zum optimalen Wert des Urproblems liefert. In Matrixform können wir das ausdrücken ursprünglich Problem als:
- Maximieren cTx vorbehaltlich Ax ≤ b, x ≥ 0;
- mit dem entsprechenden symmetrisch Duales Problem,
- Minimieren bTy vorbehaltlich ATy ≥ c, y ≥ 0.
Eine alternative ursprüngliche Formulierung ist:
- Maximieren cTx vorbehaltlich Ax ≤ b;
- mit dem entsprechenden asymmetrisch Duales Problem,
- Minimieren bTy vorbehaltlich ATy = c, y ≥ 0.
Es gibt zwei Ideen für die Dualitätstheorie. Eine davon ist die Tatsache, dass (für das symmetrische Dual) das Dual eines doppelten linearen Programms das ursprüngliche ursprüngliche lineare Programm ist. Zusätzlich liefert jede praktikable Lösung für ein lineares Programm eine Grenze zum optimalen Wert der objektiven Funktion seines Dual. Das Schwache Dualität Theorem stellt fest, dass der objektive Funktionswert des Dual in jeder realisierbaren Lösung immer größer oder gleich dem objektiven Funktionswert des Urs an jeder realisierbaren Lösung ist. Das Starke Dualität Theorem stellt fest, dass, wenn das Primal eine optimale Lösung hat, x*dann hat das dual auch eine optimale Lösung, y*, und cTx*=bTy*.
Ein lineares Programm kann auch unbegrenzt oder nicht realisierbar sein. Die Dualitätstheorie sagt uns, dass das Dual durch den schwachen Dualitätstheorem, wenn das Primal unbegrenzt ist, das Dual nicht realisierbar ist. Ebenso muss das Primal, wenn das Dual unbegrenzt ist, nicht zu tun. Es ist jedoch möglich, dass sowohl das Dual als auch das Primal nicht realisierbar sind. Sehen Dual lineares Programm Einzelheiten und einige weitere Beispiele.
Variationen
Deckung/Verpacken von Dualität
A LP ist ein lineares Programm der Form:
- Minimieren: bTy,
- vorbehaltlich: ATy ≥ c, y ≥ 0,
so dass die Matrix A und die Vektoren b und c sind nicht negativ.
Das Dual einer bedeckenden LP ist a Packing LP, ein lineares Programm der Form:
- Maximieren: cTx,
- vorbehaltlich: Ax ≤ b, x ≥ 0,
so dass die Matrix A und die Vektoren b und c sind nicht negativ.
Beispiele
Das Abdecken und Verpacken von LPs entstehen häufig als Lineare Programmierrelaxation eines kombinatorischen Problems und sind wichtig für die Studie von wichtig Näherungsalgorithmen.[8] Zum Beispiel die LP -Relaxationen der Packungsproblem einstellen, das Unabhängiges Problem, und die passendes Problem packen LPS. Die LP -Relaxationen der Stellen Sie das Cover -Problem fest, das Scheitelpunktabdeckungsproblem, und die Dominierender Satzproblem decken auch LPS ab.
Finden a Bruchfärbung von a Graph ist ein weiteres Beispiel für eine LP. In diesem Fall gibt es für jeden Scheitelpunkt des Diagramms eine Einschränkung und für jeden eine Variable unabhängiger Satz der Grafik.
Komplementäres Lockerheit
Es ist möglich, eine optimale Lösung für das Dual zu erhalten, wenn nur eine optimale Lösung für das Primal unter Verwendung des komplementären Slackness -Theorems bekannt ist. Der Satz gibt an:
Nehme an, dass x= (x1Anwesendx2, ...,xn) ist ursprünglich machbar und das y= (y1Anwesendy2, ...,ym) ist doppelt machbar. Lassen (w1Anwesendw2, ...,wm) Bezeichnen Sie die entsprechenden ursprünglichen Slack -Variablen und lassen Sie (lassenz1Anwesendz2, ...,zn) Bezeichnen Sie die entsprechenden doppelten Slack -Variablen. Dann x und y sind optimal für ihre jeweiligen Probleme, wenn und nur wenn
- xj zj= 0, für j= 1, 2, ...,n, und
- wi yi= 0, für i= 1, 2, ...,m.
Also wenn die i-Die Slack -Variable des Urs ist nicht Null, dann die dann die i-Die Variable der Dual entspricht Null. Ebenso, wenn die j-Die Slack -Variable des Dual ist nicht Null, dann die j-Die Variable des Urs ist gleich Null.
Diese notwendige Bedingung für die Optimalität vermittelt ein ziemlich einfaches wirtschaftliches Prinzip. In Standardform (bei Maximierung), wenn eine eingeschränkte ursprüngliche Ressource (d. H. Es gibt "Reste"), müssen zusätzliche Mengen dieser Ressource keinen Wert haben. Wenn der doppelte (Schatten-) Preis-Nicht-Negativitäts-Einschränkungspflicht, d. H. Der Preis ist, ist nicht Null, muss es knapp (keine "Reste").
Theorie
Existenz optimaler Lösungen
Geometrisch definieren die linearen Einschränkungen die realisierbare Region, die ein konvex Polyeder. EIN lineare Funktion ist ein Konvexe Funktion, was impliziert, dass jeder Lokales Minimum ist ein globales Minimum; In ähnlicher Weise ist eine lineare Funktion a konkave Funktion, was impliziert, dass jeder Lokales Maximum ist ein Global Maximum.
Aus zwei Gründen muss eine optimale Lösung nicht vorhanden sein. Wenn die Einschränkungen inkonsistent sind, gibt es zuerst keine machbare Lösung: Zum Beispiel die Einschränkungen x≥ 2 und x≤ 1 kann nicht gemeinsam erfüllt werden; In diesem Fall sagen wir, dass die LP ist undurchführbar. Zweitens, wenn die Polytope ist in Richtung des Gradienten der objektiven Funktion unbegrenzt (wo der Gradient der objektiven Funktion der Vektor der Koeffizienten der objektiven Funktion ist), dann wird kein optimaler Wert erreicht, da es immer möglich ist, besser als jeder endliche Wert zu tun der Zielfunktion.
Optimale Eckpunkte (und Strahlen) von Polyedera
Andernfalls, wenn eine praktikable Lösung vorhanden ist und die Einschränkung begrenzt ist, wird der optimale Wert immer an der Grenze der Einschränkung erreicht, von der Maximales Prinzip zum konvexe Funktionen (Alternativ von der Minimum Prinzip für konkave Funktionen) Da lineare Funktionen sowohl konvex als auch konkav sind. Einige Probleme haben jedoch unterschiedliche optimale Lösungen. Zum Beispiel ist das Problem, eine praktikable Lösung für ein System linearer Ungleichheiten zu finden, ein lineares Programmierungsproblem, bei dem die objektive Funktion die Nullfunktion ist (dh die konstante Funktion, die den Wert Null überall nimmt). Für dieses Machbarkeitsproblem mit der Nullfunktion für seine objektive Funktion ist bei zwei unterschiedlichen Lösungen jede konvexe Kombination der Lösungen eine Lösung.
Die Scheitelpunkte des Polytops werden ebenfalls genannt grundlegende machbare Lösungen. Der Grund für diese Namenswahl ist wie folgt. Lassen d Bezeichnen Sie die Anzahl der Variablen. Dann impliziert der grundlegende Theorem linearer Ungleichheiten (für praktikable Probleme), die für jeden Scheitelpunkt x* Von der LP -realisierbaren Region gibt es eine Reihe von einer Reihe von d (oder weniger) Ungleichheitsbeschränkungen der LP so, dass wir diese behandeln, wenn wir diese behandeln d Einschränkungen als Gleichheiten, die einzigartige Lösung ist x*. Dadurch können wir diese Scheitelpunkte untersuchen, indem wir bestimmte Teilmengen des Satzes aller Einschränkungen (ein diskreter Satz) und nicht das Kontinuum von LP -Lösungen betrachten. Dieses Prinzip zugrunde liegt Simplex -Algorithmus Zur Lösung linearer Programme.
Algorithmen

Basis -Austauschalgorithmen
Simplexalgorithmus von Dantzig
Das Simplex -Algorithmus, entwickelt von George Dantzig 1947 löst LP -Probleme, indem sie eine praktikable Lösung an einem Scheitelpunkt des Polytope und dann auf einem Pfad an den Kanten des Polytops zu Eckpunkten mit nicht abfälligen Werten der objektiven Funktion, bis ein Optimum mit Sicherheit erreicht ist. In vielen praktischen Problemen ","Stalling"tritt auf: Viele Pivots werden ohne Zunahme der Zielfunktion hergestellt.[9][10] Bei seltenen praktischen Problemen können die üblichen Versionen des Simplex -Algorithmus tatsächlich "Zyklus".[10] Um Zyklen zu vermeiden, entwickelten Forscher neue Drehregeln.[11][12][9][10][13][14]
In der Praxis der Simplex Algorithmus ist ziemlich effizient und kann garantiert das globale Optimum finden, wenn bestimmte Vorsichtsmaßnahmen gegen Radfahren sind vergeben. Es wurde nachgewiesen, dass der Simplex -Algorithmus "zufällige" Probleme effizient löst, d. H. In einer kubischen Anzahl von Schritten,[15] Dies ähnelt seinem Verhalten bei praktischen Problemen.[9][16]
Der Simplex-Algorithmus hat jedoch ein schlechtes Verhalten von Worst-Case: Klee und Minty haben eine Familie linearer Programmierprobleme konstruiert, für die die Simplex-Methode eine Reihe von Schritten in der Problemgröße exponentiell unternimmt.[9][12][13] Tatsächlich war es für einige Zeit nicht bekannt Polynomzeit, d.h. von Komplexitätsklasse p.
Kreuzungsalgorithmus
Wie der Simplex -Algorithmus von Dantzig die Kreuzungsalgorithmus ist ein Basisaustauschalgorithmus, der sich zwischen Basen drehen. Der Kreuzungsalgorithmus muss jedoch nicht die Machbarkeit aufrechterhalten, kann jedoch eher von einer realisierbaren Basis bis hin zu einer nicht durchführbaren Basis schwenken. Der Kreuzungsalgorithmus hat nicht Polynomzeitkomplexität Für die lineare Programmierung. Beide Algorithmen besuchen alle 2D Ecken eines (gestört) Würfel in DimensionD, das Klee -Minty Cube, in dem schlimmsten Fall.[14][17]
Innenausstattung
Im Gegensatz zum Simplex-Algorithmus, der eine optimale Lösung findet, indem die Kanten zwischen Scheitelpunkten auf einem polyedrischen Satz durchquert werden, bewegen sich die Innenpunktmethoden durch das Innere des realisierbaren Bereichs.
Ellipsoid -Algorithmus nach Khachiyan
Das ist das erste schlimmsten Fall Polynomzeit Algorithmus wurde jemals für die lineare Programmierung gefunden. Ein Problem zu lösen, das hat n Variablen und können in codiert werden L Eingabebits, dieser Algorithmus läuft in Zeit.[5] Leonid Khachiyan löste dieses langjährige Komplexitätsproblem 1979 mit der Einführung der Ellipsoid -Methode. Die Konvergenzanalyse hat (reale) Vorgänger, insbesondere die iterative Methoden entwickelt von Naum Z. Shor und die Näherungsalgorithmen Von Arkadi Nemirovski und D. Yudin.
Projektivalgorithmus von Karmarkar
Der Algorithmus von Khachiyan war für die Festlegung der Polynom-Zeit-Solvabilität linearer Programme von Bedeutung. Der Algorithmus war kein rechnerischer Durchbruch, da die Simplex-Methode für alle als speziell konstruierten Familien linearer Programme effizienter ist.
Der Algorithmus von Khachiyan inspirierte jedoch neue Forschungslinien in der linearen Programmierung. 1984,, N. Karmarkar vorgeschlagen a Projektivmethode Für die lineare Programmierung. Karmarkars Algorithmus[6] verbessert bei Khachiyan's[5] schlimmster Fall Polynomgebundene (geben ). Karmarkar behauptete, sein Algorithmus sei in der praktischen LP viel schneller gewesen als in der Simplex-Methode, eine Behauptung, die großes Interesse an Innenpunktmethoden darstellte.[18] Seit Karmarkars Entdeckung wurden viele Innenausstattungsmethoden vorgeschlagen und analysiert.
Vaidyas 87 Algorithmus
1987 schlug Vaidya einen Algorithmus vor Zeit.[19]
Vaidyas 89 Algorithmus
1989 entwickelte Vaidya einen Algorithmus, der in der Lage ist Zeit.[20] Formell spricht der Algorithmus arithmetische Operationen im schlimmsten Fall, wo ist die Anzahl der Einschränkungen, ist die Anzahl der Variablen und ist die Anzahl der Bits.
Eingabe -Sparsity -Zeitalgorithmen
Im Jahr 2015 zeigten Lee und Sidford, dass es gelöst werden kann Zeit,[21] wo repräsentiert die Anzahl der Elemente ungleich Null, und es bleibt übrig im schlimmsten Fall.
Aktueller Matrix -Multiplikationszeitalgorithmus
Im Jahr 2019 verbesserten Cohen, Lee und Song die Laufzeit Zeit, ist der Exponent von Matrix-Multiplikation und ist der doppelte Exponent von Matrix-Multiplikation.[22] wird (ungefähr) als die größte Zahl definiert, so dass man sich multiplizieren kann Matrix durch a Matrix in Zeit. In einem Follow -up -Werk von Lee, Song und Zhang reproduzieren sie das gleiche Ergebnis über eine andere Methode.[23] Diese beiden Algorithmen bleiben bestehen Wenn und . Das Ergebnis aufgrund von Jiang, Song, Weinstein und Zhang verbesserte sich zu .[24]
Vergleich von Innenpunktmethoden und Simplexalgorithmen
Die aktuelle Meinung ist, dass die Effizienz guter Implementierungen von simplexbasierten Methoden und Innenpunktmethoden für Routineanwendungen der linearen Programmierung ähnlich sind. Für bestimmte Arten von LP-Problemen kann es jedoch sein, dass eine Art von Löser besser ist als ein anderer (manchmal viel besser) und dass die Struktur der von Innenpunktmethoden erzeugten Lösungen im Vergleich zu simplexbasierten Methoden mit der Unterstützung erheblich unterschiedlich sind Die Menge aktiver Variablen sind typischerweise für letztere kleiner.[25]
Offene Probleme und jüngste Arbeiten
Gibt die lineare Programmierung einen stark polynomialen Zeitalgorithmus zu?
In der Theorie der linearen Programmierung gibt es mehrere offene Probleme, deren Lösung grundlegende Durchbrüche in der Mathematik und möglicherweise wichtige Fortschritte bei unserer Fähigkeit zur Lösung von linearen Programmen aus großem Maßstab darstellen würde.
- Gibt LP a zu a? stark polynomisch-Time -Algorithmus?
- Gibt LP einen stark polynomialen Zeitalgorithmus zu, um eine streng komplementäre Lösung zu finden?
- Gibt LP einen Polynom-Zeit-Algorithmus im Realzahl-Berechnungsmodell (Einheitskosten) zu?
Diese eng verwandte Probleme wurden von zitiert von Stephen Smale wie unter den 18 größte ungelöste Probleme des 21. Jahrhunderts. In Smeles Worten ist die dritte Version des Problems "das Hauptproblem der linearen Programmierungstheorie". Während Algorithmen existieren, um eine lineare Programmierung in schwach polynomialer Zeit zu lösen, wie die Ellipsoid -Methoden und InnenausstattungstechnikenEs wurden noch keine Algorithmen gefunden, die eine starke polynomiale Leistung in der Anzahl der Einschränkungen und die Anzahl der Variablen ermöglichen. Die Entwicklung solcher Algorithmen wäre von großem theoretischen Interesse und ermöglicht möglicherweise auch praktische Gewinne bei der Lösung großer LPS.
Obwohl die Hirsch -Vermutung Wurde kürzlich wegen höherer Dimensionen widerlegt, lässt es immer noch die folgenden Fragen offen.
- Gibt es Pivot-Regeln, die zu Polynom-Zeit-Simplex-Varianten führen?
- Haben alle Polytopaldiagramme einen polynomisch begrenzten Durchmesser?
Diese Fragen beziehen sich auf die Leistungsanalyse und Entwicklung von simplexähnlichen Methoden. Die immense Effizienz des Simplex-Algorithmus in der Praxis trotz seiner theoretischen Leistung exponentieller Zeit deutet darauf hin, dass es möglicherweise Variationen von Simplex in Polynom oder sogar stark polynomialer Zeit gibt. Es wäre von großer praktischer und theoretischer Bedeutung zu wissen, ob solche Varianten vorhanden sind, insbesondere als Ansatz zur Entscheidung, ob LP in stark polynomialer Zeit gelöst werden kann.
Der Simplex-Algorithmus und seine Varianten fallen in die Familie der randverfolgenden Algorithmen, die so genannt werden, weil sie lineare Programmierprobleme lösen, indem sie sich entlang der Kanten eines Polytops vom Scheitelpunkt zu Scheitelpunkten wechseln. Dies bedeutet, dass ihre theoretische Leistung durch die maximale Anzahl von Kanten zwischen zwei beliebigen Scheitelpunkten am LP -Polytop begrenzt ist. Infolgedessen sind wir daran interessiert, das Maximum zu kennen Grafik-theoretischer Durchmesser von Polytopal Grafiken. Es wurde nachgewiesen, dass alle Polytope einen Subtopentialdurchmesser haben. Die jüngste Entsorgung der Hirsch -Vermutung ist der erste Schritt, um zu beweisen, ob ein Polytop einen überpolynomialen Durchmesser hat. Wenn solche Polytope vorhanden sind, kann in der Polynomzeit keine Variante der Kantenverfolgung ausgeführt werden. Fragen zum Polytopendurchmesser sind von unabhängigem mathematischen Interesse.
Simplex Pivot -Methoden bewahren die ursprüngliche (oder doppelte) Machbarkeit. Auf der anderen Seite bewahren Kriss-Cross-Pivot-Methoden nicht (ursprünglich oder doppelte) Machbarkeit-sie können ursprüngliche, machbare, doppelte oder ursprüngliche und duale uninteressante Basen in irgendeiner Reihenfolge besuchen. Seit den 1970er Jahren wurden Pivot -Methoden dieses Typs untersucht. Im Wesentlichen versuchen diese Methoden, den kürzesten Drehweg auf dem Arrangement -Polytop unter dem linearen Programmierproblem zu finden. Im Gegensatz zu Polytopalgraphen sind bekannt, dass Diagramme der Arrangement-Polytope einen kleinen Durchmesser aufweisen, der die Möglichkeit eines stark polynomialen Zeitalgorithmus mit kreuz und kreuzen Pivot-Algorithmus ermöglicht, ohne Fragen zum Durchmesser allgemeiner Polytope zu lösen.[14]
Ganzzahl Unbekannte
Wenn alle unbekannten Variablen für Ganzzahlen erforderlich sind, wird das Problem als ein bezeichnet Ganzzahlprogrammierung (Ip) oder Ganzzahl lineare Programmierung (ILP) Problem. Im Gegensatz zur linearen Programmierung, die im schlimmsten Fall effizient gelöst werden kann, sind ganzzahlige Programmierprobleme in vielen praktischen Situationen (solche mit begrenzten Variablen) Np-harte. 0–1 Ganzzahlprogrammierung oder Binär -Ganzzahl -Programmierung (BIP) ist der Sonderfall der Ganzzahlprogrammierung, bei dem Variablen 0 oder 1 (und nicht willkürliche Ganzzahlen) betragen müssen. Dieses Problem wird auch als NP-HART eingestuft, und tatsächlich war die Entscheidungsversion eine von Karps 21 NP-Complete-Probleme.
Wenn nur einige der unbekannten Variablen für Ganzzahlen erforderlich sind, wird das Problem als a genannt gemischte Ganzzahl (linear) Programmierung (MIP oder MILP) Problem. Diese sind im Allgemeinen auch NP-HART, da sie noch allgemeiner sind als ILP-Programme.
Es gibt jedoch einige wichtige Unterklassen von IP- und MIP -Problemen, die effizient lösbar sind, insbesondere Probleme, bei denen die Einschränkungsmatrix ist Völlig unimodular und die rechten Seiten der Einschränkungen sind Ganzzahlen oder-allgemeiner-wo das System das hat Total Dual Integrality (TDI) Eigentum.
Erweiterte Algorithmen zur Lösung von Linearprogrammen für ganzzahlige Programme umfassen:
- Schneidemethode
- Zweig und gebunden
- Zweig und Schnitt
- Zweig und Preis
- Wenn das Problem eine zusätzliche Struktur aufweist, kann es möglich sein, sich zu bewerben Verzögerte Spaltengenerierung.
Solche INTEGER-Programmieralgorithmen werden durch diskutiert Padberg und in Beasley.
Integrale lineare Programme
Ein lineares Programm in realen Variablen soll sein Integral- Wenn es mindestens eine optimale Lösung hat, die integral ist, d. H. Nur aus ganzzahligen Werten. Ebenso ein Polyeder wird gesagt, dass Integral- Wenn für alle begrenzten machbaren Zielfunktionen c, das lineare Programm hat ein Optimum mit Ganzzahlkoordinaten. Wie Edmonds und Giles im Jahr 1977 beobachtet, kann man gleich sagen, dass das Polyeder ist integral, wenn für jede begrenzte machbare integrale Zielfunktion c, das optimale Wert des linearen Programms ist eine Ganzzahl.
Integrale lineare Programme sind im polyedrischen Aspekt von zentraler Bedeutung Kombinatorische Optimierung da sie eine alternative Charakterisierung eines Problems bieten. Insbesondere für jedes Problem ist der konvexe Rumpf der Lösungen ein integrales Polyeder; Wenn dieses Polyeder eine schöne/kompakte Beschreibung hat, können wir die optimale realisierbare Lösung unter einem linearen Ziel effizient finden. Umgekehrt, wenn wir das beweisen können Lineare Programmierrelaxation ist integral, dann ist es die gewünschte Beschreibung des konvexen Rumpfes von realisierbaren (integralen) Lösungen.
Die Terminologie ist in der gesamten Literatur nicht konsistent, daher sollte man darauf achten, die folgenden zwei Konzepte zu unterscheiden.
- in einem (n Ganzzahl lineares Programm, Im vorherigen Abschnitt beschrieben, sind Variablen zwangsweise beschränkt, Ganzzahlen zu sein, und dieses Problem ist im Allgemeinen NP-Hard.
- in einem (n integrales lineares Programm, In diesem Abschnitt beschrieben sind Variablen nicht als Ganzzahlen beschränkt, sondern hat irgendwie bewiesen, dass das kontinuierliche Problem immer einen integralen optimalen Wert hat (vorausgesetzt c ist integral) und dieser optimale Wert kann effizient gefunden werden, da alle linearen Programme in Polynomgröße in der Polynomzeit gelöst werden können.
Eine häufige Möglichkeit zu beweisen, dass ein Polyeder integral ist, besteht darin, zu zeigen, dass es ist Völlig unimodular. Es gibt andere allgemeine Methoden, einschließlich der Ganzzahl -Zersetzungseigenschaft und Total Dual Integrality. Andere spezifische bekannte integrale LPs umfassen das passende Polytop, Gitterpolyeder, submodular Flow Polyeder und der Schnittpunkt von zwei verallgemeinerten Polymatroiden/g-Polymatroiden -z. Siehe Schrijver 2003.
Löser und Skriptsprachen (Programmier-) Sprachen
Permissive Lizenzen:
Name | Lizenz | Kurze Informationen |
---|---|---|
Gekko | MIT -Lizenz | Open-Source-Bibliothek zur Lösung großer LP, LP, QP, QCQP, NLP, und MIP Optimierung |
Glop | Apache v2 | Googles Open-Source Linear Programming Solver |
Pyomo | BSD | Eine Open-Source-Modellierungssprache für großräumige lineare, gemischte Ganzzahl und nichtlineare Optimierung |
Suanshu | Apache v2 | Eine Open-Source-Suite von Optimierungsalgorithmen zur Lösung von LP, QP, SOCP, SDP, SQP in Java |
Copyleft (gegenseitig) Lizenzen:
Name | Lizenz | Kurze Informationen |
---|---|---|
Kassowary Constraint Solver | LGPL | Ein inkrementelles Einschränkungslösungs -Toolkit, das Systeme effizient linearer Gleichheiten und Ungleichheiten löst |
Clp | Cpl | ein LP-Löser von Coin-or |
GLPK | Gpl | GNU Linear Programmierkit, ein LP/MILP -Löser mit nativem C API und zahlreiche (15) Wrapper von Drittanbietern für andere Sprachen. Spezialist Unterstützung für Flow -Netzwerke. Bündelt die Ampl-wie GNU Mathprog Modellierungssprache und Übersetzer. |
Qoca | Gpl | Eine Bibliothek zur schrittweisen Lösung von Systemen linearer Gleichungen mit verschiedenen Zielfunktionen |
R-projekt | Gpl | Eine Programmiersprache und Software -Umgebung für statistische Computing und Grafiken |
Minto (Gemischter Ganzzahl -Optimierer, und Ganzzahlprogrammierung Solver, der Branch und Bound -Algorithmus verwendet) hat öffentlich verfügbaren Quellcode[26] ist aber nicht Open Source.
Proprietär Lizenzen:
Name | Kurze Informationen |
---|---|
Aimms | Eine Modellierungssprache, die es ermöglicht, lineare, gemischte Ganzzahl- und nichtlineare Optimierungsmodelle zu modellieren. Es bietet auch ein Tool für die Einschränkungsprogrammierung. Der Algorithmus kann in Formen von Heuristiken oder genauen Methoden wie Zweig- oder Spaltengenerierung ebenfalls implementiert werden. Das Tool ruft einen geeigneten Löser wie Cplex oder ähnliches auf, um das vorliegende Optimierungsproblem zu lösen. Akademische Lizenzen sind kostenlos. |
Ampl | Eine beliebte Modellierungssprache für großräumige lineare, gemischte Ganzzahl und nichtlineare Optimierung mit einer kostenlosen studentischen Version (500 Variablen und 500 Einschränkungen). |
Analytica | Eine allgemeine Modellierungssprache und interaktive Entwicklungsumgebung. Mit seinen Einflussdiagrammen können Benutzer Probleme als Grafiken mit Knoten für Entscheidungsvariablen, Ziele und Einschränkungen formulieren. Die Analytica Optimizer Edition enthält eine lineare, gemischte Ganzzahl und nichtlineare Löser und wählt den Solver aus, der dem Problem entspricht. Es akzeptiert auch andere Motoren als Plug-Ins, einschließlich Xpress, Gurobi, Artelys Strick, und Mosek. |
APMonitor | API nach Matlab und Python. Lösen Sie Beispiele für lineare Programmierprobleme (LP) durch Matlab, Python oder eine Web-Schnittstelle. |
Cplex | Populärlöser mit einer API für mehrere Programmiersprachen und hat auch eine Modellierungssprache und funktioniert mit AIMMS, AMPL, Gams, MPL, OpenOPT, OPL Development Studio und Tomlab. Kostenlos für den akademischen Gebrauch. |
Excel Solver -Funktion | Ein nichtlinearer Solver, der an Tabellenkalkulationen angepasst ist, in denen Funktionsbewertungen auf den neu berechtigten Zellen basieren. Grundlegende Version als Standard-Add-On für Excel. |
FOTMP | |
Gams | |
IMSL Numerische Bibliotheken | Sammlungen von Mathematik- und statistischen Algorithmen, die in C/C ++, FORTRAN, JAVA und C#/. NET verfügbar sind. Optimierungsroutinen in den IMSL -Bibliotheken umfassen nicht eingeschränkte, linear und nichtlinear eingeschränkte Minimierungen und lineare Programmieralgorithmen. |
Lindo | Löser mit einer API für die große Optimierung linearer, ganzzahliger, quadratischer, konischer und allgemeiner nichtlinearer Programme mit stochastischen Programmierverlängerungen. Es bietet ein globales Optimierungsverfahren für die Suche nach garantiert global optimaler Lösung für allgemeine nichtlineare Programme mit kontinuierlichen und diskreten Variablen. Es verfügt außerdem über eine statistische API der Stichproben-API, um Monte-Carlo-Simulationen in ein Optimierungsrahmen zu integrieren. Es hat eine algebraische Modellierungssprache (JARGON) und ermöglicht das Modellieren in einer Tabelle (was ist Beste). |
Ahorn | Eine allgemeine Programmiersprache für symbolisches und numerisches Computing. |
Matlab | Eine allgemeine und matrixorientierte Programmiersprache für das numerische Computing. Die lineare Programmierung in MATLAB erfordert die Optimierungs -Toolbox Zusätzlich zum Basis -Matlab -Produkt; Zu den verfügbaren Routinen gehören IntlinProg und Linprog |
Mathcad | Ein Wysiwyg -Mathematikredakteur. Es hat Funktionen zur Lösung linearer und nichtlinearer Optimierungsprobleme. |
Mathematica | Eine allgemeine Programmiersprache für Mathematik, einschließlich symbolischer und numerischer Fähigkeiten. |
Mosek | Ein Löser für die große Optimierung mit API für mehrere Sprachen (C ++, Java, .NET, Matlab und Python). |
Nag Nag Numerical Library | Eine Sammlung mathematischer und statistischer Routinen, die von der entwickelt wurden Gruppe numerische Algorithmen Für mehrere Programmiersprachen (C, C ++, FORTRAN, Visual Basic, Java und C#) und Pakete (MATLAB, Excel, R, LabView). Das Optimierungskapitel der NAG-Bibliothek enthält Routinen für lineare Programmierprobleme mit spärlichen und nicht sparsamen linearen Einschränkungsmatrizen sowie Routinen zur Optimierung von quadratischen, nichtlinearen, Summen von Quadraten linearer oder nichtlinearer Funktionen mit nichtlinearen, begrenzten oder ohne Einschränkungen . Die NAG -Bibliothek verfügt über Routinen sowohl für die lokale als auch für die globale Optimierung sowie für kontinuierliche oder ganzzahlige Probleme. |
Optimj | Eine Java-basierte Modellierungssprache zur Optimierung mit einer kostenlosen Version.[27][28] |
SAS/ODER | Eine Reihe von Löser für lineare, ganzzahlige, nichtlineare, ableitungfreie, netzwerk, kombinatorische und eingeschränkte Optimierung; das Algebraische Modellierungssprache Optmodel; und eine Vielzahl von vertikalen Lösungen, die auf bestimmte Probleme/Märkte abzielen, die alle vollständig in die integriert sind SAS -System. |
Scip | Ein allgemeiner Einschränkung der Ganzzahl-Programmierlöser mit Schwerpunkt auf MIP. Kompatibel mit ZimPL -Modellierungssprache. Kostenlos für die akademische Verwendung und im Quellcode verfügbar. |
Xpress | Löser für große lineare Programme, quadratische Programme, allgemeine nichtlineare und gemischte Insger-Programme. Hat API für mehrere Programmiersprachen, hat auch ein Modellierungssprachmosel und arbeitet mit Ampl. Gams. Kostenlos für den akademischen Gebrauch. |
Vissim | Ein visuelles Blockdiagramm Sprache für die Simulation von Dynamische Systeme. |
Siehe auch
- Konvexe Programmierung
- Dynamische Programmierung
- Erwarteter Mangel § Optimierung des erwarteten Mangels
- Eingabe -Output -Modell
- Job Shop Planing
- Am wenigsten absolute Abweichungen
- Spektralanalyse am kleinsten Quadrat
- Lineare Algebra
- Lineares Produktionsspiel
- Linear-Fraktion-Programmierung (LFP)
- LP-Typ-Problem
- Mathematische Programmierung
- Nichtlineare Programmierung
- Orientierte Matroid
- Quadratische Programmierung, ein Superet linearer Programmierung
- Semidefinite Programmierung
- Schattenpreis
- Simplex -Algorithmus, verwendet, um LP -Probleme zu lösen
Anmerkungen
- ^ a b Gerard Sierksma; Yori Zwols (2015). Lineare und ganzzahlige Optimierung: Theorie und Praxis (3. Aufl.). CRC Press. p. 1. ISBN 978-1498710169.
- ^ a b Alexander Schrijver (1998). Theorie der linearen und ganzzahligen Programmierung. John Wiley & Sons. S. 221–222. ISBN 978-0-471-98232-6.
- ^ a b c George B. Dantzig (April 1982). "Erinnerungen an die Ursprünge der linearen Programmierung" (PDF). Operations Forschungsbriefe. 1 (2): 43–48. doi:10.1016/0167-6377 (82) 90043-8. Archiviert Aus dem Original am 20. Mai 2015.
- ^ a b c Dantzig, George B.; Thapa, Mukund Narain (1997). Lineares Programmieren. New York: Springer. p. xxvii. ISBN 0387948333. OCLC 35318475.
- ^ a b c Leonid Khachiyan (1979). "Ein Polynomalgorithmus für die lineare Programmierung". Doklady Akademii Nauk SSSR. 224 (5): 1093–1096.
- ^ a b Narendra Karmarkar (1984). "Ein neuer Polynom-Zeit-Algorithmus für die lineare Programmierung". Combinatorica. 4 (4): 373–395. doi:10.1007/bf02579150. S2CID 7257867.
- ^ (PDF) https://static.googleusercontent.com/media/research.google.com/en/pubs/archive/37041.pdf.
{{}}
: Fehlen oder leer|title=
(Hilfe) - ^ Vazirani (2001, p. 112)
- ^ a b c d Dantzig & Thapa (2003)
- ^ a b c Padberg (1999)
- ^ Bland (1977)
- ^ a b Murty (1983)
- ^ a b Papadimitriou & Steiglitz
- ^ a b c Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. liegend; Dominique de Werra (Hrsg.). "Criss-Cross-Methoden: Eine neue Sicht auf Pivot-Algorithmen". Mathematische Programmierung, Serie B. 79 (1–3): 369–395. Citeseerx 10.1.1.36.9373. doi:10.1007/bf02614325. HERR 1464775. S2CID 2794181.
- ^ Borgwardt (1987)
- ^ Todd (2002)
- ^ Roos, C. (1990). "Ein exponentielles Beispiel für Terlakys Drehregel für die Cross-Cross-Simplex-Methode". Mathematische Programmierung. Serie A. 46 (1): 79–84. doi:10.1007/bf01585729. HERR 1045573. S2CID 33463483.
- ^ Strang, Gilbert (1. Juni 1987). "Karmarkars Algorithmus und sein Platz in angewandter Mathematik". Die mathematische Intelligenz. 9 (2): 4–10. doi:10.1007/bf03025891. ISSN 0343-6993. HERR 0883185. S2CID 123541868.
- ^ Vaidya, Pravin M. (1987). Ein Algorithmus für die lineare Programmierung, die erfordert Rechenoperationen. 28. jährliches IEEE -Symposium für Fundamente der Informatik. Fugen.
- ^ Vaidya, Pravin M. (1989). "Beschleunigung der linearen Programmierung mit einer schnellen Matrix-Multiplikation". 30. jährliches Symposium für Grundlagen der Informatik. 30. jährliches Symposium für Grundlagen der Informatik. Fugen. S. 332–337. doi:10.1109/sfcs.1989.63499. ISBN 0-8186-1982-1.
- ^ Lee, Yin-tat; Sidford, Aaron (2015). Effiziente inverse Wartung und schnellere Algorithmen für die lineare Programmierung. FOCS '15 Grundlagen der Informatik. Arxiv:1503.01752.
- ^ Cohen, Michael B.; Lee, Yin-tat; Lied, Zhao (2018). Lösung linearer Programme in der aktuellen Matrix -Multiplikationszeit. 51. jährliches ACM -Symposium über die Computertheorie. Stoc'19. Arxiv:1810.07896.
- ^ Lee, Yin-tat; Lied, Zhao; Zhang, Qiuyi (2019). Lösen der empirischen Risikominimierung in der aktuellen Matrix -Multiplikationszeit. Konferenz zur Lerntheorie. Colt'19. Arxiv:1905.04447.
- ^ Jiang, Shunhua; Lied, Zhao; Weinstein, Omri; Zhang, Hengjie (2020). Schnellere dynamische Matrix inverse für schnellere LPs. Arxiv:2004.07470.
- ^ Illés, Tibor; Terlaky, Tamás (2002). "Pivot gegen Innenausstattung Methoden: Vor- und Nachteile". Europäisches Journal of Operational Research. 140 (2): 170. Citeseerx 10.1.1.646.3539. doi:10.1016/s0377-2217 (02) 00061-9.
- ^ "Cor@L - Forschung für Computeroptimierung bei Lehigh". lehigh.edu.
- ^ http://www.in-ter-trans.eu/resources/zesch_hellingrath_2010_integrated+Production-Distribution+Planning.pdf OptimJ, das in einem Optimierungsmodell für Versammlungslinien mit gemischtem Modell verwendet wird, University of Münster
- ^ http://www.aaai.org/ocs/index.php/aaai/aaai10/paper/viewfile/1769/2076 OptimJ, das in einer ungefähren Subgame-Perfekt-Gleichgewichtsberechnungstechnik für wiederholte Spiele verwendet wird
Verweise
- Kantorovich, L. V. (1940). "О б о & м э э э эфективнорite решения некоторых кл & со & э & ральаных пр пл & э ээкстреgst" eine neue Methode, um einige Klassen extremaler Probleme zu lösen]. Doklady Akad Sci SSSR. 28: 211–214.
- F. L. Hitchcock: Die Verteilung eines Produkts aus mehreren Quellen auf zahlreiche Orte, Journal of Mathematics and Physics, 20, 1941, 224–230.
- G.B. Dantzig: Maximierung einer linearen Funktion von Variablen, die linearen Ungleichheiten unterliegen, 1947. Veröffentlicht S. 339–347 in T.C. Koopmans (Hrsg.):Aktivitätsanalyse der Produktion und Zuweisung, New York-London 1951 (Wiley & Chapman-Hall)
- J. E. Beasley, Herausgeber. Fortschritte in der linearen und ganzzahligen Programmierung. Oxford Science, 1996. (Sammlung von Umfragen)
- Bland, Robert G. (1977). "Neue endliche Drehregeln für die Simplex -Methode". Mathematics of Operations Research. 2 (2): 103–107. doi:10.1287/moor.2.2.103. JStor 3689647.
- Karl-Heinz Borgwardt, Der Simplex -Algorithmus: Eine probabilistische Analyse, Algorithmen und Kombinatorik, Band 1, Springer-Verlag, 1987. (Durchschnittliches Verhalten bei zufälligen Problemen)
- Richard W. Cottle, hrsg. Der grundlegende George B. Dantzig. Stanford Business Books, Stanford University Press, Stanford, Kalifornien, 2003. (Ausgewählte Papiere von George B. Dantzig)
- George B. Dantzig und Mukund N. Thapa. 1997. Lineare Programmierung 1: Einführung. Springer-Verlag.
- George B. Dantzig und Mukund N. Thapa. 2003. Lineare Programmierung 2: Theorie und Erweiterungen. Springer-Verlag. (Umfassend, abdeckt, z.B. drehbar und Innenpunktalgorithmen, große Probleme, Probleme, Zersetzung nach Dantzig -Wolfe und Biegerund vorstellen Stochastische Programmierung.))
- Edmonds, Jack; Giles, Rick (1977). "Eine Min-Max-Beziehung für submoduläre Funktionen für Diagramme". Studien zur Ganzzahlprogrammierung. Annalen der diskreten Mathematik. Vol. 1. S. 185–204. doi:10.1016/s0167-5060 (08) 70734-9. ISBN 978-0-7204-0765-5.
- Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. liegend; Dominique de Werra (Hrsg.). "Criss-Cross-Methoden: Eine neue Sicht auf Pivot-Algorithmen". Mathematische Programmierung, Serie B. 79 (1–3): 369–395. Citeseerx 10.1.1.36.9373. doi:10.1007/bf02614325. HERR 1464775. S2CID 2794181.
- Gondzio, Jacek; Terlaky, Tamás (1996). "3 Eine rechnerische Sicht der Innenausstattung Methoden". In J. E. Beasley (Hrsg.). Fortschritte in der linearen und ganzzahligen Programmierung. Oxford Lecture Series in Mathematik und ihre Anwendungen. Vol. 4. New York: Oxford University Press. S. 103–144. HERR 1438311. PostScript -Datei auf der Website von Gondzio und auf der McMaster University -Website von Terlaky.
- Murty, Katta G. (1983). Lineares Programmieren. New York: John Wiley & Sons, Inc. S. XIX+482. ISBN 978-0-471-09725-9. HERR 0720547. (umfassende Verweise auf klassische Ansätze).
- Evar D. Nering und Albert W. Tucker, 1993, Lineare Programme und verwandte Probleme, Akademische Presse. (elementar)
- M. Padberg, Lineare Optimierung und Erweiterungen, Second Edition, Springer-Verlag, 1999. (sorgfältig geschriebener Bericht über ursprüngliche und duale Simplex-Algorithmen und projektive Algorithmen mit einer Einführung in die ganzzahlige lineare Programmierung-mit dem Problem mit reisenden Verkäufern zum Odysseus.))
- Christos H. Papadimitriou und Kenneth Steiglitz, Kombinatorische Optimierung: Algorithmen und Komplexität, Korrigierte Veröffentlichung mit einem neuen Vorwort, Dover. (Informatik)
- Michael J. Todd (Februar 2002). "Die vielen Facetten der linearen Programmierung". Mathematische Programmierung. 91 (3): 417–436. doi:10.1007/s101070100261. S2CID 6464735. (Eingeladene Umfrage aus dem Internationalen Symposium über mathematische Programmierung.)
- Vanderbe, Robert J. (2001). Lineare Programmierung: Grundlagen und Erweiterungen. Springer Verlag.
- Vazirani, Vijay V. (2001). Näherungsalgorithmen. Springer-Verlag. ISBN 978-3-540-65367-7. (Informatik)
Weitere Lektüre
- Dmitris Alevras und Manfred W. Padberg, Lineare Optimierung und Erweiterungen: Probleme und Lösungen, Universitechse, Springer-Verlag, 2001. (Probleme von Padberg mit Lösungen.)
- Mark de Berg, Marc van Kreveld, Markieren Sieund Otfried Schwarzkopf (2000). Computergeometrie (2. überarbeitete Ausgabe). Springer-Verlag. ISBN 978-3-540-65620-3.
{{}}
: Cs1 montiert: Mehrfachnamen: Autorenliste (Link) Kapitel 4: Lineare Programmierung: S. 63–94. Beschreibt einen randomisierten Schnittstellenalgorithmus zur linearen Programmierung. - Michael R. Garey und David S. Johnson (1979). Computer und Unverdaulichkeit: Ein Leitfaden zur Theorie der NP-Vervollständigung. W.H. Freeman. ISBN 978-0-7167-1045-5. A6: MP1: Integer -Programmierung, S. 245. (Informatik, Komplexitätstheorie)
- Gärtner, Bernd; Matoušek, Jiří (2006). Lineare Programmierung verstehen und verwenden. Berlin: Springer. ISBN 3-540-30697-8. (Grundschuleinführung für Mathematiker und Informatiker)
- Cornelis Roos, Tamás Terlaky, Jean-Philippe Fläschchen, Innenpunktmethoden für die lineare Optimierung, Zweite Ausgabe, Springer-Verlag, 2006. (Graduiertenstufe)
- Alexander Schrijver (2003). Kombinatorische Optimierung: Polyeder und Effizienz. Springer.
- Alexander Schrijver, Theorie der linearen und ganzzahligen Programmierung.John Wiley & Sons, 1998, ISBN0-471-98232-6 (mathematisch)
- Gerard Sierksma; Yori Zwols (2015). Lineare und ganzzahlige Optimierung: Theorie und Praxis. CRC Press. ISBN 978-1-498-71016-9.
- Gerard Sierksma;Diptesh Ghosh (2010). Netzwerke in Aktion;Text- und Computerübungen in der Netzwerkoptimierung. Springer. ISBN 978-1-4419-5512-8. (Modellierung der linearen Optimierung)
- H. P. Williams, Modellbildung in mathematischer Programmierung, Fünfte Ausgabe, 2013. (Modellierung)
- Stephen J. Wright, 1997, Primal-duale Innenausstattungsmethoden, Siam.(Abschluss)
- Yinyu ye, 1997, Innenpunktalgorithmen: Theorie und Analyse, Wiley.(Fortgeschrittene Graduiertenebene)
- Ziegler, Günter M., Kapitel 1–3 und 6–7 in Vorträge auf Polytopen, Springer-Verlag, New York, 1994. (Geometrie)