Lineare Programmierung Teil I

Ähnliche Dokumente
Lineare Programmierung (2)

Optimierung. Vorlesung 02

Kap. 4: Lineare Programmierung

Computer Science Department - High Performance and Web Computing Group. Optimierungsprobleme

VORLESUNG 11 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

Teil I. Lineare Optimierung

Eigenschaften von LPs

Kombinatorische Optimierung

Lineare Programmierung

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

Lösung allgemeiner linearer Programme

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

Minimumproblem. Definition 4.7. Ein LP der Form. unter den Nebenbedingungen. d ij x j b i (i =1,...,m)

1 Der Simplex Algorithmus I

Optimale Steuerung 1 Prozessoptimierung 1

Lineare Programmierung

10. Die Berücksichtigung nicht vorzeichenbeschränkter Variablen

Einführung in die Lineare Programmierung

Übung 3, Simplex-Algorithmus

Schnittebenenverfahren von Gomory. Stefan Allescher 30. Juni 2005

Simplex-Verfahren. Kapitel 4. Simplex-Verfahren. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

Die duale Simplexmethode

Lineare Optimierungsmodelle

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Optimierung Optimization. Vorlesung 01

Kap. 4.2: Simplex- Algorithmus

Vorlesung Wirtschaftsmathematik I WS 2007/2008, Wirtschaftingenieurwesen. Kapitel IV: Grundlagen der Linearen Optimierung

Kuhn-Tucker Bedingung

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel:

Lineare Optimierung und Simplex-Algorithmus

1 Lineare Optimierung, Simplex-Verfahren

VORLESUNG 14 Lineare Optimierung, Dualität (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

1. Lineare Optimierungsaufgaben (LOA) als Teilklasse konvexer Optimierungsprobleme. f(x) min, x G (1.1) (Legende)

Optimierung für Wirtschaftsinformatiker: Lineare Programme

Lineare Optimierung Teil 2

Kap. 4.3: Das Dualitätstheorem der linearen Optimierung

Dualitätssätze der linearen Optimierung

Vortrag 20: Kurze Vektoren in Gittern

VORLESUNG 12 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Optimierung für Nichtmathematiker

Hauptsatz und Optimalitätskriterium der Simplexmethode

Optimierung. Vorlesung 08

Lineare Algebra 1. Roger Burkhardt

mit. Wir definieren (Skalarprodukt = Winkel).

Studientag zur Algorithmischen Mathematik

Mitschrift der Vorlesung: Kombinatorische Optimierung

Numerische Lineare Algebra

4.3.3 Simplexiteration

Der Simplex-Algorithmus

2. Optimierungsprobleme 6

Optimierung. Vorlesung 04

Aufgaben zu Kapitel 23

z = c T x : Ax = b, x 0 }, - die Darstellung der Nichtbasisvektoren durch die Basis ist

Wirtschaftsmathematik für International Management (BA)

Probleme aus NP und die polynomielle Reduktion

Wirtschaftsmathematik

8. Lineare Optimierung

Proseminar Lineare Algebra WS 08/09 Prof. Dr. O. Bogopolski 1. Vortrag: Lineare Gleichungen. am 11. März von Maximilian Wahner

3. Grundlagen der Linearen Programmierung

Lineare Gleichungssysteme

7.1 Matrizen und Vektore

Lineare Optimierung Dantzig 1947

Übungsblatt 6 Lösungsvorschläge

1 Lineare Gleichungssysteme und Matrizen

Mathematische Grundlagen für Wirtschaftswissenschaftler Lösungshinweise zu den Übungsaufgaben aus Kapitel 3 - Lineare Optimierung

Abbildung 1: Graphische Lösung der ersten Übungsaufgabe

1. Hausaufgabenblatt (16.04./ )

Lineare Optimierung: Simplexverfahren Phase Ⅰ

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

Wiederholung. Wir gehen von LP s in Standardform aus, wobei A R m n vollen Zeilenrang hat: minc T x A x = b

Über- und unterbestimmte

6 Korrektheit des Simplexalgorithmus

Lineare und kombinatorische Optimierung

Lineare Programmierung

1. Transport- und Zuordnungsprobleme

OPERATIONS-RESEARCH (OR)

Aufgabenkomplex 5: Hauptachsentransformation, Lineare Optimierung, Differentialrechnung in mehreren Veränderlichen

Kap. 4.2: Simplex- Algorithmus

III. Transportaufgaben 1. Problemstellung 2. Analyse 3. Bestimmung der Startecke 4. Eckenaustausch 5. Umladeprobleme 6. Zuordnungsprobleme

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Teil 5: Lineare Programmierung. (Blum, Kapitel 8)

Zugeordneter bipartiter Graph

Kochrezept für NP-Vollständigkeitsbeweise

Kurseinheit 2»Dualität und weiterführende Methoden«

Brückenkurs Elementarmathematik

Lineare Optimierungsaufgaben - eine Einführung

Kapitel 9: Lineare Programmierung Gliederung

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen

Kapitel 15 Lineare Gleichungssysteme

Transkript:

Seminar über Algorithmen Prof. Dr. Helmut Alt Lineare Programmierung Teil I Lena Schlipf, Benjamin Jankovic Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 1 Struktur des Vortrags 1. Was ist lineare Programmierung? 2. Motivation 3. Einführendes Beispiel 4. Formalisierung 5. Graphische Interpretation 6. Simplexalgorithmus Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 2

Was ist lineare Programmierung?! Lineare Funktion mit n Variablen soll minimiert oder maximiert werden! Für die Variablen müssen dabei gewisse Nebenbedingungen erfüllt sein Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 3 Motivation Sehr viele Anwendungsformen:! Standardverfahren, das z.b. bei der Planung von Produktionsabläufen zum Einsatz kommt! Viele Optimierungsprobleme können formal als lineares Programm dargestellt werden! Momentan beste Lösung des TSP-Problems beruht auf linearer Programmierung Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 4

TSP-Problem Tour durch 15112 Städte in Deutschland Weiterentwicklung der cuttingplanes-methode, die wiederum auf der linearen Programmierung beruht 2001: David Applegate, Robert Bixby, Va!ek Chvátal und William Cook Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 5 Einführendes Beispiel Szenario: Wahlkampfpolitik! Eine Politikerin möchte in ihrem Wahlkreis gewinnen. Dazu benötigt sie in mindestens 50% aller Stimmen in jedem der 3 Gebiete:! Stadt (100.000 Einwohner)! Vorstadt (200.000 Einwohner)! Land (50.000 Einwohner) Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 6

Einführendes Beispiel (2) Dieses möchte sie durch geschickten Wahlkampf erreichen. Dank sehr guter psychologischer Studien weiß sie: Je 1000" Werbeausgaben für ein bestimmtes Wahlkampfthema haben eine gewisse Anzahl Wählerstimmen zur Folge (in Tausend): Wahlkampfthema Stadt Vorstadt Land Straßenbau -2 5 3 Sicherheit 8 2-5 Landwirtschaftsbeihilfe 0 0 10 Mineralölsteuer 10 0-2 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 7 Problem Wie erreicht die Politikerin ihr Ziel mit möglichst wenig Ausgaben?! Möglichkeit: Trial & Error! Aber: Woher weiß man, ob eine gefundene Lösung optimal ist?! Darum: Formuliere Problem zunächst mathematisch Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 8

Mathematische Formulierung! Einführung von 4 Variablen: Ausgaben in 1000" für Wahlkampfthema: x 1 : Kosten für Straßenbau x 2 : Kosten für Sicherheitspolitik x 3 : Kosten für Landwirtschaftsbeihilfe x 4 : Kosten für Mineralölsteuer! Die Forderung, daß z.b. in der Stadt 50%, also 50.000 der Wählerstimmen erlangt werden, sähe dann so aus: -2x 1 + 8x 2 + 0x 3 + 10x 4 # 50 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 9 Mathematische Formulierung! genügend Stimmen aus der Vorstadt werden gewonnen: 5x 1 +2x 2 +0x 3 +0x 4 # 100! genügend Stimmen vom Land werden gewonnen: 3x 1-5x 2 +10x 3-2x 4 # 25! Da die Kosten minimiert werden sollen, soll der Term x 1 + x 2 + x 3 + x 4 minimiert werden! Da es keine negativen Kosten gibt, gilt außerdem: x 1, x 2, x 3, x 4 # 0 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 10

Fertiges Lineares Programm Das lineare Programm sieht also wie folgt aus: Minimiere x 1 + x 2 + x 3 + x 4 unter den Nebenbedingungen: -2x 1 +8x 2 +0x 3 +10x 4 # 50 5x 1 +2x 2 +0x 3 +0x 4 # 100 3x 1-5x 2 +10x 3-2x 4 # 25 x 1, x 2, x 3, x 4 # 0 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 11 Definition: lineares Programm Optimiere lineare Funktion f (x 1,x 2,..., x n ) = a 1 x 1 + a 2 x 2 +...+ a n x n = n " j=1 a j x j mit linearen Nebenbedingungen f (x 1, x 2,..., x n ) = b f (x 1, x 2,..., x n ) " b f (x 1, x 2,..., x n ) " b oder oder Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 12

Darstellung linearer Programme Jedes lineare Programm lässt sich in die beiden folgenden Darstellungen umformen:! Die Standardform! Die Schlupfform (oder auch Slackform) Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 13 Standardform Wir wollen n reelle Zahlen bestimmen, welche die lineare Funktion maximieren n " j=1 c j x j Unter den Nebenbedingungen n " a ij x j # b i i =1,2,...,m j=1 x j " 0 j =1,2,...,n Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 14

Standardform Wir wollen n reelle Zahlen bestimmen, die die lineare Funktion maximieren n " j=1 c j x j Zielfunktion Unter den Nebenbedingungen n " a ij x j # b i i =1,2,...,m j=1 Nichtnegativitätsbedingungen x j " 0 j =1,2,...,n Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 15 Begriffe Zulässige Lösung: Variablenbelegung, die alle Nebenbedingungen erfüllt Unzulässige Lösung: Alle anderen Variablenbelegungen Unlösbar: Es gibt keine zulässige Lösung für ein lineares Programm Zielfunktionswert: Wert, den die Zielfunktion bei einer bestimmten Variablenbelegung annimmt Optimale Lösung: Zulässige Lösung mit optimalem, d.h. maximalem Zielfunktionswert Unbeschränktes Programm: Zulässige Lösungen existieren, aber keine optimale Lösung Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 16

Äquivalenz linearer Programme! Zwei lineare Maximierungs-Programme heißen äquivalent, wenn die jeweilige Menge der zulässigen Zielfunktionswerte äquivalent ist.! Ein lineares Maximierungs-Programm L und ein lineares Minimierungsprogramm L heißen äquivalent, wenn jedem z aus der Menge der zulässigen Zielfunktionswerte von L ein -z aus der Menge der zulässigen Zielfunktionswerte von L entspricht. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 17 Umformen in Standardform Probleme, die beim Umformen eines beliebigen linearen Programmes in ein äquivalentes Programm in Standardform auftreten können:! Zielfunktion soll minimiert anstatt maximiert werden! Es gibt Variablen ohne Nichtnegativitätsbedingung! Es gibt Nebenbedingungen, die eine Gleichung sind! Es gibt Nebenbedingungen, die eine Ungleichung sind, die aber # statt $ fordern Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 18

Lösung der Probleme! Minimierung!Maximierung Negiere alle Koeffizienten der Zielfunktion! Nichtnegativitätsbedingung erfüllen Führe für x i zwei neue Variablen x i #0 und x i #0 ein und substituiere alle x i mit x i -x i! Gleichung! Ungleichung Ersetze A = B durch A $ B und A # B! #-Relation! $-Relation Multipliziere beide Seiten mit (-1) Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 19 Schlupfform Maximierung einer linearer Funktion unter Beachtung linearer Gleichungen und Nichtnegativitätsbedingungen Umformen:! Forme beliebiges Programm in Standardform um! Ersetze Ungleichungen durch Gleichungen n " a ij x j # b i $ x n +i = b i %" a ij x j, x n +i & 0 i=1 x n+i ist eine sogenannte Schlupfvariable n i=1 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 20

Beispiel für eine Schlupfform maximiere 2x 1-3x 2 + 3x 3 unter den Nebenbedingungen: x 4 = 7 - x 1 - x 2 + x 3 x 5 = -7 + x 1 + x 2 - x 3 x 6 = 4 - x 1 + 2x 2-2x 3 x 1, x 2, x 3, x 4! 0 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 21 Vereinfachte Schreibweise z = 2x 1-3x 2 + 3x 3 x 4 = 7 - x 1 - x 2 + x 3 x 5 = -7 + x 1 + x 2 - x 3 x 6 = 4 - x 1 + 2x 2-2x 3 Die Nichtnegativitätsbedingungen aller Variablen und die Tatsache, daß z maximiert werden soll, werden hierbei nicht explizit genannt. Die Variablen auf der linken Seite nennt man Basisvariablen, diejenigen auf der rechten Seite Nichtbasisvariablen. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 22

Graphische Lösung des Problems Weiteres Beispiel: Düngemittelfabrik stellt zwei Düngemittel A und B aus den Ausgangsstoffen C,D und E her. Verfügbarkeit der Ausgangsstoffe: C: 1500t, D: 1200t, E: 500t Chemische Zusammensetzung: 1t A = 2t C + 1t D +1t E 1t B = 1t C + 1t D Gewinne pro Tonne: A: 30" B: 20" Maximiere: 30x 1 + 20x 2 Nebenbedingungen: 2x 1 + x 2 $ 1500 x 1 + x 2 $ 1200 x 1 $ 500 x 1, x 2 # 0 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 23 Graphisches Beispiel (1) x 2 1000 500 30x 1 + 20x 2 = 0 500 x 1 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 24

Graphisches Beispiel (2) x 2 1000 500 500 x 1 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 25 Graphisches Beispiel (3) x 2 1000 500 500 x 1 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 26

Graphisches Beispiel (4) X 2 1000 30x 1 + 20x 2 = 27000 (300,900) 500 500 x 1 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 27 Lösungsmengen Graphische Darstellung möglicher Lösungsmengen im 2-dimensionalen: optimale Lösung keine Lösung unbeschränkt Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 28

n " j=1 a ij*xj! bi Graphische Interpretation! Variablenbelegung x=(x 1,x 2,,x n ) entspricht Punkt im n-dimensionalen Raum! Jede Nebenbedingung stellt einen Halbraum im n-dimensionalen Raum dar! Ein Halbraum ist durch die Hyperebene beschränkt, die entsteht, wenn die Nebenbedingung durch Gleichheit erfüllt wird. (Hyperebenen sind (n-1)-dim. Teilmengen des n-dim.raums)! Die Schnittmenge aller Halbräume stellt den Bereich zulässiger Lösungen dar (zulässiger Bereich)! Man nennt diesen Bereich auch Simplex Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 29 Lemma: Konvexität des zulässigen Bereichs Die Punktmenge, die durch ein Simplex S beschrieben wird, ist konvex. D.h.: x, y " S # xy " S Beweis:! Ein Simplex ist der Schnitt mehrerer Halbräume! Halbräume sind konvex! Schnitte konvexer Mengen A,B sind konvex: a,b " A # B $ ab " A % ab " B $ ab " A # B Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 30

Lemma: Lokales Optimum = globales Optimum Ein lokales Optimum ist gleichzeitig ein globales Optimum Beweis: (Widerspruch) Sei x eine Lösung mit lokalem Optimum und y eine Lösung mit globalem Optimum. Es sei außerdem c T x<c T y. Betrachte z " xy aus einer "-Umgebung von x. 0 < x " z # $ c T z = c T ("x + (1# "y)) = "c T x + (1# ")c T y > "c T x + (1# ")c T x = c T x z hat einen größeren Zielfunktionswert als x, also ist x kein lokales Optimum Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 31 Lemma: Optimum ist Ecke des Simplex Wenn es für ein lineares Programm eine optimale Lösung gibt, so gibt es eine Ecke des zugehörigen Simplexes, deren Zielfunktionswert optimal ist. Beweis:! Schließe innere Punkte als optimale Lösung aus! Zeige, daß optimale Lösungsmenge mindestens eine Ecke enthält Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 32

Optimale Lösung liegt auf dem Rand! Alle zulässigen Lösungen mit demselben Zielfunktionswert liegen auf einer Hyperebene H, die orthogonal zum Vektor c der Zielfunktion ist. Sei H x eine solche Hyperebene, die die Lösung x enthält.! Je weiter H vom Ursprung entfernt ist, desto größer ist der zugehörige Zielfunktionswert.! Sei P ein Punkt im Inneren des Simplex. Dann teilt H eine "-Umgebung von P in zwei Hälften. Alle Punkte innerhalb der Hälfte, die weiter vom Ursprung entfernt ist, besitzen einen größeren Zielfunktionswert. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 33 Optimale Lösungsmenge enthält Ecke! Eine optimale Lösung muß also auf dem Rand liegen.! H opt schneidet also nicht das Simplex, sondern berührt es nur.! Die Schnittmenge von H opt mit dem Simplex ist also eine Facette oder ein Teil davon (Ecke, Kante, )! Es muß aber eine Ecke enthalten sein, da jede Facette des Simplexes mindestens eine Ecke enthält. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 34

Simplexalgorithmus! Klassisches Verfahren zur Lösung linearer Programme! Laufzeit ist im schlechtesten Fall nicht polynomial! Meist liefert der Simplexalgorithmus aber sehr schnell ein Ergebnis Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 35 Idee des Simplexalgorithmus! Eingabe: lineare Programm in Schlupfform! Ausgabe: optimale Lösung! Algorithmus beginnt in einer Ecke! bewegt sich in jedem Schritt von einer Ecke in die nächste Ecke! Dabei wird der Zielfunktionswert meist erhöht (auf jeden Fall nie verkleinert)! Terminiert, wenn lokales Optimum gefunden Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 36

Grundidee der Iteration! Jede Iteration besitzt eine Basislösung! Diese erhält man, indem man jede Nichtbasisvariable auf null setzt und so die Werte der Basisvariablen aus den Nebenbedingungen berechnet! Jede Basislösung entspricht einer Ecke des Simplex! Algebraisch ist jede Iteration eine äquivalente Umformung einer Schlupfform in eine andere Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 37 Grundidee der Iteration (Fortsetzung)! Nun vertauschen wir die Rollen einer Nichtbasisvariablen und einer Basisvariablen! Damit der Zielfunktionswert bei jeder Iteration nicht kleiner ist als in der vorherigen, wählen wir die Nichtbasisvariable (nach der wir umformen) so aus, dass der Zielfunktionswert größer wird, wenn wir den Wert dieser Variable von null aus erhöhen. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 38

Basislösung ist Ecke des Simplex! Lineares Programm mit n Variablen (man befindet sich im n-dim. Raum)! Basislösung ist Schnittpunkt von n Nebensbedingungshyperebenen! Bei Basislösung haben mindestens n Variablen den Wert 0! mind. n Ungleichungen mit Gleichheit erfüllt Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 39 Beispiel für den Simplexalgorithmus Gegeben: lineares Programm in Schlupfform z = 3x 1 + x 2 + 2x 3 x 4 = 30 - x 1 - x 2-3x 3 x 5 = 24-2x 1-2x 2-5x 3 x 6 = 36-4x 1 - x 2-2x 3 Basisvariablen: x 4, x 5, x 6 Nichtbasisvariablen: x 1, x 2, x 3! Es gibt unendlich viele Lösungen! Lösung ist zulässig, wenn x 1, x 2, x 3, x 4, x 5, x 6 >= 0 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 40

Bestimmen der Basislösung! setze alle Nichtbasisvariablen auf 0! berechne Werte der Basisvariablen! im Beispiel: die Basislösung ist ( x 1, x 2, x 3, x 4, x 5, x 6 ) =( 0, 0, 0, 30, 24, 36) Sie hat den Zielfunktionswert z = 3*0 + 1*0 + 2*0 = 0 Ist die Basislösung zulässig, bezeichnen wir sie als zulässige Basislösung Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 41 Iteration! Ziel der Iteration: Basislösung hat einen größeren Zielfunktionswert! Wir wählen Nichtbasisvariable x e aus, deren Koeffizient in der Zielfunktion nicht negativ ist und erhöhen den Wert um so viel, dass man gerade noch keine Nebenbedingung verletzt! Variable x e wird zur Basisvariable! Basisvariable x a, die zur stärksten Nebenbedingung gehört, wird dafür zur Nichtbasisvariable Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 42

Beispiel-Iteration Zurück zum Beispiel: z = 3x 1 + x 2 + 2x 3 (1) x 4 = 30 - x 1 - x 2-3x 3 (2) x 5 = 24-2x 1-2x 2-5x 3 (3) x 6 = 36-4x 1 - x 2-2x 3 (4) Wir erhöhen x 1 Es muss gelten: x 1 $ 30 wegen x 4 x 1 $ 12 wegen x 5 x 1 $ 9 wegen x 6 Die letzte Bedingung ist am stärksten. Wir vertauschen die Rollen von x 1 und x 6 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 43 Beispiel-Iteration (Fortsetzung)! Wir formen (4) um: x 1 = 9 x 2 /4 x 3 /2 x 6 /4! Wir substituieren bei allen anderen Gleichungen x 1 mit dieser Gleichung! So erhalten wir unser Programm in folgender Form: z = 27 + x 2 /4 + x 3 /2 3x 6 /4 x 1 = 9 x 2 /4 x 3 /2 x 6 /4 x 4 = 21 3x 2 /4 5x 3 /2 + x 6 /4 x 5 = 6 3x 2 /2 4x 3 + x 6 /2 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 44

Basisaustausch! Diese Umformung bezeichnet man als Pivotieren oder Basisaustausch! Der Basisaustausch wählte eine Nichtbasisvariable x e (Eingangsvariable) und eine Basisvariable x a (Ausgangsvariable) und vertauschte ihre Rollen! Die Basislösung des neuen Programms ist ( x 1, x 2, x 3, x 4, x 5, x 6 ) =( 9, 0, 0, 21, 6, 0) mit Zielfunktionswert z = 27 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 45 Iterationsende! Nun erhöhen wir den Wert von x 2 : Es muss gelten: x 2 $ 36 wegen x 1 x 2 $ 28 wegen x 4 x 2 $ 4 wegen x 5! Wir tauschen also die Rollen von x 2 und x 5 x 2 = 4 8x 3 /3 2x 5 /3 + x 6 /3 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 46

Iterationsende z = 28 - x 3 /6 - x 5 /6 2x 6 /3 x 1 = 8 + x 3 /6 + x 5 /6 x 6 /3 x 2 = 4 8x 3 /3 2x 5 /3 + x 6 /3 x 5 = 18 x 3 /2 + x 5 /2! Die Basislösung dieses Programms ist ( x 1, x 2, x 3, x 4, x 5, x 6 ) = ( 8, 4, 0, 0, 18, 0) mit Zielfunktionswert z = 28! Alle Koeffizienten der Zielfunktion sind nun negativ! Basislösung ist optimale Lösung (Beweis: Teil 2) Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 47 Bedeutung der Schlupfvariablen! Man beachte: die Werte der Schlupfvariablen in der entgültigen Lösung geben den Spielraum der Ungleichungen an! z.b. x 4 = 18 In der ursprünglichen Form x 1 + x 2 + 3x 3 $ 30 8 + 4 = 12 $ 30 Die Differenz zwischen den beiden Seiten ist genau 18 Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 48

Hilfssatz: Hilfssätze zur Terminierung (1) I sei Menge von Indizes. Für alle Belegungen der x i soll gelten: Dann folgt daraus: a i = b i und c = 0 Beweis: Seien z.b. alle x i = 0! c = 0 Seien alle x i = 0 bis auf ein x j = 1 Dann muß gelten: a j = b j # a i x i = c + # b i x i i"i Da x j beliebig gewählt werden kann, gilt dies für alle a i,b i i"i Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 49 Hilfssatz: Hilfssätze zur Terminierung (2) Die Schlupfform eines linearen Programms ist durch die Menge der Basisvariablen eindeutig bestimmt. Beweis: (Widerspruch) Basisvariablen x i und 2 verschiedene Schlupfformen: x i = b i " $ a ij x j und x i = b i '" j #N Gleichsetzen: # a ij ' x j = b i $ b i '+# a ij x j j "N j "N $ j #N Nach vorigem Hilfssatz: a ij =a ij und (b i -b i ) = 0 a ij ' x j Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 50

Lemma: Terminierung des Algorithmus Falls der Simplexalgorithmus nach maximal Iterationen nicht terminiert, dann kreiselt er. Beweis: B ist Menge der Basisvariablen. B =m. Es gibt n+m viele Variablen. Es gibt demnach " n + m% $ ' # m & eindeutige Schlupfformen " n + m% $ ' # m & Werden mehr Iterationen durchgeführt, kreiselt der Algorithmus also. Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 51 Andere Algorithmen Außer dem Simplexalgorithmus gibt es noch andere Algorithmen zur Lösung linearer Programme Diese laufen sogar im Worst-Case in polynomieller Zeit. In der Praxis erweist sich der Simplexalgorithmus jedoch als schneller, weil er eine erwartete lineare Zeit hat.! Ellipsoidmethode (Khachian, 1979)! Innerer-Punkt-Methode (Kharmarkar, 1984) Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 52

Literaturverzeichnis! Cormen/Leiserson/Rivest/Stein: Algorithmen- Eine Einführung! Skript: Einführung in die Lineare Programmierung, Lehrstuhl Informatik 1, Algorithmen&Komplexität, RWTH Aachen! Skript: Lineare Programmierung,WS02/03, Winfried Hochstättler, BTU Cottbus! Skript: Ausarbeitung zum Thema :Der Simplexalgorithmus als Teil des Seminars Strategiekonstruktion für unendliche Spiele, Sandip Sar-Dessai, RWTH Aachen! Berthold Vöcking, Universität Dortmund, Crashkurs lineare Programmierung Lena Schlipf, Benjamin Jankovic Seminar über Algorithmen SS05 53