Wieselevolution

Richard Dawkins hat für sein Buch “The Blind Watchmaker” eine kleine Software-Anwendung geschrieben, die veranschaulichen sollte, wie in der Evolution Zufall und Selektion zusammenarbeiten, um den Anschein von “Design” zu geben.

Auf Anfrage eines Bekannten aus dem Richard Dawkins Forum habe ich das Programm in etwas veränderter Form nachprogrammiert. In einem Video auf Youtube kann man es in Aktion sehen.

Den Quellcode übergebe ich der Public Domain. Man kann das fertige Projekt mit ausführbarer Datei (für Windows) und allen Quelltexten von meinem Webserver herunterladen. Der eigentliche Algorithmus befindet sich in WeaselCode.pas. Die Unit dlgMainWindow.pas kümmert sich um die Benutzeroberfläche.

Programmiert habe ich das ganze mit der Open Source Entwicklungsumgebung Lazarus. Diese verwendet als Sprache Delphi (Object Pascal) und läuft auf vielen verschiedenen Plattformen. Man kann so mit demselben Quelltext sehr effizient GUI-Anwendungen für Windows, Linux und Mac OS X erzeugen.

Was bei diesem Projekt natürlich nicht der tatsächlichen biologischen Evolution mittels natürlicher Auslese entspricht, ist dass wir hier als Anwender das Ziel (einen Satz) vorgeben. In der tatsächlichen Evolution wird das “Ziel” der Auslese jeweils durch die Umgebung bestimmt, die entscheidet, welche Genvarianten in dieser Umgebung die erfolgreicheren sind.

Es gibt inzwischen eine ganze Reihe von Software-Projekten (sog. Artifical Life Anwendungen), die diesen Sachverhalt korrekt abbilden, indem sie selbst kein Ziel vorgeben, sondern virtuellen sich entwickelnden Lebewesen nur eine bestimmte Umgebung anbieten und dann den Evolutionsprozess selbst entscheiden lassen, in welche Richtung sich die Lebewesen entwickeln.

Eines dieser Projekte ist Polyworld. Eine beeindruckende Vorführung dieses Projekts findet man auf Youtube in einem Google Techtalk. Leider ist der Vortragende etwas nervig, es lohnt sich meiner Meinung nach aber unbedingt, sich das ganze Video anzuschauen.

Leave a Reply

Your email address will not be published. Required fields are marked *