EINFÜHRUNG IN DIE MATHEMATIK DES OPERATIONS RESEARCH Ulrich Faigle Skriptum zur Vorlesung Sommersemester 2006 Universität zu Köln Universität zu Köln Mathematisches Institut Zentrum für Angewandte Informatik Weyertal 80 [email protected] www.zaik.uni-koeln.de/AFS Inhaltsverzeichnis Kapitel 1. Theorie linearer Ungleichungssysteme 3 1. Halbräume, Hyperebenen und abgeschlossene konvexe Mengen 4 2. Trennung 5 3. Dimension und affine Hülle 8 4. Seitenflächen und Extrempunkte 10 5. Der Algorithmus von Fourier-Motzkin 11 6. Zwei Anwendungen 19 Kapitel 2. Polyeder und Polytope 1. Darstellung und Dekomposition von Polyedern 2. Optimierung linearer Funktionen 3. Rezessionskegel und polyedrische Kegel 4. Polytope 5. Facetten und Basislösungen 6. Rationale Polyeder 23 23 27 28 28 32 33 Kapitel 3. Konvexe Funktionen 1. Differenzierbare konvexe Funktionen 2. Minimierung konvexer Funktionen 3. Newtons Methode und die Methode innerer Punkte 35 35 37 44 Kapitel 4. Die Simplexmethode 1. LP-Dualität 2. Die Simplexmethode 3. Die Zweiphasenmethode 4. Die primal-duale Methode 47 48 50 56 59 Kapitel 5. Ganzzahlige lineare Programme 1. Schnittebenen 2. Unimodularität 61 61 66 Kapitel 6. Flüsse in Netzwerken 1. Das Matching-Polytop 2. Kürzeste Wege 3. Zirkulationen und das MAX-Flow-MIN-Cut-Theorem 4. Der Algorithmus von Ford-Fulkerson 69 71 71 73 76 1 2 INHALTSVERZEICHNIS 5. Der Präfluss-Markierungsalgorithmus 77 KAPITEL 1 Theorie linearer Ungleichungssysteme Wir betrachten Ungleichungssysteme der folgenden Form aTi x ≤ bi (i ∈ I). Hier ist I eine (endliche oder unendliche) Indexmenge. Die Parameter aTi = [ai1, , . . . , ain ] ∈ Rn und bi ∈ R sind als gegeben vorausgesetzte Koordinatenvektoren und reelle Zahlen. Für die Anwendungen ist es oft wichtig, sich auf den rationalen Zahlkörper Q zu beschränken. Unser Problem ist nun: • Bestimme ein x ∈ Rn , das alle diese Ungleichungen n X aij xj ≤ bi (i ∈ I) j=1 erfüllt, oder stelle fest, dass kein solches x existiert. Mit A = [aij ] bezeichnen wir die (möglicherweise unendliche) Matrix mit den n-dimensionalen Zeilenvektoren aTi . D.h. A ist die Abbildung A : I × {1, . . . , n} → R mit A(i, j) = aij . Entsprechend ist b = [bi ] ∈ RI der Koeffizentenvekor der rechten Seite des Ungleichungssystems. Wir notieren das Ungleichungssystem dann kurz als Ax ≤ b ←→ n X aij xj ≤ bi (i ∈ I). j=1 Die Lösungsmenge des Ungleichungssystem ist P (A, b) = {x ∈ Rn | Ax ≤ b}. E X . 1.1. Ein lineares Gleichungssystem Ax = b mit A ∈ Rm×n und b ∈ Rm ist äquivalent mit dem Ungleichungssystem Ax ≤ b −Ax ≤ −b 3 4 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME Die Lösungsmenge A = {x ∈ Rn | Ax = b} ist ein sog. affiner Teilraum von Rn . E X . 1.2. Wir betrachten eine Matrix X = [xij ] ∈ Rn×n als n2 -dimensionalen Koordinatenvektor. Dann ist eine Lösung X = [xij ] des (unendlichen) Ungleichungssystems Pn Pn n i=1 j=1 ai aj xij ≥ 0 ([a1 , . . . , an ] ∈ R ) xij − xji = 0 (i, j = 1, . . . , n) eine positiv semidefinite Matrix. 1. Halbräume, Hyperebenen und abgeschlossene konvexe Mengen Wir betrachten zunächst den Fall, wo A nur aus einem einzigen Zeilenvektor aT besteht. Ist a 6= 0, so ist die Punktmenge P (a, b) = {x ∈ Rn | aT x ≤ b} ein sog. (n-dimensionaler) Halbraum. Im Fall a = 0 erhalten wir Rn = P (0, 0) als trivialen“ Halbraum. Ebenso ist die leere Menge ∅ = P (0, −1) ” ein trivialer Halbraum. Per Definition ist also die Lösungsmenge eines linearen Ungleichungssystems immer ein Durchschnitt von Halbräumen. E X . 1.3 (Hyperebenen). Die Hyperebene H(a, b) = {x ∈ Rn | aT x = b} ist Durchschnitt ihrer zugeordneten Halbräume H(a, b) = P (a, b) ∩ P (−a, −b) bzw. Lösungsmenge des linearen Ungleichungssystems a1 x 1 + . . . + an x n ≤ b ←→ a1 x1 + . . . + an xn = b. −a1 x1 − . . . − an xn ≤ −b Ein Halbraum P (a, b) ist eine konvexe Menge, d.h. es gilt z(λ) = x+λ(y−x) ∈ P (a, b) für alle x, y, ∈ P (a, b) und rellen 0 < λ < 1. Ausserdem ist P (a, b) (im Sinn der Analysis) abgeschlossen. Offensichtlich wird Abgeschlossenheit und Konvexität unter Durchschnittsbildung erhalten. Also erhalten wir: • Die Lösungsmenge eines linearen Ungleichungssystems ist konvex und abgeschlossen. Wir wollen nun zeigen, dass die konvexen abgeschlossenen Mengen im Rn genau die Lösungsmengen von linearen Ungleichungssystemen sind. 2. TRENNUNG 5 2. Trennung Es sei nun S ⊆ Rn eine beliebige nichtleere, abgeschlossene und konvexe Menge. Die zentrale Beobachtung ist nun: L EMMA 1.1 (Trennungslemma). Sei S konvex und abgeschlossen. Dann existiert für jedes y ∈ Rn \ S ein Koordinatenvektor c ∈ Rn und ein x0 ∈ S derart, dass cT y > cT x0 ≥ cT x für alle x ∈ S. M.aW.: Mit z = cT x0 hat man y ∈ / P (c, z) und S ⊆ P (c, z) T ERMINOLOGIE . Man sagt, dass die Hyperebene H = {x ∈ Rn | cT x = z} den Punkt y ∈ Rn von der Menge S ⊆ Rn trennt. H heisst Stützhyperebene von S im Punkt x0 . Beweis des Trennungslemmas. Der wesentliche Punkt ist die Beobachtung, dass das Minimierungsproblem min ky − xk x∈S eine optimale Lösung x0 ∈ S besitzt. Sie Funktion x 7→ kx − yk ist nämlich stetig auf Rn und wir dürfen offenbar oBdA S als kompakt annehmen. (Ansonsten beschränken wir uns auf die kompakte Menge SR = {x ∈ S | ky − xk ≤ R}, wobei R > 0 so gross gewählt ist, dass SR 6= ∅ gilt.) Da eine stetige Funktion auf einem Kompaktum ihre Extremwerte annimmt, wissen wir, dass eine Minimallösung x0 ∈ S existiert. Wir haben nun x0 6= y (wegen y ∈ / S). Wir setzen c = y − x0 und rechnen nach, dass c die gewünschten Eigenschaften hat. Wir zeigen zuerst cT x0 < cT y: cT y − cT x0 = cT (y − x0 ) = ky − x0 k2 > 0. Wir betrachten nun einen beliebigen Punkt x ∈ S und setzen z(λ) = x0 + λ(x − x0 ) (0 < λ < 1). Dann gilt z(λ) ∈ S und deshalb kck2 = ky − x0 k2 ≤ ky − z(λ)k2 = kc − λ(x − x0 )k2 . Ausmultiplizieren ergibt −2λcT (x − x0 ) + λ2 kx − x0 | ≥ 0 bzw. − 2cT (x − x0 ) + λkx − x0 k ≥ 0 und liefert cT x − cT x0 = cT (x − x0 ) ≤ 1 lim λkx − x0 k2 = 0. 2 λ→0 6 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME E X . 1.4. Die Voraussetzung der Abgeschlossenheit von S im Trennungslemma ist wichtig. Die Menge S = {(x1 , x2 ) | x21 + x22 < 1} ⊆ R2 ist konvex. Das Trennungslemma gilt aber nicht. Man bemerke, dass man bei den Vekoren c im Trennungslemma ohne Beschränkung der Allgemeinheit eine normierte Länge kck = 1 fordern darf. S ATZ 1.1. Eine Teilmenge S ⊆ Rn ist genau dann konvex und abgeschlossen, wenn S Lösungsmenge eines linearen Ungleichungssystems ist. Beweis. Der Fall S = Rn oder S = ∅ ist trivial. In allen anderen Fällen erhalten wir nach dem Trennungslemma \ S= Py , y∈S / wobei die Py Halbräume mit S ⊆ Py und y ∈ / Py sind. 2.1. Polaren. Einer Teilmenge S ⊆ Rn , die den Koordinatenursprung 0 ∈ Rn enthält, kann man auf zweierlei Arten eine konvexe Menge zuordnen. Einmal betrachten wir die Menge aller Konvexkombinationen (d.h. Linearkombinationen mit nichtnegativen Koeffizienten, die sich zu 1 aufsummieren): conv S = { k X λi si | si ∈ S, λi ≥ 0, i=1 k X λ1 = 1}. i=1 B EMERKUNG. Der Koeffizientenvektor (λ1 , . . . , λk ) einer Konvexkombination ist nichts anderes als eine Wahrscheinlichkeitsverteilung auf k Elementarereig” nissen “ im Sinne der Wahrscheinlichkeitsrechnung. conv S ist die konvexe Hülle von S. Dual dazu definiert man (1) S pol = {x ∈ Rn | sT x ≤ 1 für alle s ∈ S}. S pol ist die Polare zu S. S pol ist Lösungsmenge eines linearen Ungleichungssystems und deshalb abgeschlossen (und konvex). Stellen wir uns S als eine Matrix mit den Zeilenvektoren sT vor, so ist ja S pol = P (S, 1), wobei b = 1 der Vektor mit allen Komponenten bi = 1 bedeutet. 2. TRENNUNG 7 M OTIVATION : Sei cT x ≤ z eine lineare Ungleichung, die von allen s ∈ S erfüllt wird. Dann gilt z ≥ 0 (wegen 0 ∈ S). Im Fall z > 0 kann man die Koeffizienten per Division durch z skalieren und enthält die äquivalente Ungleichung cT x ≤ 1 (c = z −1 c). S pol ist gerade die Menge aller solcher Koordinatenvektoren c. G EOMETRISCHE I NTERPRETATION : Ein Vektor c 6= 0 ist Normalenvektor der Hyperebene H(c, 1) = {x ∈ Rn | cT x = 1} mit Abstand d = kck−2 vom Ursprung 0. c gehört zu S pol genau dann, wenn der zugeordnete Halbraum, der den Ursprung 0 enthält, auch die gesamte Menge S umfasst. Man macht sich leicht klar: • S ⊆ (S pol )pol . • S ⊆ T =⇒ T pol ⊆ S pol . • S pol = (conv S)pol . S ATZ 1.2. Sei S ⊆ Rn eine beliebige nichtleere Menge mit 0 ∈ S. (i) S ist ein konvex ⇐⇒ S = conv S. (ii) S ist eine abgeschlossene konvexe Menge ⇐⇒ S = (S pol )pol . Beweis. Der Beweis von Behauptung (i) ist Routine. Wir zeigen (ii). Im Fall S = (S pol )pol ist S ist S Durchschnitt von Halbräumen und somit konvex und abgeschlossen. Sei nun umgekehrt S konvex und abgeschlossen. Wir betrachten ein Ungleichungssystem Ax ≤ b mit S = P (A, b). Wegen 0 ∈ S muss bi ≥ 0 für jede Komponente bi von b gelten. Nach etwaiger Skalierung dürfen wir somit oBdA bi ∈ {0, 1} annehmen. Ersetzen wir weiterhin jede Ungleichung vom Typ aTi x ≤ 0 durch unendlich viele Ungleichungen (kai )T ≤ 1 (k ∈ N). so dürfen wir oBdA sogar S = {x ∈ Rn | aTi x ≤ 1 (i ∈ I)} annehmen. Das bedeutet aber ai ∈ S pol für alle i ∈ I und folglich S ⊆ (S pol )pol = Apol ⊆ S d.h. S = (S pol )pol . 8 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME 3. Dimension und affine Hülle Unter der Dimension des Ungleichungssystems Ax ≤ b versteht man gewöhnlich die Anzahl n der Variablen xj . Wir interessieren uns jedoch auch für die Dimension des Lösungsraums P (A, b). Allgemein definieren wir für eine beliebige Teilmenge S ⊆ Rn die (affine) Dimension dim S = max{k | es gibt k + 1 affine unabhänige Punkte x0 , x1 . . . , xk ∈ S}. Insbesondere ergibt sich dim ∅ = −1 und dim Rn = n. E RINNERUNG: Eine Menge {x0 , . . . , xk } von Punkten ist affin unabhänging, wenn die Menge {x1 − x0 , . . . , xk − x0 } von Vektoren linear unabhängig ist. Unter der affinen Hülle von S versteht man die Menge aff S aller Punkte, die sich als affine Linearkombinationen aus S ausdrücken lassen: k k X X aff S = { λi si | si ∈ S, λi = 1}. i=0 i=0 n aff S ist der kleinste affine Teilraum von R , der S enthält und es gilt dim S = dim aff S. E RINNERUNG : Die affinen Teilräume A von Rn sind genau die Lösungsmengen von linearen Gleichungssystemen: A = {x ∈ Rn | Ax = b}. Bei Gleichungssystemen darf man (im Gegensatz zu Ungleichungssystemen!) immer A als endliche Matrix annehmen. Es gilt die Dimensionsformel (2) dim A = n − rg A (rg A = (Zeilen/Spalten-)Rang von A) 3.1. Affine Transformationen. Unter einer affinen Transformation versteht man eine Abbildung T : Rn → Rm der Form T (x) = Ax + t wobei A ∈ Rm×n , t ∈ Rm . Affine Transformationen sind insbesondere stetige Abbildungen und man rechnet leicht nach: • Affine Transformationen führen affine Teilräume in affine Teilräume über und Urbilder affiner Teilräume sind affine Teilräume. • Affine Transformationen erhalten Konvexität und Urbilder konvexer Mengen sind konvex. Also gilt 3. DIMENSION UND AFFINE HÜLLE 9 L EMMA 1.2. Affine Transformationen erhalten abgeschlossene konvexe Mengen. E X . 1.5 (Translationen). Für ein festes t ∈ Rn ist die Translationsabbildung x 7→ T (x) = x + t affin. Sei P = P (c, z) = {x ∈ Rn | xT ≤ z} ein beliebiger Halbraum. Dann gilt y ∈ T (P ) ⇐⇒ cT (y − t) ≤ z d.h. cT y ≤ z 0 = z − cT t. Folglich ergibt sich T (P ) = P (c, z 0 ) wieder als Halbraum. Analog verhalten sich natürlich auch beliebige Durchschnitte von Halbräumen unter Verschiebungen. 3.2. Abzählbarkeit. Die Lösungsmenge eines linearen Ungleichungssystems ist zwar nicht unbedingt schon durch endlich viele Ungleichungen beschreibbar. Eine abgeschlossene konvexe Menge S ⊆ Rn lässt sich jedoch immer durch ein System von (höchstens) abzählbar vielen linearen Ungleichungen darstellen. Im Fall dim S = n folgt dies aus der Beobachtung, dass Qn in Rn dicht liegt. Für jeden Punkt x ∈ S und jedes ε > 0 gilt dann [S ∩ Uε (x)] ∩ Qn 6= ∅. Es genügt also, nur solche trennenden Halbräume Py zu betrachten, für die y ∈ Qn gilt: Wenn wir alle rationalen Punkte einer ε-Umgebung Uε (y) von S getrennt haben, dann ist auch y von S getrennt. Im Fall dim S = m < n ist aff S isomorph zu Rm . Wählen wir ein entsprechendes Koordinatensystem für aff S können wir das obige Argument ebenso bzgl. Qk anwenden. KOROLLAR 1.1. Genau dann ist S ⊆ Rn konvex und abgeschlossen, wenn es eine höchstens abzählbare Indexmenge I und Ungleichungen aTi x ≤ bi gibt mit der Eigenschaft S = {x ∈ Rn | aTi x ≤ bi , i ∈ I}. 10 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME 4. Seitenflächen und Extrempunkte Sei S ⊆ Rn eine abgeschlossene konvexe Menge. Eine Teilmenge F ⊆ S heisst Seitenfläche von S wenn F Berührfläche“ von S mit einer Hyerebe” ne ist, d.h. wenn es einenen Koordinatenvektor a 6= 0 und eine reelle Zahl b ∈ R gibt mit den Eigenschaften (SF1 ) S ⊆ {x ∈ Rn | aT x ≤ b} = P (a, b). (SF2 ) F = {x ∈ S | aT x = b} = S ∩ H(a, b). Danach sind S und ∅ sicher Seitenflächen. Sie sind die sog. trivialen Seitenflächen. Die übrigen (sofern sie existieren) sind die nicht-trivialen Seitenflächen. Ist F = {v} eine einelementige Seitenfläche von S, so ist v ein sog. Extrempunkt (oder Eckpunkt) von S. Aus der Definition ergibt sich sofort, dass eine Seitenfläche F von S selber eine abgeschlossene konvexe Menge ist. Wir haben dim F ≤ dim S − 1 ⇐⇒ F 6= S. Die Extrempunkte von S entsprechen den Seitenflächen F mit dim F = 0. E X . 1.6. Sei S = {(x1 , x2 , x3 ) ∈ R2 | x21 + x22 + x23 ≤ 1}. Die nichttrivialen Seitenflächen von S sind genau die Punkte auf der Kugeloberfläche, die gleichzeitig auch die Extrempunkte von S sind. E X . 1.7 (Stützhyperebenen). Jede Stützhyperebene H = H(c, b) ergibt eine nichtleere Seitenfläche von S. Sei x0 der Stützpunkt von H: Dann gilt (SF1 ) wegen cT x ≤ b = cT x0 für alle x ∈ S. Die Seitenfläche F = S ∩ H enthält x0 und ist folglich nichtleer. P ROPOSITION 1.1. Sind F1 , F2 Seitenflächen der abgeschlossenen konvexen Menge S ⊆ Rn , dann ist auch F = F1 ∩ F2 eine Seitenfläche von F. Beweis. Sei F1 = S ∩ H(a1 , b1 ) und F2 = S ∩ H(a2 , b2 ). Wir setzen a = a1 + a2 und b = b1 + b2 . Dann gilt nach Voraussetzung für alle x ∈ S: aT1 x ≤ b1 , aT2 x ≤ b2 und deshalb aT x ≤ b. Ausserdem haben wir aT x = b ⇐⇒ aT1 x = b1 und(!) aT2 x = b2 und somit F = S ∩ H(a, b). N OTA B ENE : Wie schon das Beispiel des (Voll-)Kreises zeigt, ist die Vereinigung F1 ∪ F2 von zwei Seitenflächen im allgemeinen keine Seitenfläche! 5. DER ALGORITHMUS VON FOURIER-MOTZKIN 11 5. Der Algorithmus von Fourier-Motzkin Wir diskutieren nun einen Algorithmus zum Lösen linearer Ungleichungssysteme, der natürlich nur bei endlichen Systemen praktisch durchführbar ist, aber doch auch bei unendlichen Systemen im Prinzip“ anwendbar ist. ” Wir gehen aus von einem Ungleichungssystem n X T ai x = aij xj ≤ bi (i ∈ I). j=1 Wir wollen nun (ähnlich wie beim Gauss-Verfahren) die Variablen xj der Reihe nach eliminieren und beginnen mit z.B. x1 . Seien I+ = {i ∈ I | ai1 > 0}, I− = {i ∈ I | ai1 < 0}, I0 = {i ∈ I | ai1 = 0}. Dividieren wir die Ungleichungen in I1 und I2 jeweils durch |ai1 |, so erhalten wir das äquivalente System x1 + −x1 + (3) X j=2 X j=2 X a0rj xj ≤ b0r (r ∈ I+ ) a0sj xj ≤ b0s (s ∈ I− ) atj xj ≤ bt (t ∈ I0 ) j=2 x = (x1 , x2 , . . . , xn ) ist also genau dann zulässige Lösung, wenn gilt n X (i) (x2 , . . . , xn ) erfüllt atj xj ≤ bt für alle t ∈ I0 . j=2 (ii) −bs + n X a0sj xj ≤ x 1 ≤ br − j=2 n X a0rj xj für alle r ∈ I+ , s ∈ I− . j=2 Gegeben (x2 , . . . , xn ), das (i) erfüllt, so existiert ein x1 , das (ii) erfüllt, genau dann, wenn gilt n X (iii) (a0rj + a0sj )xj ≤ br + bs für alle r ∈ I+ und s ∈ I− . j=2 In diesem Fall können wir jedes x1 mit n n X X 0 (4) sup − bs + asj xj ≤ x1 ≤ inf br − a0rj xj s∈I− j=2 r∈I+ j=2 wählen. Das heisst, wir gewinnen x1 per Rücksubstitution aus den schon als bekannt angenommenen Grössen x2 , . . . , xn . 12 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME B EMERKUNG. Wenn (iii) erfüllt ist, existiert in der Tat ein x1 , das (4) genügt. Im Fall I∗ = ∅ oder I− = ∅ ist das offensichtlich. Im Fall I+ 6= ∅ 6= I− folgt die Behauptung aus der Definition der reellen Zahlen. L EMMA 1.3. Das System (3) ist äquivalent mit dem System n X (i) ait xj ≤ bt (t ∈ I0 ) j=2 (iii) n X (a0rj + a0sj )xj ≤ br + bs (r ∈ I+ , s ∈ I− ) j=2 FM-Elimination. Lemma 1.3 führt auf eine rekursive Beschreibung des Eliminationsverfahrens bzgl. (3): Fourier-Motzkin Berechne eine Lösung (x2 , . . . , xn ) für das System (i)&(iii); STOP wenn keine Lösung existiert; Berechne x1 mit Rückwärtssubstitution nach (4). E X . 1.8. 3x + y − 2z − 2y − 4z −x + 3y − 2z y + 4z 2x − 5y + z ≤ ≤ 1 ≤ −14 ≤ −2 ≤ 13 0 5.1. Lösbarkeit und Satz der Alternative. Man bemerke: Das FMVerfahren benutzt nur die folgenden Operationen auf dem Ungleichungssystem: (i) Multiplikation einer Ungleichung mit einer positiven Zahl. (ii) Addition von zwei Ungleichungen. Daraus folgt: • Nach jeder Elimination einer Variablen ist jede der Ungleichungen des resultierenden Systems eine Linearkombination der Ungleichungen des Ausgangssystems mit positiven Koeffizienten. Wenn alle Variablen xj elimiert sind, sind die Koeffizienten auf der linken Seite des Systems alle = 0. Das System ist lösbar genau dann, wenn dann die Koeffizienten auf der rechten Seite alle nichtnegativ sind. S ATZ 1.3 (Satz der Alternative). Genau eine der Aussagen ist richtig: 5. DER ALGORITHMUS VON FOURIER-MOTZKIN 13 (I) Das System Ax ≤ b besitzt eine Lösung. (II) Es gibt nichtnegativen einen Vektor y ∈ RI mit nur endlich vielen positiven Komponenten derart, dass yT A = 0T und yT b < 0 . B EMERKUNG. Die Ausdrücke yT A und yT b im Satz sind auch bei unendlicher Indexmenge I wohldefiniert. Wir nehmen ja an, dass nur endlich viele Komponenten yi von y von 0 verschieden sind. Also gibt es eine endliche Teilmenge I 0 ⊆ I derart, dass X X yT A = yi aTi und yT b = y i bi . i∈I 0 i∈I 0 Beweis. Die beiden Aussagen können nicht gleichzeitig gelten, denn sonst hätten wir den Widerspruch 0 = 0T x = yT Ax ≤ yT b < 0. Um einzusehen, dass mindestens eine Aussage richtig ist, nehmen wir an, dass (I) falsch ist. Also gibt es (nach der FM-Elimination aller Variablen) eine nichtnegative Linearkombination der Ungleichungen ai x ≤ bi mit Nullkoeffizienten links und einem negativen Koeffizienten rechts. Wählen wir y als den Vektor der Koeffizienten dieser Linerkombination, so erhalten wir (II). B EMERKUNG (L EMMA VON FARKAS). Im Fall eines endlichen Systems Ax ≤ b ist der obige Alternativsatz auch als Lemma von Farkas“ bekannt. Es gibt aber ” auch noch eine andere Form des Lemmas von Farkas (s.u.). KOROLLAR 1.2. Das System Ax ≤ b ist lösbar genau dann, wenn jedes endliche Teilsystem A0 x ≤ b0 lösbar ist. Beweis. Eine Lösung x∗ von Ax ≤ b ist natürlich auch eine Lösung des Teilsystems A0 x ≤ b. Ist Ax ≤ b nicht lösbar, so gilt Alternative (II) im Satz 1.3). Die Alternative (II) bezieht sich auf ein endliches Teilsystem. Also ist auch dieses nicht lösbar. KOROLLAR 1.3 (Gordan). Sei A ∈ Rm×n eine Matrix. Dann gilt genau eine der Aussagen: (I) Ax = 0, x ≥ 0 hat eine Lösung x∗ 6= 0. (II) yT A < 0T hat eine Lösung. Beweis. Übung. N OTATION. x < y bedeutet, dass die Relation xj < yj für alle Komponenten gilt. 14 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME 5.2. Implizierte und gültige Ungleichungen. Sei S ⊆ Rn eine beliebige nicht-leere Teilmenge und cT x ≤ z eine lineare Ungleichung. Wir sagen S impliziert cT x ≤ z, wenn gilt cT x ≤ z für alle x ∈ S. T Ebenso sagt man, dass c x ≤ z eine für S gültige Ungleichung ist. Diese Implikation erlaubt zwei Interpretationen: O PTIMIERUNG : (i) supx∈S cT x ≤ z. (ii) F = {x ∈| cT x = z} ist die Menge aller Optimallösungen des entsprechenden Maximierungsproblems. G EOMETRIE : (i) Der Halbraum P (c, z) = {x ∈ Rn | cT x ≤ z} enthält S. (ii) F = {x ∈| cT x = z} ist eine Seitenfläche von S. Man sagt, dass cT x ≤ z von Ax ≤ b impliziert wird, wenn die Ungleichung cT x ≤ z von der Lösungsmenge des Systems Ax ≤ b impliziert wird: Ax∗ ≤ b =⇒ cT x ≤ z für alle x∗ ∈ Rn . Die zweite Form des Lemmas von Farkas“ ist nun: ” L EMMA 1.4 (Farkas). Sei Ax ≤ b ein endliches lösbares lineares Ungleichungssystem. Dann wird cT x ≤ z von Ax ≤ b genau dann impliziert, wenn es einen Koeffizientenvektor y ≥ 0 gibt derart, dass cT = yT A und yT b ≤ z. Beweis. Sei cT = yT A eine nichtnegative Linearkombination von Zeilen von A. Dann gilt für jede Lösung x: yT (b − Ax) ≥ 0 und folglich cT x = yT Ax ≤ yT b. Also ist cT x ≤ z impliziert wennimmer z ≥ yT b. Die Bedingung ist also hinreichend. Um die Notwendigkeit einzusehen, betrachten wir das System Ax ≤ b T −c x + xn+1 ≤ −z Nach Annahme hat dieses keine Lösung mit xn+1 > 0. Wir eliminieren nun all Variablen x1 , . . . , xn . Im resultierenden System können nicht alle Koeffizienten in der Spalte von xn−1 den Wert 0 haben, da die FM-Methode nur positive Linearkombinationen von Zeilen benutzt. Sei der Koeffizient ai,n+1 6= 0. Nun ist der Koeffizientenvektor Zeile i von der Form y0 (−cT , 1) + yT [A, 0] mit ai,n+1 = y0 > 0, y ≥ 0 und Dividieren wir diese Zeile durch y0 , so dürfen wir annehmen: cT = yT A, y ≥ 0 und ai,n+1 = 1. y0 cT = yT A. 5. DER ALGORITHMUS VON FOURIER-MOTZKIN 15 Der Koeffizient auf der rechten Seite ist entsprechend (nach Division durch y0 ): bi = −z + yT b Wären diese (wegen der Endlichkeit von Ax ≤ b nur endlich vielen) Koeffizienten bi alle positiv, so gäbe es eine Lösuung mit xn+1 > 0. Also existiert mindestens einer mit der gewünschten Eigenschaft −z + yT b ≤ 0 d.h. yT b ≤ z B EMERKUNG. Das Farkaslemma kann auf analoge Art auch für ein unendliches System Ax ≤ b abgeleitet werden, wenn die Lösungsmenge S = P (A, b) kompakt ist. Das nachfolgende Beispiel zeigt, dass des Farkaslemma bei unendlichen Systemen ohne Zusatzannahmen falsch sein kann. E X . 1.9. Sei S = {(x, y) ∈ R2 | x > 0, y ≥ 1/x}. S ist Lösungsmenge des unendlichen Ungleichungssystems 1 x + y ≥ 2r (r ∈ R, r > 0) r2 Die Ungleichung x ≥ 0 gilt offenbar für S. Sie lässt sich aber nicht als positive (endliche) Linearkombination aus dem System ableiten. 5.2.1. Konstruktion von Seitenflächen. Das Lemma von Farkas (in seiner zweiten Form) liefert eine Methode, wie man im Prinzip alle Seitenflächen einer durch das Ungleichungssystem Ax ≤ b beschriebenen abgeschlossenen und konvexen Menge S = P (A, b) konstruieren kann. Dabei nehmen wir gleich den nichttrivialen Fall S 6= ∅ an. Wir wählen eine beliebige endliche Teilmatrix AF und bilden daraus den Vektor cT = 1T AF als die Summe alle Zeilenvektoren von AF . Weiterhin sei z = 1T bF die entsprechende Summe der rechten Seiten. Da AF x ≤ bF ein Teilsystem von Ax ≤ b ist, ist die Ungleichung cT x ≤ z für S gültig: cT x = 1T AF x ≤ 1T bF = z für alle x ∈ P (A, b). Folglich bestimmt die Teilmatrix AF eine Seitenfläche F = {x ∈ S | cT x = z} = {x ∈ Rn | Ax ≤ b, AF x = bF } N OTA B ENE : Im Fall AF x ≤ bF gilt immer: 1T AF x = 1T bF ⇐⇒ AF x = bF . 16 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME Es ist noch zu zeigen, dass man mit der obigen Methode tatsächlich alle nichttrivialen Seitenflächen von P (A, b) erfasst. Sei z.B. F = {x ∈ Rn | Ax ≤ b, cT x = z} eine beliebige nichtleere Seitenfläche. Nach dem Lemma von Farkas existiert eine endliche Teilmatix AF und ein y ≥ 0 derart, dass cT = y T A F und yT bF ≤ z. Wegen F 6= ∅ haben wir sogar die Gleichheit z = yT bF . Denn: x∈F =⇒ z = cT x = yT AF x ≤ yT bF ≤ z. Daraus folgt: • F besteht genau aus den Punkten x ∈ P (A, b), welche die Gleichung AF x = bF erfüllen, d.h. F = {x ∈ Rn | Ax ≤ b, AF x = bF }. S ATZ 1.4. Ist Ax ≤ b ein endliches Ungleichungssystem, so hat die abgeschlossene konvexe Menge P (A, b) nur endlich viele verschiedene Seitenflächen. Beweis. Ax ≤ b gestattet nur endlich viele verschiedene Teilsysteme AF x ≤ bF . E X . 1.10. Die Kugel S = {(x, y, z) ∈ Rn | x2 + y 2 + z 2 ≤ R} lässt sich nicht als Lösungsmenge eines endlichen linearen Ungleichungssystem darstellen, denn S hat unendlich viele Extrempunkte. E X . 1.11. Das Standardsimplex in Rn ist die Menge ∆n = {(x1 , . . . , xn ) | x1 + . . . + xn = 1, x1 ≥ 0, . . . , xn ≥ 0}. Ein Eckpunkt von ∆n entspricht einer einelementigen Seitenfläche und folglich einer Auswahl von Ungleichungen derart, dass das zugeordnete Gleichungssystem nur eine einzige Lösung in ∆n gestattet. Also ergeben sich genau die n Einheitsvektoren als die Ecken von ∆n . 5. DER ALGORITHMUS VON FOURIER-MOTZKIN 17 5.2.2. Konvexe Kegel. Eine nichtleere Menge K ⊆ Rn ist ein sog. (konvexer) Kegel, wenn gilt (K1) λx ∈ K für alle x ∈ K und Skalare λ ≥ 0. (K2) x + y ∈ K für alle x, y ∈ K. Ein konvexer Kegel ist also eine unter nichtnegativen Linearkombinationen abgeschlossene Menge. B EMERKUNG. Ein nichtleerer Kegel enthält immer zumindest den Punkt 0 ∈ Rn . Man kann jeder nichtleeren Menge S ⊆ Rn einen Kegel auf zwei (zueinander duale“) Weisen einen Kegel zuordnen. Zum einen betrachtet man die ” Menge aller nichtnegativen Linearkombinationen cone S = { (5) k X λi si |, si ∈ S, λi ≥ 0} i=1 cone S ist die konische Hülle von S oder der von S erzeugte Kegel. Dual dazu definiert man S ◦ = {x ∈ Rn | sT x ≤ 0 für alle s ∈ S}. (6) S ◦ ist der zu S duale Kegel. S ◦ ist Lösungsmenge eines linearen Ungleichungssystems und deshalb abgeschlossen (und konvex). Stellen wir uns S als eine Matrix mit den Zeilenvektoren sT vor, so ist ja S ◦ = P (S, 0). Man beachte, dass für konvexe Kegel die Polare und der duale Kegel miteinander identisch sind: L EMMA 1.5. Sei K ⊆ Rn ein konvexer Kegel. Dann gilt K ◦ = K pol . Beweis. . Es gilt K ◦ ⊆ K pol . Denn wir beobachten cT x ≤ 0 =⇒ cT x ≤ 1 für alle x ∈ K. Ist x ∈ K, dann gilt auch λx ∈ K für alle λ > 0. Also haben wir lim λ(cT x) = lim cT (λx) ≤ 1 λ→∞ λ→∞ =⇒ cT x ≤ 0. D.h. K pol ⊆ K ◦ . Analog der Argumentation bei der Polaren macht sich leicht klar: • S ⊆ (S ◦ )◦ . 18 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME • S ⊆ T =⇒ T ◦ ⊆ S ◦ . • S ◦ = (cone S)◦ . S ATZ 1.5. Sei S ⊆ Rn eine beliebige nichtleere Menge. Dann gilt (i) S ist ein konvexer Kegel ⇐⇒ S = cone S. (ii) S ist ein abgeschlossener konvexer Kegel ⇐⇒ S = (S ◦ )◦ . Beweis. Der Beweis von Behauptung (i) ist Routine. Die Aussage (ii) ist der Spezialfall der analogen Aussage über die Polare konvexer Kegel. 5.3. Das Projektionslemma. Wir betrachten z.B. die Projektionsabbildung π : Rn → Rn−1 , die gegeben ist durch π(x1 , x2 , x3 . . . , xn ) = (x2 , x3 , . . . , xn ). π ist stetig und deshalb ist klar, dass das Bild einer abgeschlossenen konvexen Menge unter π wieder abgeschlossen und konvex ist. Die interessante Aussage des folgenden Lemmas ist deshalb die darin gemachte Aussage über Endlichkeit. L EMMA 1.6 (Projektionslemma). Sei A ∈ Rm×n und b ∈ Rm gegeben. Dann existiert eine endliche Matrix B ∈ Rk×(n−1) und ein Vektor d ∈ Rk derart, dass gilt π[P (A, b)] = P (B, d). (D.h. die Projektion der Lösungsmenge eines endlichen linearen Ungleichungssystems ist selber Lösungsmenge eines endlichen linearen Ungleichungssystems.) Beweis. Sei Bx ≤ d das lineare Ungleichungssystem, das sich aus Ax ≤ b nach FM-Elimination von x1 ergibt. Aus der Rücksubstitutoinsregel (4) ergibt sich (x∗2 , . . . , x∗n ) ∈ P (B, d) ⇐⇒ es gibt ein x∗1 ∈ R mit (x∗1 , x∗2 , . . . , x∗n ) ∈ P (A, b). Das ist aber genau die Behauptung P (B, d) = π[P (A, b)]. B EMERKUNG. Der Beweis des Projektionslemmas ist konstruktiv: Man kann eine geeignete Matrix B und einen geeigneten Vektor d mit dem FM-Verfahren berechnen. 6. ZWEI ANWENDUNGEN 19 6. Zwei Anwendungen 6.1. Das Erfüllbarkeitsproblem. Wir rechnen über dem Zahlbereich {0, 1} mit den Operationen ⊕ 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 − 0 1 1 0 Eine Boolesche Funktion ist eine Funktion ϕ : {0, 1}n → {0, 1}. Es ist bekannt, dass eine Boolesche Funktion ϕ(x1 , . . . , xn ) in einer sog. konjuktiven Normalform (KNF) dargestellt werden kann: Y Ci , ϕ(x1 , . . . , xn ) = wobei die Klauseln Ci die Form haben Ci = ai1 y1 ⊕ . . . ⊕ ain yn mit aij ∈ {0, 1} und yi ∈ {xi , xi }. E X . 1.12. ϕ(x1 , x2 , x3 ) = (x1 ⊕ x2 ) (x1 ⊕ x2 ⊕ x3 ) x3 . E RF ÜLLBARKEITSPROBLEM : Man entscheide, ob die per KNF gegebene Boolesche Funktion ϕ den Wert 1 annehmen kann. Das heisst: Kann eine Belegung der Variablen gefunden werden derart, dass jede Klausel Ci den Wert 1 annimmt? Das Problem kann man mit Ungleichungssystemen modellieren. In der K Klausel Ci = ai1 y1 + . . . ain yn ersetzen wir xj durch 1 − xj und haben dann das Problem: Gibt es eine Lösung mit ganzahligen xj ∈ {0, 1} derart, dass ai1 y1 + . . . ain yn ≥ 1 ? E X . 1.13. Sei C = x2 ⊕ x5 ⊕ x7 . Dann ist C erfüllbar, wenn es eine ganzzahlige (0, 1)-Lösung der Ungleichung x2 + (1 − x5 ) + x7 ≥ 1 ←→ −x2 + x5 − x7 ≤ 0 gibt. Das Erfüllbarkeitsproblem fragt also nach einer ganzahligen (0, 1)-Lösung des aus allen Klauseln gebildeten Ungleichungssystems. 2-SAT: Das Erfüllbarkeitsproblem für Boolesche Funktionen in KNF, bei denen jede Klausel höchstens 2 Variablen enthält. 2-SAT kann mit dem FM-Verfahren effizient(!) gelöst werden, denn bei jeder Addition von Ungleichungen bleiben die Koeffizienten im Bereich {−1, 0, +1} und die Anzahl der Ungleichungen erhöht sich nicht. 20 1. THEORIE LINEARER UNGLEICHUNGSSYSTEME E X . 1.14 (Resolvente). C1 = xk ⊕ xs C2 = xk ⊕ xl C = xs ⊕ xl ←→ −xk − xs ≤ −1 xk − xl ≤ 0 − xs − xl ≤ −1 C ist die sog. Resolvente der Klauseln C1 und C2 . Offensichtlich sind C1 und C2 genau dann gleichzeitig erfüllt, wenn ihre Resolvente C erfüllt ist. Im Ungleichungssystem entspricht C der Summe der aus C1 und C2 gewonnenen Ungleichungen. B EMERKUNG. Für das allgemeine Erfüllbarkeitsproblem ist beim gegenwärtigen Stand der Wissenschaft kein effizienter Lösungsalgorithmus bekannt. 6.2. Stochastische Matrizen. In der Anwendungssimulation betrachtet man Systeme, die sich zu jedem (diskreten) Zeitpunkt in einem von n Zuständen {Z1 , . . . , Zn } befinden. Wir nehmen an, dass das System mit Wahrscheinlichkeit mij = P r(Zj |Zi ) in den Zustand Zj übergeht, wenn es vorher im Zustand Zi war. Die entsprechende Übergangsmatrix M = [mij ] ∈ Rn×n P hat nur nichtnegative Koeffizienten mij ≥ 0 und Spaltensummen ni=1 mij = 1. D.h. M ist eine sog. stochastische Matrix: Alle Spalten sind Wahrscheinlichkeitsverteilungen. Nehmen wir an, dass sich das System zum Zeitpunkt t mit der Wahrscheinlichkeit πi im Zustand Zi befindet (i = 1, . . . , n). Dann befindet es sich zum Zeitpunkt t + 1 mit den der Wahrscheinlichkeit n X mki πi πk0 = i=1 im Zustand Zk (k = 1, . . . , n). In Matrixnotation haben wir also: π 0 = πM (π = [π1 , . . . , πn ], π 0 = [π10 , . . . , πn0 ]). π heisst stationär, wenn π = π. Eine stationäre Wahrscheinlichkeitsverteilung ist als ein (linker) Eigenvektor von M zum Eigenwert λ = 1. P ROPOSITION 1.2. Die stochastische Matrix M = [mij ] besitzt eine stationäre Wahrscheinlichkeitsverteilung. Bew Wir setzen A = M T − I. Es genügt zu zeigen, dass Ax = 0, x ≥ 0, x 6= 0 eine Lösung hat. Diese können wir dann auf Koeffizientensumme 1 normieren und erhalten dann das gewünschte π. 6. ZWEI ANWENDUNGEN 21 Nehmen wir an, keine solche Lösung existierte. Dann gäbe es nach dem Gordanschen Satz (Korollar 1.3) einen Vektor y mit der Eigenschaft n X T T T T 0 >y A=y M −y d.h. yj > mij yi für alle j = 1, . . . , n. i=1 Das kann aber nicht sein. Denn für yk = min{y1 , . . . , yn } gilt sicherlich n n X X mik yi ≥ mij yk = yk . i=1 i=1 Dieser Widerspruch beweist die Existenz der stationären Verteilung. KAPITEL 2 Polyeder und Polytope Ein Polyeder (in Rn ) ist eine Teilmenge P , die sich als Durchschnitt von endlich vielen Halbräumen darstellen lässt. Per definitionem existieren also eine Matrix A ∈ Rm×n und ein Koordinatenvektor b ∈ Rm derart, dass P = P (A, b). Die leere Menge ∅ und der gesamte Raum Rn sind somit Polyeder. Allgemeiner ist z.B. jeder affine (und insbesondere lineare) Teilraum von Rn ein Polyeder. Die Matrix A und der Vektor b sind jedoch bei der Darstellung des Polyeders P = P (A, b) nicht eindeutig. Typischerweise gibt es unendlich viele verschiedene (endliche) lineare Ungleichungssysteme mit demselben Lösungsraum P . Es ist sogar möglich, dass sich ein Polyeder als Lösungmenge eines nichtlinearen Ungleichungssystems ergibt. E X . 2.1. Die Punktmenge im nichtnegativen Quadranten der euklidischen Ebene P = {(x1 , x2 ) ∈ R2+ | x21 + x22 + 3x1 x2 − 2x1 − 3x1 x2 ≤ −1} entspricht der Lösungsmenge des linearen Ungleichungssystems x1 + x2 ≤ 1 x1 + 2x2 ≥ 1 x1 , x2 ≥ 0 und ist somit ein Polyeder. 1. Darstellung und Dekomposition von Polyedern Seien V = {v1 , . . . , vk } und W = {w1 , . . . , w` } zwei endliche Teilmengen von Koordinatenvektoren in Rn , wobei wir W 6= 0 annehmen. Wir betrachten die Menge (7) P = conv V + cone W = {v + w | v ∈ conv V, w ∈ cone W }, d.h. die Minkowski-Summe der endlich erzeugten konvexen Menge conv V und des endlich erzeugten konvexen Kegels cone W . P besteht also aus der Menge aller Linearkombinationen z vom Typ z= k X i=1 µi vi + ` X λj wj mit j=1 µi , λj ≥ 0, k X i=1 23 µi = 1. 24 2. POLYEDER UND POLYTOPE B EMERKUNG (M INKOWSKI -S UMME). Allgemein definiert man die MinkowskiSumme von beliebigen Teilmengen S, T ⊆ Rn als (8) S + T = {s + t | s ∈ S, t ∈ T } , wobei S + ∅ = S. Wir zeigen, dass P ein Polyeder ist, und, dass jedes Polyeder eine Darstellung vom Typ (7) gestattet. In diesem Sinn sind Polyeder endlich erzeugt. Wir führen den Beweis in mehreren Schritten. L EMMA 2.1. Die Menge P = conv V + cone W ist ein Polyeder. Beweis. Wir betrachten V und W als Matrizen mit Spaltenvektoren vi bzw. wj . Dann bildet die Menge aller Lösungen (x, y, z) des Ungleichungssystems z − V x − Wy = 0 1T x = 1 x , y ≥ 0 ein Polyeder P in Rk+m+n . P ist die Projektion von P auf die z-Koordinaten, d.h. Lösungsmenge der Ungleichungssystems nach FM-Elimination der x- und yKoordinaten. B EMERKUNG. Der Beweis von Lemma 2.1 zeigt, dass ein Ungleichungssystem Ax ≤ b derart, dass P = P (A, b) im Prinzip mit dem FM-Eliminationsverfahren berechnet werden kann. Sei nun P ein beliebiges Polyeder mit 0 ∈ P . Dann gibt es eine endliche Indexmenge I und Ungleichungen ai x ≤ bi derart, dass P = {x ∈ Rn | aTi x ≤ bi , i ∈ I}. Wegen 0 ∈ P dürfen wir bi ∈ {0, 1} annehmen. Entsprechend zerfallen die Ungleichungen in die die Typen A(0) x ≤ 0 und A(1) x ≤ 1. L EMMA 2.2. Seien A und B Matrizen und P = {x | Ax ≤ 1, Bx ≤ 0}. Dann gilt für die Polare des Polyeders P : P pol = conv [AT , 0] + cone B T . Beweis. Die Polare von P besteht aus allen Vektoren c derart, dass die Ungleichung cT x ≤ von den Ungleichungen Ax ≤ 1 und Bx ≤ 0 impliziert ist. Nach dem Farkaslemma bedeutet dies: P pol = {c ∈ Rn | c = AT y + B T z, y, z ≥ 0, yT 1 ≤ 1} = conv [AT , 0] + cone B T . 1. DARSTELLUNG UND DEKOMPOSITION VON POLYEDERN 25 S ATZ 2.1 (Dekompositionsatz von Weyl-Minkowski). Genau dann ist eine Teilmenge P ⊆ Rn ein Polyeder, wenn es endliche Mengen V, W ⊆ Rn gibt mit der Eigenschaft P = conv V + cone W. Beweis. Dass die Bedingung hinreicht, ist Inhalt von Lemma 2.1. Wir beweisen die Notwendigkeit und nehmen oBdA P 6= ∅ an. Wir betrachten zuerst den Fall 0 ∈ P . Dann kann P in der Form P = {x | Ax ≤ 1, Bx ≤ 0} ausgedrückt werden. Nach Lemma 2.2 (und Lemma 2.1) ist Q = P pol ein Polyeder. Wegen 0 ∈ P finden wir P = (P pol )pol = Qpol . Wiederum aus Lemma 2.2 schliessen wir nun, dass P als Minkowski-Summe einer endlich erzeugten konvexen Menge und eines endlich erzeugten konvexen Kegels ausgedrückt werden kann. Im Fall 0 ∈ / P wählen wir irgendein t ∈ P und betrachten die Translation (Minkowskisumme) P = P + {−t}. Wegen 0 ∈ P gibt es endliche Mengen V und W derart, dass P = conv V + cone W . Nun verifiziert man leicht für V = V + {−t} und W = W : P = conv V + cone W. 1.1. Dualität von Darstellungen. Der Satz von Weyl-Minkowski zeigt, dass ein Polyeder P zwei einander duale Sichtweisen erlaubt: I MPLIZIT: E XPLIZIT: P ist Lösungsmenge eines endlichen linearen Ungleichungssystems Ax ≤ b; P ist die Menge aller Vektoren (bzw. Punkte), die von den endlichen Mengen V und W gemäss (7) erzeugt werden. Die Situation verallgemeinert damit die bei linearen oder affinen Teilräumen A ⊆ Rn bekannte. Einerseits ist A Lösungsmenge eines linearen Gleichungssystems Ax = b. Andererseits gibt es eine endliche Menge S = s1 , . . . , sk derart, dass A die Menge aller affinen Linearkombinationen x = λ1 s1 + . . . + λk sk mit k X i=1 λi = 1 26 2. POLYEDER UND POLYTOPE ist. Die Umrechnung von einer Darstellung zur anderen ist im linearen/affinen Fall effizient möglich (z.B. mit dem Gauss-Verfahren). Im allgemeinen Fall ist die Umrechnung nicht so einfach möglich. Wie man im Prinzip umrechnen kann, wird im folgenden Abschnitt noch deutlicher werden. N OTA B ENE . Im linearen Fall sind alle minimalen Erzeugendensysteme (Basen) gleichmächtig. Bei Ungleichungssystemen ist dies nicht mehr notwendigerweise so! 1.2. Berechung von Erzeugendensystemen. Um ein Erzeugendensystem für den P (A, 0) zu berechnen, kann man von der Relation P (A, 0)◦ = cone AT ausgehen und mit Fourier-Motzkin eine Matrix B berechnen mit der Eigenschaft cone AT = P (B, 0). Daraus ergibt sich P (A, 0) = P (B, 0)◦ = cone B T . Also bilden die Spaltenvektoren von B T (bzw. die Zeilenvektoren von B) ein Erzeugendensystem für den Kegel P (A, 0). P ROBLEM : Diese Berechnungsmethode eines Erzeugendensystems über das FMVerfahren ist im allgemeinen nicht effizient. Diese Vorgehensweise lässt sich leicht verallgemeinern, um endliche Mengen V und W für eine Weyl-Minkowski-Dekomposition P (A, b) = conv V + cone W. zu ermitteln. Wir betrachten dazu den polyedrischen Kegel x n+1 K= ∈R | Ax − bt ≤ 0, t ≥ 0 . t Dann haben wir x ∈ P (A, 0) ⇐⇒ x ∈ K. 1 Haben wir nun Vektoren h1 , . . . , hk ∈ Rn gefunden mit der Eigenschaft K = cone {h1 , . . . , hk }, so dürfen wie annehmen, dass die Erzeugenden folgende Form haben: 0 h hi = i mit ti = 1 oder ti = 0. ti Im Fall ti > 0 können nämlich wir einfach den Vektor hi durch Division mit ti entsprechend normieren. Die Mengen V = {h0i | ti = 1} und W = {h0j | tj = 0}, 2. OPTIMIERUNG LINEARER FUNKTIONEN 27 leisten das Gewünschte. Denn wir haben für alle x ∈ P (A, b) 0 X X h0 h x i + λj j = µi 1 1 0 hj ∈W hi ∈V für geeignete µi ≥ 0 und λj ≥ 0. Ein Blick auf die letzte Komponente zeigt zudem X 1= µi . h0i ∈V Also finden wir x= X µi h0i + i X λj h0j ∈ conv V + cone W. j 2. Optimierung linearer Funktionen Viele wichtige Anwendungsprobleme lassen sich als mathematische Optimierungsprobleme modellieren, wo eine lineare Zielfunktion f (x) = cT x unter (endlich vielen) linearen Ungleichungsrestriktionen zu maximieren ist: (9) max cT x x∈Rn s.d. Ax ≤ b (A ∈ Rm×n , b ∈ Rm ). Stellen wir den Lösungsraum P = P (A, b) nach Weyl-Minkowski in der Form P = conv V + cone W dar, so sieht man sofort: (0) Ist P = ∅, so hat das lineare Optimierungsproblem keine Lösung. (1) Gibt es ein w ∈ cone W mit cT w > 0, so sind die Zielfunktionswerte nach oben unbeschränkt ( ∞“). ” (2) Gilt cT w ≤ 0 für alle w ∈ cone W und ist V 6= ∅, dann ist max cT x = max cT v < ∞. x∈P v∈V Beweis von (2): Es gilt unter den angenommenen Umständen max cT x = x∈P max v∈conv V cT x. P Sei V = {v1 , . . . , vk } und v = Pki=1 µi vi ∈ cone V ein beliebiges Element. Dann finden wir wegen µi ≥ 0 und i µ = 1: cT v = k X i=1 µi cT vi ≤ ( max cT vj ) · j=1,...,k k X i=1 µi = max cT vj . vj ∈V Diese Beobachtungen zeigen, dass das lineare Optimierungsproblem in der Theorie darauf reduziert werden kann: (i) Stelle fest, ob die Ungleichungsrelation cT w ≤ 0 für alle w ∈ W gilt (d.h. ob c ∈ P (W T , 0) = W ◦ zutrifft); (ii) Wenn ja, löse das Problem maxv∈V cT v. 28 2. POLYEDER UND POLYTOPE Die Frage ist deshalb, in wieweit diese Theorie in praktische Rechnung umgesetzt werden kann. 3. Rezessionskegel und polyedrische Kegel Wir nehmen P = conv V + cone W mit endlichen Mengen V und W 6= ∅ an. Dann heisst der konvexe Kegel P0 = cone W der Rezessionskegel des Polyeders P = conv V + cone W . P0 hängt nur von P ab. L EMMA 2.3. Seien A ∈ Rm×n und b ∈ Rm so, dass P (A, b) = conv V +cone W und W 6= ∅. Dann gilt cone W = P (A, 0). Beweis. Sei p = v + w mit v ∈ conv V und w ∈ cone W ein beliebiger Punkt in P . Wegen v + λw ∈ cone W für alle λ, finden wir lim λ(Aw) = lim A(λw) ≤ b − Av λ→∞ λ→∞ und folglich Aw ≤ 0 bzw. cone W ⊆ P (A, 0), was sofort die Darstellung P = conv V + cone W = conv V + P (A, 0) impliziert. Denn wir haben für alle v ∈ conv V und z ∈ P (A, 0): A(v + z) = Av + Az ≤ b + 0 = b. Ausserdem hatten wir für beliebige Koordinatenvektoren c festgestellt: c ∈ (cone W )◦ ⇐⇒ (9) besitzt Optimallösung ⇐⇒ c ∈ P (A, 0)◦ . Also folgt (cone W )◦ = P (A, 0)◦ und daraus cone W = P (A, 0). 4. Polytope Per Definition ist ein Polytop ein beschränktes Polyeder, d.h. ein Polyeder P derart, dass ein R > 0 existiert mit der Eigenschaft kxk ≤ R für alle x ∈ P . M.a.W.: die Polytope sind genau die kompakten Polyeder. Dabei lassen wir P = ∅ als leeres Polytop zu. Nach Weyl-Minkowski ist eine Menge P ⊆ Rn genau dann ein Polytop, wenn eine endliche Menge V ⊆ Rn existiert mit P = conv V. L EMMA 2.4. P (A, b) ist genau dann ein Polytop, wenn P (A, 0) = {0}. 4. POLYTOPE 29 4.1. Lineare Optimierung und Polytope. Wir betrachten lineare Zielfunktionen f (x) = cT x über einem Polytop. Wir wissen: P = conv V max cT x = max cT v. =⇒ x∈P v∈V Diese Eigenschaft gilt aber auch umgekehrt. L EMMA 2.5. Sei P ⊆ Rn ein Polytop und V ⊆ P eine endliche Teilmenge. Dann gilt P = conv V ⇐⇒ max cT x = max cT v für alle c ∈ Rn . x∈P v∈V Beweis. Es ist noch zu beweisen, dass die Eigenschaft hinreichend für P = conv V ist. Angenommen, es gäbe ein y ∈ P \ conv V , dann gäbe es nach dem Trennungslemma auch ein c mit der Eigenschaft cT y > max{cT x | x ∈ conv V }, was die Bedingung verletzen würde. L EMMA 2.6. Sei V ⊆ Rn endlich und v0 ∈ V so, dass v ∈ / conv (V \ {v0 }). Dann ist v0 eine Ecke (Extrempunkt) des Polytops P = conv V . Beweis. Sei S = conv (V \ {v0 }). Im Fall v0 ∈ / S existieren v1 ∈ S und c ∈ Rn so, dass cT v > cT v1 ≥ cT x für alle x ∈ S. Sei z = cT v1 . Dann ist z Optimalwert des Problems max cT x = x∈S max v∈V \{v0 } cT v. Andererseits gilt z < cT v0 ≤ max cT x = max cT v =: z ∗ x∈P v∈V d.h. z ∗ = cT v0 . Wir betrachten schliesslich einen beliebigen Punkt X X x= λv v ∈ P (= conv V ) (λv ≥ 0, λv = 1). v∈V v∈V Im Fall cT x = z ∗ finden wir nun z ∗ = cT x = λv0 cT v0 + X λv v ≤ λv0 z ∗ + (1 − λv0 )z. v6=v0 Wegen z < z∗ folgt daraus λv0 = 1 und deshalb x = v0 . Also haben wir P ∩ {x ∈ Rn | cT x = z ∗ } = {v0 } d.h. v0 ist Ecke von P . S ATZ 2.2. Jedes nichtleere Polytop P ist die konvexe Hülle seiner Ecken. 30 2. POLYEDER UND POLYTOPE Beweis. Sei V eine minimale Erzeugendenmenge mit P = conv V . Dann gilt v∈ / conv (V \ {v} für alle v ∈ V . Denn sonst hätte man P = conv (V \ {v} – im Widerspruch zu der Minimalität von V . Also besteht V nur aus Ecken von P . N OTA B ENE . Der eben bewiesene Satz garantiert insbesondere, dass jedes nichtleere Polytop auch Ecken hat. Dies ist nicht selbstverständlich! Sehr viele Polyeder haben keine Ecken. 4.2. Diskrete Optimierung und Polytope. Ein Grundproblem der diskreten Optimierung kann so formuliert werden. Gegeben ist eine Grundmenge E und eine Gewichtsfunktion w : E → R. Ausserdem sei eine Familie F ⊆ 2E von Teilmengen spezifiert. Man hat nun die Aufgabe X w(e). (10) max F ∈F e∈F Der Teilmengenfamilie F ⊆ 2E ordnet man folgendermassen ein Polytop zu. Man repräsentiert jedes F ∈ F durch seinen Inzidenzvektor χF ∈ RE , wobei 1 wenn e ∈ F χF (e) = 0 wenn e ∈ / F. und definiert nun P(F) = conv {χF | F ∈ F} ⊆ RE . Das diskrete Optimierungsproblem (10) wird nun zu dem Problem, die lineare Funktion mit den Koeffizienten we = w(e) über dem Polytop P(F) zu maximieren: X X X max we xe = max we χF (e) = max w(e). x∈P(F ) e∈E F ∈F e∈E F ∈F e∈F 4.2.1. Das Zuordnungs- und Heiratsproblem. Wir gehen von endlichen und gleichmächtigen Mengen S und T (d.h. |S| = |T |) aus und betrachten die Menge aller Paare S × T = {(s, t) | s ∈ S, t ∈ T } Eine Zuordnung (bzw. ein perfektes Matching) ist eine bijektive Abbildung π : S → T . Wir stellen uns die Zuordnung als Menge von Paaren vor: M = M (π) = {(s, π(s)) | s ∈ S} ⊆ S × T. M sei die Menge aller Zuordnungen. Das Zuordnungsproblem bzgl. der Gewichtsfunktion w : S × T → R ist nun: X max w(s, t) M ∈M (s,t))∈M Im Spezialfall w : S × T → {0, 1} spricht man auch vom Heiratsproblem. Das Zuordnungspolytop P(M) ist von der Menge M aller Zuordnungen erzeugt. Wir suchen eine implizite Beschreiben, d.h. ein System linearer Ungleichungen dessen Lösungen x gerade die Punkte in P(M) sind. 4. POLYTOPE 31 Sei x ∈ P(M). Wir bezeichnen die Komponenten von x mit xst . Welche Ungleichungen muss x erfüllen? Ist x der Inzidenzvektor eines perfekten Matchings, dann gilt sicherlich: (M0) P xs,t ≥ 0 für alle (s, t) ∈ S × T . (M1) Ps∈S xst = 1 für alle s ∈ S. (M2) t∈T xst = 1 für alle t ∈ T . Diese Ungleichungen gelten natürlich auch für alle Konvexkombinationen von Zuordnungen und deshalb für alle x ∈ P(M). Es stellt sich heraus, dass sie P(M) schon vollständig bestimmen! L EMMA 2.7. P(M) = {x ∈ RS×T | x erfüllt (M0)-((M2)}. Das Lemma wird hier nicht bewiesen, da es aus sich später als Folgerung aus einem allgemeinen Optimierungsalgorithmus für sog. Flüsse in Netzwerken ergeben wird. B EMERKUNG. Man bemerke, dass es |S|! viele Zuordnungen gibt und diese alle Ecken von P(M) sind. Zur Beschreibung von P(M) genügen aber schon 2|S| Gleichungen und |S| Ungleichungen. 4.2.2. Das Rundreiseproblem. Wir gehen von einer endlichen Menge S aus und betrachten die Menge E = S × S. Eine Rundreise (oder aus TSP-Tour) ist eine Anordnung der Elemente von S: τ = s0 s1 . . . , sn s0 , bei der ausser s0 kein Element zweimal auftritt. Wieder stellen wir τ als Menge von Paaren dar: T = T (τ ) = {(s0 , s1 ), . . . , (sn , s0 )} Gegeben eine Distanzfunktion d : S × S → R+ , definiert man die Länge von T als X d(T ) = d(s, t). (s,t)∈T Sei T die Menge aller Rundreisen. Das Rundreiseproblem (TSP-Problem) ist X min d(T ) ←→ max −d(s, t). T ∈T T ∈T (s,t)∈T Auch hier kann man natürlich das entsprechende Rundreisepolyeder P(T ) definieren, dessen Struktur allerdings zum grossen Teil noch ungeklärt ist. Obwohl sehr viele Klassen von gültigen Ungleichungen für P(T ) bekannt sind, ist eine vollständige Beschreibung eines der grossen gegenwärtigen offenen Probleme der Berechenbarkeitstheorie der theoretischen Informatik. 32 2. POLYEDER UND POLYTOPE 5. Facetten und Basislösungen 5.1. Facetten. Unter einer Facette eine Polyeders P 6= ∅ versteht man eine Seitenfläche F ⊆ P der Dimension dim F = dim P − 1. S ATZ 2.3. Sei F eine echte Seitenfläche des Polyeders P = P (A, b). Dann ist F ein Durchschnitt von Facetten von P . Sei m = dim P . Dann existiert eine Teilmatrix A0 von A so, dass m = n − rg AP und AP x = bP für alle x ∈ P . OBdA nehmen wir an, dass die Zeilen von A0 linear unabhänging sind. Ausserem existiert eine Teilmatrix AF so dass F = {x ∈ P | AF x = bF } und dim F = n − rg AF . Auch sei oBdA angenommen, dass die Zeilen von AF linear unabhängig sind. Ausserdem können wir annehmen, dass AP eine Teilmatrix von AF ist, da jedes x ∈ F auch die Gleichung AP x = bP erfüllt. Sei nun aTi x ≤ bi eine beliebige Ungleichung, die in AF x ≤ bF auftritt, aber nicht AP x ≤ bP . Aufgrund der linearen Unabhängingkeit der Zeilen ist aTi x ≤ bi nicht von AP x = bP impliziert. Also schliessen wir: Fi = {x ∈ P | Ap x = bP , aTi x = bi } = 6 P d.h. Fi ist echte Seitenfläche. Wegen AP rg = rg Ap + 1 d.h. dim Fi = dim P − 1 aTi erkennen wir Fi als Facette. Offenbar ist F gerade der Durchschnitt aller solcher Facetten Fi (bzw. Lösungsmenge der Gesamtheit der entsprechenden Gleichungen). Anwendung auf Polytope. Polytope haben Ecken und folglich Seitenflächen aller Dimensionen d mit −1 ≤ d ≤ dim P , wie der Beweis des vorigen Satzes zeigt. Zusammen mit AP x = bP implizieren die Facettenungleichungen des Polytops P (A, b) jede andere Ungleichung aT x ≤ b in Ax ≤ b. Um das zu sehen betrachten wir z = max aT x ≤ b. x∈P aT x Dann ist Fa = {x ∈ P | = z} eine Seitenfläche und deshalb Durchschnitt von Facetten. Also implizieren die Facettenungleichungen aT x ≤ z ≤ b. Das bedeutet: 6. RATIONALE POLYEDER 33 • Im Prinzip reicht das System AP x = bP zusammen mit den Facettenungleichungen völlig aus, um P (A, b) eindeutig zu beschreiben. 5.2. Basislösungen. Wir betrachten ein Polyeder, das sich als die Menge alles nichtnegativen Lösungen eines linearen Gleichungssystems ergibt: P = {x ∈ Rn | Ax = b, x ≥ 0} . P ist also Lösungsraum des linearen (Un-)Gleichungssystems: Ax = b −Ix ≤ 0. Sei r = rg A. Genau dann ist ein Punkt v ≥ 0 eine Ecke von P , wenn es eine Menge N von |N | = n − r Indizes j gibt derart, dass v eindeutige Lösung des folgenden Systems ist: Ax = b eTj x = 0 (für alle j ∈ N ). Äquivalent dazu ist: (i) vj = 0 für alle j ∈ N ; (ii) Die Teilmatrix B der r Spalten A·j mit Index j ∈ N bildet eine SpaltenBasis von A (iii) BvB = b. Folglich: Ecke von P ←→ L EMMA 2.8. P hat höchstens nichtnegative Basislösung von Ax = b n r Ecken. 6. Rationale Polyeder Ein Polyeder P ⊆ Rn heisst rational, wenn P mit rationalen Parametern präsentiert werden kann. Das ist auf zwei Arten möglich: Implizit : Angabe einer Matrix A ∈ Qm×n und eines Vektors b ∈ Qm so, dass P = P (A, b) Explizit : Angabe von endlichen Mengen von Vektoren V, W ⊆ Qn so, dass P = conv V + cone W. Wir haben gesehen, dass alle Rechnungen (insbesondere Umrechnungen von Darstellungen) bei Polyedern im Prinzip mit dem Fourier-Motzkinschen Verfahren möglich sind. Das beruht nur auf den folgeden Operationen: • Multipikation mit einem positiven Skalar; • (Komponentenweise) Addition von Vektoren. Diese Operationen führen nie aus dem Skalarbereich Q heraus. Kurz gesagt: Sämtliche Kenngrössen rationaler Polyeder sind rational KAPITEL 3 Konvexe Funktionen Sei F ⊆ Rn ein Definitionsbereich und f : F → R eine Funktion. Unter dem Epigraphen von f versteht man die Menge epif = {(x, z) ∈ Rn+1 | x ∈ F, z ∈ R, z ≥ f (x)}. Man nennt f konvex, wenn der Epigraph epif eine konvexe Menge in Rn+1 darstellt. L EMMA 3.1. f : F → R ist konvex genau dann, wenn gilt (i) F ist konvex; (ii) für alle x, y ∈ F und 0 < λ < 1: f [x + λ(y − x)] ≤ f (x) + λ[f (y) − f (x)]. Beweis. Seien (x, z) und (y, w) Punkte im Epigraphen von f . Konvexität ist gleichbedeutend mit der Eigenschaft (x, z) + (λ(y − x), λ(w − z)) ∈ epif (0 < λ < 1). Nach Komponenten aufgeschlüsselt bedeutet dies, dass x + λ(y − x) ∈ F und somit (i) erfüllt sein muss. Ausserdem müssen wir haben: f [x + λ(y − x)] ≤ z + λ(w − z) = (1 − λ)z + λw. Die Wahl z = f (x) und w = f (y) ergibt die Notwendigkeit von (ii). Offensichtlich ist (ii) zusammen mit (i) aber auch hinreichend. Lemma 3.1 zeigt, dass Konvexität von Funktionen im Grunde eine eindimensio” nale“ Eigenschaft ist: f ist konvex genau dann wenn die Richtungsfunktionen t 7→ fh (t) = f (x + th) t ∈ R so, dass x + th ∈ F in beliebige Richtungen h ∈ Rn und in beliebigen Punkten x in der Variablen t konvex sind. 1. Differenzierbare konvexe Funktionen Wir betrachten zuerst den eindimensionalen Fall. L EMMA 3.2. Sei f : (a, b) → R differenzierbar. Genau dann ist f konvex, wenn die Ableitung f 0 (x) auf (a, b) monoton wächst. 35 36 3. KONVEXE FUNKTIONEN Beweis. Sei x < y. Wir betrachten z(λ) = x + λ(y − x). Dann finden wir f (z(λ)) − f (x) λ[f (y) − f (x)] f (y) − f (x) ≤ lim = d.h. λ→0 λ→0 λ(y − x) λ(y − x) y−x f (y) − f (x) f 0 (y) = lim ≥ f 0 (x) . x→y y−x Die Bedingung ist also notwendig. Wir zeigen nun, dass sie auch hinreicht, und nehmen oBdA x < y an. Nach dem Zwischenwertsatz existiert dann ein x < ξ < y mit f (y) − f (x) f 0 (x) ≤ f 0 (ξ) = d.h. f (y) ≥ f (x) + f 0 (x)(y − y). y−x Sei nun z = x + λ(y − x). Dann ergibt sich auf die gleiche Weise f 0 (x) = lim f (x) ≥ f (z) + f 0 (z)(x − z) f (y) ≥ f (z) + f 0 (z)(y − z) und daraus f (x) + λ[f (y) − f (x)] = (1 − λ)f (x) + λf (y) ≥ f (z) + f 0 (z) · 0 = f (z). Betrachten wir nun den allgemeinen Fall F ⊆ Rn und eine bei jedem x ∈ F differenzierbaren Funktion f : F → R. Dann erhalten wir nach der Kettenregel für die Richtung h und die Funktion fh (t) = f (x + th): n X ∂f (x) 0 hj . fh (0) = ∇f (x)h = ∂xj j=1 Ist f konvex, so zeigt der obige Beweis: fh (t) ≥ fh (0) + fh0 (0)(t − 0) = fh (0) + fh0 (0)t. Die Wahl h = y − x und t = 1 ergibt somit die charakteristische Eigenschaft differenzierbarer konvexer Funktionen f : F → R: (11) f (y) ≥ f (x) + ∇f (x)(y − x) für alle x, y ∈ F 1.1. Quadratische Funktionen. Eine Funktion f : Rn → R der Form n n n X 1 T 1 XX T qij xi xj − cj xj . f (x) = x Qx − c x = 2 2 i=1 j=1 Rn×n j=1 mit einer symmetrischen Matrix Q = [qij ] ∈ und c ∈ Rn heisst quadratisch. f (x) hat den Gradienten ∇f (x) = xT Q − cT . Nach der Kettenregel ergibt sich für die Richtungsfunktion ph (t) = f (x + th) die Ableitung p0h (t) = ∇f (x + th)h = xT Qh − cT h + thT Qh. Also ist p0h (t) monoton wachsend, wenn hT Qh ≥ 0 gilt. 2. MINIMIERUNG KONVEXER FUNKTIONEN 37 Die Matrix Q heisst positiv semidefinit, wenn für alle h ∈ Rn gilt: T h Qh = n X n X qij hi hj ≥ 0. i=1 j=1 Also erhalten wir mit dieser Terminologie: P ROPOSITION 3.1. Die quadratische Funktion f (x) = dann konvex, wenn Q positiv semidefinit ist. 1 T 2 x Qx − cT ist genau Trivialerweise ist die Nullmatrix Q = 0 positiv semidefinit. Also finden wir: KOROLLAR 3.1. Jede lineare Funktion ist konvex. B EMERKUNG. Die Konvexität linearer Funktionen kann man natürlich viel einfacher auch direkt beweisen . . . 2. Minimierung konvexer Funktionen Wir betrachten bzgl. der differenzierbaren konvexen Funktion f : F → R das Problem min f (x). x∈F B EMERKUNG. Das Maximierungsproblem ist für allgemeine konvexe Funktionen sehr viel schwerer zu lösen! Wir beschränken uns deshalb auf das Minimierungsproblem. 2.1. Notwendige und hinreichende Optimalitätsbedingungen. Welche Bedingungen muss der Punkt x ∈ F erfüllen, damit er als Minimum in frage kommt? Sei x + h ∈ F und ph (t) = f (x + th). Dann gilt notwendigerweise (12) n X ∂f (x) j=1 ∂xj hj = ∇f (x)h = p0h (0) = lim t→0+ f (x + th) − f (x) ≥0 t Diese Bedingung ist aber auch hinreichend dafür, dass x ein Minimum ist. Denn für jedes andere y ∈ F gilt dann (mit h = y − x) wegen der Konvexität von f : f (y) ≥ f (x) + ∇f (x)h ≥ f (x). Also finden wir: S ATZ 3.1. x ∈ F minimiert die differenzierbare konvexe Funktion f : F → R genau dann, wenn x die Bedingung (12) erfüllt. 38 3. KONVEXE FUNKTIONEN 2.2. Minimierung über Teilräumen. Sei f : F → R konvex und differenzierbar und F = {x ∈ Rn | Ax = b} (A ∈ Rm×n , b ∈ Rm ) ein affiner Teilraum von Rn . Dann gilt für jedes x ∈ F und h ∈ Rn : x+h∈F ⇐⇒ x−h∈F ⇐⇒ h ∈ ker A. Der Punkt x ∈ F minimiert also f genau dann, wenn n X ∂f (x) (13) ∇f (x)h = hj = 0 für alle h ∈ ker A. ∂xj j=1 Die Bedingung (13) besagt, dass ∇f (x) orthogonal zu ker A bzw. dass ∇f (x) im Zeilenraum von A liegt (d.h. eine Linearkombination der Zeilenvektoren aTi von A ist). Als zu (13) äquivalent erhalten wir folglich die Optimalitätsbedingung: m X (14) ∇f (x) = yT A = yi aTi i=1 für einen geeigneten Vektor yT = [y1 , . . . , ym ]. Im Fall einer über F zu minimierenden quadratischen konvexen Funktion der Form f (x) = 12 xT Qx−cT x hat man wegen ∇f (x) = xT Q−cT somit nur das (lineare) Gleichungssystem Qx − AT y = c Ax = b zu lösen. 2.2.1. Projektionen auf (affine) Teilräume. Unter der Projektion eines gegebenen Vektors p ∈ Rn auf den Teilraum F = {x ∈ Rn | Ax = b} versteht man einen Vektor p̂, der den (euklidischen) Abstand zu F minimiert: kp − p̂k2 = min kp − xk2 . x∈F Wegen kp − xk2 = (p − x)T (p − x) = pT p − 2pT x + xT x reduziert sich die Berechnung von p̂ auf das konvexe Minimierungsproblem: 1 min f (x) = xT x − pT x s.d. Ax = b. 2 Also finden wir p̂ als Lösung von x − AT y = p Ax = b Einsetzen von x = p + AT y führt auf das Gleichungssystem Ap + AAT y = b bzw. Ay = b mit A = AAT , b = b − Ap. 2. MINIMIERUNG KONVEXER FUNKTIONEN 39 2.2.2. Das Regressionsproblem. Die Aufgabe besteht darin, die beste“ Lösung ” des linearen Gleichungssystems Ax = b zu bestimmen. Das soll heissen, wir suchen ein x ∈ Rn derart, dass der Abstand kb − Axk so klein wie möglich ist: min kb − Axk2 = bT b − 2bT Ax + xT AT Ax. x∈Rn Setzen wir cT = bT A und Q = AT A, dann ist das Problem äquivalent mit 1 min f (x) = xT Qx − cT x. 2 x∈Rn Q = AT A ist positiv semidefinit und folglich f konvex. Also finden wir: • x ∈ Rn löst das Regressionsproblem genau dann, wenn gilt: Qx = c bzw. AT Ax = AT b. Das Regressionsproblem reduziert sich also auf das Lösen des linearen Gleichungssystems Qx = c. E X . 3.1 (Interpolation). Wir gehen von einer (unbekannten) Funktion f : R → R aus, deren Werte yi = f (ti ) wir bei den Stützstellen t1 , . . . , tn festgestellt haben. Wir suchen eine Linearkombination n X ˆ f (t) = aj fj (t) j=1 von gegebenen Funktionen f1 (t), . . . , fm (t), die f an den Stützstellen bestmöglich interpoliert. Also suchen wir die beste Lösung (in den Unbekannten a1 , . . . , an ) des linearen Gleichungssystems a1 f1 (t1 ) a1 f1 (t2 ) .. . + + a2 f2 (t1 ) a2 f2 (t2 ) .. . + ... + + ... + an fn (t1 ) an fn (t2 ) .. . = = y1 y2 .. . a1 f1 (tm ) + a2 f2 (tm ) + . . . + an fn (tm ) = ym Wählt man beim Interpolationsproblem {f1 (t), f2 (t)} = {1, t} so spricht man auch von linearer Regression und nennt fˆ(t) = a1 + a2 t die Regressionsgerade. Im Fall {f1 (t), f1 (t), f2 (t)} = {1, t, t2 } erhält man das quadratische Regressionspolynom fˆ(t) = a1 + a2 t + a3 t2 . 40 3. KONVEXE FUNKTIONEN 2.3. Lagrange-Dualität. Ein allgemeines mathematisches Optimierungsproblem hat die Form (15) min f (x) s.d. x∈Rn gi (x) ≤ 0 (i ∈ I). Dabei ist I ein Indexbereicht und f, gi : Rn → R Funktionen, die wir als konvex und differenzierbar annehmen. Wir nehmen weiter I = {1, . . . , n} an. Wir haben also ein konvexes Minimierungsproblem über dem Zulässigkeitsbereich F = {x ∈ Rn | gi (x) ≤ 0, i ∈ I} vorliegen. Die zugeordnete Lagrange-Funktion ist definiert als L(x, y) = f (x) + m X yi gi (x) = f (x) + yT g(x). i=1 Lagrange fasst das Minimierungsproblem als ein Spiel mit zwei Spielern auf: Der erste will L(x, y) minimieren und darf x wählen. Der zweite will L(x, y) maximieren und darf die sog. Lagrange-Multiplikatoren yi ≥ 0 festlegen. Der erste Spieler betrachtet also die Funktion L1 (x) = max L(x, y) y≥0 und sucht ein x ∈ Rn mit der Eigenschaft (16) L1 (x) = minn L1 (x) = min maxn L(x, y). y≥0 x∈R x∈R Der zweite Spieler betrachtet die Funktion L2 (y) = minn L(x, y) x∈R und sucht ein y ≥ 0 mit der Eigenschaft (17) L2 (y) = max L2 (y) = max minn L(x, y). y≥0 y≥0 x∈R 2.3.1. Das primale Problem. Wir beobachten m X f (x) wenn x ∈ F L1 (x) = max f (x) + yi gi (x) = +∞ wenn x ∈ / F. y≥0 i=1 Also wird der erste Spieler sein x in F wählen. Das Problem (16) ist somit äquivalent zum Ausgangsproblem: min L1 (x) = min f (x). x∈Rn x∈F 2. MINIMIERUNG KONVEXER FUNKTIONEN 41 2.3.2. Das duale Problem. Zu einem gegebenen y ≥ 0 stellte die Berechnung von L2 (y) eine konvexes Minimierungsproblem dar. Also gilt die Gleichheit L2 (y) = L(x, y) genau dann, wenn x ∈ Rn die Optimalitätsbedingung ∇x L(x, y) = ∇f (x) + (18) m X yi ∇gi (x) = 0T . i=1 erfüllt. Für den zweiten Spieler stellt sich damit das duale Problem (19) max f (x) + y≥0 m X yi gi (x) s.d. ∇f (x) + i=1 m X yi ∇gi (x) = 0T . i=1 L INEARE P ROGRAMME . Wir betrachten als Beispiel das lineare Programmierproblem max cT x s.d. aTi x ≤ bi (i = 1, . . . , m) als primales Problem. Sei f (x) = −cT x und gi (x) = aTi x − bi . Fassen wir die Zeilenvektoren aTi in der Matrix A zusammen, lautet das duale Problem max −cT x + yT (Ax − b) s.d. y≥0 − c T + y T A = 0T . Einsetzen von yT A = cT in die duale Zielfunktion ergibt somit die folgende Form des dualen Problems: max (−bT y) s.d. AT y = c, y ≥ 0. Dieses ist äquivalent zu dem sog. dualen linearen Programm (20) min bT y s.d. AT y = c, y ≥ 0 2.3.3. Schwache Dualität. Sei x eine zulässige (aber nicht notwendig optimale) Lösung des primalen und y ≥ 0 eine zulässige (aber nicht notwendig optimale) Lösung des dualen Lagrangeproblems, d.h. ∇f (x) + m X yi ∇gi (x) = 0T . i=1 Dann gilt natürlich für die entsprechenden Zielfunktionswerte (21) L1 (x) = f (x) ≥ f (x) + m X yi gi (x) = L2 (y). i=1 Dies ist als das Phänomen der schwachen Dualität bekannt. 42 3. KONVEXE FUNKTIONEN E X . 3.2. Im Fall des linearen Programms max cT x s.d. Ax ≤ b mit der zu minimierenden Zielfunktion f (x) = −cT x ergibt die schwache Dualität wegen cT = yT A: f (x) = −cT x ≥ −cT x + yT (Ax − b) = −yT b bzw. cT x ≤ bT y 2.3.4. Die KKT-Bedingungen. Fassen wir die primalen und dualen Restriktionen aus dem Lagrange-Ansatz zusammen, so suchen wir einen Punkt x ∈ Rn zu dem ein y ≥ 0 existiert mit den Eigenschaften ∇f (x) + m X yi ∇gi (x) = 0T i=1 m X (22) yi gi (x) = 0 ≤ ≥ 0 0 i=1 gi (x) y (i = 1, . . . , m) Ein solches x heisst Karush-Kuhn-Tucker-Punkt (KKT-Punkt) bzgl. des Optimierungsproblems min f (x) s.d. gi (x) ≤ 0 (i = 1, . . . , m) und (22) sind die sog. KKT-Bedingungen. P ROPOSITION 3.2. Sei x∗ ein KKT-Punkt mit zugehörigem y∗ ≥ 0. Dann ist x∗ eine Optimallösung des konvexen Minimierungsproblems (15). Beweis. x∗ erfüllt alle Restriktionen gi (x∗ ) ≤ 0 und minimiert die konvexe Funktion n X L(x, y∗ ) = f (x) + yi∗ gi (x) ≤ f (x) (wegen y∗ ≥ 0). i=1 Aus (y∗ )T g(x∗ ) = 0 folgt f (x∗ ) = L(x∗ , y∗ ). D.h. f (x∗ ) ist minimal. B EMERKUNG. Die KKT-Bedingungen sind bei allgemeinen (nicht-konvexen) mathematischen Optimierungsproblemen weder hinreichend noch notwendig für Optimalität. 2. MINIMIERUNG KONVEXER FUNKTIONEN 43 2.4. Lineare Nebenbedingungen. Wir betrachten hier den Fall linearer (eigentlich: affiner) Restriktionsfunktionen gi (x) = aTi x−bi , sodass die Nebenbedingungen in kompakter Matrixschreibweise die Form Ax ≤ b haben. Der Zulässigkeitsbereich ist das Polyeder F = P (A, b) = {x ∈ Rn | aTi x ≤ bi , i = 1, . . . , m}. Sei x ∈ F. Um Optimallösung zu sein, muss gelten ∇f (x)h ≥ 0 wenn x + h ∈ F, d.h. aTi x + aTi h ≤ bi (i = 1, . . . , m). Sei J(x) die Menge der Indizes i mit aTi x = bi . Dann muss also die Implikation AJ(x) h = 0 =⇒ −∇f (x)h ≤ 0 erfüllt sein. Folglich (nach dem Farkas-Lemma) muss −∇f (x) eine nichtnegative Linearkombination der Zeilen von AJ(x) sein. Mit anderen Worten: Es existiert ein y ≥ 0 so, dass n X −∇f (x) = yi aTi . i∈J(x) OBdA können im Fall i ∈ / J(x) die Gleichheit yi = 0 voraussetzen. Dann ergibt sich auch m X yT (Ax − b) = yi (aTi x − bi ) = 0. i=1 Damit sind notwendigerweise die KKT-Bedingungen unter linearen Restriktionen erfüllt: ∇f (x) + yT A = 0 T y (Ax − b) = 0 Ax ≤ b y ≥ 0 Wir finden: S ATZ 3.2. Die KKT-Bedingungen sind hinreichend und notwendig dafür, dass x∗ eine Optimallösung eines konvexen Optimierungsproblems folgender Form ist: min f (x) s.d. x∈Rn Ax ≤ b. 2.4.1. Lineare Programme. Man beachte: Ist f (x) nicht linear, dann ergeben die KKT-Bedingungen (selbst bei linearen Restriktionen) ein nichtlineares(!) Ungleichungssystem. Im Fall des linearen Programms max cT x s.d. Ax ≤ b 44 3. KONVEXE FUNKTIONEN ergeben die KKT-Bedingungen jedoch das lineare Ungleichungssystem cT x Ax AT y = c − bT y = 0 ≤ b y ≥ 0 2.4.2. Starke Dualität. Wir betrachten das primal-duale Paar linearer Programme max cT x min bT y s.d. s.d. Ax ≤ b AT y = c, y ≥ 0. Die schwache Dualtität besagt für beliebige jeweils zulässige Lösungen x und y: cT x ≤ bT y. Im Fall von Gleichheit müssen folglich beide Lösungen optimal sein. Die KKTBedingungen garantieren bei einer optimalen Lösung x∗ ein dual zulässiges y∗ mit cT x∗ = bT y∗ . Also schliessen wir S ATZ 3.3 (Starke Dualität). Genau dann ist die primal zulässige Lösung x optimal, wenn es eine dual zulässige Lösung y gibt mit der Eigenschaft cT x = bT y. In diesem Fall ist y notwendigerweise dual optimal. 3. Newtons Methode und die Methode innerer Punkte Die Berechnung von Koordinatenvektoren, welche die KKT-Bedingungen erfüllen, erfordert die Berechnung von nichtnegativen Lösungen gewisser (meist) nichtlinearer Gleichungssysteme, die wir in der allgemeinen Form F (x) = 0, x ≥ 0 notieren. Dabei ist F : Rn → Rm eine Funktion, die aus m Koordinatenfunktionen fi : Rn → R zusammengesetzt ist: f1 (x) F (x) = ... ∈ Rm . fm (x) Die exakte Lösung einer nichtlinearen Gleichung ist im allgemeinen sehr schwer. Oft genügt aber schon eine hinreichend gute“ approximative Lösung. ” 3. NEWTONS METHODE UND DIE METHODE INNERER PUNKTE 45 3.1. Newtons Methode. Zur approximativen Lösung der Gleichung F (x) = 0 geht Newtons Methode iterativ vor. Man beginnt mit einem x0 ∈ Rn und berechnet dann iterativ x1 , . . . , xk , . . .. Man stoppt im Fall F (xk ) ≈ 0. Ansonsten sucht man sich eine lineare Approximation von F bei xk , d.h. eine Matrix Ak derart, dass F (xk + h) ≈ F (xk ) + Ak h (wenn khk hinreichend klein), und berechnet eine Lösung hk des linearen(!) Gleichungssystems Ak h = −F (xk ). Nun setzt man xk+1 = xk + hk usw. B EMERKUNG. Wenn F differenzierbar ist, wählt man gerne die Jacobimatrix, die als Zeilen gerade die m Gradienten ∇fi (xk ) besitzt: ∂fi (xk ) Ak = ∇(xk ) = ∈ Rm×n ∂xj E X . 3.3. Wir suchen eine Lösung der Gleichung f (x) = x2 − 2 = 0. Man beginnt mit einem x0 . Ist xk schon berechnet, wählt man z.B. Ak = f 0 (xk ) und erhält −x2k + 2 −f (xk ) f 0 (xk )h = −f (xk ) d.h. hk = 0 = f (xk ) 2xk und somit xk 1 xk+1 = xk + hk = + . 2 xk B EMERKUNG. Im allgemeinen hat man keine Garantie, dass das Newtonverfahren tatsächlich zu einer zulässigen Lösung der Ausgangsgleichung konvergiert. 3.2. Die Methode der inneren Punkte. Wir wollen ein KKT-Punkt für das lineare Programm max cT x s.d. Ax ≤ b (A ∈ Rm×n , b ∈ Rm ) bestimmen. Setzen wir s = b − Ax, dann sind die KKT-Bedinungen (23) Ax + si yi s AT y s, y = = = ≥ µ (i = 1, . . . , m) b c 0 mit µ = 0 gegeben. Wir relaxieren nun, indem wir einen Parameter µ > 0 wählen und das resultierende System mit einem Newtonverfahren zu lösen versuchen. In 46 3. KONVEXE FUNKTIONEN diesem Fall müssen wir immer si > 0 und yi > 0 (d.h. s, y > 0) sicherstellen. Deshalb spricht man von inneren Punkten“ (des positiven Quadranten von Rm ). ” L EMMA 3.3. Sei (xµ , yµ , sµ ) eine Lösung des Systems (24) zu µ > 0. Dann ist xµ eine zulässige Lösung des linearen Programms. Und für jede andere zulässige Lösung x gilt cT xµ ≥ cT x − ε (mit ε ≤ mµ). Beweis. Aus der schwachen Dualität folgt cT x ≤ bT yµ = (Axµ + sµ )T yµ = (xµ )AT yµ + sµ yµ = cT xµ + mµ. Im Fall µ → 0 sind die linearen Programms. xµ also annähernd optimale Lösungen des ursprünglichen Um (24) mit einem Newtonansatz zu lösen, gehen wir davon aus, dass wir Vektoren y > 0 und x schon zur Verfügung haben mit der Eigenschaft c = AT y und s = b − Ax > 0. Wir suchen dann ∆x, ∆y, ∆s so, dass (24) (si + ∆si )(yi + ∆yi ) A(x + ∆x) + (s + ∆s) AT (y + ∆y) s + ∆s, y + ∆y = = = ≥ µ (i = 1, . . . , m) b c 0 Nach unseren Annahmen über x und y reduziert sich diese Aufgabe auf das Lösen von si ∆yi + yi ∆si + ∆si ∆yi = µ − si yi (i = 1, . . . , m) A∆x + ∆s = 0 (25) T A ∆y = 0 s + ∆s, y + ∆y ≥ 0 Das letztere System relaxieren wir nun zu dem linearen Gleichungssystem (26) si ∆yi + yi ∆si = µ − si yi (i = 1, . . . , m) A∆x + ∆s = 0 T A ∆y = 0 Mit dessen Lösung datiert man auf: x+ = x + ∆x, y+ = y + ∆y, s+ = ∆s und verfährt nun wie zuvor mit x+ und y+ anstelle von x und y (wobei man in jeder Iteration auch den Parameter µ reduziert), bis man eine hinreichend gute Lösung x des Ausgangsproblems gefunden hat. Man kann zeigen, dass dieses Verfahren funktioniert und (sehr schnell!) gegen eine optimale Lösung des Ausgansproblems konvergiert. KAPITEL 4 Die Simplexmethode Unter einem linearen Programm (LP) versteht man ein Optimierungsproblem, das in der folgenden Form präsentiert werden kann: (27) max cT x s.d Ax ≤ b. Dabei sind c ∈ Rn , A = [aij ] ∈ Rm×n und b ∈ Rm problemabhängige Parameter, die wir uns als gegeben vorstellen. Ein lineares Programm in der Form (27) will also die konvexe Funktion f (x) = −cT x unter linearen Nebenbedingungen minimieren. E X . 4.1. Ein Optimierungsproblem der Form min cT x s.d. Ax = b, x ≥ 0 ist ein LP. Denn: es ist äquivalent zu dem linearen Programm max (−c)T x s.d. Ax ≤ b, wobei sich die Matrix A und der Koeffizientenvektor b aus A und b so ergeben: A b A = −A b = −b . −I 0 (I = Einheitsmatrix entsprechender Dimension.) Die KKT-Bedingungen für eine Optimallösung von (27) lauten: cT x Ax AT y y = bT y ≤ b = c ≥ 0 Komplementärer Schlupf. Aus der schwachen Dualtität wissen wir, dass cT x ≤ bT y gilt, sofern Ax ≤ b und c = AT y mit y ≥ 0 erfüllt sind. In diesem Fall ist die Optimalität dann gleichbedeutend mit der Gleichheit cT x = bT y. 47 48 4. DIE SIMPLEXMETHODE Diese Bedingungen kann man auch so formulieren. Wir definieren den Vektor s von Schlupfvariablen si als s = b − Ax (d.h. Ax ≤ b ⇔ s ≥ 0). Dann ergibt sich im Fall c = AT y: sT y = (b − Ax)T y = (bT − xT AT )y = bT y − cT x und somit sT y = 0 ⇐⇒ cT x = bT y. Bezeichnen wir mit aTi die Zeilenvektoren der Matrix A, so finden wir: L EMMA 4.1 ( Komplementärer Schlupf“). Genau dann ist x ∈ P (A, b) optimal ” für das lineare Programm (27), wenn es ein y gibt mit der Eigenschaft (i) AT y = c und y ≥ 0; (ii) aTi x < bi =⇒ yi = 0 (für alle i = 1, . . . , m). Beweis. x ∈ P (A, b) ist es genau dann optimal, wenn es zu x ein y gibt, das den KKT-Bedingungen genügt. Die sind c = AT y = c, y ≥ 0 und 0 = sT y = m X si yi = i=1 m X (bi − aTi x)yi . i=1 sT y Wegen s ≥ 0 und y ≥ 0 ist = 0 gleichbedeutend mit si yi = 0 für alle i = 1, . . . , m. Letzteres ist aber nichts anderes als die Eigenschaft (ii). Lineare Ungleichungssysteme. Die KKT-Bedingungen zeigen, dass die Aufgabe, ein lineares Programm zu lösen, darauf zurückgeführt werden kann, ein lineares Ungleichungssystem zu lösen. Im Prinzip kann man also lineare Programme mit dem FM-Verfahren lösen. Umgekehrt kann natürlich jeder Algorithmus, der ein lineares Programm löst, dazu benutzt werden, ein lineares Ungleichungssystem zu lösen. Man braucht ja nur eine künstliche Zielfunktion einführen. z.B. Ax ≤ 0 ←→ max 0T x s.d. Ax ≤ b. Also erkennt man: • Das Lösen von linearen Programmen und das Lösen von (endlichen) linearen Ungleichungssystemen ist algorithmisch äquivalent. 1. LP-Dualität Wir hatten gesehen, dass die Lagrangedualität als zu (27) duales“ Problem fol” gendes Problem ergibt: (28) min bT y s.d. AT y = c, y ≥ 0. 1. LP-DUALITÄT 49 D EFINITION . Seien nun (P ) und (P 0 ) beliebige lineare Programme. Nehmen wir an, (P ) sei äquivalent mit (27). Wir nennen dann (P 0 ) zu (P ) dual, wenn (P 0 ) zu (28) äquivalent ist. Die in den KKT-Bedingungen gefassten Optimalitätskriterien für lineare Programme besagen somit, dass x ∈ P (A, b) genau dann für (27) optimal ist, wenn es ein für (28) zulässiges y mit dem gleichen Zielfunktionswert bT y = cT x gibt. Natürlich ist dann y optimal für (28). In diesem Sinn bedeutet das Lösen eines linearen Programms, dass das dazu duale gleichzeitig mitgelöst wird. E X . 4.2. Wir betrachten das Problem min 2x1 − x2 + 13 x3 s.d x1 + x2 −2x3 ≥ 1 3x1 + 4x2 2x3 ≤ 2/3 x1 ≥ 0. Dieses lineare Programm ist äquivalent zu max −2x1 + x2 − 13 x3 s.d −x1 − x2 +2x3 ≤ −1 3x1 + 4x2 2x3 ≤ 2/3 −x1 ≤ 0. Dual dazu ist das lineare Programm min −y1 s.d −y1 −y1 2y1 y1 + 32 y2 + 3y2 − y3 + 4y2 + 2y2 , y2 , y3 = −2 = 1 = −1/3 ≥ 0 Das letzte lineare Programm ist z.B. äquivalent mit max s.d y1 y1 −y1 −2y1 y1 − 23 y2 − 3y2 + 4y2 − 2y2 , y2 ≤ 2 = 1 = 1/3 ≥ 0 1.1. Das lineare Produktionsmodell. Wir gehen von einer Situation aus, wo Bedarfsgüter der Typen P1 , P2 , . . . , Pn produziert werden sollen. Dazu müssen Rohstoffe R1 , . . . , Rm verwendet werden. Die ökonomischen Produktionsparameter seien aij = benötigte Menge von Ri zur Produktion einer Einheit von Pj cj = Gewinn pro Einheit bei Produktion von Pj bi = Anzahl Einheiten von Ri im Vorrat 50 4. DIE SIMPLEXMETHODE Das Ziel der Gewinnmaximierung ergibt den optimalen Produktionsplan als Optimallösung des folgenden linearen Programms: max s.d. (29) c1 x1 a11 x1 .. . + + am1 x1 + ... ... + + cn xn a1n xn ≤ b1 .. . ... + amn xn ≤ bm x1 , . . . , xn ≥ 0 Welchen Marktwert haben die Güter Ri ? Der Preis sollte sicherstellen, dass zumindest die zugekauften Güter bei einer Umwandlung in Produkte ihren Preis als Gewinn wieder einspielen. Also will man das folgende lineare Programm lösen: (30) min b1 y1 s.d. a11 y1 .. . + + a1n y1 + ... ... + bm y m + am1 ym ≥ c1 .. . ... + amn ym ≥ cn y1 , . . . , y m ≥ 0 Problem (29) ist in Matrixschreibweise max cT x s.d. A b x≤ −I 0 Das dazu duale Problem ist min bT y s.d. AT y − Iz = c, y ≥ 0, z ≥ 0. Wegen z ≥ 0 ist letzteres aber äquivalent mit (30): min bT y s.d. AT y ≥ c, y ≥ 0. ∗ , die sich als Optimallösung von (30) ergeben, B EMERKUNG. Die Preise y1∗ , . . . , ym sind die sog. Schattenpreise der Güter R1 , . . . , Rm . 2. Die Simplexmethode Wir gehen von einem Optimierungsproblem der Form (31) min cT x s.d. Ax = b, x ≥ 0 aus, wobei die Problemparameter c ∈ Rn , b ∈ Rm und A = [aij ] ∈ Rm×n gegeben seien. OBdA nehmen wir an, dass A vollen Zeilenrang m = rg A hat. Wir stellen uns vor, dass unser Optimierungsproblem gewisse Kosten“ minimieren ” will beziehen uns deshalb auf c als den Vektor von Kostenkoeffizienten. Die KKT-Bedingungen lauten cT x Ax AT y x = bT y = b ≤ c ≥ 0 2. DIE SIMPLEXMETHODE 51 Ein KKT-Paar (x∗ , y∗ ) liefert gleichzeitig eine optimale Lösung des Problems max bT y (32) s.d. AT y ≤ c. Wir nennen (31) in diesem Zusammenhang das primale und (32) das duale Problem. Die zentrale Idee des Simplexalgorithmus ist, die Ecken (d.h. die Basislösungen) der beiden Zulässigkeitsbereiche P = {x ∈ Rn | Ax = b, x ≥ 0} P ∗ = {y ∈ Rm | AT y ≤ c} zu untersuchen. Sei also B = {r1 , . . . , rm } ⊆ {1, . . . , n} eine Indexmenge derart, dass die aus den entsprechenden Spalten von A gebildete (m × m)-Matrix AB eine Spaltenbasis von A (bzw. ATB eine Zeilenbasis von AT ) ist. Wir nennen oft kurz auch die Indexmenge B selber eine Basis. Zur leichteren Notation setzen wir N = {1, . . . , n} \ B und bezeichnen mit cB den Teilvektor von c, der nur aus den B-Komponenten besteht etc. Wir ordnen B die folgenden Kandidaten für Optimallösungen zu: x ∈ Rn mit xB = A−1 B b, xN = 0N . y ∈ Rm mit y = (ATB )−1 cB . Dann gilt auf jeden Fall die Gleichheit cT x = cTB xB + cTN xN = (ATB y)T xB = yT AB x = yT b. Ausserdem beobachtet man (Z) x ∈ P ⇐⇒ xB ≥ 0B . (Z∗ ) y ∈ P ∗ ⇐⇒ ATN y ≤ cN . B EMERKUNG. Wegen rg AB = m ist klar, dass die B zugeordneten Punkte mit den Koordinaten x und y Ecken sind, sofern sie zu P bzw. P ∗ gehören. Ziel ist es nun, eine Indexmenge B (bzw. eine Spaltenbasis AB ) zu bestimmen, die sowohl Zulässigkeit bzgl. P als auch Zulässigkeit bzgl. P ∗ zur Folge hat. 2.1. Das Simplextableau. Traditionell geht man in der Analyse des Simplexalgorithmus immer von einer Darstellung der Spaltenvektoren bzgl. der gerade betrachteten Basis AB aus. D.h. anstelle der Restriktion in der Form Ax = AB xB + AN xN = b haben wir die Restriktionen in der Form −1 −1 A−1 B Ax = IB x + AN xN = b mit AN = AB AN , b = AB b. Mit anderen Worten: Setzen wir A = A−1 B A, dann erhalten wir eine vollständig äquivalente Formulierung des primalen Problems (31) in der Form min cT x s.d. Ax = b, x ≥ 0. 52 4. DIE SIMPLEXMETHODE Bzgl. y = (ATB )−1 cB definieren wir die reduzierten Kosten als den dualen Schlupf c = c − AT y bzw. cT = cT − yT A = cT − cTB A. Dann haben wir cB = 0B . Das Paar (x, y) erfüllt folglich die KKT-Bedingungen genau dann, wenn gilt: (Z) xB = b ≥ 0; (Z∗ ) cTN = cTN − cTB AN = cTN − yT AN ≥ 0TN . Schreiben wir z = cT x, dann bedeutet der Basiswechsel: Von den Ausgangsdaten z = cT x 0 cTB cTN ←→ b = Ax b AB AN geht man über zu dem Koeffizientenschema −z 0TB cTN T mit z = cTB b = cT x = cTB A−1 (33) B b = b y. b IB AN Das Parameterschema (33) ist das sog. Simplextableau bzgl. der Indexmenge B. Rechnerisch ist es sehr einfach zu ermitteln: • Man führt auf den Ausgangsdaten Pivotoperationen (elementare Zeilenoperationen) aus, bis in den B-Spalten die Teilmatrix T 0B IB erreicht ist. M AN BEACHTE : In der linken oberen Ecke des Simplextableaus steht der negative Zielfunktionswert bzgl. der gerade betrachteten Basisvektoren x und y! Um diesen Schönheitsfehler“ auszugleichen, findet man in der Literatur das Simplextableau ” oft mit den negativen Kostenkoeffizienten angegeben: z 0TB −cTN 0 −cTB −cTN −→ b AB AN b IB AN (Man kann diese zweite Version des Simplextableaus natürlich auch direkt von der Darstellung z −cT x = 0 Ax = b her motivieren, wenn man möchte.) T ERMINOLOGIE . Die Variablen xi mit Index i ∈ B heissen Basisvariablen (bzgl. B). Die xj mit j ∈ N sind die Nichtbasisvariablen. N OTA B ENE . Bei einem Simplextableau gehen wir immer von einer Problemformulierung vom Typ (31) aus. Insbesondere unterstellen wir automatisch, dass sämtliche Variablen xj nichtnegativ sein sollen. 2. DIE SIMPLEXMETHODE 53 2.2. Die primale Strategie. Wir nehmen an, wir hätten (irgendwie) eine Basis B gefunden derart, dass das zugehörige Simplextableau primal zulässig ist, d.h. b = A−1 B b = xB ≥ 0B . Mit Aj bezeichnen wir den jten Spaltenvektor von A. Im Fall cj = cTB Aj = cTB A−1 B Aj ≥ 0 für alle j ∈ N ist eine Optimallösung gefunden. Seien also cj < 0 für ein j ∈ N . Wir wollen ein k ∈ B bestimmen, sodass B 0 = (B ∪ {j}) \ {k} eine primal zulässige Basis ist. Der einfachen Notation wegen nehmen wir an, wir hätten die Indices so (um)numeriert, dass B = {1, . . . , m} gilt. Wir suchen nun in der Spalte Aj einen Koeffizienten akj > 0 mit der Eigenschaft bk bi = min | aij > 0 (34) i akj aij T ERMINOLOGIE. Das nach (34) bestimmte Element akj heisst Pivotelement. L EMMA 4.2. Gilt aij ≤ 0 für i = 1, . . . , m, dann ist das Problem (31) unbeschränkt und besitzt keine Optimallösung. Ist der Index k gemäss der Pivotregel (34) definiert, dann ist B 0 = (B ∪ {j}) \ {k} primal zulässig. Beweis. Im Fall Aj ≤ 0 betrachten wir ein beliebiges λ > 0 und setzen x0j = λ x0i x0` = bi − aij λ (i ∈ B) = 0 (` ∈ N \ {j}). Aus dem Simplextableau ist klar, dass das entsprechende x0 ∈ Rn primal zulässig ist. Der Zielfunktionswert ist cT x0 = cTB b − cTB Aj λ + cj λ = cTB b + cj λ → −∞ (wenn λ → +∞). Im zweiten Fall führen wir elementare Zeilenoperationen auf dem Simplextableau aus, welche die jte Spalte in den kten Einheitsvektor überführen. Alle Spalten bzgl. B \ {k} bleiben dann Einheitsvektoren und die Aufdatierung von b ergibt b0k = bk /akj ≥ 0 b0i = bi − aij bk /akj ≥ 0 . Algorithmus. Wenn einmal eine primal zulässige Basis zur Verfügung steht, dann iteriert man nach der Regel (34) solange, bis man zu einer Basis B gekommen 54 4. DIE SIMPLEXMETHODE ist, bei der alle reduzierten Kosten nichtnegativ sind. Eine Optimallösung ist dann gefunden mit xB = b und xN = 0N . Ist die Regel (34) nicht anwendbar, so weiss man, dass das Ausgangsproblem keine Optimallösung besitzt. Die Suche nach einer solchen erübrigt sich dann. B EMERKUNG. An dieser Stelle bleiben noch zwei Fragen offen: 1. Wie findet man eine primal zulässige Basis überhaupt? 2. Terminiert die primale Strategie nach endlich vielen Iterationen? Auf beide Fragen wird später noch eingegangen. 2.3. Die duale Strategie. Wir nehmen nun an, die momentane Basis B ist dual zulässig, d.h. die reduzierten Kosten c` sind alle nichtnegativ bzw. der Vektor y ist eine Ecke von P ∗ . Ist Optimalität noch nicht gegeben, existiert ein bk < 0. Wir suchen nun ein Pivotelement akj (in der k-Zeile der gegenwärtigen Simplextableaus) derart, dass B 0 = (B \ {k}) ∪ {`} wieder eine dual zulässige Basis ist. Wir wählen die Spalte j (und folglich das Pivotelement akj < 0) nach der Pivotregel cj c` (35) = max | ak` < 0 ` akj ak` L EMMA 4.3. Gilt ak` ≥ 0 für ` = 1, . . . , n, dann besitzt Problem (31) keine zulässige Lösung. Ist der Index j gemäss der Pivotregel (35) bestimmt, dann ist B 0 = (B ∪ {j}) \ {k} dual zulässig. Beweis. Ein zulässige Lösung x1 , . . . , xn ist nichtnegativ, also hätte man im Fall ak` ≥ 0: n X 0 > bk = ak` x` ≥ 0, `=1 was nicht sein kann. Sei nun akj gemäss (35) gewählt. Datieren wir das Simplextableau wieder so auf, dass die jte Spalte zum jten Einheitsvektor wird, so ergibt sich die erste Zeile des aufdatieren Tableaus so: • Subtrahiere cj mal die neue Zeile k vom reduzierten Kostenvektor cT ≥ 0T . Der Koeffizient in Spalte ` ist also c0` = c` − cj ak` /akj ≥ 0. 2. DIE SIMPLEXMETHODE 55 2.4. Die revidierte Simplexmethode. Bei der Organisation der notwendigen Rechenschritte stellt sich heraus, dass es nicht notwendig ist, immer das gesamte Simplextableau zu berechnen. Zu der Basis B ⊆ {1, . . . , n} kann man immer die notwendige Information direkt aus den Ausgangsparametern gewinnen: 0 • Berechne b = A−1 B b als Lösung der Gleichung AB x = b. −1 T T T • Berechne y = cB AB als Lösung der Gleichung AB y0 = cB . Dann erhalten wir für die reduzierten Kosten cj < 0 ⇐⇒ cj − yT Aj < 0 d.h. cj < m X yi aij . i=1 Nun kann z.B. bei der primalen Strategie sofort ein Pivotelement akj nach der Regel (34) in der Spalte Aj = A−1 B Aj gewonnen und die Basisaufdatierung B → B 0 = (B ∪ {j}) \ {k} durchgeführt werden. Diese frugale Version der Simplexmethode ist als revidierte Simplexmethode bekannt. B EMERKUNG. Oft gibt es mehrere Kandidaten, die als Pivotspalten (bzw. -elemente) infrage kommen. Es ist keine Regel bekannt, die in solchen Fällen (mathematisch beweisbar) immer die beste Wahl“ trifft. ” 2.4.1. Das Schnittmusterproblem. Es seien Stoffballen der Länge ` gegeben. Davon sollen bi Schnittstücke der Breite `i (i = 1, . . . , m) gewonnen werden, sodass insgesamt möglichst wenig Ballen angeschnitten werden. Zur Modellierung des Problems definieren wir als Schnittmuster einen Vektor a1 m X .. ai `i ≤ `. . mit ai ∈ N und i=1 am Sei A die Matrix, deren Spalten sämtliche möglichen Schnittmuster sind. Mit der Notation 1T = [1, 1, . . . , 1] ergibt sich das Schnittmusterproblem dann in Matrixform: min 1T x s.d Ax = b, x ≥ 0 und ganzzahlig. Wegen der Ganzzahligkeitsrestriktion ist dieses Problem kein lineares Programm. Wir deshalb statt dessen die zugeordnete LP-Relaxierung (36) min 1T x s.d Ax = b, x ≥ 0, die zumindest eine Untergrenze für den gesuchten Optimalwert liefert. Die Lösung hat typischerweise Komponenten, die nicht ganzzahlig sind. Durch Runden erhält man daraus meist eine recht gute praktische Lösung. Da A sehr viele Spalten haben kann, ist ein explizites Auflisten nicht erstrebenswert. Wir lösen (36) darum mit der revidierten Simplexmethode. 56 4. DIE SIMPLEXMETHODE Haben wir schon eine Basis B von Schnittmustern gefunden und den entsprechenden Vektor y berechnet, so ergibt die Suche nach einem Schnittmuster mit negativen reduzierten Kosten das Problem, a1 , . . . , am ∈ N zu ermitteln mit der Eigenschaft m m X X (37) 1< yi ai und ai `i ≤ `. i=1 i=1 B EMERKUNG. Problem (37) ist (wegen der Ganzzahligkeitsbedingung) ein sog. NP-schweres Problem, also theoretisch schwierig. In der Praxis lässt es sich aber sehr gut lösen. 3. Die Zweiphasenmethode Es soll nun gezeigt werden, dass die Simplexmethode so implementiert werden kann, dass nur endlich viele Iterationen stattfinden. Wir betrachten hier die primale Strategie. (Mit der dualen Strategie kann man analog verfahren, wenn man will.) Der Kern der Methode besteht darin, (unabhängig von der Zielfunktion) eine primal zulässige Basis zu zu bestimmen. Von dieser Basis lässt sich dann in einer weiteren algorithmischen Phase bezüglich der eigentlichen Zielfunktion weiterrechnen. 3.1. Phase 1. Wir betrachten das System (38) Ax = b, x ≥ 0 (A ∈ Rm×n , b ∈ Rm ) und suchen eine Basis B derart, dass xB = A−1 B b ≥ 0. OBdA dürfen wir b ≥ 0 annehmen (sonst multipliziert man entsprechnede Zeilen mit (−1)). Nun erweitern wir das Problem um die nichtnegativen Variablen z1 , . . . , zm und wollen das lineare Programm m X (39) min zi s.d. Iz + Ax = b, x ≥ 0, z ≥ 0 i=1 lösen. Offensichtlich besitzt (38) genau dann eine zulässige Lösung, wenn (39) eine Optimallösung (x, z) mit Zielfunktionswert 0, d.h. z1 = . . . = zm = 0 besitzt. Die Basis B einer solchen Optimallösung ergibt b als nichtnegative Linearkombination von linear unabhängigen Spalten von A. Diese können folglich zu einer zulässigen Spaltenbasis AB von A erweitert werden. Damit ist das gesuchte B gefunden (sofern (38) überhaupt lösbar ist). Wir beobachten, dass (wegen b ≥ 0) die Teilmatrix I der ersten m Spalten von D = [I|A] trivialerweise eine primal zulässige Spaltenbasis bzgl. (39) ist. Wir beginnen die primale Strategie mit dieser Basis und wählen die weiteren Pivotelemente nach einer modifizierten primalen Pivotregel. Dazu bezeichnen wir in jeder Iteration des Simplexalgorithmus mit αi = (bi , di1 , . . . , dim ) (i = 0, 1, . . . , m) 3. DIE ZWEIPHASENMETHODE 57 die aus b und den Anfangsstücken der Länge m der Zeilen des Simplextableaus gebildeten Vektoren. Zu Beginn haben wir also α0 b0 0 . . . 0 α1 b1 1 . . . 0 .. = .. .. . . .. mit − b0 = b1 + . . . + bm . . . . . . αm bm 0 . . . 1 Wir nennen einen Koordinatenvektor x lexikographisch positiv, wenn die erste (von links gelesen) Koordinate 6= 0 positiv ist. y ist lexikgraphisch grösser als x, wenn der Differenzvektor y − x lexikographisch positiv ist. Z.B. sind die Vektoren α1 , . . . , αm alle lexikographisch positiv. Die lexikographische (primale) Pivotregel bestimmt das Pivotelement dkj in der Spalte j des Simplextableaus nun so, dass αk αi (40) = lex-min | dij > 0. dkj dij L EMMA 4.4. Sind α1 , . . . , αm lexikographisch positiv, dann auch die entsprechen0 nach dem Pivotieren gemäss (40). den α10 , . . . , αm Beweis. Division durch eine positive Zahl erhält die lexikographische Positivität. Also ist αk0 = αk /dkj lexikographisch positiv. Für i 6= k ergibt sich die Behauptung aus αi0 = αi − " = dij dij αk dkj αi αk − dij dkj (lex. pos., falls dij ≤ 0) # (lex. pos., falls dij > 0). S ATZ 4.1. Die lexikographische Pivotregel garantiert, dass keine Basis wiederholt wird (und folglich die Anzahl der Iterationen endlich ist). Beweis. Der reduzierte Kostenkoeffizient cj ist negativ und αk lexikographisch positiv. Also ist α00 = α0 − cj αk immer lexikographisch grösser als α0 . Das heisst, dass alle Vektoren α0 voneinander verschieden sind. Folglich müssen auch die zugehörigen Basen voneinander verschieden sein. (Denn ein Simplextableau wird eindeutig von der zugehörigen Basis bestimmt.) B EMERKUNG. Die lexikographische Regel ist nicht die einzige, die Endlichkeit des Simplexverfahrens garantiert. Sie ist aber mathematisch am einfachsten zu beweisen. 58 4. DIE SIMPLEXMETHODE 3.2. Phase 2. In der Phase 1 stellen wir entweder fest, dass das lineare Programm (31) keine zulässige Lösung besitzt, oder wir können (z.B. mit der lexikographischen Regel) eine zulässige Basis B berechnen. Haben wir B, dann können wir nun das Simplextableau zur tatsächlichen Zielfunktion aufstellen und weiterrechnen. Um Endlichkeit zu garantieren, kann man wieder die lexikographische Regel verwenden (nun relativ zur Startbasis B und nicht mehr zu I). Damit erkennen wir: S ATZ 4.2. Ein lineares Programm ist entweder unzulässig oder unbeschränkt oder besitzt eine (optimale) Basis, die primal und dual zulässig ist. Beweis. Wenn der Simplexalgorithmus stoppt, ist genau eine der im Satz behaupteten Eigenschaften nachgewiesen. 3.3. Sensitivitätsanalyse. Sei B eine primal zulässige Basis für das lineare System Ax = b, x ≥ 0. F RAGE : Für welche Zielfunktionsparameter c ∈ Rn ist die zu B gehörige Basislösung x optimal? Wir wissen: B ist optimal, wenn die reduzierten Kosten nichtnegativ sind: T cTN = cTN − cTB A−1 B AN ≥ 0 N T bzw. (A−1 B AN ) cB − IN cN ≤ 0N . Die dieser Ungleichung genügenden c sind genau die Elemente des polyedrischen Kegels T P ([A−1 B AN ) | − IN ], 0). Man kann daraus ablesen, welche Veränderungen der Zielfunktionsparameter zulässig sind, wenn man weiterhin die Optimalität einer gefundenen Lösung garantieren will. Ist B dual zulässig bzgl. den festen Zielfunktionsparametern c, so stellt sich dual die F RAGE : Für welche Restriktionsparameter b ∈ Rm ist die zu B gehörige Basislösung x optimal? nach der primalen Zulässigkeit von b = A−1 B b ≥ 0. Wieder erhalten wir einen polyedrischen Kegel: P (−A−1 B , 0). 4. DIE PRIMAL-DUALE METHODE 59 4. Die primal-duale Methode Wieder betrachten wir ein Paar dualer linearer Programme: min cT x Ax = b x ≥ 0 ←→ max bT y AT y ≤ c Wir möchten nun das Konzept des komplementären Schlupfes ausnutzen, um zu einer Optimallösung zu kommen. A NNAHME : Wir haben schon (irgend)eine dual zulässige Lösung y zur Verfügung und kennen einen Vektor x = [x1 , . . . , xn ]T ≥ 0 mit der Eigenschaft xj > 0 =⇒ T y Aj = m X yi aij = cj (j = 1, . . . , n). i=1 (Z.B. hat x = 0 trivialerweise diese Eigenschaft.) Dann wissen wir vom komplementären Schlupf: Im Fall Ax = b ist x primal zulässig und folglich optimal. Sei oBdA b ≥ 0. Im Fall b = 0 ist x = 0 optimal. Wir unterstellen deshalb m X bi > 0. i=1 Sei à die Teilmatrix aller Spalten Aj von A mit der Eigenschaft y T Aj = m X aij yi = cj . i=1 Wir betrachten das zugeordnete linearer Optimierungsproblem min (41) 1T z Ãu + Iz = b u, z ≥ 0 Dieses Problem (41) hat immer I als primal zulässige Anfangsbasis und kann somit mit der primalen Strategie gelöst werden. Sei (u∗ , z∗ ) eine Optimallösung. Im Fall ζ ∗ = 1T z∗ = 0, ist x = (u∗ , z∗ ) = (u∗ , 0) primal zulässig für das Ausgangsproblem. Nach Wahl von à erfüllt x die komplementären Schlupfbedingungen und ist folglich optimal. Im Fall ζ ∗ > 0 betrachten wir die dual optimale Lösung w von (41). Diese erfüllt ζ ∗ = bT w und ÃT w ≤ 0, w ≤ 1. Für jede Spalte A` der Ausgangsmatrix A, die nicht zu à gehört, haben wir nach Definition von Ã: AT` y < 0. Also erfüllt der Vektor y0 = y + εw die duale Zulässigkeitsbedingung AT y 0 ≤ c für ein genügend kleines ε > 0, 60 4. DIE SIMPLEXMETHODE aber liefert einen besseren Zielfunktionswert als y: bt y0 = bT y + εbT w = bT y + εζ ∗ > bT y. Wir können nun in gleicher Weise mit y0 anstelle von y verfahren. FAZIT: Eine Iteration der primal-dualen Methode liefert entweder eine Optimallösung (Fall ζ ∗ = 0) oder eine dual zulässige Lösung mit echt besserem Zielfunktionswert (Fall ζ ∗ > 0). B EMERKUNG. Es bleibt die Frage, wie man zu Anfang der primal-dualen Methode ein dual zulässiges y erhält. Das hängt von der Matrix A und dem Vektor c ab. Im Fall c ≥ 0 kann man z.B. trivialerweise mit y = 0 starten. KAPITEL 5 Ganzzahlige lineare Programme Wir betrachten nun Optimierungsprobleme vom Typ (42) min cT x s.d. Ax = b, x ≥ 0, x ganzzahlig, wobei die Matrix A ∈ Rm×n und die Vektoren c ∈ Rn , b ∈ Rm gegeben seien. Wir setzen P = {x ∈ Rn | Ax = b, x ≥ 0}. Das mathematische Optimierungsproblem (42) ist kein lineares Programm im strengen Sinn, da der Zulässigkeitsbereich F = {x ∈ P | x ∈ Nn } eine diskrete Menge und im allgemeinen kein Polyeder ist. Ist F endlich und setzen wir PI = conv F, so ist (42) äquivalent zu dem Problem min cT x s.d. A0 x ∈ PI . b0 Wäre eine Matrix und ein Vektor mit PI = P (A0 , b0 ) bekannt, so könnte man das Ausgangsproblem (42) z.B. dadurch lösen, indem man min cT x s.d. A0 x ≤ b0 mit der Simplexmethode löst. V EREINBARUNG . In diesem Kapitel nehmen wir durchweg an, dass sämtliche Problemparameter A, c, b rational sind. OBdA dürfen (und werden) wir bei der Problemanalyse deshalb sogar Ganzzahligkeit annehmen: A ∈ Zm×n , c ∈ Zn , b ∈ Zm . 1. Schnittebenen Es seien A ∈ Zm×n und b ∈ Zm gegeben und P = P (A, b) = {x ∈ Rn | Ax ≤ b} das entsprechende rationale Polyeder. Wir interessieren uns für die Menge PI = conv {x ∈ P | x ∈ Zn }. P ROPOSITION 5.1. Ist P eine rationales Polyeder, dann ist auch PI ist ein rationales Polyeder. 61 62 5. GANZZAHLIGE LINEARE PROGRAMME Beweis. Im Fall PI = ∅ ist nichts zu beweisen. Sei also PI 6= ∅. Nach dem Dekompositionssatz von Weyl-Minkowski existieren endliche Mengen V, W ⊆ Qn so, dass P = conv V + cone W. Nach geeigneter Skalierung dürfen wir die Vektoren w ∈ W oBdA dabei als ganzzahlig annehmen. Ein beliebiges x ∈ P kann in der Form x = V s + Wt s, t ≥ 0, 1T s = 1 mit dargestellt werden. Bezeichen wir mit btc der ganzzahlig nach unten gerundeten Komponenten von t und setzen t = t − btc ≥ 0, dann erhalten wir x = (V s + W t) + W btc = x + W btc mit dem ganzzahligen btc und x in dem Polytop(!) P = {V s + W t | s ≥ 0, 1T s = 1, 0 ≤ t ≤ 1}. Wegen W btc ∈ Zn finden wir x ∈ Zn ⇐⇒ x ∈ Zn und deshalb P ∩ Zn = P ∩ Zn + {W z | z ≥ 0 ganzzahlig}. Da P ein Polytop (und somit beschränkt) ist, ist P ∩ Zn eine endliche Menge. Wegen (43) PI = conv (P ∩ Zn ) + cone W erkennen wir PI somit als Polyeder. Im Prinzip könnte man aus der Darstellung (43) (z.B. mit Fourier-Motzkin) eine lineare Beschreibung von PI durch Ungleichungen ableiten. Für das Optimierungsproblem (42) ist dies jedoch nicht interessant, da ein solches Vorgehen bedeutet, dass man ohnehin zuerst sämtliche ganzzahligen Vektoren in P (darunter auch die Optimallösung von (43) ) auflisten müsste. 1.1. Das Verfahren von Gomory. Um eine lineare Beschreibung von PI zu erzielen, gehen wir von gültigen Ungleichungen für das Polyeder P = P (A, b) aus. Gemäss dem Lemma von Farkas betrachten wir deshalb ein beliebiges rationales y ≥ 0 und cT = yT A. Dann ist cT x ≤ z mit z = yT b eine gültige Ungleichung für P . Wir dürfen y als ganzzahlig annnehmen. Der springende Punkt ist dann die Beobachtung • cT = yT A ist ganzzahlig und cT x ≤ z 0 mit z 0 = byT bc ∈ Z eine gültige Ungleichung für PI , da sie von allen ganzzahligen Vektoren in P erfüllt wird. 1. SCHNITTEBENEN 63 Tatsächlich genügt es, sich dabei auf y mit Komponenten yi ∈ [0, 1] zu beschränken. Denn bei allgemeinem y0 ∈ Qn+ und z ∈ Zn+ mit 0 ≤ y = y0 − z ≤ 1 ist die Ungleichung (zT A)x ≤ zT b ∈ Z ja ohnehin schon von Ax ≤ b impliziert. Für ganzzahliges x ∈ P (A, b) gilt darum (y0 )T Ax ≤ b(y0 )T bc ⇐⇒ yT Ax ≤ byT bc. Damit erhalten wir das Gomory-Polyeder P 0 = {x ∈ P | (yT A)x ≤ byT bc, y ∈ [0, 1]m , yT A ∈ Zn }. B EMERKUNG. P 0 ist tatsächlich ein Polyeder, denn es gibt nur endlich viele verschiedene Gomory-Schnitte. Das sieht man so: Die Menge {yT A | 0 ≤ y ≤ 1} ist eine beschränkte Menge von Zeilenvektoren in Rn und enthält deshalb nur endlich viele ganzzahlige Vektoren. Iterieren wir diese Konstruktion, so ergibt sich die Gomory-Folge P ⊇ P 0 ⊇ P 00 ⊇ . . . ⊇ PI . Man bemerke, dass keine der Gomory-Ungleichungen einen ganzzahligen Punkt aus P abschneidet“. Ausserdem gilt: Sobald bei der Gomory-Folge kein neues ” Polyeder konstruiert wird, hat man genügend viele Ungleichungen erzeugt, die PI festlegen. Ohne Beweis bemerken wir S ATZ 5.1 (Gomory). Die Gomory-Folge eines rationalen Polyeders P hat endliche Länge und endet mit PI . Der Beweis ist nicht schwer aber etwas aufwendig. Deshalb sei hier darauf verzichtet. Wir beweisen nur: L EMMA 5.1. Sei P ein rationales Polytop mit P = P 0 . Dann gilt P = PI . Beweis. Sei P 6= PI . Dann besitzt P eine Ecke v mit (mindestens) einer Komponente vj ∈ / Z. Ausserdem existiert ein c ∈ Zn derart, dass die Funktion f (x) = T c x über P genau von v maximiert wird. Seien v(1) , . . . , v(k) die übrigen Ecken von P und max (cT v − cT v(`) ) = ε > 0 `=1,...,k max |x1 | + . . . + |xn | = M < ∞. x∈P Sei K ∈ N so gewählt, dass Kε > 2M erfüllt ist. Dann maximiert v auch die Funktion f (x) = cT x über P , mit cT = [Kc1 , . . . , Kcj + 1, . . . , Kcn ] = KcT + eTj . 64 5. GANZZAHLIGE LINEARE PROGRAMME Denn für jede andere Ecke v(` von P gilt (`) K(cT v(`) ) + vj < K(cT v − ε) + M < KcT v − M < KcT v + vj . Wegen cT v − KcT v = vj ∈ / Z ist entweder cT v oder cT v keine ganze Zahl. Also ist cT x ≤ bcT vc oder cT x ≤ bcT vc eine Ungleichung, die zwar für PI gültig ist aber nicht für P . D.h. P 6= P 0 . Der Satz von Gomory führt zu einem endlichen Algorithmus zur Lösung von des ganzzahligen Optimierungsproblems max cT x s.d. Ax ≤ b, x ∈ Zn . Man löst die LP-Relaxierung max cT x s.d. Ax ≤ b. Ist die gefundene Optimallösung x∗ ganzzahlig, dann ist nichts weiter zu tun. Andernfalls berechnet man das Gomory-Polyeder P 0 und löst max0 cT x x∈P usw. bis das ganzzahlige Optimum gefunden ist. In der Praxis ist diese Vorgehensweise typischerweise jedoch hoffnungslos ineffizient. 1.2. Schnittebenenverfahren. Die Idee hinter Schnittebenenverfahren zur Lösung ganzzahliger linearer Programme ist wie die des Gomory-Verfahrens: Man löst die LP-Relaxierung des Problems. Ist die gefundene Optimallösung x∗ , so fügt man dem LP eine Ungleichung aT x ≤ b hinzu, die für alle x ∈ P ∩ Zn gilt und von x∗ verletzt wird. Die entsprechende Hyperebene H(a, b) = {x ∈ Rn | aT x = b} heisst Schnittebene (bzgl. P und PI ). Unter der Ausnutzung der speziellen kombinatorischen Struktur, die das Optimierungsproblem haben mag, lassen sich in der Praxis oft gezielt Schnittebenen bestimmen, die zu effizienteren Algorithmen führen als das Allzweck-Gomoryverfahren. Ein Schnittebenen-Verfahren geht nach folgendem Prinzip zur Lösung des Problems max cT x s.d. Ax ≤ b, x ∈ Zn vor: (SE0) Löse das relaxierte LP-Problem max cT x s.d. Ax ≤ b. Ist die gefundene Optimallösung x∗ ganzzahlig, S TOP. 1. SCHNITTEBENEN 65 (SE1) Bestimme im Fall x∗ ∈ / Zn eine Schnittebenenungleichung aT x ≤ b ∗ für PI , die von x verletzt wird (d.h. aT x∗ > b) und füge diese den Restriktionen hinzu. Löse nun max cT x s.d. Ax ≤ b, aT x ≤ b. Ist die gefundene Optimallösung x ganzzahlig, S TOP. / Zn eine Schnittebenenungleichung aT x ≤ b für (SE2) Bestimme im Fall x ∈ PI , die von x0 verletzt wird (d.h. aT x > b) und füge diese den bisherigen Restriktionen hinzu usw. 1.2.1. Quadratische boolesche Optimierung. Als Beispiel betrachten wir zu gegebenen Paramentern qij ∈ R das Problem max n X n X qij xi xj , xi ∈ {0, 1}. i=1 j=1 Sei V = {1, . . . , n} und E die Menge aller Paarmengen {i, j}. Zu e = {i, j} setzen wir di = qii und ce = qij + qji . Wegen x2i = xi und ye = xi xj ∈ {0, 1} erhalten wir eine Formulierung als ganzzahliges LP: X X max di xi + ce ye i∈V s.d. (44) e∈E ye − xi xi + xj − ye xi , ye −xi , −ye xi , ye ≤ ≤ ≤ ≤ 0 e ∈ E, i ∈ e 1 e = {i, j} 1 0 ganzzahlig. B EMERKUNG. Man kann sich dieses Problem vorstellen als die Aufgabe, im vollständigen Graphen Kn mit Knotenmenge V und Kantenmenge E einen vollständigen Untergraphen maximalen Gesamtgewichts zu wählen. Dabei sind die Knoten i ∈ V mit di und die Kanten e ∈ E mit ce gewichtet. Als Schnittebenen für das von den ganzzahligen Lösungen von (44) erzeugte Polytop PI kommen alle Ungleichungen in frage, die von den ganzzahligen Lösungsvektoren erfüllt werden. Beispiele sind etwa die Dreiecksungleichungen xi + xj + xk − ye − yf − yg ≤ 1 für jeweils drei Knoten i, j, k ∈ V und die dazugehörigen Kanten e, f, g ∈ E des entsprechenden Dreiecks“ {i, j, k}. ” Dieses Beispiel kann verallgemeinert werden. Dazu setzen für S ⊆ V mit |S| ≥ 2 X X x(S) = xi und y(S) = ye , i∈S e∈E(S) 66 5. GANZZAHLIGE LINEARE PROGRAMME wobei E(S) die Menge aller Paarmengen e = {i, j} ⊆ S ist. Zu α ∈ N definieren wir die entsprechende Cliquenungleichung als αx(S) − y(S) ≤ α(α + 1)/2. L EMMA 5.2. Jede zulässige (0, 1)-Lösung (x, y) von (44) erfüllt jede Cliquenungleichung. Beweis. Sei C = {i ∈ S | xi = 1} und s = |C| ≤ |S|. Dann gilt x(S) = s und y(S) = s(s − 1)/2. Also finden wir α(α + 1)/2 − αx(S) − y(S) = [α(α + 1) − 2αs + s(s − 1)]/2 = (α − s)(α − s + 1)/2. Da α und s ganze Zahlen sind, ist der letzte Ausdruck immer nichtnegativ. Es gibt allein schon 2n − n − 1 Cliquenungleichungen. Diese genügen noch nicht, um PI vollständig zu beschreiben. Bei nicht zu grossen booleschen Problemen (n ∼ 40) kommt man damit aber in der Praxis schon recht weit. 2. Unimodularität Wir gehen das Ganzzahligkeitsproblem nun von einer anderen Seite an und suchen nach Bedingungen für die Matrix A ∈ Zm×n , die garantieren, dass jede Ecke des Polyeders P = {x ∈ Rn | Ax = b, x ≥ 0} ganzzahlige Ecken hat, sofern b ganzzahlig ist. OBdA nehmen wir wieder m = rg A an. Wir nennen A unimodular, wenn jede (m × m)-Basisteilmatrix AB von A die Eigenschaft |det AB | = 1 besitzt. Sei AB eine Basismatrix mit zugeordneter Basislösung x. Nach der Cramerschen Regel ergeben sich die Komponenten als xj = det AB (j, b) det AB (j ∈ B), wobei AB (j, b) aus AB hervorgeht, indem die Spalte j durch den Vektor b ersetzt wird. Im Fall b ∈ Zm ist det AB (j, b) eine ganze Zahl. Folglich finden wir A unimodular =⇒ xj ∈ Z für alle b ∈ Zm . P ROPOSITION 5.2. Sei A ∈ Zm×n eine unimodulare Matrix vom Rang m = rg A und b ∈ Zm . Dann gilt für jedes c ∈ Rn : Entweder hat das lineare Programm min cT x s.d. Ax = b, x ≥ 0 keine Optimallösung oder es existiert eine optimale Lösung x∗ mit ganzzahligen Komponenten x∗j . 2. UNIMODULARITÄT 67 Beweis. Simplexalgorithmus. Für viele Anwendungen ist es geschickt, den Begriff der Unimodularität zu verschärfen. Wir nennen eine Matrix A total unimodular, wenn für jede quadratische Teilmatrix A0 von A unimodular ist, d.h. det A0 ∈ {−1, 0, +1}. Insbesondere gilt aij ∈ {−1, 0 + 1} für alle Koeffizienten der total unimodularen Matrix A = [aij ]. 1 1 E X . 5.1. Die Matrix A = ist unimodular aber nicht total unimodular. 1 2 Bevor wir Beispiele von total unimodularen Matrizen diskutieren, geben wir einige wichtige Matrixkonstruktionen an. L EMMA 5.3. Sei A ∈ Zm×n total unimodular und e ∈ Zm ein Einheitsvektor. Dann gilt: (a) Wenn man Spalte von A mit 0 oder −1 multipliziert, erhält man wieder eine total unimodular Matrix. (b) AT total unimodular. (c) A = [A, e] total unimodular. Beweis. (a) folgt aus der Tatsache, dass sich die Skalarmultiplikation eine Spalte einer Matrix in der Skalarmultiplikation der Determinante auswirkt. (b) ergibt sich aus dem Transpositionssatz det C = det C T . Um (c) einezusehen, betrachten wir eine quadratische Untermatrix A0 von [A, e]. OBdA dürfen wir annehmen, dass die Spalte e in A0 auftaucht. Wir entwickeln die Determinate nach dieser Spalte e und finden det A0 = ±1 · det A00 , wobei A00 eine quadratische Untermatrix von A ist. Also gilt det A0 ∈ {−1, 0 + 1}. P ROPOSITION 5.3. Sei A ∈ Zm×n total unimodular, b ∈ Zm und l, u ∈ Zn derart, dass P = {x ∈ Rn | Ax ≤ b, l ≤ x ≤ u} = 6 ∅. Dann ist P eine Polytop mit ganzzahligen Ecken. Beweis. P ist die Lösungsmenge des total unimodularen Ungleichungssystems A b I x ≤ u −l −I 68 5. GANZZAHLIGE LINEARE PROGRAMME Intervallmatrizen. Sei M = {1, . . . , m}. Unter einem Intervall versteht man eine Teilmenge F ⊆ M derart, dass Elemente i, j ∈ M existieren mit der Eigenschaft F = {k ∈ M | i ≤ k ≤ j}. Eine (0, 1)-Matrix A heisst Intervallmatrix, wenn die Zeilen von A in einer solchen Reihenfolge angeordnet werden können, dass jede Spalte der (0, 1)-Inzidenzvektor eines Intervalls der Zeilenindices ist. Es ist klar, dass jede quadratische Untermatrix einer Intervallmatrix selber eine Intervallmatrix ist. Es gilt L EMMA 5.4. Jede Intervallmatrix A ist total unimodular. Beweis. OBdA sei A = [aij ] quadratisch und 1 für j = 1, . . . , k a1j = 0 für j = k + 1, . . . , n. Ausserdem entspreche die erste Spalte von A dem kleinsten Intervall, das 1 enthält. Im Fall k = 1 ist die erste Zeile ein Einheitsvektor. Entwicklung der Determinante nach der ersten Zeile liefert dann die Behauptung per Induktion wie bei Netzwerkmatrizen. Im Fall k ≥ 2 subtrahiert man die erste Spalte von den Spalten 2, . . . , k. Die resultierende Matrix ist wieder eine Intervallmatrix und die Determinante hat sich nicht geändert. Auf die neue Matrix trifft aber der vorige Fall zu. B EMERKUNG. (0, 1)-Inzidenzmatrizen von allgemeinen Familien F von Teilmengen einer endlichen Grundmenge M sind typischerweise nicht total unimodular! KAPITEL 6 Flüsse in Netzwerken Sei nun A ∈ {−1, 0, +1}m×n eine Matrix mit den Eigenschaften (NM) Jede Spalte von A enthält höchstens einen Koeffizienten −1“ und einen ” Koeffizienten +1“. ” L EMMA 6.1. Erfüllt A die Bedingung (NM), dann ist A total unimodular. Beweis. Wir argumentieren per Induktion über die Anzahl der Koeffizienten 6= 0 und betrachten eine beliebige quadratische Untermatrix. OBdA sei A selber diese Matrix. Hat jede Spalte von A genau 2 Koeffizienten 6= 0, so sind alle Spaltensummen 0. Folglich hat A nicht vollen Rang, d.h. det A = 0. Im Fall det A 6= 0 dürfen wir somit annehmen, dass mindestens eine Spalte j genau einen Koeffizienten aij 6= 0 besitzt. Entwicklung nach dieser Spalte ergibt |det A| = |aij | · |det A0 | mit |det A0 | ∈ {0, 1}, da wir die Behauptung für die Matrix A0 per Induktion als richtig unterstellen. Wir nennen die Matrix A vom Typ (NM) eine Netzwerkmatrix, wenn die Spaltensummen in A immer 0 sind (d.h. wenn in jeder Spalte genau eine −1 und genau eine +1 auftreten). L EMMA 6.2. Eine Matrix A hat die Eigenschaft (NM) genau dann, wenn A aus einer Netzwerkmatrix durch Streichen einer Zeile hervorgeht. Beweis. Hat A die Eigenschaft (NM), so fügen wir eine neue Zeile hinzu, die genau die Spaltensummen der Matrix A enthält. Die erweiterte Matrix ist offenbar eine Netzwerkmatrix. E X . 6.1 (Gerichtete Graphen und Inzidenzmatrizen). Eine Netzwerkmatrix A ∈ {−1, 0, +1}m×n kann man sich in folgender Weise als algebraische Darstellung eines gerichteten Graphen G = (V, E) vorstellen: V ist eine Menge von m Knoten, die wir den m Zeilen von A zuordnen. E ist eine Menge von n (gerichteten) Kanten, die wir uns als Pfeile“ denken und den ” Spalten von A zuordnen. 69 70 6. FLÜSSE IN NETZWERKEN Die Spalte j besitzt einen Koeffizienten auj = +1 und avj = −1. Wir stellen uns die entsprechende Kante ej ∈ E als Pfeil vor, der sich vom Knoten v ∈ V zum Knoten u ∈ V erstreckt: ej v −→ u Man nennt deshalb A auch die (Knoten-Kanten-)Inzidenzmatrix von G = (V, E). Sei A = [aij ] ∈ Rm×n die Inzidenzmatrix des Graphen G = (V, E). Dann repräsentiert ein Koordinatenvektor x ∈ Rn einen Fluss auf dem Graphen G, wobei die Komponente xj die Quantität des Flusses x angibt, die durch die von v nach u gerichtete Kante ej fliesst“. Im Fall xj > 0 stellt man sich vor, dass die Menge xj ” von v and u fliesst. xj < 0 bedeutet, dass die Menge |xj | = −xj von u and v (d.h. in die umgekehrte Richtung) fliesst. Die Quantität δv (x) = n X avj xj (v ∈ V ) j=1 ist der Nettodurchfluss (= Menge des eingehenden Flusses minus Menge des ausgehenden Flusses) von x im Knoten v ∈ V . Allgemeiner ist der Vektor δ(x) = Ax ∈ RV der Vektor der Nettozuflüsse der Knoten von G. T ERMINOLOGIE . Intuitiv nennt man einen Knoten v im Fall δv (x) ≥ 0 eine Senke (bzgl. x). Im Fall δv (x) ≤ 0 eines nichtpositiven Nettozuflusses (d.h. eines nichtnegativen Nettoausflusses) spricht man von v als einer Quelle. Im Fall δv (x) = 0 ist v ein sog. Transitknoten (bei dem der Zufluss gleich dem Abfluss ist). Zu gegebenen Parametern c, l, u ∈ Rn und b ∈ Rm definieren wir das Flussproblem auf G als das lineare Optimierungsproblem (45) min cT x s.d. Ax = b, l ≤ x ≤ u. Aus der totalen Unimodularität von A folgt nun sofort S ATZ 6.1. Sind b, l und u ganzzahlig, dann hat das Kosten-Flussproblem entweder keine Optimallösung oder es besitzt eine Optimallösung mit ganzzahligen Komponenten. Die Parametervektoren l und u können als (untere bzw. obere) Kapazitätsbeschränkungen der Kanten von G interpretiert werden. Der Wert cj xj gibt die Kosten des Flusses x durch die Kante ej an. B EMERKUNG. Die Kapazitätsrestriktionen kann man sich etwas allgemeiner als Funktionen l, u : E → R ∪ {−∞, +∞} vorstellen. Satz 6.1 bleibt offensichtlich auch in dieser Allgemeinheit entsprechend gültig. Das Kosten-Flussproblem kann z.B. mit dem Simplexalgorithmus gelöst werden und hat – unter den Annahmen von Satz 6.1 – eine ganzzahlige Optimallösung. 2. KÜRZESTE WEGE 71 Es gibt allerdings auch speziellere Verfahren, die kombinatorische Struktur von G ausnützen und effizienter sind. 1. Das Matching-Polytop Seien S und T disjunkte Mengen mit |S| = |T | = n < ∞ und E = S × T . Wir setzen V = S ∪ T und definieren die Matrix A = [ave ] ∈ RV ×E über −1 falls e = (v, w) ave = +1 falls e = (w, v) 0 sonst Der Vektor b ∈ RV sei gegeben durch −1 falls v ∈ S bv = +1 falls v ∈ T Ein (S × T )-Matching entspricht einer (0, 1)-Lösung x von Ax = b. Es liegt hier also ein Flussproblem vor, bei dem alle Knoten in S Quellen und alle Knoten in T Senken sind. Nach Wahl von b erfüllt jedes nichtnegative x ∈ RE automatisch die Bedingung xe ≤ 1 für alle e ∈ E. A ist eine Netzwerkmatrix und damit total unimodular. Also gilt P = {x ∈ RE | Ax = b, x ≥ 0} = PI . Die zulässigen Basislösungen des Simplexalgorithmus sind Ecken von P und folglich ganzzahlig. D.h. diese Basislösungen entsprechen Matchings. Mit anderen Worten: P ist genau das Matching-Polytop. 2. Kürzeste Wege Sei V eine beliebige (endliche) Menge von Knoten E ⊆ V × V eine Menge von (gerichteten) Kanten eines Graphen G = (V, E). Wieder sei A = [ave ] ∈ RV ×E die zugehörige Inzidenzmatrix mit −1 falls e = (v, w) ave = +1 falls e = (w, v) 0 sonst Wir wählen und zwei feste Knoten s, t und definieren b ∈ RV als −1 falls v = s bv = +1 falls v = t 0 sonst. Mit anderen Worten: Wir wählen s als Quelle und t als Senke bzgl. eines zu konstruierenden Flusses. 72 6. FLÜSSE IN NETZWERKEN L EMMA 6.3. Sei B eine zulässige Basis bzgl. Ax = b, x ≥ 0 und x die zugehörige Basislösung. Dann enthält die Menge P = {e ∈ E | xe > 0} einen (gerichteten) Weg von s nach t in G. Beweis. Da der Nettozufluss von s negativ ist, existiert eine Kante (s, v1 ) ∈ P. Ist v1 = t, ist der Weg gefunden. Andernfalls folgt aus dem Nettozufluss δ(x)v1 = 0 die Existenz einer Kante (v1 , v2 ) ∈ P usw. Nach endlich vielen Schritten haben wir entweder t erreicht oder einen Knoten vk , der schon durchlaufen wurde. Letzteres ist aber unmöglich, da sonst die Spalten von AB linear abhängig wären. Wir wählen eine Zeilen-Teilmatrix A0 von A mit vollem Zeilenrang. Dann ist auch A0B total unimodular und die Koeffizienten einer Basislösung x ergeben sich nach der Cramerschen Regel als xe = det A0B,e (b) det A0B ∈ {0, 1}. Sei d : E → R+ eine Distanzfunktion auf dem Graphen G = (V, E). Eine optimale Basislösung des linearen Programms X (46) min dT x = de xe s.d. Ax = b, x ≥ 0 e∈E entspricht also einer Menge von Kanten, die eine Verbindung von s nach t sichert und minimales gesamte Kantenlänge hat, also einen kürzesten Weg von s nach t ergibt. 2.1. Der Dijkstra-Algorithmus. Kürzeste (s, t)-Wege in G = (V, E) kann man nicht nur mit der Simplexmethode berechnen. Der Algorithmus von Dijkstra löst das Problem, indem er vom zu (46) dualen linearen Programm ausgeht: (47) max yT b max yt − ys ←→ s.d. vw − yv ≤ de (e = (v, w) ∈ E) s.d. yT A ≤ dT Man sucht also ein (Knoten)-Potential y : V → R, das die Potentialdifferenz yt − ys maximiert, wobei die übrigen Potentialdifferenzen wie folgt beschränkt sind: yw − yv ≤ d e bzw. y w ≤ yv + d e für alle e = (v, w) ∈ E. Der Einfachheit halber setzen wir dvw = +∞, wenn (v, w) ∈ / E. Der Algorithmus von Dijkstra baut nun ein optimals Potential sukzessive folgendermassen auf: (D0) Setze ys ← 0, U ← {s} und yv ← dsv für alle v ∈ V \ U . 3. ZIRKULATIONEN UND DAS MAX-FLOW-MIN-CUT-THEOREM 73 (D1) Solange U 6= V gilt, wähle ein v ∈ V \ U mit minimalem Potential yv , setze U ← U ∪ {v} und datiere auf: yw ← min{yw , yv + dvw } für alle w ∈ V \ U . Man sieht leicht per Induktion: L EMMA 6.4. In jedem Stadium des Algorithmus von Dijkstra geben die Potentiale yu der Knoten u ∈ U genau den minimalen Abstand von s nach u. Für beliebige Knoten v ∈ V ist yv zumindest eine Obergrenze für den Abstand von s. Man erkennt: der Dijkstra-Algorithmus berechnet nicht nur den kürzesten Abstand von s zu t sondern zu allen Knoten v ∈ V und löst damit insbesondere das duale Problem (47). Aus dieser Lösung lässt sich leicht ein kürzester Weg von s nach t durch Zurückrechnen“ gewinnen: ” Man beginnt bei t und sucht ein v1 ∈ V \ {t} mit yt = yv1 + dv1 ,t . Nun sucht man ein v2 ∈ V \ {t, v1 } mit yv1 = yv2 + dv2 ,v1 usw., bis man bei s angelangt ist. 3. Zirkulationen und das MAX-Flow-MIN-Cut-Theorem Wir betrachten einen gerichteten Graphen G = (V, E) mit Knoten-Kanten-Inzidenzmatrix A = A(G) wie zuvor. Unter einer Zirkulation (oder Strömung) auf G versteht man einen Fluss x ∈ RE mit Nettozufluss δv (x) = 0 in jedem Knoten v ∈ V . Mit anderen Worten: Bei einer Zirkulation ist jeder Knoten Transitknoten und wir haben x ∈ RE ist Zirkulation auf G ⇐⇒ Ax = 0. Sei nun f = (t.s) ∈ E eine festgewählte Kante und x eine Zirkulation. Stellen wir uns vor, dass die Kante f in G blockiert wird. Dann stellen die übrigen Kantenflusswerte xe (e 6= f ) einen Fluss auf Gf = (V, E \ {f }) dar, wo in s ein Nettoabfluss und bei t ein Nettozufluss in Höhe von xf stattfindet. Mit anderen Worten: • Die Einschränkung von x auf Gf beschreibt den Transport eines Gu” tes“ der Quantität xf von der Quelle s zur Senke t entlang den Kanten von Gf , wobei bei keinem Knoten v 6= s, t etwas verloren geht oder hinzugewonnen wird. 74 6. FLÜSSE IN NETZWERKEN Unter der Annahme dass jede Kante e ∈ E \ {f } einer Kapazitätsschranke ce ≥ 0 unterliegt, sucht man im Ford-Fulkerson-Problem nach einer nichtnegativen Zirkulation x, die den Wert xf maximiert: (48) max s.d. xf δv (x) = 0 für alle v ∈ V 0 ≤ xe ≤ ce für alle E ∈ e \ {f } In Matrixschreibweise und mit zusätzlichen nichtnegativen Schlupfvariablen s ≥ 0 haben wir äquivalent mit dem f ∈ E entsprechenden Einheitsvektor ef : min −eTf x s.d. Ax = 0 Ix + Is = c x, s ≥ 0 Dazu ist das duale lineare Programm max yT 0 + zT c s.d. yT A + zT ≤ −eTf z T ≤ 0T min − TA − s.d. y bzw. zT c zT −zT ≥ eTf ≥ 0T Letzteres ist äquivalent mit X min ce ze e∈E (49) s.d. yw ys − y v + ze − y t + zf ze ≥ 0 für alle z = (v, w) ∈ E ≥ 1 ≥ 0. Augmentierende Wege. Sei nun x ≥ 0 eine zulässige Lösung von (48). Wir suchen diese um ein gewisses ε > 0 zu verbesseren. Dazu definieren wir einen Hilfsgraphen G(x) auf V mit Kanten (v, w) wenn e = (v, w) ∈ E \ {f } und xe < ce ( Vorwärtskante“) ” (w, v) wenn e = (v, w) ∈ E \ {f } und xe > 0 ( Rückwärtskante“) ” Sei ε > 0 so, dass xe + ε ≤ ce gilt, wenn e eine Vorwärtskante ist, und xe − ε ≥ 0 auf den Rückwärtskanten e erfüllt ist. Dann ist klar: • Existiert ein Weg P von s nach t im Hilfsgraphen G(x), dann kann der Fluss x um mindestens ε > 0 verbessert werden. Wir erhöhen nämlich einfach den Flusswert um ε auf den Vorwärtskanten von P (und auf der Kante f = (t, s)) und erniedrigen ihn um ε auf den Rückwärtskanten von P. Offensichtlich ist der resultierende Fluss nichtnegativ, respektiert die Kapazitätsgrenzen und genügt den Knotendurchflussbedingungen. Sei S die Menge aller Knoten, die in G(x) von s aus auf einem gerichteten Weg erreicht werden können. Dann wissen wir also: Im Fall t ∈ S kann x verbessert werden. 3. ZIRKULATIONEN UND DAS MAX-FLOW-MIN-CUT-THEOREM 75 Schnitte. Sei allgemein S ⊆ V eine Knotenmenge mit s ∈ S. Dann bestimmt S einen sog. s-Schnitt [S : V \ S] = {(v, w) ∈ E | v ∈ S, w ∈ / S} der Kapazität X c[S : V \ S] = ce ≥ 0. e∈[S:V \S] L EMMA 6.5 (Schnittlemma). Sei x eine zulässige Zirkulation auf G und [S : V \S] ein beliebiger s-Schnitt. Dann gilt xf ≤ c[S : V \ S]. Beweis. Wir setzen yv = 1 für alle v ∈ S und yv = 0 für v ∈ / S. Ausserdem wählen wir ze = 1 für e ∈ [S : V \ S] und ze = 0 sonst. Dann erhalten wir eine zulässige Lösung des dualen Problems (49) mit Zielfunktionswert X ce ze = c[S : V \ S]. e∈E Die schwache Dualität der linearen Programmierung impliziert damit die behauptete Ungleichung. Sei wie vorher x ≥ 0 eine zulässige Zirkulation und S die Menge aller von s in G(x) erreichbaren Knoten. Im Fall t ∈ / S ergibt sich nach Definition von G(x) und der Knotenmenge S für eine Kante e = (v, w) ∈ E \ {f }: c wenn v ∈ S und w ∈ V \ S xe = e 0 wenn v ∈ V \ S und w ∈ S. Also schliessen wir, dass x optimal ist. Denn X xf = xe = c[S : V \ S]. e∈[S:V \S] S ATZ 6.2 (Ford-Fulkerson). Eine zulässige Zirkulation x ist optimal für (48) genau denn, wenn es im Hilfsgraphen G(x) keinen augmentierenden Weg von s nach t gibt. Das lineare Programm (48) hat auf jeden Fall x = 0 als zulässige Lösung. Also erhalten wir unter den obigen Voraussetzungen eine kombinatorische (graphentheoretische) Form der LP-Dualität: KOROLLAR 6.1 (MAX-Flow-MIN-Cut). max{xf | x ist zulässig für (48)} = min{c[S : V \ V ] | s ∈ S ⊆ V }. 76 6. FLÜSSE IN NETZWERKEN 4. Der Algorithmus von Ford-Fulkerson Die vorangegangene Analyse des Ford-Fulkerson-Problems (48) legt folgenden Algorithmus nahe: (FF0) Beginne mit x = 0 als Startlösung und suche im Hilfsgraphen G(x) einen augmentierenden Weg P von s nach t. (FF1) S TOP, wenn P nicht existiert: x ist optimal. (FF2) Wenn P existiert, modifiziere x entlang P zu einem verbesserten zulässigen Fluss x0 mit x0f = xf + ε und iteriere nun mit x0 anstelle von x. Sind die Kapazitäten ce ganzzahlig, so ist klar, dass der FF-Algorithmus nur ganzzahlige Lösungen x produziert und in jeder Iteration der Flusswert xf um ein ganzzahliges ε ≥ 1 verbessert wird. Man kann zeigen, dass der FF-Algorithmus höchstens |V | · |E| Iterationen (Augmentierungen) erfordert, wenn man immer einen augmentierenden Weg P mit so wenig Kanten wie möglich wählt (was z.B. automatisch der Fall ist, wenn man P mit dem Dijkstra-Algorithmus berechnet). (Wir beweisen dies hier nicht, da wir später noch einen anderen Netzwerkfluss-Algorithmus analysieren werden.) 4.1. Das bipartite Matching- und Überdeckungsproblem. Wir gehen von endlichen disjunkten Mengen S und T und einer Teilmenge E ⊆ S × T aus und nennen den Graphen G = (S ∪T, E) bipartit. Ein (nicht notwendigerweise perfektes) Matching ist eine Teilmenge M ⊆ E von paarweise nichtinzidenten Kanten: (s1 , t1 ), (s2 , t2 ) ∈ M =⇒ s1 6= s2 , t1 6= t2 . Die Aufgabe, ein maximales Matching zu berechnen erweist sich als ein Spezialfall des FF-Problems. Dazu betrachten wir den Graphen G = (V, E), mit zwei neuen Knoten s0 , t0 , d.h. V = (S ∪ T ∪ {s0 , t0 }, E, und Kantenmenge E = E ∪ {(s0 , s) | s ∈ S} ∪ {(t, t0 ) | t ∈ T } ∪ {(t0 , s0 } Beschränken wir nun die Kapazität der Kanten vom Typ (s0 , s) und (t, t0 ) auf 1 (und +∞“ sonst) , so berechnet der FF-Algorithmus einen Vektor x ∈ {0, 1}E ” mit maximalem Flusswert X x(t0 ,s0 ) = xe . e∈E Folglich ist M = {e ∈ E | xe = 1} ein maximales Matching in G. Unter einer (Kanten-)Überdeckung von G = (S ∪ T, E) versteht man eine Menge von Knoten(!) C ⊆ S ∪ T mit der Eigenschaft (v, w) ∈ E =⇒ v ∈ C oder w ∈ C. C muss mindestens die Mächtigkeit eines beliebigen Matchings M haben, denn jede Kante aus M muss ja durch C abgedeckt sein: |C| ≥ |M |. 5. DER PRÄFLUSS-MARKIERUNGSALGORITHMUS 77 Sei andererseits M ein maximales Matching, das nach dem FF-Algorithmus konstruiert wurde und C der Schnitt aller Knoten die von s0 noch erreichbar sind. Wegen c[C : V \ C] = |M | < ∞, kann es kein e ∈ E geben, das von S ∩ C nach T \ C verläuft. Also ist C = (S \ C) ∪ (T ∩ C) eine Überdeckung und hat Mächtigkeit |C| = |S \ C| + |T ∩ C| = c[C : V \ C] = |M |. S ATZ 6.3 (König). Sei G = (S ∪ T, E) bipartit. Dann gilt max{|M | | M Matching} = min{|C| | C Überdeckung.} B EMERKUNG. Das Matching- und Überdeckungsproblem kann sinnvoll auch im Fall T = S (d.h. E ⊆ S × S) formuliert werden. Während das Matchingproblem (mit etwas mehr Aufwand) noch effizient lösbar bleibt, ist in dieser Allgemeinheit kein effizienter Algorithmus für das analoge Überdeckungsproblem bekannt. Insbesondere gilt der Satz von König in diesem Rahmen nicht mehr. 5. Der Präfluss-Markierungsalgorithmus Wir betrachten wieder das Ford-Fulkerson-Problem in der Form max δt (x) s.d. δ (50) v (x) = 0 für alle v ∈ V \ {s, t} 0 ≤ xe ≤ ce für alle E (mit Kapazitäten ce ∈ R+ ∪ {+∞}). Dabei soll der Nettozufluss in die Senke t maximiert werden. Bei einer zulässigen Lösung x gilt δs (x) = −δt (x) da die Summe aller Nettozuflüsse null sein muss: X 0 = 0T x = 1T Ax = δv (x) = δs (x) + δt (x). v∈V Also könnten wir xf = δs (x) auf der Kante f = (t, s) verschicken, um bei allen Knoten v den Nettozufluss δv (x) = 0 zu erreichen. Der Einfachheit halber nehmen wir deshalb an: E = {(v, w) ∈ V × V \ {t, s} | v 6= w, } (Eine nicht zur V erfügung stehende “ Kante (v, w) kann ja immer durch die Ka” pazitätsrestriktion cvw = 0 simuliert werden.) Wir wollen einen weiteren Typ von Algorithmus für dieses Problem diskutieren, der von Goldberg und Tarjan vorgeschlagen wurde. 78 6. FLÜSSE IN NETZWERKEN Dazu bezeichnen wir einen Fluss x ∈ RE als Präfluss, wenn in jedem Zwischenk” noten“ v einen nichtnegativen Nettozufluss bewirkt: X X δv (x) = xzv − xvw ≥ 0 für alle v ∈ V \ {s, t}. z6=v w6=v Jeder Zwischenknoten v ist also eine Senke. Im Fall δv (x) > 0 heisst der Knoten v aktiv. Der Präfluss x wird zulässig genannt, wenn er den Kapazitätsschranken genügt: 0 ≤ xe ≤ ce für alle e ∈ E. Die Sende-Operation. Ist x ein zulässiger Präfluss. Wie im Ford-Fulkerson-Algorithmus sei G(x) der entsprechende Hilfsgraph. (v, w) ist also eine Kante von G(x) genau dann, wenn xvw < cvw oder xwv > 0. Man kann also c̃vw = cvw − xvw + xwv > 0 zusätzliche Flusseinheiten von v nach w schicken ohne die Kapazitätsrestriktionen zu verletzen. Ist v aktiv, so kann man also den Fluss von v nach w um ε = min{δv (x), c̃vw } > 0 erhöhen und hat weiterhin einen zulässigen Präfluss. Die Grundidee des Algorithmus ist nun einfach: Man führe solange Sende-Operationen durch, bis eine Optimallösung vorliegt. Um dies systematisch zu tun, benutzt man Knotenmarkierungen. Zulässige Markierungen. Unter einer zulässigen Markierung bzgl. x versteht man eine Bewertung d : V → Z+ ∪ {+∞} der Knoten derart, dass (ZM1) d(v) ≤ d(w) + 1 für alle (v, w) ∈ G(x); (ZM2) d(s) = |V | und d(t) = 0. S ATZ 6.4 (Goldberg-Tarjan). Sei x ∈ RE ein zulässiger Präfluss mit einer zulässigen Markierung d, dann existiert eine Menge S ⊆ V mit s ∈ S und t ∈ / S derart, dass für alle (v, w) ∈ [S : V \ S] gilt: xvw = cvw und xwv = 0. Beweis. Wegen |V \ {s, t}| = |V | − 2 muss es ein 0 < k < |V | geben mit k 6= d(v) für alle v ∈ V . Sei S = {v ∈ V | d(v) > k}. Dann haben wir s ∈ S und t ∈ / S. Ist v ∈ S und (v, w) ∈ G(x), dann haben wir d(w) ≥ d(v) − 1 ≥ (k + 1) − 1 = k d.h. d(w) > k und folglich w ∈ S. Keine Kante von G(x) führt also aus S heraus, was die Behauptung impliziert. Aus dem Korollar des Satzes von Ford-Fulkerson schliessen wir somit: 5. DER PRÄFLUSS-MARKIERUNGSALGORITHMUS 79 KOROLLAR 6.2. Jede zulässige Zirkulation x, die eine zulässige Markierung gestattet, ist eine Optimallösung für (48). Sei x ein zulässiger Präfluss mit zulässiger Markierung d. Existiert bzgl. x keine aktiver Knoten, dann ist x eine Optimallösung von (50). Wir wollen nun zeigen, wie man im anderen Fall einen aktiven Knoten wählen und eine Sendeoperation durchführen kann, sodass man hinterher wieder einen zulässigen Präfluss mit zulässiger Markierung erhält. Sei v ein beliebiger aktiver Knoten. Weil d zulässig ist, gilt d(v) ≤ d(w) + 1 für jede Kante (v, w) ∈ G(x). Wir unterscheiden zwei Fälle. 1. Fall: Es gibt eine Kante (v, w) ∈ G(x) mit d(v) = d(w) + 1. Wenn wir nun eine Sendeoperation entlang (v, w) durchführen, ist d auch für den neuen Präfluss x0 zulässig. Denn die einzige mögliche neue Kante in G(x0 ) ist (w, v), wofür ja schon d(w) ≤ d(v) + 1 gilt. 2. Fall: Für alle Kanten (v, w) ∈ G(x) gilt d(v) ≤ d(w). Wir modifizieren nun die Markierung d zu d0 : d0 (v) = min{d(w) + 1 | (v, w) ∈ G(x)}. Wegen d0 (v) > d(v) ist d0 offenbar auch eine zulässige Markierung. Ausserdem befinden wir uns bzgl. d0 wieder im 1. Fall! Algorithmus. Man beginnt mit einem zulässigen Präfluss x und einer zulässigen Markierung d. Zum Beispiel folgendermassen: ce wenn e von der Form e = (s, v) xe = 0 sonst. |V | wenn v = s d(v) = 0 sonst. Nun führt man Sendeoperationen durch, die zu zulässigen Präflüssen mit zulässigen Markierungen führen, bis ein zulässiger Fluss (gemäss Korollar 6.2) erreicht ist. 5.1. Laufzeitanalyse. Wieviele Sendeoperationen führt der Präfluss-Markierungsalgorithmus durch? Zur Analyse setzen wir n = |V |. Wir betrachten x einen zulässiger Präfluss mit zulässiger Markierung d. L EMMA 6.6. Ist v ∈ V aktiv bzgl. x, dann existiert ein gerichteter Weg P von v nach s in G(x). Beweis. Sei R die Menge aller von v in G(x) erreichbarer Knoten. Im Fall s ∈ /R hätten wir einen echt positiven Nettozufluss aus V \ R nach R: X δw (x) > 0. w∈R 80 6. FLÜSSE IN NETZWERKEN Also muss es mindestens eine Kante (z.w) ∈ [V \ R, R] existieren mit xzw > 0. Aber dann wäre z von v in G(x) erreichbar, ein Widerspruch! Wir können annehmen, dass der Weg P von v nach s in G(x) höchstens n − 1 Kanten durchläuft. Entlang einer Kante in P ändert sich die d-Markierung um höchstens den Wert 1. Also finden wir d(v) < d(s) + n = 2n und schliessen: L EMMA 6.7. Im Algorithmus tritt der 2. Fall (Ummarkierung) bei einer Sendeoperation weniger als 2n2 mal auf. Beweis. Der 2. Fall tritt nur bei aktiven Knoten v auf und bewirkt eine Erhöhung der Markierung, die aber den Wert 2n nie überschreitet. Also tritt dieser Fall bei jedem der n Knoten weniger als 2n mal ein. Wenn wir bei einem aktiven Knoten v Sendeoperationen durchführen bis entweder der Knoten nicht mehr aktiv oder der 2. Fall eingetreten ist, durchlaufen wir den 1. Fall weniger als n mal (da es nur n − 1 weitere Knoten gibt, zu denen ein Überschuss von v gesendet werden kann). Also erkennen wir: P ROPOSITION 6.1. Der Präfluss-Markierungsalgorithmus kann so ausgeführt werden, dass weniger als 2n3 Sendeoperationen stattfinden.