Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 11.7.

Ähnliche Präsentationen


Präsentation zum Thema: "Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 11.7."—  Präsentation transkript:

1 Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS

2 Der Simplex Algorithmus Eingabe A,b,c 1. Bringe das LP in eine slack Form mit zulässiger Basislösung, Basisvariablen in H, Nichtbasisvariablen in N 2. Solange es einen Index j aus N mit c(j)>0 gibt: 1. Wähle ein e mit c(e)>0 2. für all i aus H: 1.Wenn A(i,e)>0: (i)=b(i)/A(i,e) 2.Sonst (i)= 1 3. Wähle das minimale l 4. l = 1 : Zielfunktion unbeschränkt 5. Sonst: Pivot 3. Von i=1 bis n: 1.Wenn i aus H: Setze x i =b(i) 2.sonst x i =0 4. Ausgabe x 1,…,x n

3 Simplex In Zeile 1 wird außerdem getestet ob es überhaupt zulässige Lösungen gibt Wenn alle Koeffizienten der Zielfunktion nichtpositiv sind, kann pivot keine Verbesserung bringen Ansonsten wählen wir eine Basis- und eine Nichtbasisvariable für pivot Konkrete Wahl bei mehreren Möglichkeiten noch zu spezifizieren Wir durchlaufen alle Constraints und sehen, wie weit wir x e erhöhen können, wählen die zugehörige Basisvariable, die die kleinste Erhöhung von x e toleriert Gibt es keine solche Limitierung, so ist die Zielfunktion unbeschränkt Zum Schluss setzen wir die x_i als die Basislösung der letzten slack Form

4 Noch zu zeigen Korrektheit: Berechnete Lösung ist optimal Laufzeit: Der Algorithmus läuft im worst case nicht in polynomieller Zeit, Terminierung? Berechnung der slack form Wir benötigen eine Prozedur, die testet, ob ein LP lösbar ist und eine slack form berechnet, deren Basislösung zulässig ist

5 Korrektheit (I) Im folgenden nehmen wir an, wir haben ein korrektes slack form LP mit zulässiger Basislösung Behauptung: Simplex gibt eine zulässige Lösung aus und wenn die Ausgabe Zielfunktion unbeschränkt ist, so ist dies korrekt Ohne Beweis. Idee: Jede der durchlaufenen slack Formen is äquivalent

6 Terminierung Es ist leicht, zu sehen, daß die Zielfunktion nie sinkt Es kann aber passieren, daß die Zielfunktion durch pivot nicht ansteigt Dies ist ein degenerierter Schritt. Wir nehmen an, e und l werden deterministisch bestimmt Es kann passieren, daß Simplex in eine Schleife gerät

7 Terminierung Behauptung: Wenn Simplex nicht nach Iterationen terminiert, so ist der Algorithmus in einer Schleife Beweis: Man kann zeigen, daß zu einem LP in Standardform bei gegebener Mengen von Basisvariablen die slack form eindeutig ist Es gibt n+m Varriablen und m Basisvariablen Daher gibt es Wege die Basisvariablen zu bestimmen Wenn es mehr Iterationen gibt, sind wir in einer Schleife Wenn wir nicht in einer Schleife sind, wir irgendwann die optimale slack form erreicht

8 Vermeidung von Schleifen Schleifen können nur auftreten, wenn sich die Zielfunktion nicht ändert Eine Möglichkeit: Perturbiere die Eingabe leicht, so daß keine gleichen Zielfunktionswerte existieren Blands Regel: Immer die Variable mit kleinstem Index wählen (unter den Kandidaten für x e,x l ) Unter Blands Regel gibt es keine Schleifen

9 Laufzeit Wir erhalten zumindest eine exponentielle Laufzeitschranke über die Anzahl der slack Formen bzw. Polytopecken

10 Korrektheit (II) Wir wollen zeigen, daß die erreichte Lösung am Ende des Simplex Algorithmus optimal ist Wir gehen ähnlich wie bei MaxFlow vor und verwenden ein duales Problem

11 Dualität Gegeben sei ein LP A,b,c in Standardform Wir nennen dies das primale LP Das duale LP ist wie folgt definiert: Es gibt m Variablen y i Minimiere i b i Y i Bedingungen i=1 m A[i,j] y i ¸ c j y ¸ 0

12 Schwache Dualität Behauptung: Sei x eine zulässige Lösung des primalen und y eine zulässige Lösung des dualen LP, dann gilt

13 Beweis:

14 Dualität und Optimalität Behauptung: Wenn c j x j = b i y i, und x zulässig für das primale, y zulässig für das duale, dann sind beide Lösungen optimal Beweis: Offensichtlich kann keine zulässige Lösung x des primalen einen größeren Zielfunktionswert als x haben, da dies die schwache Dualität verletzen würde; analog für das duale

15 Starke Dualität Starke Dualität bedeutet, daß zulässige Lösungen x für das primale und y für das duale LP mit gleichem Zielfunktionswert existiere Wir müssen zeigen, daß solche Lösungen existieren, und von Simplex berechnet werden Theorem: Simplex produziere Lösung x 1,…,x n H und N seien die Basis und Nichtbasisvariablen der letzten slack form c Koeffizienten der Zielfunktion in der letzten slack form y sei definiert durch:y i =-c n+i wenn n+i 2 N =0 sonst Dann ist x optimal für das primale und y für das duale LP Die Zielfunktionen des primalen und dualen sind gleich auf x und y

16 Beweis Es reicht zu zeigen, daß x und y zulässig sind und den gleichen Wert haben x ist zulässig nach vorheriger Beobachtung Letzte slack Form: Zielfunktion max v+ N c j x j Bei Terminierung gilt: c j · 0 für alle j aus N Setze c j =0 für alle anderen j Damit: Zielfunktion der Lösung x 1,…,x n : Wir setzen C_j=0 für alle j aus H

17 Beweis

18 Da dies für alle zulässigen Lösungen z gilt, folgt Anhand der letzten Gleichung (für alle j=1…n) und der Setzung der y i folgt die Zulässigkeit, und beide Lösungen haben Wert v

19 Die initiale Basislösung Gegeben ein LP in Standardform A,b,c Die zugehörige slack Form kann eine Basislösung haben, die nicht zulässig ist Wir bestimmen ein Hilfs LP: Maximiere –x 0 Bedingungen j A[i,j] x j -x 0 · b i x ¸ 0 Behauptung: Hilfs LP ist immer lösbar und hat Optimum 0 gdw A,b,c lösbar ist Beweis: ausgelassen

20 Die initiale Basislösung Eingabe : A,b,c Bestimme slack form und teste Basislösung Wenn diese nicht zulässig ist bestimme das Hilfs LP und dessen slack form Bestimme eine optimale Lösun des Hilfs LP mit Simplex Wenn das Optimum 0 ist und die Basislösung x 0 =0 setzt: Streiche x 0 und erhalte Basislösung und slack form für das originale LP Sonst gebe aus unlösbar


Herunterladen ppt "Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 11.7."

Ähnliche Präsentationen


Google-Anzeigen