Zelluläre Automaten – ein altes GMD-Tool ausgegraben

Bei der aktuellen Covid-19-Epidemie spielen Modellrechnungen eine große Rolle. Für solche epidemiologischen Berechnungen lassen sich auch zelluläre Automaten verwenden. (Ob dies heutiger Stand der Technik ist, kann ich nicht beurteilen). Ein bekanntes Beispiel für einen zellulären Automaten ist Conveys Game of life.

Beim Aufräumen auf dem Rechner fiel mir das Tool CAT (Cellular Automaton Tool) in die Hände, das vor Jahren in der GMD programmiert wurde. Das Tool CAT erlaubt es, mit einer einfachen Beschreibungssprache in Form sog. Recipes zelluläre Automaten zu formulieren. Bei diesem Programmierparadigma ist es möglich, in einer Matrix das Verhalten einer Zelle in Abhängigkeit der umgebenden Zellen zu verändern. Es ist mir nicht gelungen, unter gängigen Windows-Versionen das CAT-Tool zum Laufen zu bringen. Ich kann aber hier – für Interessenten – zumindest das Handbuch vorlegen.

Sollte jemand die Programmdateien benötigen, lassen sich sicher Mittel und Wege finden. Es läuft mit Sicherheit auf Windows 3.11 und zeitlich benachbarten Windows-Versionen. Hier noch zur Illustration das Game of Life, wie es in CAT formuliert werden kann.

(* Conveys LIFE program with 2 states: dead and alive *)

RECIPE XYSize = 50;
XYBound = 1;
Colors = 2;
Zet = 2;

CONST Dead = 0;
Alive = 1;

VAR state;

EVENT SetUp;
RingForm;
RGBPalette(Colors, $0, $FF, $32,0, $B6, 0);
PlClipActive;
ShowPlane;

EVENT E0; (* initialization of cell plane *)
PlFillRandom (Dead,Alive);
ShowPlane;

EVENT E1; (* life program *)
FORALL DO
state := MooreSum; (* for performance reasons *)
IF (state = 3) OR (state = 2)
THEN IF (Self = Alive)
THEN Self := Alive
ELSE IF (state = 3)
THEN Self := Alive
ELSE Self := Dead
FI
FI
ELSE Self := Dead
FI;
OD;
ShowPlane;
END.

(Ich hätte hier übrigens vornehm geschwiegen, wenn von diesem CAT-Tool noch irgendetwas im Netz zu finden wäre.)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Previous Next
Close
Test Caption
Test Description goes like this