Folien Teil 4

Werbung
14. Komplexität
Bei der Analyse von Algorithmen aus der Sicht der Informatik spielt der
Begriff der Komplexität eine große Rolle. Diese gibt uns Aufschluß über
den Verbrauch an Ressourcen (Rechenoperationen, Speicherplatz) in
Abhängigkeit von einem wichtigen Parameter (Größe) des zu lösenden
Problems.
So sagen wir etwa, daß der Bubblesort-Algorithmus eine OperationsKomplexität von O(n2) hat, wenn n die Anzahl der zu sortierenden Zahlen
ist. Ein besserer Algorithmus, etwa Quicksort, hat eine Komplexität von
O(n log n).
Übrigens unterscheidet man auch noch zwischen verschiedenen
Komplexitätsbegriffen wie „Durchschnittliche“ (average-case) Komplexität
und Komplexität im „schlimmsten Fall“ (worst-case).
H. Weber, FHW, OR SS06, Teil 4, Seite 1
Der Gauß-Algorithmus zur Lösung linearer Gleichungssysteme hat eine
Operations-Komplexität von O(n3) und eine Speicherplatz-Komplexität
von O(n2), wenn n die Dimension des Gleichungssystems ist. In diesem
Fall ist die worst-case-Komplexität gleich der average-case-Komplexität.
Wie sieht dies nun beim Simplex-Algorithmus aus?
Empirische Betrachtungen und Tests haben schon vor langer Zeit ergeben, daß die Zahl der Iterationen des Simplexalgorithmus durchschnittlich ein kleines Vielfaches der Anzahl m der Nebenbedingungen beträgt.
Jede Iteration hat eine Komplexität O(mn), so daß insgesamt O(m2n)
herauskommt, oder O(m3), wenn man vereinfachend n = m setzt (n =
Anzahl der Problemvariablen). Dies alles gilt rein empirisch.
Auf der anderen Seite kann die Anzahl der Basislösungen so groß wie
n
m
 
werden. Es bestünde also theoretisch die Möglichkeit, daß der
H. Weber, FHW, OR SS06, Teil 4, Seite 2
Simplex-Algorithmus alle diese Basislösungen besuchen könnte, bevor
er zur optimalen Ecke käme.
Zwischen m Iterationen und
n
m
 
Iterationen besteht ein sehr großer
Unterschied, wie folgende Tabelle im Fall n=2m zeigt.
m
 2m 
m
 
----------------------1
2
5
252
10
184756
20
1x1011
50
1x1029
100
9x1058
200
1x10119
H. Weber, FHW, OR SS06, Teil 4, Seite 3
1972 haben Klee und Minty Beispiele dafür gefunden, daß das tatsächlich geschehen kann. Eine Variante des Klee-Minty-Problems ist
m
Maximiere
F ( x ) = ∑10m − j x j
j =1
,
i −1
unter
2 ∑ 10i − j x j + xi ≤ 100i −1 , i = 1,..., m, x ≥ 0
j =1
Wenn man Schlupfvariable hinzufügt, erhält man 2m Variable und m
Nebenbedingungen. Das Problem hat 2m zulässige Basislösungen.
Wenn man im Optimalitätstest das größte Element der Zielfunktion auswählt, so werden alle Basen besucht.
Wir haben damit ein worst-case Verhalten von O(2m) gefunden!
H. Weber, FHW, OR SS06, Teil 4, Seite 4
Das Klee-Minty-Problem für m=3, dessen zulässigen Bereich wir hier
sehen, lautet:
H. Weber, FHW, OR SS06, Teil 4, Seite 5
Maximiere F = 100x1 + 10x2 + x3
unter
≤
1
x1
≤ 100
20x1 + x2
200x1 + 20x2 + x3 ≤ 10000, x ≥ 0
Für andere Auswahlregeln gibt es andere Probleme, die ebenfalls dieses
worst-case-Verhalten zeigen. Auf der anderen Seite stellen sich Fragen
wie:
1. Gibt es Auswahlregeln, bei denen so etwas nicht passieren kann?
2. Wie typisch für Anwendungen sind solche worst-case-Beispiele?
3. Gibt es andere Verfahren zu Lösung von LOPs, die eine polynomiale
Komplexität haben?
H. Weber, FHW, OR SS06, Teil 4, Seite 6
Herunterladen