Evolutionäres
[Home][Software]

Evolutionäre Programmierung

Diese Seite gibt eine kleine Einführung in das Thema evolutionäre Programmierung.

Es werden zwei Programme vorgestellt, die diese Klasse von Optimierungs-Verfahren nutzen:

Von Mäusen und Füchsen
Eine Räuber-Beute-Simulation: Achtung, Hypnose-Gefahr!

Stundenplan-Erstellung mit evolutionären Algorithmen
Eine Software zur Stundenplan-Erstellung und -Optimierung.

 

Die Natur ist genial ... ? ... schwer vorzustellen.
Aber sie ist mit Sicherheit sehr fleißig, sehr ausdauernd und hat verdammt viel Zeit. Alles in allem gute Voraussetzungen, um in absehbarer Zeit interessante Ergebnisse zustande zu bekommen. In absehbarer Zeit? Das Darmbakterium Escherichia coli mußte in seiner jüngeren Geschichte eine Vielzahl an ungesunden Experimenten über sich ergehen lassen. Aber daher weiß man, daß es ungefähr 10 hoch 2 400 000 Möglichkeiten gibt, den genetischen Bauplan dieses bedauernswerten Geschöpfes anzuordnen. Den aktuellen Bauplan durch "Auswürfeln" zu erhalten, sprengt problemlos den zeitlichen Rahmen des Universums - das klassische Argument gegen die Idee der Evolution schlechthin. Aber das der Evolution innewohnende Zufallselement hat nicht viel mit einfachem Würfeln zu tun. Die Mutabilität des genetischen Materials ist zwar Grundlage des Evolutionsprozesses, führt aber erst in Verbindung mit Selektion und anderen Mechanismen zur Rassen - und Artbildung.

Wieso Evolutionsmechanismen überhaupt funktionieren, ist noch weitgehend unklar. Erklärungsversuche stützen sich auf eine Charakterisierung der Evolution als kumulativer, hochgradig paralleler Prozess. Auch sollte man nicht vergessen, daß die Bindung an ein bestimmtes Ökosystem stets eine bestimmte "Richtung" der Evolution erzwingt. Eine andere Umschreibung dieses Sachverhaltes findet sich in der Bezeichnung "ökologische Nische" wieder. Trotzdem ist der Zufall die teibende Kraft bei der Artenbildung. Die Evolution verfolgt also gewissermaßen ein Ziel, weiß aber andererseits nicht was sie tut - oder anders herum.

Wenn die Evolution das überaus komplexe Ökosystem der Erde hervorbringen kann, liegt die Vermutung nahe, daß Evolutionsmechanismen auch auf einfachere, vergleichsweise banale Probleme angewandt werden können.
Versuche dieser Art wurden lange Zeit belächelt. Erstens hielt man eine Nachahmung der biologischen Evolutionsprinzipien für unpraktikabel, da das natürliche Vorbild nur in so riesigen Zeitmaßstäben wirksam ist. Zweitens resultierte die Ablehnung aus anfänglichen Mißerfolgen, die ihrerseits jedoch aus Fehlinterpretationen der Evolutionsmechanismen resultierten. Diese Fehlinterpretationen basierten genau genommen auf einer falschen und leider noch heute präsenten Übersetzung von Darwins "Struggle for life" durch einen eifrigen deutschen Professor. Es bezeichnet nicht den "Kampf" ums Überleben, sondern die tägliche Mühsal und Schinderei - also die Auseinandersetzung mit den täglichen Unbilden der Existenz. Die Fehlübersetzung betrifft auch das damit verbundene "survival of the fittest". Nicht das Überleben der "Stärksten", sonder das der besser an die Umwelt angepaßten Arten steht hier im Vordergrund. Eine bessere Angepaßtheit an die Umwelt sichert nicht zwangläufig das Überleben, erhöht jedoch die Überlebens-Wahrscheinlichkeit. Mit dem Einzug schnellerer Computer wurden Ende der 60er Jahre diesseits und jenseits des Atlantiks zeitgleich Optimierungsverfahren entwickelt, die unter dem Sammelbegriff Evolutionäre Algorithmen zusammengefaßt werden.

Evolutionäre Algorithmen - Wozu?
Man benutzt sie, um schlicht und ergreifend Probleme zu lösen. Die Palette der Probleme, auf welche diese Algorithmen angewandt werden können, ist im Vergleich zu anderen Verfahren riesig. Vor allem aber wendet man sie auf Probleme an, die nicht mit den klassischen Verfahren (z.B. Gradienten- oder Simplex-Verfahren) gelöst werden können bzw. für die überhaupt kein Lösungsverfahren bekannt ist - und davon gibt es eine ganze Menge.

Evolutionäre Algorithmen - die Funktionsprinzipien:
Evolution bezeichnet den kollektiven Lernprozeß einer Menge von Individuuen - der Population. Gesteuert wird der Prozeß durch Mechanismen des Informations-Austausches zwischen den Individuen und durch zufällige äußere Einflüsse. Ein Individuum kann vereinfacht als Menge von Infomationen betrachtet werden, die sich aus festen Blöcken von Teil-Informationen zusammensetzt. Jeder Informations-Block hat dabei eine ganz bestimmte Bedeutung - analog der Tatsache, daß jedes Gen der DNS die Ausprägung eines bestimmten Teils unseres Organismus definiert - etwa die Augenfarbe. Tauscht man für zwei Individuen Blöcke gleicher Bedeutung gegeneinander aus, können zwei neue Individuen mit veränderten Eigenschaften entstehen. Dieser Austauschvorgang wird i. allg. als Rekombination bezeichnet. Triebkraft der Evolution ist jedoch die zufällige Veränderung von Informationen durch äußere Einflüsse - die Mutation.
Die durch Rekombination und Mutation neu entstandenen Individuen konkurrieren nun mit der Eltern-Population. Dabei haben die Individuen die größten Überlebens-Chancen, deren Eigenschaften die beste Anpassung an die jeweilige Umwelt darstellen. Da also die besser angepaßten Individuum die weniger gut angepaßten nicht vollständig verdrängen, besteht die Population i.allg. aus einem Spektrum unterschiedlicher Individuuen. Diese Vielfalt ermöglicht ein flexibleres Reagieren auf eventuelle Veränderungen der Umwelt und hebt so die Überlebens-Wahrscheinlichkeit für die Art als Ganzes, da sich z.B. ein scheinbar nutzloses oder gar nachteiliges Merkmal eines Individuums bei einer Veränderung der Umwelt als vorteilhaft erweisen kann.

 


Evolutionäres
[Home][Software]

Copyright © J.Weingärtner, [Letzte Aktualisierung 26.04.2002]
i_n_f_o_@_d_s_c_h_e_n_s_k_y_._d_e