zur Verwendung genetischer Algorithmen:
Es gibt Problemstellungen, bei denen die Lösungsmethoden bei exhaustiver Programmierung, d.h. wenn jede mögliche Lösung betrachtet wird, eine Zeitkomplexität O(e^n) besitzen. Bei manchen von diesen spricht man auch von sogenannten NP-vollständigen Problemen (z.B.: Travelling-Salesman-Problem, Hamilton-Circuit-Problem, Boolean-Satisfiability-Problem, etc.). Siehe dazu auch [DEJONG 89].
Bis auf wenige trickreiche Ausnahmen lassen die meisten Ansätze mit eindeutigen, also deterministischen Methoden die Problemgröße n schnell an eine Grenze stoßen (sowohl im Hinblick auf Speicher- als auch auf Zeitanforderungen).
Der Ansatz der genetischen bzw. evolutionären Programmierung besteht nun u. a. auch darin, daß versucht wird, mit Hilfe nicht-deterministischer Methoden eine zumindest suboptimale Lösung der Probleme in einigermaßen erträglicher Zeit zu finden.
Nehmen wir beispielsweise ein Suchproblem mit 10 Parametern, die jeweils 100 Werte annehmen können, so ergibt sich ein sehr großer Suchraum für eine Lösung (100^10 = 10^20 Möglichkeiten!).
Für eine uninformierte Suche würde man hier selbst bei den schnellsten Rechnern einen unvorstellbaren Zeitraum auf die Lösung warten.
Genetische Algorithmen lassen sich auf viele verschiedene Bereiche, die nur wenig miteinander zu tun haben bzw. deren Problemstellungen sehr unterschiedlich sein können, anwenden und sind nicht wie andere Suchverfahren nur auf ein Problem maßgeschneidert.
Gerade auf Bereichen, wo andere Verfahren zur Suche eines bzw. des Optimums versagen, weil z.B. die 1.Ableitung einer Funktion nicht gebildet werden kann (z.B. Koch-Kurve), können genetische Algorithmen angewendet werden, weil diese keine weitere Informationen über den Suchraum benötigen. Auch der Nachteil, in lokalen Optima "hängenzubleiben", wird bei Anwendung von genetischen Algorithmen vermieden.
Nächste Seite: Geschichte