Einführung in die Lineare Programmierung Berthold Vöcking Lehrstuhl Informatik I Algorithmen & Komplexität RWTH Aachen 30. Juli 2008 Inhaltsverzeichnis 1 Lineare Programme 3 1.1 Die kanonische Form . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Geometrische Interpretation . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Die algebraische Gleichungsform . . . . . . . . . . . . . . . . . . . . 8 1.4 Basislösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Das Simplexverfahren 12 2.1 Geometrische Beschreibung . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Durchführung der Pivotschritte . . . . . . . . . . . . . . . . . . . . . 13 2.2.1 Erläuterung eines Pivotschrittes . . . . . . . . . . . . . . . . 13 2.2.2 Beispielrechung mit Simplextableau . . . . . . . . . . . . . . 16 2.2.3 Komplexität einzelner Pivotschritte . . . . . . . . . . . . . . 17 2.3 Berechnung der initialen Basislösung . . . . . . . . . . . . . . . . . 19 2.4 Besondere Aspekte degenerierter LPs . . . . . . . . . . . . . . . . . 19 2.4.1 Blands Pivotregel . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2 Perturbierung . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.3 Symbolische Perturbierung . . . . . . . . . . . . . . . . . . . 23 Laufzeit der Simplexmethode . . . . . . . . . . . . . . . . . . . . . . 24 2.5 1 3 Die Ellipsoidmethode 3.1 27 Zulässigkeitstest versus Optimieren . . . . . . . . . . . . . . . . . . 27 3.1.1 Beweis von Lemma 3.1 . . . . . . . . . . . . . . . . . . . . . 29 3.1.2 Beweis von Lemma 3.2 . . . . . . . . . . . . . . . . . . . . . 31 3.2 Beschreibung der Ellipsoidmethode . . . . . . . . . . . . . . . . . . 32 3.3 Skizze der Laufzeitanalyse . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4 Dualität 39 4.1 Primale und duale LPs . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2 Das starke Dualitätsprinzip . . . . . . . . . . . . . . . . . . . . . . . 42 4.3 Zwei prominente Beispiele . . . . . . . . . . . . . . . . . . . . . . . 44 5 Aspekte der Ganzzahligkeit 46 5.1 Ganzzahlige lineare Programme . . . . . . . . . . . . . . . . . . . . 46 5.2 Totale Unimodularität . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6 Hilfreiche Literatur 51 2 Kapitel 1 Lineare Programme 1.1 Die kanonische Form Ein Lineares Programm (LP) in kanonischer Form besteht aus d Variablen mit Wertebereich R, einer linearen Zielfunktion und m + d linearen Nebenbedingungen (Constraints). Für i = 1, . . . , m und j = 1, . . . , d seien cj , bi und aij reelle Zahlen. Gesucht ist eine Belegung der Variablen x1 , . . . , xd , so dass die Zielfunktion d X cj xj j=1 maximiert wird unter den Nebenbedingungen d X j=1 aij xj ≤ bi (für i = 1, . . . , m) xj ≥ 0 (für j = 1, . . . , d) . Letztere Bedingungen heißen Nicht-Negativitätsbedingungen. Setze x = (xj ), c = (cj ), b = (bi ) und A = (aij ). Kurzgefasst, lässt sich ein derartiges LP dann wie folgt schreiben. Maximiere cT x unter Ax ≤ b, x ≥ 0. LPs in anderer Form können einfach in die kanonische Form gebracht werden: • Ein Minimierungsproblem kann in ein Maximierungsproblem transformiert werden durch einen Vorzeichenwechsel in der Zielfunktion, d.h. cT x wird zu −cT x. 3 • Eine Gleichung aT x = b wird ersetzt durch zwei Ungleichungen aT x ≤ b und aT x ≥ b. • Eine Ungleichung aT x ≥ b kann durch eine Ungleichung −aT x ≤ −b ersetzt werden. • Eine möglicherweise negative Variable x ∈ R wird ersetzt durch den Ausdruck x0 − x00 für zwei Variablen x0 ≥ 0 und x00 ≥ 0. Elementares Beispiel. Gegeben seien 1000 qm Gartenfläche, davon 600 qm für Anbau von Blumen geeignet. Der Erlös pro qm Blumen sei 100 Euro, der Erlös pro qm Gemüse 50 Euro. Bestimme eine Verteilung der Anbauflächen, die den Erlös maximiert. Das LP für dieses Problem lautet Maximiere 100x1 + 50x2 unter den Nebenbedingungen x1 + x2 ≤ 1000 x1 ≤ 600 x1 , x2 ≥ 0 Kurzgefasst, lautet das LP: 1000 1 1 x1 x1 , x ≥ 0. ≤ unter Maximiere (100, 50) 600 1 0 x2 x2 Beispiel: Flussproblem. Gegeben sei ein Flussnetzwerk G = (V, E, q, s, c) mit Quelle q, Senke s und Kapazitätsfunktion c. Seien A(v) und E(v) die Ausgangs- bzw. Eingangskanten zum Knoten v ∈ V . Sei xe der Fluss auf Kante e ∈ E. Das entsprechende LP ist: X Maximiere xe e∈A(q) unter den Nebenbedingungen X xe = e∈A(v) X xe e∈E(v) xe ≤ c(e) xe ≥ 0 ∀v ∈ V \ {q, s} ∀e ∈ E ∀e ∈ E 4 Beispiel: Relaxiertes Rucksackproblem. Bei diesem Problem handelt es sich um eine Variante des bekannten Rucksackproblem mit teilbaren Objekten. Gegeben seien d Objekte mit Gewicht gi und Nutzen vi , 1 ≤ i ≤ d, sowie eine Gewichtsschranke G. Sei xi der Bruchteil von Objekt i, den wir einpacken. Die Zielfunktion lautet: Maximiere d X vi xi i=1 Die Nebenbedingungen sind: d X i=1 gi xi ≤ G xi ≤ 1 xi ≥ 0 1≤i≤d 1≤i≤d 1.2 Geometrische Interpretation Der Lösungsraum von LPs lässt sich geometrisch darstellen. • Eine Variablenbelegung x = (x1 , . . . , xd )T entspricht einem Punkt im d-dimensionalen Raum Rd . • Jede Nebenbedingung ai x ≤ bi bzw. ai x ≥ bi definiert einen Halbraum. Die Grenze dieses Halbraumes ist die Hyperebene ai x = bi . Der Halbraum besteht aus den Punkten auf einer Seite dieser Hyperebene. • Die Schnittmenge der Halbräume über alle Nebenbedingungen ist der Raum der zulässigen Lösungen. Ein LP wird als zulässig bezeichnet, wenn der Raum der zulässigen Lösungen nicht leer ist. • Schnittmengen aus Halbräumen bilden ein sogenanntes Polyhedron. Der Raum der zulässigen Lösungen ist somit ein Polyhedron und wird auch als Lösungspolyhedron bezeichnet. Behauptung 1.1 (Konvexität des Lösungsraums) Die durch ein Polyhedron P beschriebene Punktmenge ist konvex, d.h., für jedes Punktepaar x, y ∈ P sind auch alle Punkte auf der Verbindungslinie `(x, y) = {λx + (1 − λ)y | λ ∈ [0, 1]} zwischen x und y in P enthalten. 5 Beweis: Ein Polyhedron ist die Schnittmenge von Halbräumen. Jeder einzelne dieser Halbräume ist konvex. Wir müssen also nur zeigen, dass die Schnittmenge von zwei konvexen Mengen A und B ebenfalls konvex ist. • Seien x, y ∈ A ∩ B. • Dann sind x, y ∈ A, so dass `(x, y) ⊆ A. • Zudem sind x, y ∈ B, so dass `(x, y) ⊆ B. • Also ist `(x, y) ⊆ A ∩ B und somit ist A ∩ B konvex. 2 Aus der Konvexität lässt sich folgern, dass ein lokales Optimum auch gleichzeitig ein globales Optimum ist, d.h., wenn x ein zulässiger Punkt ist, der die Zielfunktion nicht global maximiert, dann gibt es in der unmittelbaren Umgebung von x einen zulässigen Punkt y, der einen besseren Zielwert als x erreicht. Behauptung 1.2 (lokales Optimum = globales Optimum) Zu x ∈ P gebe es z ∈ P mit cT z > cT x. Dann existiert für jedes > 0 ein Punkt y ∈ P mit ||x − y|| ≤ und cT y > cT x. Beweis: Da P konvex ist, liegt die Verbindungslinie `(x, z) zwischen x und z in P. Wähle einen beliebigen Punkt y ∈ `(x, z), y 6= x, ||x − y|| ≤ . Aus der Definition von `(x, z) ergibt sich, es gibt ein λ > 0, so dass y = λx + (1 − λ)z. Somit folgt cT y = = > = cT (λx + (1 − λ)z) λcT x + (1 − λ)cT z λcT x + (1 − λ)cT x cT x . 2 Wenn also ein nicht-optimaler Lösungspunkt x ∈ P vorliegt, können wir den Lösungswert kontinuierlich verbessern, indem wir uns kontinuierlich in die Richtung einer beliebigen besseren Lösung z ∈ P bewegen. Unterräume und ihre Bedeutung. Eine Hyperebene im Rd wird durch eine Gleichung α1 x1 + α2 x2 + · · · αn xd = β 6 beschrieben, d.h. nur jeweils d − 1 der d Variablen können frei gewählt werden und legen den Wert der verbleibenden Variable fest. Der durch eine Hyperebene beschriebene affine Unterraum hat deshalb die Dimension d − 1. Der Unterraum, der durch die Schnittmenge von k vielen linear unabhängigen Hyperebenen entsteht, hat entsprechend die Dimension d − k. Falls sich mehr als d der Nebenbedingungen in einem Punkt schneiden, so sagen wir das LP ist degeneriert. Wir werden an einigen Stellen die Annahme treffen, dass das LP nicht degeniert ist. Dadurch vereinfachen sich unsere Beschreibungen in vielerlei Hinsicht. Später werden wir zeigen, wie man ein degeneriertes LP in ein nichtdegeneriertes LP transformieren kann, ohne dabei die Zusammensetzung der optimalen Lösung zu verändern. Die Oberfläche“ eines Polyhedrons besteht aus sogenannten Facetten“, die wie folgt ” ” definiert sind. Sei P ein Polyhedron und H eine Hyperebene, so dass P vollständig in einem der beiden durch H definierten Halbräume enthalten ist. Sei f = H ∩ P. Falls f 6= ∅, so ist f eine Facette von P. Facetten können von unterschiedlicher Dimension sein. • Eine d − 1 dimensionale Facette wird als Face bezeichnet. Ist P beispielsweise drei-dimensional, so entspricht ein Face einer Seitenfläche von P. • Eine Kante entsteht aus dem Schnitt von d−1 vielen Hyperebenen und entspricht einer ein-dimensionalen Facette. • Ein Knoten wird durch den Schnitt von d Hyperebenen definiert und entspricht einer Facette der Dimension 0. Zwei Knoten des Polyhedrons, die durch eine Kante verbunden sind, werden als benachbart bezeichnet. Wir beobachten, dass benachbarte Knoten sich genau bezüglich einer Hyperebene unterscheiden. Wenn P unbeschränkt ist, gibt es Kanten mit nur einem oder sogar keinem Endpunkt. Diese Kanten werden als unbeschränkte Kanten bezeichnet. Die Zielfunktion cT x gibt eine Richtung im Rd an. Den Richtungsvektor c können wir z.B. in Form eines am Ursprung startenden, durch den Punkt c führenden Strahls visualisieren. Ein LP dessen Zielwert cT x durch die Nebenbedingungen nach oben beschränkt ist, wird als beschränktes LP bezeichnet. Andernfalls ist das LP unbeschränkt. Das Lösungspolyhedron P eines beschränkten LPs muss nur in Richtung des Zielvektors c beschränkt sein. In andere Richtungen (z.B. in Richung −c) kann P durchaus unbeschränkt sein. Falls ein Polyhedron in alle Richtungen beschränkt ist, d.h. es gibt eine Kugel, die das Polyhedron umschließt, so wird es auch als Polytop bezeichnet. 7 Geometrische Bestimmung des Optimums. Wir betrachten ein beschränktes LP in kanonischer Form mit Zielfunktion cT x und Lösungspolyhedron P. • Sei H eine Hyperebene, die zum Richtungsvektor c orthogonal ist. Wegen der Orthogonalität gibt es einen Wert t ∈ R mit der Eigenschaft H = {x ∈ Rd |cT x = t}. Alle Punkte auf H haben also den gleichen Zielwert t. • H sei so gewählt, dass H ∩ P = 6 ∅. Wir stellen uns nun vor, wir verschieben H unter Einhaltung dieser Invariante soweit wie möglich parallel in Richtung des Vektors c. Sei H∗ die so erhaltene Hyperebene. • Sei nun x∗ ein beliebiger Punkt aus H∗ ∩ P. x∗ ist eine optimale Lösung des LPs. Wir beobachten, H∗ ∩ P ist eine Facette von P. Jede Facette enthält mindestens einen Knoten von P, und somit gibt es mindestens einen optimalen Knoten, also einen Knoten, der den optimalen Zielwert annimmt. Beobachtung 1.3 Das Optimum eines zulässigen und beschränkten LPs wird an einem Knoten des Lösungpolyhedrons angenommen. 2 Wir möchten darauf hinweisen, dass das hier beschriebene geometrische Verfahren zur Bestimmung des Optimums nur der Veranschaulichung dient. Es bleibt unklar, wie man dieses Verfahren effizient für höherdimensionale LPs auf dem Rechner umsetzen kann. 1.3 Die algebraische Gleichungsform Um das Lösungspolyhedron und seine Facetten auf dem Rechner abbilden zu können, benötigen wir eine geeignete Repräsentationsform. Dazu wechseln wir von der kanonischen Form in die folgende Gleichungsform: Maximiere cT x unter Ax = b, x ≥ 0. Die Anzahl der Variablen bezeichnen wir mit n, die Anzahl der Nebenbedingungen (ohne die Nichtnegativitätsbedingungen) mit m. Die Zeilen von A seien linear unabhängig, ansonsten könnten wir Zeilen entfernen, ohne das Gleichungssystem zu verändern. Somit gilt rang(A) = m ≤ n. 8 x2 x1 Abbildung 1.1: Lösungspolyhedron P beschrieben durch die Nebenbedingungen x1 ≤ 4, x2 ≤ 2, −x1 + x2 ≤ 1. LPs in der kanonischen Form können durch Hinzufügen von Schlupfvariablen in die Gleichungsform überführt werden: Aus der iten Nebenbedingung in Ungleichungsform d X αij xj ≤ bi j=1 entstehen die Nebenbedingungen d X αij xj + si = bi j=1 und si ≥ 0 , wobei si eine sogenannte Schlupfvariable ist. Falls wir in der kanonischen Form d Variablen haben, so hat die zugehörige Gleichungsform n = m+d Variablen. Beachte, für die Matrix A eines aus der kanonischen Form hergeleiteten LPs in Gleichungsform gilt zwangsläufig rang(A) = m, weil das Hinzügen der Schlupfvariablen dafür sorgt, dass die Zeilen von A linear unabhängig sind. Beispiel. Wir geben ein Beispiel für die Transformation von der kanonischen in die Gleichungsform. Seien x und y nicht-negative Variablen und das Lösungspolyhedron P sei durch die Nebenbedingungen x1 ≤ 4, x2 ≤ 2, −x1 + x2 ≤ 1 beschrieben. Abbildung 1.1 zeigt dieses Polyhedron. Für jede Bedingung fügen wir eine nichtnegative Schlupfvariable hinzu und erhalten die Gleichungen x1 +x3 = 4, x2 +x4 = 2, −x1 + x2 + x5 = 1. Der Lösungsraum P 0 ist jetzt eine Teilmenge des R5≥0 . Es gibt eine bijektive Abbildung zwischen den Punkten in P und P 0 . Beispielsweise entspricht der Punkt (1, 2) dem Punkt (1, 2, 3, 0, 0). Dazu lösen wir einfach das Gleichungssystem 9 nach den Schlupfvariablen auf. x3 = 4 − x1 x4 = 2 − x2 x5 = 1 + x1 − x2 Beachte der Punkt (1, 2) ist ein Knoten von P: Die beiden Hyperebenen zu den Nebenbedingungen x2 ≤ 2 und −x1 +x2 ≤ 1 schneiden sich in diesem Punkt. Deshalb haben die Schlupfvariablen x4 und x5 , die zu diesen beiden Nebenbedingungen gehören den Wert 0. 1.4 Basislösungen Wir gehen von einem LP in Gleichungsform aus. Sei B eine geordnete Auswahl von k ≥ 1 Spalten der m × n Matrix A. Dann bezeichne AB die Teilmatrix von A, die nur aus den Spalten in B besteht. Mit B(i) (1 ≤ i ≤ k) bezeichnen wir den Index der iten Spalte in B, d.h. AB entsteht aus der Konkatenation der Spalten AB(1) , AB(2) , . . . , AB(k) . Zu jeder Spalte aus A ist eine Variable und ein Koeffizient der Zielfunktion assoziiert. Die Teilvektoren aus denjenigen Variablen und Koeffizienten, die zu den Spalten in B assoziiert sind, werden mit xB bzw. cB bezeichnet. Sei nun B eine Spaltenauswahl der Kardinalität m. B wird dann als Basis von A bezeichnet, wenn die Vektoren in B linear unabhängig sind. In diesem Fall ist AB invertierbar. Mit N bezeichnen wir diejenigen Spalten von A, die nicht in B enthalten sind. Wir schreiben das Gleichungssystem Ax = b wie folgt um. AB xB + AN xN = b . (1.1) Wenn wir nun xN = 0 setzen, hat das verbleibende Gleichungssystem AB xB = b −1 eine eindeutige Lösung, nämlich xB = A−1 B b. Die Lösung (xB , xN ) = (AB b, 0) wird Basislösung zur Basis B genannt. Der Zielfunktionswert dieser Lösung ist cTB A−1 B b. In der kanonischen Form entsprechen die Basislösungen den Schnittpunkten von d Nebenbedingungshyperebenen. Dies kann man wie folgt einsehen. In einer Basislösung haben mindestens n − m = d Variablen den Wert 0. Bei diesen Variablen handelt es sich entweder um Schlupfvariablen, deren zugehörige Nebenbedingung mit Gleichheit erfüllt ist, oder um Variablen aus der kanonischen Form, deren Nichtnegativitätsbedingung mit Gleichheit erfüllt ist. Somit sind also d Nebenbedingungen aus dem LP in kanonischer Form mit Gleichheit erfüllt, so dass die Basislösung dem Schnittpunkt der zugehörigen Hyperebenen entspricht. Die Basislösung ist zulässig, falls auch die m Basisvariablen nicht-negative Werte haben. In diesem Fall entspricht die Basislösung 10 einem Knoten des Lösungspolyhedrons der kanonischen Form. Falls eine der Basisvariablen den Wert Null annimmt schneiden sich mehr als d Hyperebenen in einem Punkt und das zugrundeliegende LP ist degeneriert. Beobachtung 1.4 Die Knoten des Lösungspolyhedrons zur kanonischen Form entsprechen den zulässigen Basislösungen in der Gleichungsform. Diese Basislösungen sind dadurch gekennzeichnet, dass alle Variablen nicht-negative Werte annehmen. Ist das LP nicht-degeneriert, so sind die Werte der Basisvariablen strikt positiv. 2 11 Kapitel 2 Das Simplexverfahren Das Simplexverfahren wurde 1951 von Dantzig vorgestellt. Es ist das in der Praxis wohl erfolgreichste Verfahren zur Lösung von LPs. Wir beginnen zunächst mit einer intuitiven, geometrischen Beschreibung des Verfahrens basierend auf der kanonischen Form. Anschließend wechseln wir zum Zwecke der formalen Beschreibung in die Gleichungsform. 2.1 Geometrische Beschreibung Gegeben sei ein nicht-degeneriertes, möglicherweise unbeschränktes LP mit Lösungspolyhedron P. Die Simplexmethode entspricht einer lokalen Suche auf den Knoten des Lösungspolyhedrons: Von einem beliebigen Knoten ausgehend wird nach einem Nachbarknoten mit besserem Zielwert gesucht, und von dort die Suche fortgesetzt, bis kein Nachbarknoten mit besserem Zielwert mehr existiert. Die Korrektheit der Simplexmethode basiert darauf, dass von jedem nicht-optimalen Knoten eine Kante ausgeht entlang derer sich der Zielwert erhöht, eine sogenannte verbessernde Kante. Diese Eigenschaft müssen wir noch formal nachweisen. Die Schritte des Simplexverfahrens können wie folgt zusammengefasst werden. 1. Bestimme einen beliebigen Knoten v von P. 2. Falls es keine verbessernde Kante inzident zu v gibt, dann ist v optimal, stopp. 3. Folge einer beliebigen verbessernden Kante e von v. Falls e unbeschränkt ist so ist das LP unbeschränkt, stopp. 4. Sei u der andere Endpunkt von e. Setze v = u. Gehe zurück zu Schritt 2. 12 Der Wechsel von einem Knoten zum anderem wird als Pivotschritt bezeichnet. Wir beschreiben im folgenden zunächst ausführlich, wie man diese Pivotschritte auf dem Rechner realisiert. Dazu werden die Knoten in Form von Basislösungen abgebildet. Erst nach der Erörterung der Pivotschritte erläutern wir, wie man die initiale Basislösung in Schritt 1 des Simplexverfahrens berechnet. Bei unserer Beschreibung gehen wir von einem nicht-degenerierten LP aus. Im Anschluss werden wir zeigen, wie man degenerierte LPs auf geeignete Art und Weise in nicht-degenerierte LPs transformieren kann. Als letztes erörtern wir die Laufzeit des Simplexverfahrens. 2.2 Durchführung der Pivotschritte Wir gehen nun davon aus, dass das LP in der Gleichungsform vorliegt. Wir vernachlässigen zunächst die Frage, wie wir eine zulässige Basislösung bestimmen können, und nehmen an, dass eine zulässige Basis B bekannt ist. Wir nutzen aus, dass die Basismatrix AB invertierbar ist. Wenn wir die Terme im Gleichungssystem Ax = b von links mit A−1 B multiplizieren, erhalten wir das äquivalente Gleichungssystem Âx = b̂ mit −1 −1  = A−1 B A und b̂ = AB b. Für die Basismatrix dieses Systems gilt ÂB = AB AB = Em , wobei Em der m × m Einheitsmatrix entspricht. Wenn eine zulässige Basis bekannt ist, können wir also das Gleichungssystem derart transformieren, dass die Basismatrix der Einheitsmatrix entspricht. 2.2.1 Erläuterung eines Pivotschrittes Wir gehen jetzt davon aus, dass das Gleichungssystem zu Beginn eines Pivotschritts in der Form Âx = b̂ vorliegt, wobei die Basismatrix ÂB der Einheitsmatrix Em entspricht. Unter dieser Annahme vereinfacht sich das Gleichungssystem (1.1) zu xB + ÂN xN = b̂ . Wir lösen nach xB auf und erhalten xB = b̂ − ÂN xN . (2.1) In der Basislösung zu B gilt xN = 0, so dass sich xB = b̂ ergibt. Der Zielfunktionswert der Basislösung zu B ist somit cTB b̂. Wenn wir von der Basislösung abweichen indem wir den Vektor xN verändern ergeben sich die Basisvariablen xB wie in Gleichung (2.1) beschrieben. Die Basisvariablen können somit als Funktion der Nichtbasisvariablen aufgefasst werden. Ebenso können wir den Zielfunktionswert als Funktion 13 von xN beschreiben. cT x = cTB xB + cTN xN = cTB (b̂ − ÂN xN ) + cTN xN = cTB b̂ + (cTN − cTB ÂN )xN . (2.2) Der Vektor cTN −cTB ÂN wird als Vektor der reduzierten Kosten bezeichnet. Er enthält für jede Nichtbasisvariable einen Eintrag der beschreibt, wie sich der Zielfunktionswert in Abhängigkeit von dieser Variable verändert. Der Vektor der reduzierten Kosten liefert ein einfaches Kriterium um festzustellen, ob eine zulässige Basislösung optimal ist. Satz 2.1 (Optimalitätskriterium) Falls der Vektor der reduzierten Kosten zu einer Basis B keinen positiven Eintrag enthält, so ist B optimal. Beweis: Es gelte cTN − cTB ÂN ≤ 0. Wähle eine beliebige zulässige Lösung x0 . Wegen der Zulässigkeit von x0 gilt x0 ≥ 0 also insbesondere auch x0N ≥ 0. Aus Gleichung 2.2 ergibt sich nun cT x0 = cTB b̂ + (cTN − cTB ÂN ) x0N ≤ cTB b̂ . {z } |{z} | ≤0 ≥0 Letzterer Wert ist aber der Zielfunktionswert der Basislösung zu B. Dieser Zielfunktionswert ist somit nicht kleiner als der Zielfunktionswert jeder anderen zulässigen Lösung. In anderern Worten, die Basislösung zu B ist optimal. 2 Wenn das Optimalitätskriterium erfüllt ist, so terminiert das Simplexverfahren. Ansonsten suchen wir eine Basislösung B 0 , die sich in genau einer Spalte von B unterscheidet und einen besseren Zielwert aufweist. B 0 kann wie folgt konstruiert werden. Sei xj eine der Nichtbasisvariablen mit positiven reduzierten Kosten, d.h. cj − m X cB(k) âk,j > 0 . k=1 Wir zeigen, wie wir (ausgehend von der Basislösung zu B) den Zielfunktionswert erhöhen können, indem wir den Wert der Variable xj verändern. Die Werte aller anderen Nichtbasisvariablen bleiben unverändert. Wenn wir den Wert der Variable xj (ausgehend von 0) kontinuierlich erhöhen, so erhöht sich wegen Gleichung (2.2) auch der Zielfunktionswert kontinuierlich. Allerdings verändern sich die Werte der Basisvariablen ebenfalls kontinuierlich wie in Gleichung (2.1) beschrieben: Es gilt X âik xk = b̂i − âij xj , (2.3) xB(i) = b̂i − k∈N 14 weil wir die Variablen xk , k ∈ N \ {j}, auf Null fixiert haben. Wenn xj wächst, nehmen einige Basisvariablen möglicherweise negative Werte an, und die Lösung wird unzulässig. Wir gehen jedoch davon aus, dass das LP nicht-degeneriert ist, so dass alle Basisvariablen in der Basislösung strikt positive Werte haben (Behauptung 1.4). Somit kann der Wert von xj zumindest um einen kleinen, positiven Betrag erhöht werden, bevor eine der Basisvariablen einen negativen Wert annimmt. Es können die folgenden Fälle auftreten. 1. Für alle i ∈ {1, . . . , m} gilt âij ≤ 0. In diesem Fall kann der Wert von xj beliebig erhöht werden, ohne dass die durch Gleichung (2.1) beschriebene Lösung unzulässig wird. Das Simplexverfahren terminiert mit der Feststellung, dass das LP unbeschränkt ist. 2. Es gibt mindestens ein i ∈ {1, . . . , m}, für das gilt âij > 0. Wähle ) ( b̂k i = argmin1≤k≤m âkj > 0 . âkj Wenn wir die Variable xj = âb̂iji setzen, ergibt sich, wie aus Gleichung (2.3) folgt, eine zulässige Lösung, in der die Variable xB(i) den Wert 0 annimmt und alle anderen Basisvariablen nicht-negative Werte haben. Diese Lösung entspricht der Basislösung zur Basis B 0 , die wir aus B erhalten, wenn wir die Basisspalte ÂB(i) durch die Nichtbasisspalte Âj ersetzen. Schritt 2 ist der eigentliche Pivotschritt. Die Spalte Âj wird als Eingangspivotspalte bezeichnet, weil sie in die Basis aufgenommen wird, und die Spalte ÂB(i) ist die sogenannte Ausgangspivotspalte, weil sie aus der Basis verdrängt wird. Dieser Vorgang hat die folgende geometrische Interpretation: In der kanonischen Form ist nach dem Erhöhen der Variable xj die mit dieser Variable assoziierte Nebenbedingung nicht mehr mit Gleichheit erfüllt, dafür aber jetzt die zu xB(i) gehörende Nebenbedingung. Wir sind somit von dem durch B beschriebenen Knoten entlang einer verbessernden Kante zu einem benachbarten Knoten gewechselt, der der Basis B 0 entspricht. Zu Beginn der Beschreibung des Pivotschritts haben wir angenommen, dass das Gleichungssystem Âx = b̂ derartig vorliegt, dass die Basismatrix ÂB der Einheitsmatrix Em entspricht. Wir schließen die Beschreibung des Pivotschrittes, indem wir zeigen, wie das Gleichungssystem durch elementare Zeilenoperationen so umgeformt werden kann, dass nach der Transformation die Basismatrix zur neuen Basis B 0 wiederum als Einheitsmatrix vorliegt. Wir gehen zweistufig vor. 1. Die Zeile (Âi , b̂i ) des Gleichungssystems wird mit 1/âij multipliziert. Nach dieser Operation gilt âij = 1. 15 2. Für k 6= i, falls âkj 6= 0, addieren wir die in Schritt 1 erzeugte Zeile multipliziert mit −âkj zur Zeile (âk , bk ) hinzu. Nach dieser Operation gilt âkj = 0. Nach dieser Transformationen sind die Voraussetzungen für den nächsten Pivotschritt gegeben. 2.2.2 Beispielrechung mit Simplextableau Wir setzen das Beispiel aus Abschnitt 1.3 fort. Die Nebenbedingungen sind x1 + x3 = 4, x2 + x4 = 2, −x1 + x2 + x5 = 1, x ≥ 0. Die Zielfunktion sei −x1 + 2x2 . Betrachte die Basis B = (A3 , A4 , A5 ). Glücklicherweise gilt ohne jegliche Umformung AB = E3 und die Basis ist zulässig, da die zugehörige Basislösung xB = b nicht-negativ ist. Deshalb können wir das Simplexverfahren mit der Basis B starten, ohne initiale Umformungen vornehmen zu müssen. Wir setzen  = A und b̂ = b und speichern die zugehörigen Einträge in einem Tableau ab. Die Spalten von  bezeichnen wir dabei mit Â1 , . . . , Â5 . b̂ 4 2 1 Â1 1 0 −1 Â2 0 1 1 Â3 1 0 0 Â4 0 1 0 Â5 0 0 1 Die reduzierten Kosten von Spalte 2 sind c2 − cB · Â2 = 2, denn c2 = 2 und cB = (cB(1) , cB(2) , cB(3) ) = (c3 , c4 , c5 ) = (0, 0, 0). Wir können somit Spalte Â2 als Eingangspivotspalte wählen. Der Term b̂i /âi2 , âi2 > 0, wird minimiert für i = 3. Damit ist die Spalte ÂB(3) = Â5 die eindeutig bestimmte Ausgangspivotspalte. Der Pivotschritt tauscht also die Basisspalte Â5 gegen die Spalte Â2 aus. Das Gleichungssystem wird wie folgt transformiert. Wir dividieren die 3. Zeile zunächst durch â32 = 1. Dann addieren wir diese Zeile multipliziert mit −â12 = 0 zur ersten Zeile und multipliziert mit −â22 = −1 zur zweite Zeile. Das neue Gleichungssystem ergibt sich wie folgt. b̂ 4 1 1 Â1 1 1 −1 Â2 0 0 1 Â3 1 0 0 Â4 0 1 0 Â5 0 −1 1 Die neue Basis ist B = (Â3 , Â4 , Â2 ). Somit gilt cB = (0, 0, 2). Die reduzierten Kosten von Spalte 1 sind c1 − cB Â1 = (−1) − 2 · (−1) = 1 > 0. Spalte Â1 ist somit eine geeignete Eingangspivotspalte. Der Term b̂i /âi1 , âi1 > 0, wird minimiert für i = 2. Damit ist ÂB(2) = Â4 die Ausgangspivotspalte. Wir tauschen somit die Basisspalte Â4 gegen die Spalte Â1 aus. Wir dividieren die Zeile 2 durch â21 = 1. Dann addieren wir 16 die so entstandene Zeile multipliziert mit −â11 = −1 zu Zeile 1 und multipliziert mit −â31 = 1 zu Zeile 3. Wir erhalten das folgende Gleichungssystem. b̂ 3 1 2 Â1 0 1 0 Â2 0 0 1 Â3 1 0 0 Â4 −1 1 1 Â5 1 −1 0 Die Basis ist jetzt B = (Â3 , Â1 , Â2 ). Es gilt cB = (0, −1, 2). Beide Nichtbasisspalten Â4 und Â5 haben jetzt negative reduzierte Kosten. Das Verfahren terminiert. Als optimale Basislösung ergibt sich x1 = 1, x2 = 2, x3 = 3, x4 = 0, x5 = 0. Es ist interessant zu verfolgen, welchen Verlauf das Simplexverfahren in Bezug auf die geometrische Darstellung in Abbildung 1.1 nimmt. Die initiale Basislösung (Â3 , Â4 , Â5 ) entspricht dem Punkt (0, 0). Die nächste besuchte Basislösung (Â3 , Â4 , Â2 ) entspricht dem Punkt (0, 1). Das Verfahren terminiert mit der Basislösung (Â3 , Â1 , Â2 ), die dem Punkt (1, 2) entspricht. 2.2.3 Komplexität einzelner Pivotschritte Die Bestimmung der Eingangs- und Ausgangsspalten in einem Pivotschritt sowie die anschließende Transformation des Gleichungssystems kann mit O(nm) algebraischen Rechenoperationen auf rationalen Zahlen durchgeführt werden. Wir gehen davon aus, dass die Koeffizienten in der Zielfunktion und den Nebenbedingungen ganzzahlig sind. In den einzelnen Pivotschritten können jedoch bedingt durch die Multiplikation der Zeilen des Gleichungssystems, durch die wir die Basismatrix in die Einheitsmatrix transformieren, rationale Zahlen entstehen, die nicht ganzzahlig sind. Wir repräsentieren diese Zahlen in Form von Brüchen mit binär kodierten ganzzahligen Nennern und Zählern. Dabei gehen wir davon aus, dass Nenner und Zähler minimal gewählt sind, d.h. nicht weiter gekürzt werden können. Das können wir erreichen, indem wir auf alle Zwischenergebnisse den Euklidischen Algorithmus anwenden. Die Größe der dabei entstehenden Nenner und Zähler können wir wie folgt beschränken. Lemma 2.2 Bezeiche α den größten absoluten Wert über alle (ganzzahligen) Eingabezahlen eines LPs in Gleichungsform. a) Sei β der größte absolute Wert über alle (gekürzten) Zähler und Nenner der −1 −1 0 Zahlen in den Matrizen  = A−1 B A, A = AB und dem Vektor b̂ = AB b. Es m gilt β ≤ (αm) . b) Sei γ der größte absolute Wert über die (gekürzten) Zähler und Nenner der Zielfunktionswerte cT x über alle Basislösungen x. Es gilt γ ≤ (αm)m+1 . 17 Beweis: Sei M eine invertierbare k ×k-Matrix und b ein k-Vektor. Sei x die eindeutig bestimmte Lösung zum Gleichungssystem Mx = b, also x = M −1 b. Dann besagt die Cramersche Regel, dass für jedes i ∈ {1, . . . , k} gilt xi = det(M1 , . . . , Mi−1 , b, Mi+1 , . . . , Mk ) , det(M) wobei Mi die ite Spalte von M bezeichne. Die Zahlen in M und b seien nun ganze Zahlen mit Absolutwert höchstens α. Die Determinante einer k × k Matrix ist definiert als Summe von k! Produkten von jeweils k Matrixeinträgen. Die beiden betrachteten Determinanten sind deshalb ganzzahlig und ihre Absolutwerte sind durch k! αk ≤ (αk)k nach oben beschränkt. Die obere Schranke für β ergibt sich nun wie folgt. Aus den obigen Überlegungen folgt sofort, dass die Nenner und Zähler in b̂ durch (αm)m nach oben beschränkt sind, denn b̂ = A−1 B b ist die eindeutig bestimmte Lösung zum Gleichungssystem AB x = b. Die obere Schranke für die Nenner und Zähler in b̂ lässt sich offensichtlich auf jeden Vektor v̂ der Form v̂ = A−1 B v übertragen, falls die Koeffizienten in v ganzzahlig sind und ihr Absolutwert durch α beschränkt ist. Entsprechend gilt dieselbe obere Schranke −1 0 auch für die Nenner und Zähler der Zahlen in  = A−1 B A und A = AB Em . Zuletzt zeigen wir die obere Schranke für γ. Gemäß der Cramerschen Regel können wir jede Basislösung x so darstellen, dass die Bruchdarstellungen der Zahlen x1 , . . . , xm denselben Nenner haben, dessen Absolutwert durch β nach oben beschränkt ist, und auch die Absolutwerte aller Zähler sind durch β nach oben beschränkt. Ferner sind die Absolutwerte der ganzzahligen Koeffizienten im Zielfunktionsvektor c durch α beschränkt. Entsprechend läßt sich der Term cT x durch einen Bruch darstellen, dessen Nenner durch β ≤ (αm)m und dessen Zähler durch αβm ≤ (αm)m+1 absolut nach oben beschränkt ist. 2 Die Absolutwerte der Zähler und Nenner können durch die in den Pivotschritten durchgeführten Zeilenoperationen dramatisch anwachsen. Für die Komplexität der Rechenoperationen sind aber nicht die Absolutwerte dieser Zahlen entscheidend sondern ihre binäre Kodierungslänge. Bezeichne ` die maximale Kodierungslänge einer einzelnen Eingabezahl. Dann gilt ` = Θ(log α). Die in der Rechnung entstehenden Zahlen haben somit Länge höchstens O(log((αm)m+1 )) = O(m(log m + log α)) = O(m log m + m`). Damit sind die Kodierungslängen dieser Zahlen polynomiell in der Eingabelänge des LPs beschränkt. Satz 2.3 Die Laufzeit jedes einzelnen Pivotschrittes ist polynomiell beschränkt in der Eingabelänge des LPs. 18 2.3 Berechnung der initialen Basislösung Bisher haben wir beschrieben, wie man eine optimale Lösung berechnet, wenn bereits eine zulässige Basislösung vorliegt. Wir müssen noch zeigen, wie die erste zulässige Basislösung berechnet werden kann. Der Raum der zulässigen Lösungen sei beschrieben durch das System Ax = b, x ≥ 0. O.B.d.A. gelte b ≥ 0; ansonsten multipliziere die nicht dieser Annahme entsprechenden Zeilen mit -1. Zur Berechnung einer zulässigen Basislösung ignorieren wir die gegebene Zielfunktion und ersetzen sie durch eine neue Hilfszielfunktion. Diese Zielfunktion ist definiert über einer Menge von Hilfsvariablen h1 , P . . . , hm ≥ 0 — jeweils eine Hilfsvariable pro Zeile von A. Die i-te Nebenbedingung N j=1 aij xj = bi , 1 ≤ i ≤ m, wird ersetzt durch N X aij xj + hi = bi . j=1 Die neue Zielfunktion lautet Minimiere h1 + h2 + · · · + hm . Für dieses HilfsLP gibt es eine offensichtliche zulässige Basislösung, nämlich x = 0, h = b ≥ 0. Ausgehend von dieser Basislösung können wir nun die Hilfszielfunktion durch Anwendung von Pivotschritten minimieren. Die berechnete Lösung genügt einem der beiden folgenden Fälle. 1. Die optimale Lösung für das HilfsLP hat einen positiven Zielfunktionswert. Dann gibt es keine Lösung mit h1 = h2 = · · · = hm = 0. Es folgt, dass das eigentliche LP keine zulässige Lösung hat. 2. Der berechnete Zielfunktionswert des HilfsLP ist 0. In der berechneten Basislösung des HilfsLP gilt somit h1 = h2 = · · · = hm = 0. Damit ist diese Basislösung auch zulässig für das eigentliche LP. Die Berechnung der optimalen Lösung mit Hilfe des Simplexalgorithmus besteht also aus zwei sehr ähnlichen Phasen. In Phase 1 berechnen wir mit Hilfe von Pivotschritten eine zulässige Basislösung. In Phase 2 berechnen wir dann ausgehend von einer zulässigen Lösung mit Hilfe von Pivotschritten eine optimale Lösung. 2.4 Besondere Aspekte degenerierter LPs In einem nicht-degenerierten LP verbessert sich der Wert der aktuellen Basislösung von Schritt zu Schritt. Da es nur endliche viele Basislösungen gibt, ist damit die Ter19 minierung des Simplexverfahrens sichergestellt. In einem degenerierten LP kann es vorkommen, dass in einem Pivotschritt eine oder mehrere Basisvariablen den Wert 0 haben. Durch Austausch einer Basisspalte, die zu einer solchen Variable gehört, erhöht sich der Zielfunktionswert nicht. In der geometrischen Darstellung zur kanonischen Form mit d Variablen entspricht dieses dem Fall, dass sich mehr als d Hyperebenen in einem Punkt treffen. Dadurch werden mehrere Basislösungen auf denselben Punkt abgebildet, so dass sich durch einen Wechsel von einer Basislösung zur anderen der Zielfunktionswert nicht erhöht. 2.4.1 Blands Pivotregel Zyklisches Verhalten des Simplexalgorithmus kann durch die folgende Pivotregel von Bland verhindert werden: Wähle beide Pivotspalten, also die Eingangsspalte Aj und die Ausgangsspalte AB(i) , mit möglichst kleinem Index, also so, dass zunächst der Index j und dann der Index B(i) minimal unter den in Abschitt 2.2 beschriebenen Bedingungen gewählt wird. Für den Beweis, dass diese Regel Zyklen verhindert, verweisen wir auf die Literatur. Blands Pivotregel ist einfach umzusetzen, hat aber den Nachteil, dass sie die Auswahl der Eingangspivotspalte festlegt. Gemäß unserer bisherigen Beschreibung konnte jede Nichtbasisspalte mit positiven reduzierten Kosten als Eingangsspalte gewählt werden. Einige Heuristiken versuchen diese Freiheit zu nutzen, indem sie beispielsweise die Spalte mit den größten reduzierten Kosten als Eingangsspalte wählen. Das bedeutet sie verbessern die Basislösung entlang derjenigen ausgehenden Kante im Lösungspolyhedron, die die größte Steigung bezüglich der Zielfunktion aufweist. Im folgenden werden wir einen allgemeinen Ansatz zur Vermeidung von Zyklen beschreiben, der die Wahl der Eingangspivotspalte freilässt und nur die Ausgangspivotspalte festlegt. Beachte, dass die Wahl der Ausgangspivotspalte in einem nicht-degenerierten LP im Gegensatz zur Wahl der Eingangspivotspalte ohnehin keine Freiheitsgrade aufweist. 2.4.2 Perturbierung Wir perturbieren (stören) ein gegebenes LP leicht um degenerierte Knoten, also Schnittpunkte von mehr als n Nebenbedingungshyperebenen aufzuheben. Die Perturbierung ist so gering, dass eine Basislösung, die für das perturbierte LP optimal ist, auch für das ursprüngliche LP optimal ist. In der geometrischen Darstellung können wir degenerierte Knoten dadurch aufheben, dass wir jede der Hyperebenen etwas parallel verschieben. Das entspricht dem Aufaddieren eines kleinen Wertes zum Vektor b. Die Idee ist es also, ein möglicherweise degeneriertes LP in ein nicht-degeneriertes LP zu transformieren und dadurch die Terminierung des Simplexverfahrens zu garantieren. 20 Bezeichne LP ein lineares Programm dem das Gleichungssystem Ax = b (oder alternativ Ax ≤ b) zugrundeliegt. Bezeichne LP (), > 0, dasjenige LP in dem wir den Vektor b durch den Vektor b + ~ ersetzen, wobei 2 ~ = .. . . m Wir werden so klein wählen, dass zwar die degenerierten Knoten aufgehoben werden, aber die optimale Basis bzw. zumindest eine der optimalen Basen erhalten bleiben. Beachte, für kleines > 0 gilt gilt 2 · · · m . Wir merken an, dass es zur Aufhebung von degenerierten Knoten nicht ausreicht, alle Nebenbedingungen um denselben Betrag zu verschieben. Satz 2.4 Es gibt ein δ > 0, so dass für jedes ∈ (0, δ) gilt: a) LP () ist nicht-degeneriert. b) Jede zulässige Basis für LP () ist auch zulässig für LP . c) Jede optimale Basis für LP () ist auch optimal für LP . Beweis: Zunächst beweisen wir Aussage a). Sei B eine Basis. In der Basislösung zu B für LP () ist −1 xB = A−1 ) = A−1 . B (b + ~ B b + AB ~ Aus dieser Gleichung extrahieren wir den Wert für eine einzelne Basisvariable xi . −1 0 Bezeichne b̂ = A−1 B b und A = AB . Es gilt xi = b̂i + m X a0ij j . j=1 Wir beobachten, dass der Wert von xi durch ein Polynom in beschrieben wird. Dieses Polynom ist m X a0ij sj . pB,i (s) = b̂i + j=1 Da die Matrix A0 invertierbar ist, gibt es mindestens einen Index j mit a0ij 6= 0. Falls pB,i eine positive Nullstelle hat, so bezeichne δB,i die kleinste positive Nullstelle, sonst sei δB,i = ∞. Setze nun δ = min{δB,i | B ist Basis mit Basisvariable xi } . 21 Für < δ gilt nun pB,i () 6= 0 und zwar für jede Basis B und jede Basisvariable xi . Das bedeutet alle Basisvariablen in LP () haben Werte ungleich Null. Damit ist Aussage a) bewiesen. Wir wenden uns nun Aussage b) zu. Sei x∗ die Basislösung zu einer zulässigen Basis B von LP (). Es gilt x∗ ≥ 0. Weil LP () nicht degeneriert ist, gilt für die Basisvariablen sogar m X ∗ xi = b̂i + a0ij j > 0 . j=1 Wir behaupten: Es gilt b̂i ≥ 0. Da xB = b̂ die Basislösung zu B bezüglich LP ist, folgt aus dieser Behauptung, dass B auch zulässig für LP ist, und damit wäre Aussage b) gezeigt. Zum Zwecke des Widerspruchs, gelte b̂i < 0. Wir betrachten das Polynom pB,i . Aus b̂i < 0 folgt pB,i (0) < 0. Andererseits gilt pB,i () > 0. Aus dem Zwischenwertsatz für stetige Funktionen folgt somit, dass es ein s ∈ (0, ) ⊂ (0, δB,i ) gibt, für das gilt pB,i (s) = 0. Die kleinste positive Nullstelle dieses Polynoms ist jedoch δB,i . Ein Widerspruch. Damit ist Aussage b) bewiesen. Als letztes beweisen wir Aussage c). Eine optimale Basis ist dadurch gekennzeichnet, dass sie zulässig ist und der Vektor der reduzierten Kosten keinen positiven Eintrag enthält (Satz 2.1). Der Vektor der reduzierten Kosten für LP und LP () ist jedoch gleich. Also folgt c) unmittelbar aus b). 2 Wie klein müssen wir den Parameter wählen, damit die im Satz beschriebenen Eigenschaften gelten? – Dem Beweis für a) entnehmen wir, dass es hinreichend ist, kleiner als die kleinste positive Nullstelle eines Polynoms der Form p(s) = m X βi si i=0 mit mindestens einem nicht-nullwertigem Koeffizienten zu wählen. Die Koeffizienten −1 0 von p sind dabei rationale Zahlen aus dem Vektor b̂ = A−1 B b und der Matrix A = AB . Seien die Absolutwerte der Zähler und Nenner dieser Koeffizienten durch β nach oben beschränkt, d.h. β erfüllt für alle nicht-nullwertigen Koeffizienten die Ungleichungen β ≥ |βi | und β ≥ |β1i| . Zur Vereinfachung der Notation machen wir o.B.d.A. die folgenden Annahmen. • Es gelte β0 6= 0. (Ansonsten dividiere das Polynom solange durch s bis der Koeffizient vor dem Term s0 nicht-nullwertig ist. Diese Divisionen haben keinen Einfluss auf die Nullstellen.) • Es gilt β0 > 0. (Ansonsten multipliziere das Polynom mit −1. Auch diese Multiplikation hat keinen Einfluss auf die Nullstellen des Polynoms.) 22 Für jedes δ ∈ (0, 2β1 2 ] gilt nun m X βi δ i |p(δ)| = i=0 ≥ β0 − m X i=1 m X |βi |δ i i 1 β 2β 2 i=1 m i 1 1X 1 ≥ > 0 . − β β i=1 2 | {z } 1 − ≥ β <1 Somit ist die kleinste positive Nullstelle von p größer als 2β1 2 . Damit können wir = 2β1 2 setzen. Wenn wir die in Lemma 2.2 bewiesenen oberere Schranken für die Absolutwerte der Nenner und Zähler der Zahlen im Simplextableau berücksichtigen, so gilt β ≤ (αm)m , wobei α der größte Absolutwert über alle Eingabezahlen ist. Damit genügt es = 12 (αm)−2m zu setzen, um die in Satz 2.4 beschriebenen Eigenschaften zu garantieren. Beachte, durch die Perturbierung wächst die Eingabelänge. Dieses Wachstum ist aber polynomiell beschränkt: Sei ` eine obere Schranke für die binäre Länge der Eingabezahlen. Dann genügen O(m(` + log m)) Bits zur Darstellung von und somit O(m2 (` + log m)) Bits zur Darstellung von bi + i für 1 ≤ i ≤ m. Bemerkung 2.5 Sei α der Absolutwert des größten Nenners bzw. Zählers der Eingabezahlen von LP . Die Aussagen in Satz 2.4 gelten für = 21 (αm)−2m . Die Eingabelänge von LP () ist damit polynomiell in der Eingabelänge von LP beschränkt. 2.4.3 Symbolische Perturbierung Der offensichtliche Nachteil der oben beschriebenen Perturbierung ist, dass sehr klein gewählt werden muss, um die in Satz 2.4 genannten Eigenschaften zu erzielen. Dadurch vergrößert sich die Eingabelänge zwar nur polynomiell aber dennoch derartig signifikant, dass sich die Perturbierung spürbar auf die Laufzeit auswirkt. Wir beschreiben jetzt einen Weg, der es ermöglicht, die Pertubierung implizit durchzuführen, ohne die Eingabe zu manipulieren. Der Trick ist, dass wir den Parameter durch einen symbolischen Wert repräsentieren. Wir betrachten einen Pivotschritt zu einer Basis B. Wie zuvor verwenden wir die Be−1 −1 zeichnungen A0 = A−1 B ,  = AB A und b̂ = AB b. Sei j der Index der Eingangspivot23 spalte.1 Sei B(i) der Index der gewählten Ausgangspivotspalte. Die in Abschnitt 2.2 beschriebenen Auswahlregeln bestimmen den Index i wie folgt. ) ( P 0 t a b̂k + m t=1 kt i = argmin1≤k≤m âkj > 0 âkj pB,k () = argmin1≤k≤m âkj > 0 . âkj Für = 0 gibt es möglicherweise mehrere Indizes, die dieses Minimum liefern. Für jeden Parameter ∈ (0, δ) gibt es jedoch genau einen solchen Index, denn sonst wäre LP () degeneriert.2 Zur Bestimmung der Ausgangspivotspalte wählen wir den Index pB,k () âkj > 0 . i = lim argmin1≤k≤m →0 âkj Beachte, die Terme, über die das Minimum bestimmt wird, sind Polynome in . Für → 0 kann das kleinste dieser Polynome durch Koeffizientenvergleich bestimmt werden: Den Vergleich zwischen zwei Polynomen entscheidet jeweils der Koeffizient mit kleinstem Grad in dem sich die Polynome unterscheiden. Der zusätzliche Aufwand zur Durchführung dieser Pivotregel besteht also im Wesentlichen darin, zusätzlich zum Pivottableau auch die Umkehrmatrix A0 = A−1 B von Schritt zu Schritt mitzuführen, um im Falle eines Unentschiedens zwischen zwei Ausgangsspalten eine eindeutige Wahl treffen zu können.3 2.5 Laufzeit der Simplexmethode Wir haben gesehen, dass sich die einzelnen Pivotschritte effizient durchführen lassen. Die Anzahl der Pivotschritte ist jedoch problematisch. Der folgende Satz zeigt, dass die Anzahl der Pivotschritte exponentiell in der Anzahl der Variablen und Nebenbedingungen sein kann, ohne dass man dabei in der Eingabe auf Zahlen großer Kodierungslänge zurückgreifen muss. Dieses Ergebnis wurde gezeigt von Klee und Minty (1972). Satz 2.6 Für jedes n, gibt es ein LP in kanonischer Form mit n Variablen und 2n ganzzahligen Koeffizienten mit Absolutwert höchstens 4, so dass der Simplex-Algorithmus 2n − 1 Pivotschritte benötigt. 1 Die Wahl der Eingangspivotspalte wird durch die Perturbierung nicht beeinflusst. Warum? Tatsächlich folgt aus der Nicht-Degeneriertheit dieser LPs sogar, dass für alle ∈ (0, δ) derselbe Spaltenindex selektiert wird. Warum? 3 Wenn wir davon ausgehen, dass die initiale Basismatrix der Einheitsmatrix entspricht, so liegt die Matrix A0 zu Beginn jedes Pivotschrittes bereits im Tableau vor. Welche Spalten im Tableau entsprechen den Spalten dieser Matrix? 2 24 Wir beschränken uns darauf die Beweisidee zu beschreiben. Um eine derartige Beispielinstanz zu konstruieren, benötigen wir zunächst ein LP mit exponentiel vielen Basislösungen, denn die Anzahl der Basislösungen ist eine offensichtliche oberere Schranke für die Anzahl der Iterationen des Simplexalgorithmus. Wir betrachten ein LP mit der Zielfunktion Maximiere x1 unter den Nebenbedingungen 0 ≤ xi ≤ 1 für 1 ≤ i ≤ n. Das Lösungspolyhedron dieses LPs entspricht dem n dimensionalen Hypercube. Die Knoten des Hypercubes, also die Basislösungen des LPs, entsprechen den Punkten aus der Menge {0, 1}n. Das LP hat also 2n Basislösungen. Behauptung 2.7 Es gibt einen Hamiltonpfad auf den 2n Knoten des Hypercubes, auf dem sich der Zielfunktionswert nicht verschlechtert. Beweis: Der bekannte Gray-Code ist dadurch gekennzeichnet ist, dass er die Bitstrings aus {0, 1}n in einer deartigen Reihenfolge aufzählt, dass sich zwei nacheinander aufgezählte Strings nur in einem Bit unterscheiden, so dass die entsprechenden Knoten auf dem Hypercube benachbart sind. Der Gray-Code definiert somit einem Hamiltonpfad auf dem Hypercube. Die Zielfunktionwerte auf diesem Pfad verringern sich nicht, da der Gray-Code zunächst die Knoten aufzählt, die mit einer 0 beginnen und dann die Knoten, die mit einer 1 beginnen. 2 Um eine exponentielle Anzahl Schritte für den Simplexalgorithmus zu erreichen, benötigen wir jedoch einen Pfad, auf dem sich der Zielfunktswert nicht nur nicht verschlechtert sondern sogar von Knoten zu Knoten verbessert. Dies erreicht man, wenn man den Hypercube durch den sogenannten Klee-Minty-Cube ersetzt, der einem perturbierten Hypercube entspricht. Für > 0 definieren wir die folgenden Nebenbedingungen. ≤ x1 ≤ 1 , xj−1 ≤ xj ≤ 1 − xj−1 , Für → 0 konvergiert das durch diese Ungleichungen beschriebene Ungleichungssystem gegen den Hypercube. Auf diesem Polyhedron hat der oben beschriebene Hamiltopfad ansteigende Zielfunktionswerte. Die Konstruktion funktioniert für ≤ 14 . Auf den Beweis dieser Eigenschaft verzichten wir hier. Wenn wir = 14 setzen und alle Nebenbedingungen mit 4 multiplizieren erhalten wir ein LP mit ganzzahligen Koeffizienten wie im Satz beschrieben. Die Konstruktion von Klee-Minty geht nicht nur von einer Worst-Case-Eingabe sondern auch von einer Worst-Case-Pivotentscheidung aus. Tatsächlich lassen sich derartige Beispiele auch für zahlreiche bekannte Pivotregeln wie z.B. Blands Pivotregel 25 finden. Die Frage, ob es eine Pivotregel mit polynomieller Laufzeit gibt, ist ungeklärt. √ Bisher konnte man nur für randomisierte Pivotregeln eine Laufzeit von mO( n) nachweisen; unabhängig gezeigt von einerseits Kalai (1992) und andererseits Matousek, Sharir und Welzl (1992). Es ist sogar unklar, ob es überhaupt einen Weg polynomieller Länge zum Optimum gibt, also ob der Durchmesser des Graphs eines Polyhedrons sich polynomiell in der Anzahl seiner Facetten (Nebenbedingungen) und der Dimension beschränken lässt. Eine optimistische aber weder bewiesene noch widerlegte Behauptung von Hirsch (1957) lautet: Der Durchmesser eines n-dimensionalen Polytops mit m Facetten ist höchstens m − n. Das beste bekannte bewiesene Ergebnis ist eine obere Schranke in Höhe von mlog2 n+2 für den Durchmesser gezeigt durch Kalai und Kleitman (1992). Im Gegensatz zu den obigen theoretischen Überlegungen zur Worst-Case-Laufzeit des Simplexverfahrens stehen die praktischen Erfahrungen mit diesem Verfahren: Viele in der Praxis auftretenden LPs lassen sich tatsächlich effizient mit dieser Methode lösen. Dies wird untermauert durch theoretische Untersuchungen die zufällig erzeugte Eingabeinstanzen untersuchen. Borgwardt (1977) untersucht beispielsweise LPs bei denen die Koeffizienten der Nebenbedingungsmatrix A uniform zufällig generiert werden. Über die Relevanz eines derartigen Eingabemodells bezüglich der in der Praxis vorkommenden LPs lässt sich streiten. Spielman und Teng (2001) präsentieren ein raffinierteres probabilistisches Eingabemodell. In ihrer sogenannten geglätteten Analyse (Smoothed Analysis) erzeugt zunächst ein Gegner die Nebenbedingungsmatrix und dann werden die Einträge dieser Matrix durch eine leichte zufällige Perturbierung verändert. Intuitiv startet die geglättete Analyse also mit einer Worst-Case-Eingabe, zu der ein leichtes Gauß’sches Rauschen hinzuaddiert wird. Auch für dieses semizufällige Eingabemodell lässt sich die Laufzeit des Simplex-Algorithmus polynomiell beschränken. 26 Kapitel 3 Die Ellipsoidmethode Wir werden in diesem Abschnitt einen Algorithmus zur Lösung von LPs kennenlernen, der auch im Worst-Case eine polynomielle Laufzeit garantiert. Es handelt sich dabei um die sogenannte Ellipsoidmethode, die zur Lösung nichtlinearer Optimierungsprobleme entwickelt wurde. Im Jahre 1979 entdeckte der russische Mathematiker Leonid Khachiyan, dass diese Methode auch zur Lösung von LPs eingesetzt werden kann und das die Laufzeit dieser Methode für LPs polynomiell in der Eingabelänge beschränkt werden kann. In praktischen Anwendungen beobachtet man jedoch, dass die Ellipsoidmethode dem Simplexverfahren in der Regel deutlich unterlegen ist. 3.1 Zulässigkeitstest versus Optimieren Eigentlich handelt es sich bei der Ellipsoidmethode lediglich um ein Verfahren, das für ein lineares Ungleichungssystem LI (linear inequalities) der Form Ax ≤ b in polynomieller Zeit entscheidet, ob LI zulässig ist, also ob es eine Lösung gibt, die alle Ungleichungen erfüllt. Das folgende Lemma besagt jedoch, dass das Optimieren eines LPs auf das Entscheiden, ob es überhaupt eine Lösung gibt, die alle Nebenbedingungen erfüllt, reduziert werden kann. Lemma 3.1 Existiert ein polynomieller Algorithmus, der entscheidet, ob ein System von linearen Ungleichungen eine Lösung besitzt, so existiert auch ein polynomieller Algorithmus zur Lösung von LPs. Die wesentliche Idee wie man das Optimieren von LPs auf einen Zulässigkeitstest reduziert, lässt sich wie folgt zusammenfassen: Wenn das vorliegende LP beschränkt und zulässig ist, dann ist der optimale Zielfunktionswert z eindeutig dadurch bestimmt, 27 dass z der größtmöglichste Wert ist, für den das LP auch dann noch zulässig bleibt, wenn wir die Nebenbedingung cT x ≥ z hinzufügen. Wir können deshalb den optimalen Zielfunktionswert mittels einer Binärsuche finden, in der wir Zulässigkeitstests für verschiedene z-Werte durchführen. Für den Start der Binärsuche benötigt man untere und obere Schranken für den kleinst- und größtmöglichen Zielfunktionswert eines zulässigen und beschränkten LPs mit Eingabelänge L (in binärer Kodierung). Es gilt −2poly(L) ≤ z ≤ 2poly(L) . Die Binärsuche konvergiert gegen den optimalen Zielfunktionswert. Um den optimalen Zielfunktionswert bis auf einen additiven Fehler von δ zu erreichen benötigt die Binärsuche O(log(2poly(L) /δ)) = poly(L)+O(log(1/δ)) Schritte. Für δ = 2−poly(L) ergibt sich somit eine Laufzeit, die polynomiell in L ist. Jetzt muss man noch zeigen, wie man die optimale Lösung effizient bestimmen kann, wenn man den optimalen Zielfunktionswert bis auf einen additiven kleinen Fehler kennt. Der Schlüssel hierzu ist, dass alle nicht-optimalen Basislösungen eines LPs der Eingabelänge L einen Zielfunktionswert haben, der um die Größenordnung 2−poly(L) geringer ist, als der optimale Zielfunktionswert. Eine Basislösung, die diese Bedingung erfüllt (und somit optimal ist) kann nun durch geschicktes Lösen von polynomiell vielen Gleichungssystem erreicht werden. Die Details dieser Reduktion von Optimierung auf Zulässigkeitstest werden in Abschnitt 3.1 beschrieben. Als Konsequenz aus Lemma 3.1 müssen wir nun nur noch zeigen, wie man lineare Ungleichungssystem effizient auf ihre Zulässigkeit testet. Bevor wir uns der eigentlichen Methode zuwenden, präsentieren wir einige Schritte zur Vereinfachung der Ungleichungssysteme, die unter anderem dafür sorgen, dass das Ungleichungssystem beschränkt und der Lösungsraum nicht zu klein ist, es sei denn, der Lösungsraum ist leer. Lemma 3.2 Ein lineares Ungleichungssystem LI der Eingabelänge L kann in polynomieller Zeit in ein lineares Ungleichungssystem LI ∗ mit den folgenden Eigenschaften transformiert werden. a) LI ∗ hat genau dann eine Lösung, wenn LI eine Lösung hat. b) Der Lösungsraum von LI ∗ ist in einer Kugel um den Ursprung mit Radius höchs2 tens 2O(L ) enthalten. c) Wenn der Lösungsraum von LI ∗ nicht leer ist, so enthält er eine Kugel mit Ra4 dius mindestens 2−O(L ) . d) Die Eingabelänge von LI ∗ ist beschränkt durch O(L2 ). Die Details dieser Transformation werden in Abschnitt 3.2 beschrieben. 28 3.1.1 Beweis von Lemma 3.1 Es sei ein Algorithmus A gegeben, der für ein gegebenes System linearer Ungleichungen in polynomieller Zeit entscheidet, ob es eine Lösung gibt, die alle Ungleichungen erfüllt. O.B.d.A. sei ein LP in der Gleichungsform max cT x, Ax = b, x ≥ 0 gegeben. Wie üblich bezeichne m die Anzahl der Nebenbedingungen, n die Anzahl der Variablen und α den größten Absolutwert über alle Zähler und Nenner der Eingabezahlen. Wir benötigen das folgende Lemma. Lemma 3.3 Seien x und y zwei Basislösungen mit cT x 6= cT y, dann gilt |cT x−cT y| ≥ (αm)−2(m+1) . Beweis: Aus Lemma 2.2 b) folgt, dass die Absolutwerte der Zähler und Nenner in cT x und cT y durch (αm)m+1 nach oben beschränkt sind. Seien a, b, c, d derartig beschränkte ganze Zahlen. Dann gilt a c ad − bc 1 ≥ 1 ≥ . − = b d bd |bd| (αm)2(m+1) 2 Wir werden A nun als Black-Box einsetzen, um eine optimale Lösung für das betrachtete LP zu berechnen: 1. Wir beginnen damit, zu prüfen, ob das gegebene LP überhaupt eine gültige Lösung besitzt. Dazu rufen wir A mit den Ungleichungen Ax ≤ b, Ax ≥ b und x ≥ 0 auf. Gibt es keine gültige Lösung, so brechen wir an dieser Stelle ab. 2. Nun testen wir, ob das LP unbeschränkt ist. Aus Lemma 2.2 folgt, dass der Zielfunktionswert cT x für eine beliebige Basislösung x durch (αm)m+1 nach oben beschränkt ist. Wir rufen A nun mit den Ungleichungen Ax ≤ b, Ax ≥ b, x ≥ 0 und cT x ≥ (αm)m+1 + 1 auf. Die binäre Kodierungslänge des Terms (αm)m+1 + 1 ist O(m log(αm)) = O(L2 ). Somit ist die Größe des Ungleichungssystems polynomiell in der Eingabelänge des LPs beschränkt. Hat dieses Ungleichungssystem eine Lösung, so ist das LP offenbar unbeschränkt, da jedes beschränkte LP eine optimale Basislösung mit Zielfunktionswert höchstens (αm)m+1 hat. 3. Wir wissen nun, dass es eine optimale Basislösung x∗ gibt, und versuchen den Zielfunktionswert cT x∗ bis auf ein sehr kleines Intervall einzugrenzen. Dieses Intervall soll die Länge δ = (αm)−2(m+1) haben, also höchstens so groß sein, wie der in Lemma 3.3 beschriebene minimale Abstand zwischen den Zielfunktionswerten zweier Basislösungen. Insbesondere suchen wir eine ganze Zahl K, so dass gilt δK ≤ cT x∗ < δ(K + 1). 29 Wir bestimmen K durch eine Binärsuche, in der wir A mit den Ungleichungen Ax ≤ b, Ax ≥ b, x ≥ 0 und cT x ≥ δK mit verschiedenen Werten für K aufrufen. Wir haben in Schritt 2 gesehen, dass |cT x∗ | ≤ (αm)m+1 gilt, somit wissen wir, die gesuchte ganze Zahl K erfüllt die Ungleichung |K| ≤ (αm)m+1 /δ = (αm)3(m+1) . Die Binärsuche benötigt also nur O log (αm)3(m+1) = O(m log m + m log α) = O(L2 ) Aufrufe von A . Also kann die gesuchte ganze Zahl K in polynomieller Zeit berechnet werden. 4. Aus δK ≤ cT x∗ < δ(K+1) für δ = (αm)−2(m+1) in Verbindung mit Lemma 3.3 folgt nun, dass jede Basislösung x, die die Ungleichungen Ax ≤ b, Ax ≥ b, x ≥ 0, cT x ≥ δK erfüllt, den gleichen Wert wie x∗ hat, also optimal ist. Das bedeutet, wir müssen nur noch eine beliebige Basislösung finden, die diese Ungleichungen erfüllt. Um eine solche Basislösung zu finden, genügt es, zu ermitteln, welche Variablen in ihr auf 0 gesetzt sind. Zu diesem Zweck überprüfen wir nun iterativ, ob für die Indizes k = 1, . . . , n die folgenden Ungleichungen erfüllbar sind: A ≤ b, A ≥ b, x ≥ 0, cT x ≥ δK und xk ≤ 0 und xj ≤ 0 für j ∈ S(k). Dabei bezeichne S(k) die Menge derjenigen Indizes kleiner als k für die die entsprechenden Ungleichungen erfüllbar waren. Liefert beispielsweise der Aufruf von A für k = 1 ein positives Ergebnis zurück, so wissen wir, dass es eine Lösung mit x1 = 0 gibt, die die Ungleichungen (4) erfüllt. Somit gibt es auch eine Basislösung mit x1 = 0, die diese Bedingungen erfüllt. Eine solche suchen wir dann mit den folgenden Aufrufen von A . Es wird am Ende höchstens m Indizes geben, die nicht in S(n + 1) enthalten sind, da jede Basislösung höchstens m Einträge ungleich Null enthält. Ist das lineare Programm nicht degeneriert, so gibt es exakt m Indizes, die nicht in S(n + 1) liegen, wir können dann die dazugehörigen Spalten als Basis B wählen und erhalten die Basislösung wie üblich durch die Gleichung xB = A−1 B b. Enthält S(n + 1) weniger als m Indizes, so bilden diese zwar keine Basis, definieren wir jedoch auch in diesem Fall B als die Menge der Spalten, die nicht in S(n + 1) enthalten sind, so besitzt das Gleichungssystem xB = A−1 B b eine Lösung mit positiven Variablen, weil wir bereits wissen, dass es eine gültige Basislösung gibt, die die Ungleichungen (4) erfüllt und in der alle Variablen aus S(n + 1) auf Null gesetzt sind. Offensichtlich ist auch dieser Schritt in polynomieller Zeit durchführbar. 30 3.1.2 Beweis von Lemma 3.2 LI werde durch das Gleichungssystem Ax ≤ b beschrieben. Bezeichne m die Anzahl der Nebenbedingungen in LI, n die Anzahl der Variablen und α den größten Absolutwert über alle Eingabezahlen. Wir gehen in zwei Transformationsschritten vor: 1. Wir fügen zu LI zunächst die Nebenbedingungen xi ≤ (αm)m und xi ≥ −(αm)m für 1 ≤ i ≤ n hinzu. Das erhaltene Ungleichungssystem A0 x ≤ b0 bezeichnen wir mit LI 0 . Die Anzahl der Nebenbedingungen in LI 0 ist m0 = m+2n. Die Absolutwerte der Zahlen in LI 0 sind durch α0 = (αm)m beschränkt. 2. Wir perturbieren LI 0 wie in Abschnitt 2.4.2 beschrieben, d.h. wir ersetzen den 0 Vektor b0 durch den Vektor b0 + ~ für ~ = (1 , 2 , . . . , m )T mit = 21 (α0m0 )−2m . Das so erhaltenen Ungleichungssystem nennen wir LI ∗ . In Schritt 1 wächst die Eingablänge nur um einen polynomiellen Faktor, da die Länge der einzelnen Eingabezahlen nach der Transformation durch O(log α0 ) = O(log(αm)2m )) = O(m log m + m log α) = O(L2 ) beschränkt ist. Aus Bemerkung 2.5 folgt, dass die Eingabelänge durch die Perturbierung in Schritt 2 ebenfalls nur um einen polynomiellen Faktor anwächst. Eigenschaft d) ist somit gewährleistet. Aussage a) kann wie folgt gezeigt werden. Alle betrachteten Ungleichungssysteme haben genau dann eine zulässige Lösung, wenn sie eine zulässige Basislösung haben. Wenn LI eine zulässige Basislösung x hat, so folgt aus Lemma 2.2, dass |xi | ≤ (αm)m für 1 ≤ i ≤ n. Also ist x auch zulässig für LI 0 und damit auch für LI ∗ . Wenn LI keine zulässige Basislösung hat, so hat offensichtlich auch LI 0 keine zulässige Basislösung. Jetzt folgt aus Satz 2.4b) zusammen mit Bemerkung 2.5, dass auch LI ∗ keine zulässige Basislösung hat. Damit ist a) gezeigt. Als nächstes beweisen wir Aussage b). Nach dem ersten Transformationsschritt ist der Lösungsraum in dem durch die Ungleichungen |xi | ≤ (αm)m (1 ≤ i ≤ m) beschriebenen Hyperwürfel eingeschlossen. Durch die Perturbierung in Schritt 2 vergrößert sich der Lösungsraum leicht, ist aber immer noch im Hyperwürfel |xi | ≤ (αm)m + 1 enthalten. Dieser Hyperwürfel ist in einer Kugel mit Radius √ 2 n((αm)m + 1) = 2O(log n+m log m+m log α) = 2O(L ) um den Ursprung eingeschlossen. Damit ist auch Eigenschaft b) nachgewiesen. Eigenschaft c) ist eine Konsequenz der Perturbierung. Betrachte die ite Nebenbedingung a0i x ≤ bi aus LP 0 und ihre perturbierte Variante a0i x ≤ bi + i aus LP ∗ für ein 31 beliebiges i ∈ {1, . . . , m0 }. Der Abstand zwischen den beiden Hyperebenen a0i x = bi 1 i 0 0 −2m0 , und a0i x = bi + i beträgt mindestens √n·α 0 . Wir substituieren = 2 (α m ) 0 0 m 0 m = m + 2n, α = (αm) sowie i ≤ m und erhalten eine untere Schranke für den Abstand der Hyperebenen in Höhe von √ 1 i √ ≥ 0 m 2(m+n) n·α (2((αm) (m + n)) )i · n · (αm)2m 2 = 2−O(m(m+n) 4 = 2−O(L ) log(αm)) Wenn nun der Lösungsraum von LI ∗ nicht leer ist, so folgt aus a), dass auch der Lösungsraum von LI nicht leer ist und somit auch LI 0 einen zulässigen Punkt x enthält. Für diesen Punkt gilt a0i x ≤ bi . Der Abstand von x zur Hyperebene a0i x = bi +i ist somit mindestens so groß wie der Abstand zwischen den beiden oben betrachteten 4 Hyperebenen, also mindestens 2−O(L ) . Da dieser Abstand zu jeder Nebenbedingungs4 hyperebene von LI ∗ eingehalten wird, gibt es eine Kugel mit Radius 2−O(L ) um x, die keine dieser Hyperebenen schneidet. Da x zulässig ist, ist diese Kugel somit, wie in Aussage c) behauptet, im Lösungspolyhedron von LI ∗ enthalten. Damit ist Lemma 3.2 bewiesen. 3.2 Beschreibung der Ellipsoidmethode Gegeben sei nun eine Menge von linearen Ungleichungen Ax ≤ b und es bezeichne S ⊆ Rn die Menge der zulässigen Lösungen. Es soll entschieden werden, ob S leer ist oder nicht. Dabei sei ferner eine Zahl u ∈ R gegeben, so dass S eine Teilmenge der Kugel um den Ursprung mit Radius u ist, und eine weitere Zahl l ∈ R mit der Bedeutung, dass entweder S = ∅ oder S eine Kugel mit Radius l enthält. Die Parameter u und l können wir aus Lemma 3.2 ableiten. Man transformiert dazu das gegebene System linearer Ungleichungen LI in ein System LI ∗ mit den gewünschten Eigenschaften, das genau dann eine Lösung besitzt, wenn LI eine besitzt. Aus dem Lemma 2 4 ergibt sich u = 2O(L ) und l = 2O(−L ) , wobei L die Eingabelänge des ursprünglichen Ungleichungssystems LI ist. Die Idee hinter der Ellipsoidmethode ist es den Lösungsraum S in immer kleinere Ellipsoide einzuschließen, bis schließlich ein Ellipsoid erreicht ist, der S so eng umschließt, dass sein Mittelpunkt in die Menge S fallen muss, es sei denn S ist leer. Ein Ellipsoid ist ein geometrisches Gebilde, dass durch affine Transformationen wie Verschiebungen, Drehungen, Spiegelungen, Streckungen aus einer Kugel entsteht. Formal kann man jedes mögliche Ellipsoid beschreiben, indem man von einer n-dimensionalen Einheitskugel mit dem Ursprung als Mittelpunkt ausgeht, und eine umkehrbare affine Abbildung angibt, die die Kugel in den Ellipsoid überführt. Unter 32 der n-dimensionalen Einheitskugel Sn verstehen wir dabei die Menge Sn = x ∈ Rn | xT x ≤ 1 . Die affine Abbildung ist von der folgenden Form: Sei t ∈ Rn ein Vektor und Q eine invertierbare n×n-Matrix. Ein Punkt x ∈ Rn wird dann auf den Punkt T (x) = t+Q·x abgebildet. Der aus Sn durch die affine Transformation T entstehende Ellipsoid entspricht der Punktmenge T (Sn ). Die Matrix Q beschreibt dabei affine Transformationen wie Streckungen, Spiegelungen und Drehungen der Kugel und der Vektor t beschreibt eine Verschiebung des Mittelpunktes. Die Ellipsoidmethode besteht nun aus den folgenden Schritten: 1. Wähle den initialen Ellipsoid E als eine Kugel um den Ursprung mit Radius u. Gemäß unseren Annahmen ist nach diesem Schritt S in E enthalten. 2. Falls das Volumen von E kleiner als das Volumen der Kugel mit Radius l ist, terminiere mit der Ausgabe S = ∅“. ” 3. Es sei z der Mittelpunkt von E. Wir testen, ob z ∈ S, d.h. ob z alle Nebenbedingungen erfüllt. Im positiven Fall terminiere mit der Ausgabe S 6= ∅“. ” 4. Ansonsten können wir wie folgt einen abgeschlossenen Halbraum H identifizieren, der S enthält und auf dessen Rand sich z befindet. Dazu wählen wir zunächst eine Ungleichung aus, die vom Mittelpunkt z nicht erfüllt wird. Diese Ungleichung beschreibt eine Hyperebene, durch die der Raum so in zwei Hälften geteilt wird, dass z in der einen Hälfte liegt und S in der anderen. Verschieben wir diese Hyperebene parallel so, dass sie durch z verläuft, so erhalten wir den gewünschten Halbraum H. Es bezeichne E-halbe den Schnitt von E mit dem Halbraum H. Die Fläche von E-halbe ist nur noch halb so groß wie die von E und es gilt S ⊆ E-halbe. Allerdings ist E-halbe keine Ellipse mehr, siehe Abbildung 3.1. Wir möchten S aber wiederum durch eine Ellipse umschließen. Deshalb berechnen wir nun die kleinste Ellipse E 0 die E-halbe enthält. Wir setzen E auf E 0 und fahren mit Schritt 2 fort. Wir fassen zusammen: Von Iteration zu Iteration berechnen wir einen neuen Ellipsoiden E unter Einhaltung der Invariante: E enthält S. (3.1) Das Verfahren bricht ab, sobald der Mittelpunkt des Ellipsoids ein zulässiger Punkt ist oder wenn das Volumen von E kleiner als das Volumen der Kugel mit Radius l ist. Im ersteren Fall gilt offensichtlich S 6= ∅ und die Methode arbeitet korrekt. Im 33 H E E’ z E−halbe Abbildung 3.1: Veranschaulichung von Schritt 4 der Ellipsoidmethode letzteren Fall folgt aus der Invariante, dass das Volumen von S ebenfalls kleiner als das Volumen der Kugel mit Radius l ist. Gemäß unserer Voraussetzung umschließt S aber eine Kugel mit Radius l, es sei denn S = ∅. Es folgt S = ∅ und damit arbeitet die Ellipsoidmethode auch in diesem Fall korrekt. Damit ist die partielle Korrektheit der Methode nachgewiesen. Um zu beweisen, dass die Methode terminiert und zwar nach nur polynomiell vielen Iterationen, werden wir im nächsten Abschnitt nachweisen, dass das Volumen des Ellipsoids von Iteration zu Iteration signifikant abnimmt. 3.3 Skizze der Laufzeitanalyse Wir werden die Laufzeitanalyse nur skizzieren. Von zentraler Bedeutung ist das folgende Lemma. Lemma 3.4 Für den in Schritt 4 berechneten Ellipsoid E 0 gilt vol(E 0 ) ≤ vol(E) . 21/2(n+1) Beweis: Wir werden dieses Lemma nur für den zwei-dimensionalen Fall, also für den Fall n = 2, nachweisen. In diesem Fall entspricht der Ellipsoid einer Ellipse und sein Volumen ist die Fläche dieser Ellipse. Um das Lemma zu beweisen, müssen wir uns Schritt 4 noch einmal näher anschauen. Wie berechnen wir eine möglichst kleine Ellipse E 0 , die den Schnitt von E -halbe und H enthält? – Wir betrachten dazu zunächst eine besonders einfache Situation und 34 E’ (0,1) (−1,0) c E (0,−1) Abbildung 3.2: Schritt 4 im beschriebenen Spezialfall gehen davon aus, dass E ein Kreis mit Radius 1 um den Ursprung ist und dass H der Halbraum der Punkte mit negativer x-Koordinate ist, und werden später zeigen, wie man den allgemeinen Fall auf diese spezielle Situation zurückführen kann. Betrachtet man Abbildung 3.2, so scheint es eine gute Idee zu sein, E 0 als eine Ellipse zu wählen, deren Achsen parallel zu den Koordinatenachsen verlaufen und deren Mittelpunkt auf der negativen x-Achse liegt. Ferner sollte der Rand der Ellipse durch die Punkte (−1, 0), (0, 1) und (0, −1) verlaufen. Somit gilt für geeignete Werte a, b, c ∈ R E 0 = (x, y) ∈ R2 | ((x − c)/a)2 + (y/b)2 ≤ 1 . Es gilt −1 ≤ c ≤ 0 und a und b entsprechen den Längen der Achsen von E 0 . Deshalb gilt a > 0 und b > 0. Die Länge a der horizontalen Achse beträgt offenbar 1 + c, also gilt a = 1 + c und wegen 2a ≥ 1 muss − 21 ≤ c ≤ 0 gelten. Da der Punkt (0, 1) auf dem√Rand von E 0 liegt, muss (c/(1 + c))2 + (1/b)2 = 1 gelten und somit b = (1 + c)/ 1 + 2c. Nun hängt die Ellipse E 0 nur noch vom Parameter c ab. Die √ 0 2 Fläche von E beträgt πab = π(1 + c) / 1 + 2c. Eine leichte Rechnung ergibt, dass diese Fläche für c = − 31 minimiert wird. Mit diesem Wert für c ergibt sich eine Ellipse mit Mittelpunkt (− 31 , 0) und Achsen der Länge a = 32 und b = √23 . Wir behaupten, dass diese Ellipse tatsächlich E -halbe umschließt. Sei dazu ein beliebiger Punkt (x, y) 35 mit x2 + y 2 ≤ 1 und x ≤ 0, also ein beliebiger Punkt aus E -halbe gegeben. Dann gilt 2 1 9 3 (x − c)2 y 2 x+ + 2 = + y2 2 a b 4 3 4 1 3 2 6 2 3 x + y2 x + x+ + = 4 2 4 4 3 2 3 ≤ x + x + 1 ≤ 1, 2 2 wobei die letzte Ungleichung aus x2 + x ≤ 0 für −1 ≤ x ≤ 0 folgt. 0 π( 32 )2 / q Die Fläche von E ist π. Die Fläche der oben berechneten Ellipse E beträgt Somit gilt √ ( 23 )2 4 3 area(E 0 ) = q = = 0.76 . . . < 0.89 . . . = 2−1/6 = 2−1/2(n+1) . area(E) 9 1 1 . 3 3 Es verbleibt nun noch die Frage, wie wir mit beliebigen Ellipsen verfahren. Um auch in diesem Fall E 0 berechnen zu können, führen wir die folgenden Schritte durch: 1. Verschiebe den Raum so, dass z im Koordinatenursprung liegt. 2. Drehe das Koordinatensystem so, dass die Achsen parallel zu den Achsen von E verlaufen. 3. Skaliere die x- und y-Koordinaten so, dass E zu einem Kreis mit Radius 1 wird. 4. Der Rand von H ist nun eine Gerade, die durch den Ursprung verläuft. Drehe das Koordinatensystem nun so, dass die Gerade der y-Achse entspricht. 5. Nun sind wir in dem gerade behandelten Spezialfall und können E 0 berechnen. 6. Wir wenden auf E 0 die Schritte 1 bis 4 in umgekehrter Reihenfolge an. Nur in Schritt 3 wird das Volumen von E bzw. E 0 verändert. Skalierungen des Koordinatensystems haben jedoch die schöne Eigenschaft, dass sie zwar das Volumen bzw. die Fläche verändern, nicht jedoch das Verhältnis zweier Volumina bzw. Flächen. Das bedeutet, dass die Schranke, die wir für das Verhältnis der Flächen von E und E 0 im Spezialfall hergeleitet haben, übertragen werden kann. Damit ist Lemma 3.4 für n = 2 nachgewiesen. Die Analyse für allgemeines n ist nicht wesentlich schwieriger nur technische aufwendiger. 2 Aus dem obigen Lemma ergibt sich nun die folgende obere Schranke für die Anzahl der Iterationen der Ellipsoidmethode. Der erste Ellipsoid ist eine Kugel mit Radius u = 36 2 2O(L ) . Der vorletzte berechnete Ellipsoid hat mindestens das Volumen einer Kugel 4 mit Radius l = 2O(−L ) . Das Volumen hat also zwischen der ersten und der vorletzten Iteration höchstens um den Faktor ( ul )n abgenommen. Aus Lemma 3.4 folgt, dass das Volumen des Ellipsoids in jeder Iteration mindestens um den Faktor 21/2(n+1) abnimmt. Wenn T die Anzahl der Iterationen ist, ergibt sich somit u n . 2(T −1)/2(n+1) ≤ l Durch Auflösen nach T ergibt sich u T ≤ 2n(n + 1) log2 + 1 = O(n2 L4 ) . l Damit erhalten wir den folgenden Satz. Satz 3.5 Die Ellipsoidmethode terminiert nach O(n2 L4 ) Iterationen. 2 An dieser Stelle möchten wir anmerken, dass wir uns hier nicht bemüht haben eine möglichst genaue Laufzeitabschätzung für die Ellipsoidmethode zu erhalten, sondern wir wollten auf möglichst prägnante Art und Weise die Ideen präsentieren, die zur polynomiellen Laufzeitschranke für die Ellipsoidmethode führen. Man kann tatsächlich zeigen, dass nur O(n2L) Iterationen zum Entscheiden der Zulässigkeit eines Ungleichungssystems ausreichen. Um aus dem obigen Satz eine polynomielle Laufzeitschranke abzuleiten, muss noch gezeigt werden, dass die einzelnen Iterationen in polynomieller Zeit durchgeführt werden kann. Das schwierige Problem, das dabei auftritt, ist die numerische Stabilität der Methode. Um nämlich den Mittelpunkt der neuen Ellipse E 0 und die Länge ihrer Achsen zu berechnen, müssen Wurzeln gezogen werden. Das bedeutet insbesondere, dass die Zahlen sogar irrational werden können. Um das zu verhindern, müssen die Zwischenergebnisse gerundet werden. Durch das Runden könnten aber wichtige Eigenschaften der Ellipsoidmethode verloren gehen, beispielsweise könnte es passieren, dass die Ellipsoide nicht mehr um einen konstanten Faktor schrumpfen. Man kann jedoch zeigen, dass die Ellipsoidmethode weiterhin funktioniert, wenn man jede Zahl so rundet, dass sie nur noch aus polynomiell vielen Bits besteht. Dann kann auch jeder Iterationsschritt in polynomieller Zeit durchgeführt werden. 3.4 Zusammenfassung Wir haben gezeigt, dass LPs mit einer polynomiellen Anzahl von Aufrufen der Ellipsoidmethode, die jeweils polynomiell viele Iterationen benötigen, gelöst werden können. Da auch die einzelnen Iterationen eine polynomielle Laufzeitschranke haben, ergibt sich der folgende Satz. 37 Satz 3.6 Lineare Programme können durch die Ellipsoidmethode in polynomieller Zeit gelöst werden. Die Ellipsoidmethode garantiert somit im Gegensatz zur Simplexmethode eine polynomielle Worst-Case-Laufzeit. Für einen Großteil der in der Praxis vorkommenden LPs ist die Ellipsoidmethode jedoch der Simplexmethode unterlegen, weshalb die Simplexmethode immer noch die am weitesten in der Praxis verbreitete Methode zur Lösung von LPs ist. Die Ellipsoidmethode hat noch weitere Fähigkeiten, die wir bisher noch nicht angesprochen haben. Man kann sie zur effizienten Lösung von Problemen verwenden, deren Lösungspolyhedron durch eine exponentielle Anzahl von Facetten bzw. Nebenbedingungen definiert ist, die nicht explizit in der Eingabe definiert sind. Voraussetzung dafür ist ein sogenanntes Separation-Oracle, das es erlaubt, für einen unzulässigen Punkt in polynomieller Zeit eine verletzte Nebenbedingung zu benennen. Dieses Separation-Oracle wird in der Ellipsoidmethode eingesetzt, um den Ellipsoid E -halbe zu berechnen, wie wir es in Abschnitt 3.2 beschrieben haben. Wenn ein derartiges Separation-Oracle für ein Problem gegeben ist, kann das Problem in polynomieller Zeit durch die Ellipsoidmethode gelöst werden. Für weitergehende Informationen verweisen wir auf die Literatur. 38 Kapitel 4 Dualität Zum Problem des Maximalen Flusses gibt es ein korrespondierendes Problem, nämlich das Problem des Minimalen Schnittes. Beide Problem haben denselben Zielfunktionswert. Das eine Problem ist das duale Problem“ des anderen Problems. In die” sem Kapitel werden wir sehen, dass diese Art von Dualität kein besonderes Phänomen von Flussproblemen ist, sondern dass es zu jedem Maximierungs-LP ein duales Minimierungs-LP mit demselben Zielfunktionswert gibt und umgekehrt. LP-Dualität ist der Schlüssel zur eleganten Lösung vieler Optimierungsprobleme. Beispielsweise folgt die Korrektheit der bekannten Ford-Fulkerson-Methode für Flussprobleme aus der Dualität zwischen maximalen Flüssen und minimalen Schnitten. 4.1 Primale und duale LPs Betrachte das folgende LP in kanonischer Form, das wir als primales LP bezeichnen. Maximiere 5x1 + 7x2 unter den Nebenbedingungen x1 + 4x2 ≤ 4 x1 + x2 ≤ 2 x1 , x2 ≥ 0 . Es gibt eine einfache Möglichkeit um eine obere Schranke für den Zielwert zu erhalten. Wir multiplizieren die erste Bedingung mit 4 und addieren sie zur zweiten Bedingung. Wir erhalten 5x1 + 17x2 ≤ 18 . Hieraus können wir folgern, dass der Zielfunktionswert des LPs durch den Wert 18 nach oben beschränkt ist, denn es gilt 5x1 + 7x2 ≤ 5x1 + 17x2 ≤ 18. Alternativ 39 können wir die erste Bedingung auch mit 2 und die zweite mit 3 multiplizieren. Das ergibt 5x1 + 11x2 ≤ 14 , und wir erhalten eine bessere obere Schranke für das primale LP, nämlich den Wert 14. An dieser Stelle beobachten wir, dass wir obere Schranken für das primale LP herleiten können, indem wir die erste und zweite Nebenbedingung mit nicht-negativen Faktoren y1 bzw. y2 multiplizieren, die die Eigenschaften y1 + y2 ≥ 5 und 4y1 + y2 ≥ 7 erfüllen. Für welche Faktoren y1 und y2 erhalten wir die beste untere Schranke, die wir auf diese Art und Weise ableiten können? – Diese Frage führt zu dem folgenden Minimierungsproblem, das nach der besten oberen Schranke sucht, die nach den obigen Prinzipien abgeleitet werden kann. Minimiere 4y1 + 2y2 unter den Bedingungen y1 + y2 ≥ 5 4y1 + y2 ≥ 7 y1 , y2 ≥ 0 . Dies ist das duale LP zum obigen primalen LP. Die folgende Definition verallgemeinert dieses Prinzip. Definition 4.1 Wir betrachten das folgende LP in der kanonischen Form Maximiere cT x unter Ax ≤ b, x ∈ Rd≥0 . Die Anzahl der Nebenbedingungen (ohne die Nichtnegativitätsbedingungen) sei m. Dieses LP bezeichnen wir als primales LP. Das zugehörige duale LP ist definiert als Minimiere y T b unter y T A ≥ cT , y ∈ Rm ≥0 . oder äquivalent Minimiere bT y unter AT y ≥ c, y ∈ Rm ≥0 . Anschaulich gesprochen werden aus den Nebenbedingungen des primalen LPs die Variablen des dualen LPs und aus den Variablen des primalen LPs die Nebenbedingungen des dualen LPs. Wenn das primale LP nicht in kanonischer Form vorliegt, können wir das duale LP herleiten, indem wir zunächst das primale LP in die kanonische Form bringen und dann das duale LP aus dieser Form ableiten. Auf diese Art und Weise ergeben sich verschiedene Regeln für LPs mit Variablen und Nebenbedingungen, die nicht der kanonischen Form genügen. Aus einer Nebenbedingung in Gleichungsform wird beispielsweise eine Variable ohne Nichtnegativitätsbedingung; und aus einer Variable ohne Nicht-Negativitätsbedingung eine Nebenbedingung in Gleichungsform. Da wir aus Abschnitt 1.1 wissen, wie man ein beliebiges LP in die kanonische Form bringt, können wir es uns sparen, alle diese Sonderfälle aufzuzählen, und wir konzentrieren uns auf LPs in kanonischer Form. Wir beweisen zunächst einige einfache Eigenschaften von primalen und dualen LPs. 40 Satz 4.2 Das duale LP des dualen LPs ist das primale LP. Beweis: Gegeben sei das duale LP mit d Nebenbedingungen wie in Definition 4.1 beschrieben: Minimiere bT y unter AT y ≥ c, y ∈ Rm ≥0 . Zunächst müssen wir das LP in die kanonische Form bringen, um die in der Definition beschriebenen Regeln für die Bildung des dualen LPs anwenden zu können. Dazu multiplizieren wir die Zielfunktion und die Nebenbedingung mit -1. Dadurch liegt das duale LP nun in kanonischer Form vor. Maximiere −bT y unter −AT y ≤ −c, y ∈ Rm ≥0 . Das duale dieses LPs lautet Minimiere −cT x unter −Ax ≥ −b, x ∈ Rd≥0 . Wir schreiben nun das duale des dualen LPs um, indem wir Zielfunktion und Nebenbedingungen wiederum mit -1 multiplizieren. Dadurch ergibt sich das primale LP. Maximiere cT x unter Ax ≤ b, x ∈ Rm ≥0 . 2 Unsere Idee war es, das duale LP zur Berechnung möglichst guter oberer Schranken für das primale LP zu verwenden. Dies wird im folgenden Satz konkretisiert. Satz 4.3 (Schwaches Dualitätsprinzip) Sei x eine zulässige Lösung für das primale LP und y eine zulässige Lösung für das duale LP wie in Definition 4.1 beschrieben. Es gilt y T b ≥ cT x. Beweis: Wegen der Zulässigkeit von x und y gilt einerseits x ≥ 0 und andererseits y T A ≥ cT . Es folgt cT x ≤ y T Ax . Die Zulässigkeit der beiden Lösungen liefert außerdem y ≥ 0 und Ax ≤ b, so dass folgt y T Ax ≤ y T b . Aus diesen beiden Ungleichungen ergibt sich der Satz nun unmittelbar. 41 2 4.2 Das starke Dualitätsprinzip Wir untersuchen das Beispiel aus dem vorherigen Abschnitt genauer. Die optimale Lösung für das primale LP ist x∗ = ( 43 , 32 ). Der maximale Zielfunktionswert ist also 5 · 34 + 7 · 23 = 34 . Die optimale Lösung für das duale LP ist y ∗ = ( 32 , 13 ). Der minimale 3 3 34 Zielfunktionswert ist somit 4 · 32 + 2 · 13 = . Das duale LP gibt also nicht nur eine 3 3 obere Schranke für das primale LP, sondern die beiden LPs haben denselben optimalen Zielfunktionswert. Der folgende Satz zeigt, dass dies kein Zufall ist. Satz 4.4 (Starkes Dualitätsprinzip) Sei x∗ eine optimale Lösung für das primale LP und y ∗ eine optimale Lösung für das duale LP wie in Definition 4.1 beschrieben. Es gilt y ∗T b = cT x∗ . Beweis: Wir zeigen, wie man zu einer geeignet gewählten optimalen primalen Lösung x∗ eine zulässige duale Lösung y ∗ mit demselben Zielfunktionswert konstruieren kann. Aus dem schwachen Dualitätsprinzip folgt dann, dass y ∗ eine optimale Lösung des dualen LPs sein muss. Als ersten Schritt transformieren wir das primale LP durch Hinzufügen von Schlupfvariablen s1 , . . . , sm in die Gleichungsform. Maximiere cT x unter Ax + Em s = b, x ∈ Rd≥0 , s ∈ Rm ≥0 . Sei B eine Basis mit nicht-positiven reduzierten Kosten. Aus Satz 2.1 folgt, dass B eine optimale Basis ist. Diese Basis entspricht einer Auswahl von m der m + d Spalten der Matrix (A, Em ). Die Anzahl der Basisspalten aus A bezeichnen wir mit m1 , und die Anzahl der Basisspalten aus Em mit m2 = m − m1 . O.B.d.A. nehmen wir an, dass die Basisspalten B(1), . . . , B(m1 ) den ersten m1 Spalten aus der Matrix (A, Em ) entsprechen und die Basisspalten B(m1 + 1), . . . , B(m) den letzten m2 Spalten aus dieser Matrix. (Ansonsten ordne die Spalten und Zeilen der Matrix entsprechend um, ohne das Gleichungssystem zu verändern.) Auf diese Art und Weise können wir das Gleichungssystem (A, Em , b) in die folgenden Teilkomponenten mit den jeweils angegebenen Anzahlen von Zeilen und Spalten zerlegen: m1 m2 cTB cTN A11 A12 Em1 0 b1 A21 A22 0 Em2 b2 m1 d − m1 m1 m2 In dieser Notation lautet das primale LP Maximiere cTB xB + cTN xN 42 unter den Nebenbedingungen A11 xB + A12 xN + Em1 sN = b1 , A21 xB + A22 xN + Em2 sB = b2 d−m1 m2 1 1 für die Variablen xB ∈ Rm , sN ∈ Rm ≥0 , xN ∈ R≥0 ≥0 und sB ∈ R≥0 . Der Zielfunktionswert der Basislösung x∗ zur Basis B ist somit cT x∗ = cTB x∗B = cTB A−1 11 b1 , weil die Nichtbasisvariablen in der Basislösung den Wert 0 annehmen. Wir sind nun am Vektor der reduzierten Kosten interessiert. Dazu beschreiben wir zunächst die Basisvariablen xB und dann die Zielfunktion cT x in Abhängigkeit von den Nichtbasisvariablen. Aus dem obigen Gleichungssystem ergibt sich xB = A−1 11 (b1 − A12 xN − sN ) . Für die Zielfunktion erhalten wir somit T cT x = cTB A−1 11 (b1 − A12 xN − sN ) + cN xN T T −1 T −1 = cTB A−1 11 b1 + (cN − cB A11 A12 )xN − cB A11 sN . Die Nichtbasisvariablen xN haben somit die reduzierten Kosten cTN − cTB A−1 11 A12 , und die Nichbasisvariablen sN haben die reduzierten Kosten −cTB A−1 . Wir haben B so 11 gewählt, dass diese Kosten nicht positiv sind. Somit folgt T cTB A−1 11 A12 ≥ cN , cTB A−1 ≥ 0 . 11 (4.1) (4.2) In der oben eingeführten Notation lautet das duale LP: T b2 Minimiere yBT b1 + yN unter den Nebenbedingungen T yBT A11 + yN A21 ≥ cTB , T yBT A12 + yN A22 ≥ cTN m2 1 für die Variablen yB ∈ Rm ≥0 und yN ∈ R≥0 . Wir konstruieren nun die gesuchte Lösung y ∗ , die zulässig für das duale LP ist und denselben Zielfunktionswert wie ∗ x∗ hat. Wir behaupten, diese Lösung lautet yN = 0 und yB∗T = cTB A−1 11 . Wir prüfen zunächst die Zulässigkeit dieser Lösung. • Der Wert für y ∗T ist genau so gewählt, dass die erste Nebenbedingung yBT A11 + T yN A21 ≥ cTB exakt erfüllt ist. • Die Gültigkeit der zweiten Nebenbedingung folgt aus Ungleichung (4.1), denn ∗T T yB∗T A12 + yN A22 = yB∗T A12 = cTB A−1 11 A12 ≥ cN . 43 • Ungleichung (4.2) liefert die Nicht-Negativitätsbedingungen. Als letztes beweisen wir, dass die Zielfunktionswerte der beiden Lösungen übereinstimmen. Es gilt T ∗ T ∗ y ∗T b = yB∗T b1 = cTB A−1 11 b1 = cB xB = c x . 2 Zur Konstruktion im obigen Beweis können wir noch einige interessante Beobachtungen machen. • Wir haben nicht nur gezeigt, dass die Zielfunktionswerte der optimalen primalen und dualen Lösung übereinstimmen, sondern auch, wie aus einer optimalen primalen Basislösung in polynomieller Zeit eine optimale duale Basislösung konstruiert werden kann. Der aufwendigste Schritt ist dabei die Berechnung der 3 3 Matrix A−1 11 , die mit O(min{m , d }) Operationen berechnet werden kann. Aus Symmetriegründen kann natürlich auch eine optimale primale Basislösung in polynomieller Zeit aus einer optimalen dualen Basislösung konstruiert werden. • Die dualen Basisvariablen yB∗ gehören genau zu denjenigen primalen Nebenbedingungen, in denen die Schlupfvariablen sN auftauchen. Diese Schlupfvariablen nehmen in der optimalen dualen Basislösung den Wert Null an. Das bedeutet, die Basisvariablen zur optimalen dualen Basis gehören zu primalen Nebenbedingungen, die in der optimalen primalen Basislösung exakt erfüllt sind. In Analogie gilt, dass auch die Basisvariablen zu einer optimalen primalen Basislösung zu dualen Nebenbedingungen gehören, die in der optimalen dualen Basislösung exakt erfüllt sind. Tatsächlich sind die primale und die duale Lösung genau dann optimal, wenn diese Bedingungen erfüllt ist. Diese Eigenschaft bezeichnet man als complementary slackness. 4.3 Zwei prominente Beispiele Wir stellen ein alternatives LP für das Problem des maximalen Flusses vor. Gegeben sei ein Netzwerk G = (V, E) mit Quelle q und Senke s und Kantenkapazitäten c : E → R≥0 . Sei P die Menge aller einfachen Pfade von der Quelle zur Senke. Für jeden Pfad P ∈ P haben wir eine Variable xP . Das primale LP lautet: P Maximiere P ∈P xP 44 unter den Nebenbedingungen X P 3e xP ≤ c(e) ∀e ∈ E xP ≥ 0 ∀P ∈ P Das duale LP lautet P Minimiere unter den Nebenbedingungen X e∈P e∈E c(e)ye ye ≥ 1 ∀P ∈ P ye ≥ 0 ∀e ∈ E Für dieses duale LP kann man basierend auf Eigenschaften der Adjazenzmatrix (vgl. Kapitel 5) die folgenden Besonderheit zeigen: Es gibt immer eine ganzzahlige optimale Basislösung. Der Wertebereich der Variablen kann somit auf {0, 1} eingeschränkt werden. Wenn wir dieses Wissen voraussetzen, erkennen wir im dualen LP das MinCut-Problem in der folgenden Formulierung wieder: Bestimme eine minimale Anzahl Kanten, so dass die Löschung dieser Kanten alle Wege zwischen Quelle und Ziel zerstört. Das relaxierte Maximum-Matching-Problem auf einem Graphen G = (V, E) hat das folgende primale LP. P Maximiere e∈E xe unter den Nebenbedingungen X e3v xe ≤ 1 ∀v ∈ V xe ≥ 0 ∀e ∈ E Das duale LP lautet Minimiere unter den Nebenbedingungen X v∈e P v∈V yv yv ≥ 1 ∀e ∈ E yv ≥ 0 ∀v ∈ V Wir beobachten, dass dieses LP dem relaxierten Vertex-Cover-Problem entspricht. Auch diese beiden LPs haben ganzzahlige optimale Basislösungen, allerdings nur auf bipartiten Graphen. Somit sind bipartites Matching und Vertex Cover auf bipartiten Graphen duale Probleme. 45 Kapitel 5 Aspekte der Ganzzahligkeit 5.1 Ganzzahlige lineare Programme Ganzzahlige lineare Programme (ILPs = Integer Linear Programs) haben fast dieselbe Form wie lineare Programme. Der einzige aber wesentliche Unterschied ist, dass nur ganzzahlige Lösungen zulässig sind. Wir präsentieren im folgenden zwei Beispiele für ILPs in denen der Lösungsraum der Variablen tatsächlich auf die Werte 0 und 1 beschränkt ist. Es handelt sich deshalb um sogenannte binäre Programme, ein Spezialfall von ILPs. Beispiel: Rucksackproblem. Gegeben seien n Objekte mit Gewicht gi und Nutzen vi , 1 ≤ i ≤ n, sowie eine Gewichtsschranke G. Gesucht ist eine Teilmenge der Objekte, die den Nutzen unter Einhaltung der Gewichtsschranke maximiert. Dieses Problem kann wie folgt als ILP formuliert werden. Maximiere n X vi xi i=1 unter den Nebenbedingungen n X i=1 gi xi ≤ G , ∀i ∈ {1, . . . , n} : xi ∈ {0, 1} . Beispiel: gewichtetes Matchingproblem. Gegeben sei ein Graph G = (V, E) mit Kantengewichten we , e ∈ E. Gesucht ist ein Matching M, das die Summe der Ge46 wichte maximiert. Dieses Problem hat die folgende ILP-Formulierung. X Maximiere we xe e∈E unter den Nebenbedingungen ∀v ∈ V : ∀e ∈ E : X e∈E:v∈e xe ≤ 1 , xe ∈ {0, 1} . Wir stellen fest, durch die Forderung einer ganzzahligen Lösung kann ein Optimierungsproblem, wie im Fall des Rucksackproblems, NP-hart werden. Dies kann durchaus als typisch angesehen werden. In einigen Fällen ist jedoch auch die ganzzahlige Variante eines Problems effizient lösbar, wie etwa im Fall des Matchingproblems. Es gibt keine allgemeingültige Antwort, welche derjenigen Problem, die als ILPs kodiert werden können, algorithmisch schwierig oder einfach sind. Im folgenden Abschnitt werden wir jedoch eine Klasse von Problemen identifizieren, die deshalb effizient gelöst werden können, weil ihre ILP- und LP-Formulierungen dieselben Lösungen liefern. 5.2 Totale Unimodularität In diesem Abschnitt gehen wir grundsätzlich davon aus, dass alle Eingabezahlen der betrachteten LPs ganzzahlig sind. Einige LPs haben eine besondere Eigenschaft: Das Simplexverfahren und auch die Ellipsoidmethode berechnen immer optimale Lösungen, die ganzzahlig sind. Beispielsweise weisen Flussprobleme dieses wirklich erstaunliche Phänomen auf, dem wir in diesem Abschnitt genauer nachgehen wollen. Definition 5.1 Eine ganzzahlige quadratische Matrix wird als unimodular bezeichnet, wenn ihre Determinante den Wert 1 oder -1 hat. Eine ganzzahlige Matrix A wird als total unimodular bezeichnet, wenn jede quadratische, reguläre Teilmatrix von A unimodular ist. Satz 5.2 Betrachte ein LP in Gleichungsform Ax = b. Ist A total unimodular, so sind alle Basislösungen dieses LPs ganzzahlig. Beweis: Sei B eine Basis von A. Die Basislösung zu B wird durch die Gleichung AB xB = b beschrieben. Die Matrix AB ist dabei eine quadratische Teilmatrix von 47 A, die durch die Spalten in B gebildet wird. Somit ist AB unimodular.1 Gemäß der Cramerschen Regel gilt xB(i) = det(AB(1) , . . . , AB(i−1) , b, AB(i+1) , . . . , AB(k) ) . det(AB ) Die Determinante im Zähler ist ganzzahlig, und die Determinante im Nenner hat den Wert 1 oder −1, da AB unimodular ist. 2 Satz 5.3 Betrachte ein LP in kanonischer Form Ax ≤ b. Ist A total unimodular, so sind alle Basislösungen dieses LPs ganzzahlig. Beweis: Die Anzahl der Zeilen in A sei m. Nach Hinzufügen von Schlupfvariablen erhalten wir ein LP in Gleichungsform mit Nebenbedingungsmatrix (A|Em ). Um Satz 1 anwenden zu können, müssen wir zeigen, dass die Matrix (A|Em ) total unimodular ist. Sei nun C eine beliebige quadratische, reguläre Teilmatrix von (A|Em ). Durch geeignete Permutation der Zeilen von C erhalten wir eine Matrix der Form M 0 0 C = , ∗ Ek wobei • Ek der k × k–Einheitsmatrix entspricht, • 0 die (m − k) × k–Nullmatrix bezeichnet, und • M eine (m − k) × (m − k)–Teilmatrix von A mit möglicherweise vertauschten Zeilen ist. Es gilt |det(C)| = |det(C 0 )| = |det(M)| = 1, da M unimodular ist. Somit ist jede reguläre Teilmatrix C von (A|Em ) unimodular und damit ist (A|Em ) total unimodular. 2 Wir untersuchen nun welche Arten von Anwendung total unimodulare Nebenbedingungsmatrizen aufweisen. Zunächst starten wir mit relativ abstrakten Eigenschaften, die wir dann konkretisieren. 1 Da wir die Basis als geordnete Auswahl von Spalten definiert haben, tauchen in der Matrix AB die Spalten möglicherweise in einer anderen Reihenfolge auf als in der Matrix A. Dies hat jedoch keine Auswirkungen auf die Unimodularität, denn das Vertauschen zweier Spalten oder auch Zeilen dreht lediglich das Vorzeichen der Determinante. 48 Satz 5.4 Eine ganzzahlige Matrix A mit Einträgen aus {−1, 0, 1} ist total unimodular, wenn nicht mehr als zwei nicht-nullwertige Einträge pro Spalte vorliegen, und wenn die Zeilen in zwei Mengen I1 und I2 eingeteilt werden können, die die folgenden Bedingungen erfüllen: a) Falls eine Spalte zwei Einträge mit demselben Vorzeichen enthält, so sind die entsprechenden Zeilen unterschiedlichen Mengen zugeordnet. b) Falls eine Spalte zwei Einträge mit unterschiedlichem Vorzeichen enthält, so sind die entsprechenden Zeilen derselben Menge zugeordnet. Beweis: Der Satz folgt durch Induktion über die Größe der Teilmatrizen. Jede reguläre 1 × 1–Teilmatrix ist offensichtlich unimodular. Es gelte nun, dass jede reguläre (k − 1) × (k − 1)–Teilmatrix unimodular ist. Sei C eine k × k–Teilmatrix. Wir müssen zeigen, dass C entweder nicht regulär oder unimodular ist. Wir unterscheiden drei Fälle. 1) Wenn C eine Spalte mit ausschließlich null-wertigen Einträgen enthält, so ist C nicht regulär. 2) Wenn C eine Spalte hat, die nur einen nicht-nullwertigen Eintrag enthält, so können wir die Determinante nach dieser Spalte entwickeln. Das bedeutet, abgesehen vom Vorzeichen entspricht die Determinante der (k − 1) × (k − 1)– Teilmatrix von C, die wir erhalten, wenn wir die Zeile und Spalte des betrachteten nicht-nullwertigen Eintrags entfernen. 3) Wenn C nun zwei nicht-nullwertige Einträge in jeder Spalte enthält, so folgt aus den Bedingungen a) und b), dass für jede Spalte j die folgende Gleichung gilt. X X aij . aij = i∈I2 i∈I1 Wenn wir also die Zeilenvektoren aus I1 aufaddieren und die aus I2 subtrahieren, so erhalten wir einen Zeilenvektor mit Wert Null, d.h. die Zeilen sind nicht linear unabhängig und C ist somit nicht regulär. 2 Die Inzidenzmatrix eines Graphen enthält für jede Kante des Graphen eine Spalte und für jeden Knoten eine Zeile. Bei einem gerichteten Graphen enthält jede Spalte genau zwei Einträge, die ungleich 0 sind, nämlich +1 in der Zeile des Knotens, an dem die Kante endet, und −1 in der Zeile des Knoten, an dem die Kante beginnt. Die Inzidenzmatrix eines ungerichteten Graphen enthält nur Nullen und Einsen. In jeder 49 Spalte stehen genau zwei Einsen, nämlich in den Zeilen, die zu Knoten gehören, die zu der entsprechenden Kante inzident sind. Die Inzidenzmatrix eines gerichteten Graphen erfüllt die Bedingungen a) und b) des obigen Satzes, wenn wir alle Zeilen der Menge I1 zuordnen. Die Inzidenzmatrix eines ungerichteten bipartiten Graphen G = (U ∪ V, E) erfült die Bedinungen, wenn wir die Zeilen für die Knoten in U der Menge I1 und die Zeilen für die Knoten in V der Menge I2 zuordnen. Korollar 5.5 Ein LP in Standardform oder in kanonischer Form hat nur ganzzahlige Basislösungen, falls die Nebenbedingungsmatrix (oder ihre Transponierte) • der Inzidenzmatrix eines gerichteten Graphen oder • der Inzidenzmatrix eines bipartiten ungerichteten Graphen entspricht. Aus dem Korollar folgt, dass die (relaxierten) LP-Formulierungen der folgenden Probleme ganzzahlige optimale Lösungen haben. • maximaler Fluss • kürzester Weg • gewichtetes bipartites Matching • bipartites Vertex-Cover Insbesondere folgt deshalb, dass die Dualität von Vertex-Cover und Matching auf bipartiten Graphen nicht nur für die relaxierten, nicht-ganzzahligen Varianten der Probleme gilt. Das folgende Beispiel zeigt, dass die obigen Aussagen sich nicht auf die Inzidenzmatrizen beliebiger ungerichteter Graphen verallgemeinern lassen. Wir betrachten das (ungewichtete) Matchingproblem auf einem Graphen aus drei Knoten und drei Kanten mit der Inzidenzmatrix 1 1 0 0 1 1 . 1 0 1 Die Determinante dieser Matrix ist 2. Der zugehörige Graph entspricht einem Dreieck. Jedes (ganzzahlige) Matching enthält höchstens eine Kante. Im optimalen nichtganzzahligen Matching ist jede Kante e mit Wert xe = 21 enthalten. Die Lösung des relaxierten LPs ist also 32 . 50 Kapitel 6 Hilfreiche Literatur • B. Korte, J. Vygen. Combinatorial Optimization: Theory and Algorithms, 2nd Edition, Springer, 2002. • E. Lawler. Combinatorial Optimization: Networks and Matroids. Dover Publications, 1976. • C. Papadimitriou und K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice Hall, 1982. • A. Schrijver. Combinatorial Optimization: Polyhedra and Efficiency. Springer, 2003. 51