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