universe.exe


Bild 1: Das Spielfeld


Bild 2: der Ablauf

Das Spielfeld:

  • Anzahl Spalten: n1
  • Anzahl Zeilen: n2
  • Anzahl Steine: n3
  • mit: n1=n2
  • mit: 3<= n3<=n1*n2-1
  • Die Nummerierung der Spalten und Zeilen beginnt im Nullpunkt links oben.
  • Jedes Feld der Matrix hat entweder den Wert "0" für "kein Stein" oder den Wert "1" für einen Stein.

Bewegungsvorschlag Stein:

  • Jedem Stein ist ein neuronales Netz zugeordnet.
  • Aus der aktuellen Lage aller Steine auf dem Spielfeld wird der Eingangsvektor des neuronalen Netzes generiert.
  • Jedes Neuron kann nur die Zustände "1" und "0" annehmen.
  • 2 Neuronen erzeugen den Ausgangsvektor, entsprechend den vier Variablen welche eine Bewegung eines Steines definieren.

Der Matrixwächter:

  • Der Matrixwächter ist eine Funktion, welche sicherstellt, daß sich die Steine (schwarz) nur gemäß definierten Regeln bewegen.
  • Der Matrixwächter wird immer dann aufgerufen, wenn sich ein Stein bewegen will.
  • Der Stein liefert dem Matrixwächter seinen "Bewegungswunsch" als Eingabedatum.
  • Der Matrixwächter erhält als Eingabedatum die Feldinhalte aller benachbarten Felder des aktuell zu bewegenden Steines.
  • Der Matrixwächter überprüft daraufhin, ob die Bewegung erlaubt ist oder nicht.
  • Ist die Bewegung erlaubt, so liefert die Funktion den Wert "1" für "ja" und den Wert "0" für "nein".

Ein Bewegungstakt:

  • Alle Felder der Matrix werden von links oben nach rechts unten der Reihe nach abgearbeitet.
  • Wird in einem Feld ein Stein (schwarz) angetroffen, so liefert dieser einen von 4 möglichen Vorschlägen für eine neue Position an den Matrixwächter:
  • 1) Ein Feld senkrecht nach oben
  • 2) Ein Feld senkrecht nach unten
  • 3) Ein Feld nach rechts
  • 4) Ein Feld nach links
  • Stehenbleiben ist als Vorschlag nicht erlaubt.
  • Es dürfen nicht zwei Steine auf einem Feld der Matrix stehen.
  • Kein Stein kann über den Rand hinaus gehen.
  • Liefert der Matrixwächter den Wert "1" zurück, so bewegt sich der Stein in die neue Lage.
  • Liefert der Matrixwächter den Wert "0" zurück, so verändert der Stein seine Lage nicht.
  • Das nächste Feld wird abgearbeitet.

Ein Bewertungstakt

  • Nach einem vollständigen Bewegungstakt (=Abarbeitung aller Felder des Spielfeldes) folgt ein Bewertungstakt.
  • Alle Steine die in direkter Linie zwischen zwei begrenzenden Steinen liegen erhalten von diesen begrenzenden Steinen einige Wichtungen überkopiert gemäß des Austauschfaktors. Welche Wichtungen wie übergespielt werden, kann zufällig entschieden werden oder aber über einen genetischen Algorithmus optimiert werden.
  • Einige Wichtungen werden zufällig gemäß der Mutationsrate verändert.

Eine Ebene höher
Zwei Ebenen höher