Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Effiziente Algorithmen

Ähnliche Präsentationen


Präsentation zum Thema: "Effiziente Algorithmen"—  Präsentation transkript:

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

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

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 xe erhöhen können, wählen die zugehörige Basisvariable, die die kleinste Erhöhung von xe 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 Bland‘s Regel: Immer die Variable mit kleinstem Index wählen (unter den Kandidaten für xe,xl) Unter Bland‘s 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 yi Minimiere i bi Yi Bedingungen i=1m A[i,j] yi¸ cj 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  cjxj= bi yi, 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 x1,…,xn 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: yi=-c‘n+i wenn n+i2 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 xj 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 x1,…,xn: Wir setzen C_j‘=0 für alle j aus H

17 Beweis

18 Beweis 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 yi 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 –x0 Bedingungen j A[i,j] xj-x0· bi 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 x0=0 setzt: Streiche x0 und erhalte Basislösung und slack form für das originale LP Sonst gebe aus „unlösbar“


Herunterladen ppt "Effiziente Algorithmen"

Ähnliche Präsentationen


Google-Anzeigen