Forschung

Digitaler Darwinismus

Forscher setzen Programme im Computer aus, die sich dort entwickeln. Nur die besten überleben

In dem gnadenlosen Kampf kann es nur einen Gewinner geben. Wer schwächelt, wird aussortiert – und darf auch nicht mehr wiederkommen. Es sind keine Figuren in einem harten Hollywood-Reißer, die ums Überleben kämpfen, es ist auch keine Kurzbeschreibung, wie sich die Arten im Laufe der Evolution entwickelt haben. Es sind Nullen und Einsen, die sich hier bewähren müssen. Die Programme machen es unter sich aus, wer am meisten zu bieten hat, welches von ihnen zum Beispiel den Bauplan einer Kraftstoffdüse mit höchstmöglicher Verdichtung entwickelt hat.

Der Überlebenskampf läuft nach den Gesetzmäßigkeiten ab, die Charles Darwin in seiner Evolutionstheorie formuliert hat. Es geht bei den evolutionären Algorithmen oder der genetischen Programmierung ebenfalls um Auslese, Mutationen und bestmögliche Anpassung. Forscher setzen dazu Programmzeilen in einem Computer aus, die sich dann paaren und Nachkommen bilden. Dazu kreuzen sie ihre Codes miteinander, bauen Teile davon in das eigene Programm ein und bilden eine neue Generation an Software. Kommen die Nachkommen dem Ziel – zum Beispiel dem optimierten Düsen-Bauplan – näher, dürfen sie weitermachen, für die anderen ist der Ausleseprozess beendet.

Mutationen bringen immer wieder neuen Schwung in den Ausleseprozess. „Die Software initiiert Mutationen eines Lösungskandidaten, welche zufällig dessen Eigenschaften verändern. Die so entstehenden, modifizierten Lösungskandidaten werden wie das Elternindividuum bewertet. Dadurch wird klar, ob Verbesserungen eingetreten sind oder nicht“, sagt Rudolf Kruse, Informatik-Professor an der Magdeburger Otto-von-Guericke-Universität. Ergebnis kann zum Beispiel eine Software sein, die sehr präzise Entwicklungen am Aktienmarkt prognostiziert oder der Designentwurf für ein möglichst windschnittiges Auto. So eine Finalversion kann schon mal einige hundert Generationen an Entwürfen durchlaufen, das dauert dann einige Tage oder Wochen. Evolution braucht eben Zeit. Machen die Wissenschaftler den Programmzeilen nur wenige Vorgaben, kann es auch Monate dauern. Geben sie dagegen zu wenig vor, erstickt der Evolutionsprozess im Keim. Die Ergebnisse können sich sehen lassen. John Koza von der Stanford University hat mit der Methode schon Antennen für die Nasa entwickelt und eine Software geschaffen, die Proteine identifizieren kann. Die Auslese-Methode kommt in Mode.

Selbstoptimierende Software

Ganz allein durch die evolutionäre Methode entstanden ist dagegen das Brettspiel „Yavalath“. Es ist das erste kommerziell veröffentlichte, komplett vom einem Computer konzipierte Spiel. Evolutionäre Algorithmen haben schon ermittelt, wie Smartphones möglichst wenig Strom verbrauchen und Mikrochips möglichst schnell arbeiten können. Sie haben bei der Konstruktion von Hochleistungsmikroskopen und beim Komponieren von Musikstücken mitgewirkt. Ein Bereich könnte für den Einsatz genetischer Programmierung ganz besonders interessant sein: der der Selbstoptimierung von Software.

Das National Institute of Standards and Technology hat herausgefunden, dass Fehler in Software die US-Wirtschaft jedes Jahr etwa 60 Milliarden Dollar an Umsatz kosten. Über den evolutionären Ausleseprozess ist schon Software wie „GenProg“ entstanden, die in der Programmiersprache C automatisch Fehler erkennt und repariert.

Der Ausleseprozess bringt also oft gute Ergebnisse, hat aber auch einen Nachteil: Es ist selbst für Fachleute kaum nachzuvollziehen, warum Algorithmen, die sich durchgeboxt haben, so gut sind. „Es kommt tatsächlich vor, dass man nicht ganz versteht, warum eine durch evolutionäre Algorithmen entwickelte Lösung besser ist als eine andere“, sagt Kruse. „Bei der Entwicklung zum Beispiel von Medizintechnik oder Assistenzsystemen in Autos müssen wir das aber schlüssig darlegen“, sagt Informatiker Kruse. Da geht es schließlich um Menschenleben.