L5 Bemerkungen
Komplexität
nichteffizient
Bei einem Algorithmus ist ein wichtiges Merkmal, wie sich der Rechenaufwand mit steigender Problemgröße verhält. Dabei ist zwischen dem ungünstigsten Fall und dem durchschnittlichen Verhalten zu unterscheiden.
Wenn man den ungünstigsten Fall zugrunde legt, muss der Simplexalgorithmus leider als für größere Probleme ungeeignet eingestuft werden. Der Rechenaufwand wächst mit steigender Problemgröße exponentiell. Man nennt Algorithmen dieser Art auch „nichteffizient“.
Victor Klee
Die Wissenschaftler Victor Klee und George J. Minty konstruierten ein Problem mit d Variablen, d Nebenbedingungen und d Nichtnegativitätsbedingungen. Dabei ist d eine beliebige natürliche Zahl.
Dieses spezielle Problem hat 2·d zulässige Basislösungen und die Zielfunktion ist auch so konstruiert, dass jede Ecke abgesucht wird. D.h. der Simplexalgorithmus benötigt 2·d-1 Iterationen, um zum Optimum zu gelangen.
Der durchschnittliche Fall ist dramatisch günstiger. Es gibt hierzu verschiedene Untersuchungen, die zu ähnlichen Ergebnissen kommen. Häufig wird berichtet, dass die Anzahl der Iterationen linear mit der Problemgröße steigt. Relativ übereinstimmend wird berichtet, dass vor allem die Anzahl der Nebenbedingungen Einfluss auf die Zahl der Iterationen hat. Linear steigend heißt, dass zum Beispiel pro zusätzlicher Nebenbedingungen drei Iterationen hinzukommen.
Wenn man die Zahl der Iterationen für den konstruierten und den durchschnittlichen Fall in eine Tabelle einträgt, wird der Unterschied klar:
d |
Anz. Iterationen (schlimmster Fall) |
Anz. Iterationen (durchschnittlicher Fall, Zahlen Beispielcharakter) |
10 | ca. Tausend | 30 |
20 | ca 1 Million | 60 |
30 | ca. 1 Milliarde | 90 |
40 | ca. 1 Billiarde | 120 |
Die Schlussfolgerung ist:
Der Simplexalgorithmus ist zum Lösen von großen Problemen sehr gut geeignet.