AllmysteryNavigation
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Simulation: Evolution imaginärer Würmer

4 Beiträge ▪ Schlüsselwörter: Evolution, BOB, Wurm ▪ Abonnieren: Feed E-Mail
Seite 1 von 1

Simulation: Evolution imaginärer Würmer

02.05.2013 um 16:26
Ich habe schon einige Evolutionssimulationen geschrieben aber dieses mal in JavaScript so das Jeder die Simulation durch einen Klick in Browser laufen lassen kann. Die Simulation besteht aus einen 2D 'Spielfeld' auf dem 'Würmer' platziert werden. Ein Wurm wird am Anfang mit einen zufälligen Genom und einen Segment ausgestattet (Also ein Einzeller und noch kein richtiger Wurm).

Ein Wurm bewegt sich in dem er vom Kopf (Der Wurm hat ein erstes Segment, das ist der Kopf) aus einen Schritt in ein Nachbarfeld tut. Ist das Feld frei folgen alle Segmente des Wurms dem vorherigen Segment.
Trifft der Wurm auf einen Kopf oder Schwanzende eines anderen Wurms so ißt er diesen,das Opfer verliert das Segment der Wurm wird ein Segment länger. Trift der Wurm einen anderen Wurm in der Mitte dann passiert derzeit folgendes:
Ist das Opfer größer als der Wurm dann blockiert der die Bewegung. Ist der Wurm jedoch größer oder gleichgroß wie sein Opfer Teilt er das Opfer. Der vordere Teil des Opfers darf weiter kriechen, der hintere Teil (ab der Bißstelle) wird ein neuer Wurm mit dem durch Crossover vereinten Genomen des Wurms und seines Opfers.
Trifft ein Wurm auf sich selber dann teilt er sich auch in zwei Teile, der Wurm aus der hinteren Hälfte ist ein Mutant des Wurmes.

Ein Wurm hat eine Lebensenergie, die derzeit pro Schritt um eins verringert wird. Sinkt die Energie auf Null, so verliert der Wurm ein Segment und erhällt dafür einen Energieschub. Veringert sich die Energie eines Einzellers auf Null, dann ist diei Zelle Tod und bleibt als schwarzer Punkt auf dem Spielfeld liegen und kann gegessen werden.

Denken tut der Wurm über ein primitives Neuronales Netz mit ca 12 Eingabe Neuronen, 2 Ausgabe Neuronen und ein Feedback Neuron (Ausgabe wird zur Eingabe im nächsten Schritt)
Sehen kann der Wurm in genau 3 Richtungen (Vorwärts, Links, Rechts) , ist das Feld leer bekommt er eine abgeschwächtes und gemitteltes Signal über die Belegung der Nachbarfelder des betrachteten Feldes.


Bitte schaut auf die Versions Nr .. mit v0.2 ist sicherlich noch nichts Fertig und schon garnicht meinen eigenen Ansprüchen genügend.

Da liegt die Simulation :
http://www.bulldada.de/wordpress/wp-content/uploads/2013/05/wurm.html


melden

Simulation: Evolution imaginärer Würmer

02.05.2013 um 16:46
Was bewirken die Genome bisher?


melden

Simulation: Evolution imaginärer Würmer

02.05.2013 um 17:02
Die G(e)nome sind die Gewichte (positiv oder negativ) zwischen Eingabe und Ausgabe Neuronen.

N Ausgabe Neuronen sind über M Gewichte mit den Eingabeneuronen verbunden (+1 BIAS Neuron)

Ausgabe[N] = Sigmoid (Gewicht[N][1] * Input[1] + Gewicht[N][2] * Input[2]...+ Gewicht[N][M] * Input[M] + BIAS[1] )

Die Sigmoidfunktion ist stark Dämpfend und liefert einen Wert zwischen 0 und 1 zurück. Sigmoid(x) = 0.5 * x / Quadratwurzel (x²+1) + 0.5;

Als Ausgabe habe ich 2 Neuronen die ich in die derzeit 4 Aktionen des Wurmes übersetze.

Ausserdem ist natürlich der Farbwert im Genom verankert und eine gerade nicht genutze Variable die bestimmt wie stark ein internes Feedback gedämpft/verstärkt werden soll.


melden
melden

Neuen Beitrag verfassen
Dies ist eine Vorschau, mit den Buttons am Ende der Seite kannst du deinen Beitrag abschicken.
Bereits Mitglied?  
Schriftgröße:
Größe:
Dateien Hochladen
Vorschau
Bild oder Datei hochladen

Bleib auf dem Laufenden und erhalte neue Beiträge in dieser Diskussion per E-Mail.


Oder lad dir die Allmystery App um in Echtzeit zu neuen Beiträgen benachrichtigt zu werden: