13.07.2015 Aufrufe

4 Lineare Optimierung - Lehrstuhl für Effiziente Algorithmen

4 Lineare Optimierung - Lehrstuhl für Effiziente Algorithmen

4 Lineare Optimierung - Lehrstuhl für Effiziente Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4 <strong>Lineare</strong> <strong>Optimierung</strong>In diesem Kapitel werden wir uns mit effizienten Verfahren im Bereich der linearen <strong>Optimierung</strong>beschäftigen.4.1 EinführungAls Einführung betrachten wir das Beispiel einer Erdölraffinerie. Es gibt zwei Crackprozesse, umschweres Öl (S), mittelschweres Öl (M) und leichtes Öl (L) zu produzieren (GE = Grundeinheit, ME= Mengeneinheit).• Crackprozess 1: Kosten: 3 GE, S: 2 ME, M: 2 ME, L: 1 ME• Crackprozess 2: Kosten: 5 GE, S: 1 ME, M: 2 ME, L: 4 MEDie Mindestproduktion sei3 ME S, 5 ME M, 4 ME LUm die kostengünstigste Kombination der Crackprozesse zu ermitteln, die die Mindestproduktionsicherstellt, führen wir zwei Variablen ein:• x 1 : Produktionsniveau von Crackprozess 1, x 1 ≥ 0• x 2 : Produktionsniveau von Crackprocess 2, x 2 ≥ 0Für den Ausstoß gilt dann• 2x 1 + x 2 ME S ≥ 3 ME• 2x 1 + 2x 2 ME M ≥ 5 ME• x 1 + 4x 2 ME L ≥ 4 MEund die Gesamtkosten sind z = 3x 1 + 5x 2 . Das lineare <strong>Optimierung</strong>sproblem dazu sieht dann wiefolgt aus:min 3x 1 + 5x 2(1) 2x 1 + x 2 ≥ 3(2) 2x 1 + x 2 ≥ 5(3) x 1 + 4x 2 ≥ 4(4) x 1 ≥ 0(5) x 2 ≥ 0Eine geometrische Interpretation des <strong>Optimierung</strong>sproblems ist in Abb. 1 zu finden. Für die optimaleLösung gilt:( ) 2x ∗ = , Wert = 8, 51/2Für eine Zielfunktion ax 1 + bx 2 mit a < 0 gibt es keine Lösung, da x 1 beliebig groß und damit derZielfunktionswert beliebig klein gewählt werden könnte.1


x 21432(1)(2)Zielfunktion(3)OPT1 2 3 4 5 6x 1Figure 1: Geometrische Interpretation des Raffinerieproblems.Abb. 1 legt folgende Vermutung nahe: Wenn eine Optimallösung existiert, dann existiert eine, diefür n Variablen im Schnitt von n Hyperebenen liegt (in unserem Beispiel im Schnitt zweier Geraden).Diese Vermutung wird später noch präzisiert und bewiesen. Unter der Annahme, dass diese wahr ist,können wir die folgende naive Lösungsmethode verwenden:Schreibe (1) bis (5) als Gleichungen und löse alle ( )52 = 10 Gleichungssysteme mit 2 der Gleichungen.Von den Lösungen, die zulässig sind, ist die mit dem kleinsten Zielfunktionswert die optimale.Angenommen, wir haben n Variablen und m Gleichungen, m ≥ n. Dann müssten wir ( )mn Gleichungssystemelösen, was natürlich eindeutig zuviel ist. Eine bessere Methode ist die Simplexmethode,die wie folgt arbeitet:1. Finde eine zulässige Lösung (im Schnitt von n Hyperebenen).2. Gehe durch Austausch je einer Hyperebene zu einer benachbarten Lösung, deren Zielfunktionswertnicht schlechter ist.3. Wiederhole (2), bis eine optimale Lösung gefunden wurde.Wir werden später sehen, dass die Optimalität der gefundenen Lösung durch die Dualitätstheoriesichergestellt ist. Zunächst werden wir per Hand zeigen, dass x ∗ = ( )21/2 eine optimale Lösung ist.Dazu machen wir die folgenden Beobachtungen für eine zulässige Lösung x.• 1. Beobachtung: Erfüllt x eine Ungleichung, dann auch eine beliebige Skalierung dieser Ungleichung,d.h. in unserem Beispiel gilt(2 ′ ) 4x 1 + 4x 2 ≥ 10 (skalieren von (2) um Faktor 2)• 2. Beobachtung: Erfüllt x zwei gleichgerichtete Ungleichungen, so erfüllt er auch deren Summe.(1) 2x 1 + x 2 ≥ 3(3) x 1 + 4x 2 ≥ 43x 1 + 5x 2 ≥ 72


Wir erhalten damit also eine untere Schranke für die Optimallösung (siehe die Zielfunktion).• 2. Versuch:(1) 2x 1 + x 2 ≥ 3(2) 2x 1 + 2x 2 ≥ 54x 1 + 3x 2 ≥ 8Das kann nicht zur Abschätzung der Zielfunktion (3x 1 + 5x 2 ) verwendet werden.• 3. Versuch:1, 5 · (2) 3x 1 + 3x 2 ≥ 7,5⇒ x≥0 3x 1 + 5x 2 ≥ 7,5Das ergibt eine etwas bessere untere Schranke, aber noch nicht den Optimalwert.Um eine systematische Suche der Multiplikatoren durchzuführen, führen wir y 1 für (1) ein, y 2 für(2) ein, und y 3 für (3) ein. Dann können wir die Suche nach einer unteren Schranke formulieren alsmax 3y 1 + 5y 2 + 4y 3(Koeff. rechts von (1)-(3) oben für untere Schranke)(1) 2y 1 + 2y 2 + y 3 ≤ 3 ((1) · y 1 + (2) · y 2 + (3) · y 3 ≤ 3 bzgl. x 1 )(2) y 1 + 2y 2 + 4y 3 ≤ 5 ((1) · y 1 + (2) · y 2 + (3) · y 3 ≤ 5 bzgl. x 2 )(3) y 1 , y 2 , y 3 ≥ 0Wir betrachten nun die Optimallösung y ∗ = (y ∗ 1 y ∗ 2 y ∗ 3) T = (0, 7/6, 2/3). Für diese gilt7/6 · (2): (14/6)x 1 + (14/6)x 2 ≥ 35/64/6 · (3): (4/6)x 1 + (16/6)x 2 ≥ 16/63x 1 + 5x 2 ≥ 8,5x ∗ ist also tatsächlich eine Optimallösung, da für jede gültige Lösung gelten muss, dass 3x 1 +5x 2 ≥8, 5. Für unsere Methode können wir den folgenden Satz zeigen.Satz 4.1 (Schwacher Dualitätssatz) Es seien c ∈ IR n , b ∈ IR m und A eine reelle (m, n)-Matrix. Fürdie Probleme• (P) min{c T x | Ax ≥ b, x ≥ 0}• (D) max{y T b | y T A ≤ c T , y ≥ 0}gilt folgende Aussage:Seien x 0 ∈ IR n und y 0 ∈ IR m Vektoren mit Ax 0 ≥ b, x 0 ≥ 0 und y T 0 A ≤ c T , y 0 ≥ 0, dann isty T 0 b ≤ c T x 03


Beweis.y T 0 b ≤ y T 0 (Ax 0 ) = (y T 0 A)x 0 ≤ c T x 0⊓⊔Der starke Dualitätssatz besagt, dass (y ∗ ) T b = c T x ∗ für die Optimallösungen x ∗ und y ∗ ist, wie wirnoch später sehen werden.Es gibt auch eine ökonomische Interpretation des dualen Programms. Betrachten wir die folgendeFrage: Bei welchen Marktpreisen lohnt sich die Eigenproduktion gerade noch? Sei y 1 (bzw. y 2 , y 3 )der Marktpreis von S (bzw. M, L). Dann sind:• max 3y 1 + 5y 2 + 4y 3 : maximale Bezahlung, ohne selbst zu produzieren.• 2y 1 + 2y 2 + y 3 : Kosten für Ausstoß von CP 1> 3: Produktion lohnt sich• y 1 + 2y 2 + 4y 3 : Kosten für Ausstoß von CP 2> 5: Produktion lohnt sichy 1 , y 2 und y 3 heißen auch Schattenpreise.4.2 <strong>Optimierung</strong>sproblemeBevor wir mit der Formalisierung unseres algorithmischen Ansatzes weiter voranschreiten, formalisierenwir zunächst den Begriff der linearen <strong>Optimierung</strong>sprobleme und anderer wichtiger Klassenvon <strong>Optimierung</strong>sproblemen.Im allgemeinsten Fall lässt sich ein <strong>Optimierung</strong>sproblem wie folgt beschreiben. Gegeben:• Menge S• geornete Teilmenge (T, ≤) (d.h. zwischen je zwei Elementen s, t ∈ T gilt genau eine derfolgenden Beziehungen: s < t, s = t, oder s > t)• Abbildung f : S → TGesucht:• Maximierungsproblem: x ∗ ∈ S, so dass f(x ∗ ) ≥ f(x) für alle x ∈ S• Minimierungsproblem: x ∗ ∈ S, so dass f(x ∗ ) ≤ f(x) für alle x ∈ SSchreibweise:• max x∈S f(x) für max{f(x) | x ∈ S}• min x∈S f(x) für min{f(x) | x ∈ S}Definition 4.2 (Nichtlineares <strong>Optimierung</strong>sproblem) Es seien f, g i (i ∈ {1, . . . , m}) und h j (j ∈{1, . . . , p}) differenzierbare (oder zumindest stetige) Funktionen von IR n → IR. Dann heißt4


nichtlineares <strong>Optimierung</strong>sproblem.min f(x) s.d. g i (x) ≤ 0 für i = 1, . . . , mh j (x) = 0 für j = 1, . . . , px ∈ IR nEine Menge S ⊆ IR n heißt konvex, falls gilt: Sind x, y ∈ S und λ ∈ IR, 0 ≤ λ ≤ 1, dann ist auchλx + (1 − λ)y ∈ S. Eine Funktion f : IR n → IR heißt konvex, falls für alle λ ∈ R, 0 ≤ λ ≤ 1, undalle x, y ∈ IR n gilt:λ · f(x) + (1 − λ)f(y) ≥ f(λx + (1 − λ)y)Beispiele konvexer Mengen und Funktionen finden sich in Abb. 2.yxyxkonvexe Mengekeine konvexe Mengef(x)f(y)f(x)f(y)xyxykonvexe Funktionkeine konvexe FunktionFigure 2: Konvexe und nichtkonvexe Mengen und Funktionen.Definition 4.3 (Konvexes <strong>Optimierung</strong>sproblem) Ist S ∈ IR n konvex und f : IR n → IR eine konvexeFunktion, dann heißt min x∈S f(x) ein konvexes <strong>Optimierung</strong>sproblem.Eine konvexe Menge S kann z.B. definiert sein durch S = {x ∈ IR n | g i (x) ≤ 0, i = 1, . . . , m},wobei die g i , i = 1, . . . , m, konvexe Funktionen sind.Definition 4.4 (<strong>Lineare</strong>s <strong>Optimierung</strong>sproblem) Gegeben seien c ∈ IR n , b ∈ IR m , A ∈ IR m×n , dannheißtmax c T x s.d.Ax ≤ bx ≥ 05


lineares <strong>Optimierung</strong>sproblemDefinition 4.5 (<strong>Lineare</strong>s <strong>Optimierung</strong>sproblem) Gegeben seien c ∈ IR n , b ∈ IR m , A ∈ IR m×n , dannheißtmax c T x s.d.lineares ganzzahliges <strong>Optimierung</strong>sproblemAx ≤ bx ≥ 0ganzzahligDefinition 4.4 scheint recht eingeschränkt zu sein, denn neben Maximierungsproblemen könntenauch Minimierungsprobleme, statt Ungleichungen auch Gleichungen in den Restriktionen, und stattder Forderung x ≥ 0 auch beliebige reelle Variablen betrachtet werden. Die folgenden Transformationenzeigen aber, dass die Form in Definition 4.4 aber eine Normalform für alle <strong>Optimierung</strong>sproblemeüber linearen Zielfunktionen und Restriktionen ist.1. Umformung von Minimierungsproblem in Maximierungsproblem:min c T x s.d.Ax ≥ bx ≥ 0⇒ max −cT x s.d. −Ax ≤ −bx ≥ 02. Umformung von Gleichungen in Restriktionen:max c T y s.d.By ≥ dy ≥ 0x=y⇒max c T x s.d.( B−B)x ≤( d−d)x ≥ 03. Umformung von reellwertigen in nichtnegative Variablen:max a T y s.d.By ≥ dy ∈ IRx=( y+y −)⇒max ( )a T−a x s.d. (B, −B)x ≤ dx ≥ 0Wir betrachten nun ein paar Beispiele für lineare <strong>Optimierung</strong>sprobleme, denen wir schon imersten Kapitel über maximale Flüsse begegnet sind.Maxflow ProblemGegeben seien ein gerichteter Graph G = (V, E) mit Kantenkapazitäten c : E → IR + und das Quell-Ziel-Paar (s, t) in G. Für jede Kante e ∈ E sei x e ≥ 0 der Flusswert entlang e. Dann ist das MaxflowProblem wie folgt definiert:s.d.max ∑ (s,w)∈E x (s,w) − ∑ (u,s)∈E x∑(u,s)(u,v)∈E x (u,v) − ∑ (v,w)∈E x (v,w) = 0 für alle v ∈ V \ {s, t}x e ≤ c(e) für alle e ∈ Ex e ≥ 0 für alle e ∈ EFlusswert = Fluss aus sFlusserhaltungKapazitätseinhaltung6


Mincost Maxflow ProblemGegeben ist hier ein gerichteter Graph G = (V, E) mit Kantenkapazitäten c : E → IR + und Kantenkostenw : E → IR + und das Quell-Ziel-Paar (s, t) in G. Wir erinnern uns daran, dass die Kosteneines Flusses f definiert sind alsw(f) = ∑ e∈Ew(e) · f(e)Um den maximalen Fluss mit minimalen Kosten zu finden, lösen wir zunächst das Maxflow Problemoben, um den maximalen Zielfunktionswert f ∗ zu erhalten. Mit Hilfe dieses Wertes stellen wir danndas folgende lineare <strong>Optimierung</strong>sproblem auf, das uns den maximalen Fluss mit minimalen Kostenliefert.s.d.min ∑ e∈E w(e) · f(e)∑∑ (s,w)∈E x (s,w) − ∑ (u,s)∈E x (u,s) = f ∗ Flusswert maximal(u,v)∈E x (u,v) − ∑ (v,w)∈E x (v,w) = 0 für alle v ∈ V \ {s, t} Flusserhaltungx e ≤ c(e) für alle e ∈ EKapazitätseinhaltungx e ≥ 0 für alle e ∈ E4.3 Die SimplexmethodeIm folgenden bezeichne I die Einheitsmatrix (d.h. die Matrix mit 1en entlang der Diagonalen undsonst 0en überall). Seien a ∈ IR, d ∈ IR m und D ∈ IR m×n . Wir betrachten die folgenden äquivalentenUmformungen:max a T y s.d.Dy ≥ dy ≥ 0⇒ max aT y s.d. Dy + Is = dy, s ≥ 0⇒ max aT y s.d. s = d − Dyy, s ≥ 0⇒max z s.d.s = d − Dyz = a T yy, s ≥ 0Variablen in y heißen Entscheidungsvariablen und die Variablen in s heißen Schlupfvariablen.Betrachten wir wieder unser Beispiel mit der Erdölraffinerie. Für das duale <strong>Optimierung</strong>sproblemgalt:max 3y 1 + 5y 2 + 4y 32y 1 + 2y 2 + y 3 ≤ 3y 1 + 2y 2 + 4y 3 ≤ 5y 1 , y 2 , y 3 ≥ 0Transformieren wir dieses in das System oben, so erhalten wir für (x 1 , . . . , x 5 ) = (y 1 , y 2 , y 3 , s 1 , s 2 )die Restriktionen7


(1) x 4 = 3 − 2x 1 − 2x 2 − x 3(2) x 5 = 5 − x 1 − 2x 2 − 4x 3(3) z = 3x 1 + 5x 2 + 4x 3x 1 , . . . , x 5 ≥ 0x 1 , x 2 , x 3 werden Nichtbasisvariablen und x 4 , x 5 Basisvariablen dieses Systems genannt. Eine ersteLösung für das Gleichungssystem oben kann man erhalten für x 1 = 0, x 2 = 0 und x 3 = 0. Das ergibtaber lediglich z = 0, was noch weit vom optimalen Zielfunktionswert z = 8, 5 entfernt ist. Um z zuerhöhen, können wir entweder x 1 , x 2 oder x 3 erhöhen, da all diese Variablen positive Koeffizienten inder Gleichung für z haben. Erhöhen wir z.B. x 1 und lassen x 2 = 0 und x 3 = 0. Dann erhalten wirz = 3x 1 > 0 und weiterhin giltx 4 ≥ 0 ⇒ x 1 ≤ 3/2x 5 ≥ 0 ⇒ x 1 ≤ 5Wir können als x 1 bis auf 3/2 erhöhen, ohne in eine ungültige Lösung zu geraten. Führen wir einenBasistausch zwischen x 1 und x 4 durch, so ergibt aus dem System oben das System(1’) x 1 = (3/2) − x 2 − (1/2)x 3 − (1/2)x 4(2’) x 5 = 5 − ((3/2) − x 2 − (1/2)x 3 − (1/2)x 4 ) − 2x 2 − 4x 3= (7/2) − x 2 − (7/2)x 3 + (1/2)x 4(3’) z = 3((3/2) − x 2 − (1/2)x 3 − (1/2)x 4 ) + 5x 2 + 4x 3= (9/2) + 2x 2 + (5/2)x 3 − (3/2)x 4Für x 2 = 0, x 3 = 0 und x 4 = 0 erhalten wir also z = 9/2, was besser ist als vorher. Als nächsteskönnen wir entweder x 2 oder x 3 erhöhen, da beide positive Koeffizienten in der z-Gleichung haben.Angenommen, wir wollen x 2 erhöhen. Dann gilt:(1’) x 1 ≥ 0 ⇒ x 2 ≤ 3/2(2’) x 5 ≥ 0 ⇒ x 2 ≤ 7/2Wir führen also einen Basistausch von x 1 und x 2 durch. Daraus ergibt sich(1”) x 2 = (3/2) − x 1 − (1/2)x 3 − (1/2)x 4(2”) x 5 = 2 + x 1 − 3x 3 + x 4(3”) z = (15/2) − 2x 1 + (3/2)x 3 − (5/2)x 4Als nächstes können wir einen Basistausch von x 3 und x 5 vornehmen. Das ergibt(1”’) x 2 = (7/6) − (7/6)x 1 − (2/3)x 4 + (1/6)x 5(2”’) x 3 = (2/3) + (1/3)x 1 + (1/3)x 4 − (1/3)x 5(3”’) z = (17/2) − (3/2)x 1 − 2x 4 − (1/2)x 5Da z nicht weiter zu erhöhen ist, erreichen wir also für x 1 = 0, x 4 = 0 und x 5 = 0 eine optimaleLösung mit x 2 = 7/6 und x 3 = 2/3.Die Regel, die wir zum Basistausch oben verwendet haben, nennt sich auch “kleinste Indexregel”.Eine andere Regel ist z.B. der “steilste Einheitsanstieg”. Für diese Regel würde in der ersten Iterationein Basistausch von x 2 und x 4 durchgeführt werden. Daraus ergäbe sich8


(1’a) x 2 = (3/2) − x 1 − (1/2)x 3 − (1/2)x 4(2’a) x 3 = 2 + x 1 − 3x 2 + x 4(3’a) z = (15/2) − 2x 1 + (3/2)x 3 − (5/2)x 4Die Optimalität würde dann in zwei weiteren Iterationen erreicht.Aus unseren Erfahrungen oben können wir die folgenden Regeln formulieren:• Eintrittsvariable: Variable mit positivem Koeffizienten in z-Gleichungz = z ∗ + ∑ ¯c j x jj∈Nwobei z ∗ den momentanen Zielfunktionswert und ¯c j den momentanen Koeffizienten für Nichtbasisvariablex j angibt.• Austrittsvariable: Die Basisvariable, deren Nichtnegativität die kleinste obere Schranke für dieEintrittsvariable impliziert.Gibt es keine solche Variable, z.B.x 4 = 5 + 2x 1 − x 2 − 3x 3x 5 = 7 − 3x 2 − 4x 3z = x 1 − x 2 − x 3bei Eintrittsvariable x 1 , dann ist das LP unbeschränkt. Ein Beispiel für einen System mit mehrerenKandidaten für die Austrittsvariable istx 4 = 1x 5 = 3 − 2x 1 + 4x 2 − 6x 3x 6 = 2 + x 1 − 3x 2 − 4x 3z = 2x 1 − x 2 + 8x 3mit Eintrittsvariable x 3 , da für x 5 und x 6 gilt, dass x 3 ≤ 1/2. Einen anderen interessanten Fall erhältman, wenn man x 3 und x 4 mit der Forderung x 3 ≤ (1/2) − (1/2)x 4 austauscht. Das ergibtx 3 = (1/2) − (1/2)x 4x 5 = 0 − 2x 1 + 4x 2 + 3x 4x 6 = 0 − x 1 − 3x 2 + 2x 4z = 4 + 2x 1 − x 2 − 4x 4Für die Eintrittsvariable x 1 folgt sich für x 5 und x 6 , dass x 1 ≤ 0 sein muss. In diesem Fall spricht manvon einer Degenerität oder einem degenerierten Pivot. Der Basistausch von x 1 und x 5 ergibtx 1 = 0 + 2x 2 + (3/2)x 4 − (1/2)x 5x 3 = (1/2) − (1/2)x 4x 6 = 0 − x 2 + (7/2)x 4 − (1/2)x 5z = 4 + 3x 2 − x 4 − x 5Ein weiterer Basistausch mit x 2 führt dann zur Optimallösung.Da sich bei degenerierten Pivots der Simplexalgorithmus nicht verbessert, stellt sich die Frage,ob der Simplexalgorithmus immer terminiert. In der Tat terminiert er nicht für jede Simplexregel.Betrachte z.B.9


x 5 = 0 − (1/2)x 1 + (11/2)x 2 + (5/2)x 3 − 9x 4x 6 = 0 − (1/2)x 1 + (3/2)x 2 + (1/2)x 3 − x 4x 7 = 1 − x 1z = 10x 1 − 57x 2 − 9x 3 − 24x 4und die Regel1. Eintrittsvariable: Kandidatin mit größtem Koeffizienten.2. Austrittsvariable: Kandidatin mit kleinstem Index.Es folgen sechs degenerierte Pivots, nach denen wir wieder wie am Anfang sind. Eine Hausaufgabewird sein, diese Rechnungen nachzuvollziehen.Glücklicherweise gibt es eine Pivotregel, die immer terminiert, die auch als Bland’s Regel bekanntist: Als Basiseintritts- und Austrittsvariable wird immer die Kandidatin mit dem kleinsten Indexgewählt. Einen Beweis dazu geben wir später.Zunächst formalisieren wir den Simplexalgorithmus weiter. Wir betrachten LPs der Forms.d.max c T xAx = bx ≥ 0• A ∈ IR m×n , m < n• rang(A) = m• P = (A, b) := {x ∈ IR n | Ax = b, x ≥ 0}Diese Eigenschaften galten oben mit A = (D, I), c = ( )a0 und b = d. Konventionen für A sind:• Zeilenindexmenge von A: {1, 2, . . . , m}• Spaltenindexmenge von A: {1, 2, . . . , n}• Basis: B = (p 1 , p 2 , . . . , p m ) T ∈ {1, 2, . . . , n} m• Nichtbasis: N = (q 1 , q 2 , . . . , q n−m ) T ∈ {1, 2, . . . , n} n−m• B, N Vektoren oder Mengen, abhängig von der Situation.• B ∪ N = {1, 2, . . . , n}, B ∩ N = ∅Für ein J ⊆ {1, 2, . . . , n} sei A •J die Untermatrix von A nach Streichen der Spalten in {1, . . . , n} \ J,und für I ⊆ {1, 2, . . . , m} sei A I• die Untermatrix von A nach Streichen der Zeilen in {1, . . . , m} \ I.Für den Spezialfall |J| = 1, d.h. J = {j}, schreiben wir auch A •j anstatt A •{j} , und für |I| = 1, d.h.I = {i}, schreiben wir auch A i• anstatt A {i}• . Zur weiteren Vereinfachung werden wir A B statt A •Bund A N statt A •N schreiben.Definition 4.6 Gegeben sei ein Gleichungssystem Ax = b, A ∈ IR m×n , b ∈ IR m , rang(A) = m,außerdem B und N nach obigen Konventionen.10


(a) Ist A B regulär (d.h. invertierbar), so heißt A B Basismatrix (oder kurz Basis) und B Basisindexvektor(oder kurz Basis) und A N Nichtbasismatrix (Nichtbasis) und N Nichtbasisindexvektor(Nichtbasis). Der Vektor x ∈ IR n mit x N = 0 und x B = A −1B b heißt Basislösung von Ax = bzur Basis A B .(b) Ist A B eine Basis, dann heißen die Variablen x j , j ∈ B, Basisvariablen und x j , j ∈ N, Nichtbasisvariablen.(c) Ist A B eine Basis und gilt A −1B b ≥ 0, dann heißen A B und die dazugehörige Basislösung xzulässig (andernfalls unzulässig).(d) Eine Basislösung x zur Basis A B heißt nichtdegeneriert, falls (x B ) ii ∈ B, und sonst degeneriert.= (A −1B b) i≠ 0 für alleWarum sind Basislösungen so wichtig für den Simplexalgorithmus? Erinnern wir uns daran, dasswir am Anfang des Kapitels vermutet haben, dass wenn eine Optimallösung existiert, dann existierteine, die für n Variablen im Schnitt von n Hyperebenen liegt. Der Simplexalgorithmus exploriert dieseLösungen, indem er sich von Basislösung zu Basislösung bewegt. Eine zulässige Basislösung kannman sich vorstellen als eine Ecke des n-dimensionalen Polyeders, der durch die Restriktionen definiertist. Der Simplexalgorithmus wandert also durch einen Basistausch entlang der Ecken dieses Polyeders,wobei er nur Basistausche betrachtet, die zu einer benachbarten Ecke führen, die einen mindestens soguten Zielfunktionswert wie die vorherige Ecke hat.Nun mag man sich fragen, ob die Menge der Basislösungen alle relevanten Ecken abdeckt, da jaimmer n der n + m Variablen (die Nichtbasisvariablen) auf 0 gesetzt sind. Das ist in der Tat der Fall,wie wir noch sehen werden.Satz 4.7(a) Ist x eine nichtdegenerierte Basislösung, dann ist die zu x gehörige Basis eindeutig definiert.(b) Die Umkehrung gilt im Allgemeinen nicht.Beweis. (a) Angenommen, es gibt eine Basis B ′ ≠ B mit x B ′ = x B . Dann gibt es ein i mit i ∈ B undi ∉ B ′ . In diesem Fall muss aber x i = 0 sein, was zum Widerspruch führt.(b) Betrachte z.B.A =( ) 1 1 00 0 1und b =Die Basen sind (1, 3) und (2, 3) und die dazugehörigen Basislösungen sind (1, 0, 0) T und (0, 1, 0) T .Beide sind entartet, haben aber eindeutig bestimmte Basen.⊓⊔Gründe für Degenerität können sein:• überflüssige Variable (vermeidbar)• redundante Ungleichung (vermeidbar)• geometrische Gründe (nicht unbedingt vermeidbar)11( 10)


Eine Ungleichung d T x ≤ d 0 heißt redundant bezüglich P (A, b), wenn gilt: x ∈ P (A, b) ⇒ d T x ≤d 0 . Geometrische Gründe können dann entstehen, wenn es eine Ecke gibt, in der sich mehr als nurn Hyperebenen schneiden (betrachte z.B. die Spitze einer Pyramide im 3-dimensionalen Raum). EinBasistausch an einer solchen Ecke kann dazu führen, dass der Simplexalgorithmus bei dieser Eckebleibt.4.4 KorrektheitBisher haben wir den Simplexalgorithmus nur auf einer recht intuitiven Ebene beschrieben. Jetztformalisieren wir diesen und beweisen seine Korrektheit. Wir betrachten LPs der Forms.d.max c T xAx = bx ≥ 0Aufgeteilt in Basis- und Nichtbasisvariablen erhalten wirDaraus folgtunds.d.A B x B + A N x N = bmax ( )c T ( )B xBc N x N(A B , A N ) ( x Bx N)= b(xBx N)≥ 0⇒ x B = A −1B b − A −1B A N x Nz = c T Bx B + c T Nx N= c T B(A −1B b − A −1B A N x N ) + c T Nx N= c T BA −1B b + (c T N − c T BA −1B A N )x NWir erhalten also das folgende Simplexgleichungsschema (SGS):x B = A −1B b − A −1B A N x Nz = c T BA −1B b + (c T N − c T BA −1B A N )x NDas lässt sich als sogenanntes Simplextableau wie folgt darstellen:Für das Raffinerie-Beispiel gilt:A =c T BA −1B bA −1B b( ) 2 2 1 1 01 2 4 0 1c T BA −1B A N − c T NA −1B A Nb =( 35)12c T = (3, 5, 4, 0, 0)


Das Anfangs-SGS dazu istDas Tableau sieht also wie folgt aus:B = (4, 5) und N = (1, 2, 3)( 35)A −1B b =c T N − c T BA −1B b = (3, 5, 4) − (0, 0, 0)x 1 x 2 x 3z 0 -3 -5 -4x 4 3 2 2 1x 5 5 1 2 4Durch den Basistausch von x 2 und x 4 ergibt sich daraus:Damit erhalten wiroder als Tablueau:B = (2, 5) und N = (1, 4, 3)A B =( )( 2 01, A −1B =)22 1−1 1( ) 11 12 2−1 − 1 3A −1B A N =( 3)c T BA −1B b = (5, 0) ·22= 152c T N − c T BA −1B b = (3, 0, 4) − (5, 0) ·= (−2, −5/2, 3/2)( 11 12 2−1 − 1 3x 2 = 3/2 − x 1 − (1/2)x 4 − (1/2)x 3x 5 = 2 + x 1 + x 4 − 3x 3, A −1B b =z = 15/2 − 2x 1 − (5/2)x 4 + (3/2)x 3x 1 x 4 x 3z 15/2 2 5/2 -3/2x 2 3/2 1 1/2 1/2x 5 2 -1 -1 3Die Komponenten des Vektors c T N − c T BA −1B A N heißen auch reduzierte Kosten.)( 3)22Satz 4.8 (Optimalität) Sei A B eine zulässige Basis, x die zu A B gehörige Basislösung und ¯c T =c T N − c T BA −1B A N der zugehörige Vektor der reduzierten Kosten, so gilt:13


(a) Ist ¯c ≤ 0, dann ist x optimal.(b) Ist x nichtdegeneriert und optimal, so gilt ¯c ≤ 0.Beweis. Sei P = (A, b) := {x ∈ IR n | Ax = b, x ≥ 0}.(a) Sei y ∈ P = (A, b). Dann gilt(b) Sei x optimal, y ∈ P = (A, b). So gilt:c T y = c T BA −1B b + ¯c T y N ≥0y N ≤ c T BA −1B b = c T Bx B = c T xc T x ≥ c T y ⇔ c T BA −1B b + ¯c T x N ≥ c T BA −1B b + ¯c T x N⇔ 0 ≥ ¯c T y NAngenommen, es gibt ein i ∈ N mit ¯c i > 0. Aus der Nichtgenerität folgt, dass A −1B b > 0. Es seie i = (0, . . . , 0, 1, 0, . . . , 0) T ∈ IR n−m der Vektor mit einer 1 an der i-ten Stelle. Dann existiert einλ ∈ IR, λ > 0 mitA −1B b ≥ A −1B A N λe iBetrachte nun die Lösung x λ mitOffensichtlich gilt x λ ∈ P = (A, b) und wir habenx λ B = A −1B b − A −1B A N λ · e ix λ N = λ · e ic T x λ = c T BA −1B b + ¯cλe i = c T x + λ¯c i> c T xwas ein Widerspruch zur Optimalität von x ist.⊓⊔Satz 4.9 (Basistausch) Sei A B eine Basis mit B = (p 1 , p 2 , . . . , p m ), N = (q 1 , . . . , q m ) und Ā =A −1B A N = (ā rs ) 1≤r≤m,1≤s≤n−m und ¯b = A −1B b ∈ IR m .Ist ā rs ≠ 0, so ist A B ′ mit B ′ = (p 1 , p 2 , . . . , p r−1 , q s , p r+1 , . . . , p m ) eine Basis von A. Ferner gilt= E · A−1 B , wobei E = I mit der r-ten Spalte ersetzt durch η ist mitA −1B ′• η r = 1/ā rs• η i = −ā is /ā rs für alle i ∈ {1, . . . , m} \ {r}Das Element ā rs heißt Pivotelement. Sind x bzw. x ′ die zu A B bzw. A B ′ behörigen Basislösungen, sogilt:• x ′ p i= ¯b i − āisā rs¯br = E i•¯b = Ei•¯b = Ei• x B für i ∈ {1, . . . , m} \ {r}• x ′ q s= ¯b rā rs• x ′ j = 0 andernfalls= E r•¯br = E r• x B14


Beweis. Setze a = A •qs , ¯d = A −1B d = Ā•s und F = A −1B A B ′. A B ′ entsteht aus A B durch Ersetzen derr-ten Spalte durch d. Also hat F die folgende Gestalt:⎛F =⎜⎝1 ¯d1. .. . 0¯d r.0 . . .¯d m 1⎞⎟⎠mit ¯d r ≠ 0 nach VoraussetzungEs gilt F ·E = I (nachrechnen), also E = F −1 . Aus A B ′ = A B ·F folgt damit, dass A −1B ′E · A − B −1 . Rest nachrechnen.= F −1 A −1Satz 4.10 (Basisverbesserung) Sei A B eine zulässige Basis mit Basislösung x, Ā = A −1B A N , ¯b =A −1B b und ¯c T = c T N − c T BA −1B A N . Sei q s ∈ N mit ¯c s > 0. Dann gilt:(a) Ist Ā•s ≤ 0, dann ist c T x auf P = (A, b) unbeschränkt.(b) Ist Ā•s ≰ 0, dann setzen wirλ 0 = min{ }¯bi| i ∈ {1, . . . , m}, ā is > 0ā isB =und wählen einen Index r ∈ {1, . . . , m} mit ¯b r /ā rs = λ 0 . Dann ist A B ′ mit B ′ = (p 1 , . . . , p r−1 ,q s , p r+1 , . . . , p m ) eine zulässige Basis mit Basislösung x ′ , so dass c T x ′ ≥ x T x.(c) Gelten die Voraussetzungen von (b) und ist A B nichtdegeneriert, dann gilt c T x ′ > c T x.Beweis. (a): y ∈ P = (A, b) ⇔ y B = A −1B b − A −1B A N y N ≥ 0 und y N ≥ 0. Für λ > 0 sei y λ ∈ IR ndefiniert durch• y λ N := λe s ≥ 0• y λ B := A −1B b − Āyλ N = A −1B b − λĀ•s ≥ A −1B b ≥ 0.Also ist y λ ∈ P = (A, b) undc T y λ = c B A −1B b + ¯cy λ N = c B A −1B b + λ¯c s λ→∞ → ∞(b): Wegen ā rs > 0 gilt nach dem Basisaustauschsatz: B ′ = (p 1 , p 2 , . . . , p r−1 , q s , p r+1 , . . . , p m )definiert eine Basis mit Basislösung x ′ , wobeifür i ≠ r mit ā is > 0 (Wahl von λ 0 ). Es giltx ′ p i= ¯b i − ¯b rā rs· ā is ≥ ¯b i − ¯b iā is· ā is = 0• x ′ p i= ¯b i − ¯b rā rs· ā is ≥ ¯b i für i ≠ r mit ā is ≤ 0• x ′ q s= ¯b rā rs≥ 015⊓⊔


• x ′ j = 0 sonstAlso ist x ′ eine zulässige Basislösung. Wir zeigen: c T x ′ ≥ c T x.0 < ¯c s = (c T N − CBA T −1B A N ) s= c qs − c T B · Ā•s=m∑c qs − c pi ā isi=1= (c qs − ∑ c pi ā is ) − c pr ā rsi≠r= ā rs · c T B ′ · η − c p r· ā rs= ā rs (c T B ′η − c p r) und ā rs > 0Daraus folgtAlso istc T B ′η − c p r= ¯c sā rs> 0c T x ′ = c T B ′x B ′ = cT B ′ · A−1B ′ b= c T B ′E · A−1 B b = c T BE · x B= ∑ c pi · x pi + c T B ′η · x p ri≠rx pr= c T Bx B + (c T B ′η − c p r)} {{ } }{{}>0 ≥0≥ c T x B = c T x(c): Mit x pr > 0 folgt aus obiger Rechnung, dass c T x ′ > c T x ist. ⊓⊔Zusammenfassend ergeben sich also folgende Rechenregeln für den Basistausch im Simplex-Tableaumit Darstellung• Initialisierung:c T BA −1B bA −1B bc T BA −1B A N − c T NA −1B A Nt 00 t 01 t 02 . . . t 0nt 10 t 11 t 12 . . . t 1nt 20 t 21 t 22 . . . t 2n. . . . . .t m0 t m1 t m2 . . . t mn0 −cb A16


Das Tableau ist zulässig, falls t i0 ≥ 0 für alle i ∈ {1, . . . , m} und optimal, falls t 0j ≥ 0 für allej ∈ {1, . . . , n}.• Pivotspalte: Spalte s, so dass t 0s = min 1≤j≤n,t0j 0 t i0t is– Pivotzeile: t ′ rj = t rj /t rs für alle j ≠ s– Pivotspalte: t ′ is = −t is /t rs für alle i ≠ r– Rest t ′ ij = t ij − (t rj · t is )/t rs für alle i ≠ r, j ≠ sFalls wir mit einem zulässigen Tableau starten und der Simplexalgorithmus terminiert, dann ergebenunsere Resultate oben, dass der Simplexalgorithmus eine optimale Lösung zurückliefert. Allerdingsmüssen wir noch klären, was zu tun ist, falls das Anfangstableau unzulässig ist und wie garantiertwerden kann, dass der Simplexalgorithmus terminiert.4.5 InitialisierungAngenommen, wir haben ein LP der Forms.d.max c T xAx ≤ bx ≥ 0für das b ≱ 0 ist (ansonsten ergibt das Anfangs-SGS eine zulässige Basislösung und wir brauchenkeine Extrabehandlung). Um herauszufinden, ob dieses LP eine gültige Lösung hat, erweitern wir esum eine Hilfsvariable x 0 und verändern die Zielfunktion wie folgt:s.d.max −x 0Ax − ¯x 0 ≤ bx ≥ 0, x 0 ≥ 0wobei ¯x 0 ein m-dimensionaler Vektor ist mit x 0 in jeder Dimension. Eine zulässige Lösung für diesesLP wäre z.B. x = 0 und x 0 = | min i b i |. Weiterhin gilt offensichtlich:Lemma 4.11 Das ursprügliche LP hat eine zulässige Lösung genau dann, wenn das Hilfs-LP hat eineoptimale Lösung mit x 0 = 0 hat.Wenden wir nun den Simplexalgorithmus auf das Hilfs-LP an, so ergibt sichs = b + x 0 − Axz = −x 017


wobei s der Vektor der Schlupfvariablen ist. Führen wir nun einen Basistausch zwischen x 0 und einerbeliebigen Schlupfvariablen s i mit b i = min j b j durch, so erhalten wir das SGSx 0 = −b i + A i• x + s is j = b j + (−b i + A i• x + s i ) − A j• x für alle j ∈ B \ {i}= (b j − b i ) + (A i• − A j• )x + s iz = b i − A i• x − s iDa b i < 0 und b i = min j b j , gilt für den Vektor ¯b in der Basisdarstellung x B = ¯b−Āx N des SGS oben,dass ¯b ≥ 0. Die Basislösung des SGS ist somit zulässig, und wir können den Simplexalgorithmusanwenden, um eine optimale Lösung für das Hilfs-LP zu finden. Gilt für diese Lösung x 0 ≠ 0, dannbrechen wir mit “Das LP hat keine Lösung” ab. Ansonsten unterscheiden wir zwischen zwei Fällen,um x 0 aus dem SGS zu entfernen:• 0 ∈ N: Dann streichen wir einfach die Spalte von x 0 im SGS und erhalten so ein SGS mit einerzulässigen Lösung für das ursprügliche LP.• 0 ∈ B: Angenommen x 0 sei assoziiert mit Zeile i des SGS. Da x 0 = 0 ist, muss dann ¯b i = 0 sein.Wir können also einen degenerierten Basistausch zwischen x 0 und einer beliebigen Variablen x jin N mit ā ij ≠ 0 durchführen, ohne den Zielfunktionswert zu verändern. Dadurch haben wirdiesen Fall auf den vorherigen zurückgeführt.Um die Umwandlung in ein SGS für das originale LP zu vereinfachen, fügt man am besten die z-Gleichung vom Oringinal-LP zum SGS des Hilfs-LP hinzu und führt die entsprechenden Änderungendurch, ohne diese z-Gleichung für den Basistausch zu betrachten. Dann muss man nach Streichungvon x 0 lediglich die z-Gleichung des Hilfs-LPs durch die z-Gleichung des originalen LPs ersetzten,um mit dem Original-LP fortzufahren.4.6 TerminierungAls nächstes betrachten wir das Problem der Terminierung. Zunächst stellen wir fest:Lemma 4.12 Die Simplexmethode terminiert nicht genau dann, wenn sie zykelt.Beweis. Zykeln ⇒ NichtterminierungNichtterminierung ⇒ Basiswiederholung ⇒ Zykeln⊓⊔Als nächstes zeigen wir, dass der Simplexalgorithmus mit Blands Regel immer terminiert. ZurErinnerung: Blands Regel besagt, dass die eintretende und austretende Variable ist immer die Kandidatinmit dem kleinsten Index ist.Satz 4.13 Bei Anwendung von Blands Regel terminiert der Simplexalgorithmus.Beweis. Wir zeigen, dass zykeln unmöglich ist. Angenommen, der Algorithmus zykelt. Dann gibt eseine Folge von Basen B 0 , B 1 , . . . , B k mit B k = B 0 . Eine Variable x j heißt unstet, wenn es zwei BasenB p und B q gibt, so dass x j eine Basisvariable in B p und eine Nichtbasisvariable in B q ist.18


Sei x t die unstete Variable mit dem größten Index. Sei B ∈ {B 0 , . . . , B k } eine Basis, in der x taustritt und x s eintritt. Da x t unstet ist, gibt es eine Folge von Basen B, B ′ , B ′′ , . . . , B ∗ , für die x t inB ∗ reinkommt. Für B giltundx B = A −1B b − A −1B A N x N= ¯b − Āx N d.h. für alle i ∈ B ist x i = ¯b i − ∑ j ā ij x jz = c T BA −1B b + (c T N − c T BA −1B A N )x N= v + ∑ ¯c j x jj∈Nfür eine Konstante v. Da alle Pivots degeniert sind, gilt auch für B ∗ , dassz = v + ∑ j¯c ∗ jx jmit ¯c ∗ j = 0 für alle j ∈ B ∗Wir betrachten nun die folgende Lösung• x s = λ• x j = 0 für alle j ∈ N \ {s}• x i = ¯b i − ā is λ für alle i ∈ Bfür ein beliebiges λ ∈ IR. Da dieses x alle Restriktionen (abgesehen von x ≥ 0) erfüllt, gilt aufgrundder Äquivalenz der Zielfunktionen, dassv + ¯c s λ = v + ¯c ∗ sλ + ∑ i∈B¯c ∗ i (¯b i − ā is λ)und damit(¯c s − ¯c ∗ s + ∑ ¯c ∗ i ā is )λ = ∑ ¯c ∗ i¯b ii∈Bi∈BDa auf der rechten Seite eine Konstante unabhängig von λ steht, muss gelten¯c s − ¯c ∗ s + ∑ ¯c ∗ i ā is = 0 (∗)i∈BWeiterhin gilt:• x s rein in B ⇒ ¯c s > 0• x s nicht rein in B ∗ und s < t (da s unstet) ⇒ ¯c ∗ s ≤ 0Aus (∗) folgt damitWir wissen:Es existiert ein r ∈ B mit ¯c ∗ rā rs < 0.(∗∗)• r ∈ B und r ∉ B ∗ (da ¯c ∗ r ≠ 0) ⇒ r unstet ⇒ r ≤ t (r unstet)19


• – x t raus aus B ⇒ ā ts > 0– x t rein in B ∗ ⇒ ¯c ∗ t > 0Also ist ¯c ∗ t ā ts > 0 ⇒ r ≠ t.Damit ist r < t. Da x r nicht reinkam in B ∗ , gilt ¯c ∗ r < 0 und damit ā rs > 0 wegen (∗∗). Weil allePivots von B nach B ∗ degeneriert sind, sind alle Basislösungen gleich. Aus r ∈ B und r ∉ B ∗ folgtx r = 0 (in B und B ∗ ) und damit ¯b r = 0, da ansonsten wegen ¯c ∗ r ≠ 0 die Zielfunktionen für B und B ∗unterschiedliche Werte hätten. Wegen ¯c ∗ r < 0 und ā rs > 0 wäre x r also ein Austrittskandidat in B ∗gewesen, aber wir wählten x t , was wegen r < t zu einem Widerspruch führt.⊓⊔Es ist bekannt, dass der Simplexalgorithmus mit Blands Regel im schlimmsten Fall exponentielllange braucht, um das Optimum zu finden, aber in der Praxis läuft der Simplexalgorithmus sehrschnell.20

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!