Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss19:survival_of_the_fattest

Survival of the fattest

Gruppenmitglieder:

1.Alexander Droß
2.Eric Matthies
3.Leander Hartmann
4.Verena Feuerhahn
5.Leonie Abt

Unser Projekt:

Ziel unseres Projektes war es, eine Evolution zu simulieren. Das heißt, wir wollten die Entwicklung einer Art von Kreaturen simulieren. Unsere Quellen und Inspirationen zu diesem Thema findet ihr hier: Quellen und Inspirationen
Jede lebende Kreatur führt jeden Zug einen Schritt durch. Ein Zug ist dabei im Grunde die kleinste Zeiteinheit der Simulation. Auf einen Zug folgt ein nächster, so lange bis alle Kreaturen Tot sind. Dann wird eine neue Generation Kreaturen erschaffen. Für die Kreaturen dieser Generation werden sich die Kreaturen der vorherigen Generation angesehen und nach bestimmten Regeln, welche im Code erläutert werden, werden einige davon eine ausgewählt, eine bestimmte Anzahl kopiert und die Eigenschaften sowie das Verhalten wird mutiert, also leicht verändert.
Diese gerade genannten Eigenschaften können zum Beispiel Geschwindigkeit, Größe, etc. der jeweiligen Kreatur sein. Eine Auflistung aller von uns eingefügten Eigenschaften findet man im Code in der Datei Player in der init-Funktion der Kreatur (Player ist bei uns ein anderes Wort für Kreatur).
Darüber hinaus haben die Kreaturen noch ein Verhalten. Dieses bestimmt, wie sie auf den Input an Informationen reagieren. Dieser Input besteht aus der Abdeckung des Sichtfeldes sowie der Erinnerung der Kreatur. Die Abdeckung des Sichtfeldes beschreibt im Grunde, wie viel Nahrung die Kreatur sieht. Man stelle sich das Sichtfeld der Kreaturen als Linie vor, da die Kreaturen und ihre Umwelt ja zweidimensional sind. Der Wert von Abdeckung des Sichtfeldes entspricht dann dem Teil der Linie, in dem Futter innerhalb der Sichtweite der Kreaturen liegt. Die Erinnerung der Kreatur besteht dann aus den Reaktionen und Sichtfeldern der vergangenen Schritte der Kreatur.
Sichtfeld der Kreatur. Das rote ist Futter in Sichtweite der Kreatur. Anteil des Futters am Sichtfeld entspricht Abdeckung des Sichtfeldes.
Die Reaktion besteht dann aus einer Winkeländerung und einer Schrittweite, also der Entfernung, welche die Kreatur durch diesen Schritt zurücklegt. Diese Daten werden auch jeden Schritt zur Erinnerung hinzugefügt.
Das Verhalten der Kreaturen kann entweder auf Basis von Polynomen oder auf Basis von Neuronalen Netzen geschehen. Auf Basis von Polynomen heißt, die Bestandteile des Inputs, welches ja alles Zahlen sind, werden durch ein Polynom zusammengerechnet. So ergeben sich dann die Ergebnisse für die Winkeländerung und die Schrittweite. Auf Basis von neuronalen Netzen heißt, die Daten werden in ein neuronales Netz eingegeben und dieses ergibt dann so die Ergebnisse für die Winkeländerung und die Schrittweite. Am Ende eines Durchlaufs werden die Statistiken für die Veränderung der Werte einiger Eigenschaften angezeigt.

Der Verlauf unseres Projektes wird in Dokumentation umrissen.

Der dem Programm zugrundeliegende Code wird in Code erläutert.

Einige Statistiken verschiedener Versionen des Codes findet man unter Ergebnisse.

In dem durch Verena erstellten Exkurs Genetische Algorithmen wird noch tiefer in die Materie der auch diesem Projekt zugrundeliegenden genetischen Algorithmen eingegangen.

Alte Startseite

ss19/survival_of_the_fattest.txt · Zuletzt geändert: 2019/09/20 10:39 von stefanborn