Zum Inhalt springen

IRRmeisen V01 DOS

Bewertung

Einleitung

2003 – Die Evolution der Computerwürmer
https://www.spektrum.de/magazin/die-evolution-der-computerwuermer/830124

Dieser und ähnliche Beiträge faszinierten mich schon damals, thematisch als auch programmtechnisch und waren echte Inspiration für meine Experimente.

Sinn und Zweck der IRRmeisen

  1. Kann ich meinem Computer das Lernen beibringen? Womöglich dabei zuschauen?
  2. Evolutionäre Strategien selbst gestalten und ausprobieren. Interessant für Programmierer und Leute die sich experimentell mit der Evolution beschäftigen wollen. Wie gut funktioniert es? Wie funktioniert es besser? Was bremst? Was sind optimale Bedingungen? Ist eine vom Menschen konstruierte IRRmeise besser oder schlechter als eine genetisch optimierte? Oder demnächst villeicht noch eine mit neuronalem Netz?
  3. Durch die Veränderbarkeit der Sehfelder erhoffe ich Strukturen zu erkennen, auf welche Art sich die Sehfelder anordnen. Welche Sichtweite ist optimal? Braucht man “hinten” Augen? Links Rechts?
  4. Dank moderner Computer können wir dies alles ausprobieren!

What a time, to be alive!

Funktionsweise der IRRmeisen

Die IRRmeise ist ein Datenkonstrukt mit einer x-y Position.
Einem Zähler für gefressenes Futter.
Maximal 8 Sehfelder.
Gene, die die Positionen ihrer Sehfelder bestimmen. Die Anzahl der Sehfelder kann mit den Tasten “Z” oder “z” editiert werden.
Ein Sehfeld ist definiert durch 2 Vektoren in Bezug auf die IRRmeise. Der maximale Abstand zur IRRmeise kann durch die Tasten “B” oder “b” (=Bereich) erhöht oder verringert werden. In dem folgenden Bild ist die maximale Entfernung 3.

Diese Sehfelder können sich also überlagern.
Jedes Sehfeld zeigt durch seinen Zustand (1 oder 0) an ob sich Futter in dem Bereich befindet.
00000000 – So sieht es aus wenn Kein Futter in der Nähe ist. Durch diese 8 Sehfelder lassen sich als Bits betrachtet 255 verschiedene Situationen beschreiben.
00110010 z.B.
Jede IRRmeise besitzt nun 255 Gene, die die Reaktion auf jede mögliche Situation enthalten. Die Reaktion ist eine Zahl für die Richtung der IRRmeise . 8 mögliche Richtungen: (Die IRRmeise kann sich nicht “drehen”, sie begibt sich immer auf das angegebene Feld.)

Z.B:
gen1: 00000000=1
gen2: 00000001=4


gen255: 11111111=5
Die Gene werden beim Start der Simulation zufällig belegt.

Falls Interesse besteht schreib ich hier gern mal noch mehr zum Ablauf eines Lebensschrittes, aber meine Zeit ist knapp und ich mach lieber neue Sachen als alte zu kommentieren.

IRRmeisen Version 1 (DOS)

Die Version 1 meiner sogenannten IRRmeisen schrieb ich in VisualBasic for Windows. DOS Version. 🙂

Leider habe ich den Sourcecode verloren, aber die EXE Datei existiert und funktioniert auch noch. Läuft NUR unter DOS. Hier die Datei und ein link zu einer DOS-Emulation, falls ihr grade keinen DOS-Rechner neben euch habt. 🙂

Download: IRRMEISE.EXE.
Link zu DosBox.

IRRmeisen Version 1 – Anleitung

Vorbereitung:

Ihr braucht ein DOS.

Start:

3x Enter drücken.


1 eingeben, Enter.

es startet

Programm:

Menü : press [SPACE BAR]

menu

Die Leerzeichen-Taste stoppt die Simulation und zeigt alle Tastenbefehle und die dazugehörigen aktuellen Werte an.
Die Tasten und ihre Funktionen:

ESC: Ende!,
f: F: Futter, weniger, mehr,
e:E: Energie init, weniger, mehr, (Startenergie, Schritte bis zur Auswertung)
a,A: alte Position! (Wenn die Irrmeise überlebt bleibt sie an ihrer alten Position oder wird neu ge-zufallt).
b,B: Bereich (maximale Sehweite),
n: Neustart,
+,-: Anzahl angezeigter Ameisen, (Zweck ist die Beschleinigung)
save load : nicht eingebaut
v,V: Verzögerung (Bremse) – beschleunigt automatisch wieder,
p,P; Mutationsrate, (wenn zw. 1 und 10 ossziliert die Mutationsrate automatisch).
t: neues Futter,
i: info anzeigen. (langsamer)
U,u; Spur anzeigen.

Man kann schön zusehen wie sie immer besser das Futter finden, um dann ziemlich schnell in Konkurrenz miteinander gehen gehen. Die Simulationswelt ist leider auf eine Kantenlänge von 100 beschränkt und die Anzahl der Individuen (IRRmeisen) beträgt 24. Das ist ENG! Sie sind am Ende damit beschäftigt zu rennen um das meiste Futter zu kriegen. In folgenden Versionen werde ich größere Landschaften verwenden, um diesen “Herdeneffekt”, diesen immensen sozialen Druck der durch die Enge entsteht, abzumildern.

Pläne für kommende Versionen:

Prinzipielle Änderungen

Alles was geht einstellbar machen.
Verschiedene Fortbewegungsarten (Definition der gültigen Nachbarfelder). (gradeaus .. rechts um. .. ?)
Verschiedene Fortbewegungskosten. (Sprünge bzw. speed. .. ?)
Block (Mauer) einbauen.

Editor mit besonderen Einstellungen

-Editor zum gestalten der IRRmeisen um sie mit generierten vergleichen zu können.
-Interessant ist für mich auch ein Editor, in dem man bestimmte Merkmale der IRRmeise von der Evolution verbessern lassen kann. Also so die Einstellungen und dahinter ein Häkchen [evolve:[X] (min)(max)]. 🙂

Verschiedene Völker und Futter

Völker

Verschiedene Völker, die verschiedenes Futter brauchen, sich aber gegenseitig auch fressen können.

Futter

Es könnte 4(..) Völker und 2(..) Futtersorten geben.
Wäre interessant zu sehen was bei weniger oder mehr Futter passiert.
Die Völker müssten ja dann immer kämpferischer werden oder nicht?

Das Futter könnte auch “sortiert” wachsen.

IRRmeisen könnten Futter transportieren, ablegen oder andere IRRmeisen füttern?

Neuronale Netze

Neuronales Netz verwenden
(siehe neuronale netze experimente) LINK irgendwann ANPASSEN!

Die neue Version

Interessierte können sich hier den aktuellen Stand der Entwicklung ansehen.

Schreibe einen Kommentar