Abb. 19: Zellulärer Automat für ein Reaktions-Diffusions-System
1 A <-- A0
2 B <-- B0
3 wiederhole für r = 0 bis r =
Länge
4 Xt[r] <-- X0
+ Zufallsabweichung
5 Yt[r] <-- Y0
+ Zufallsabweichung
6 Ende wiederhole
7 wiederhole
8 wiederhole für r = 1 bis r
= Länge-1
9
10
11 Ende wiederhole
12 wiederhole für r = 1 bis r
= Länge-1
13 nX <-- k1A
+ k2·Xt[r]2·Yt[r]
- k3·B·Xt[r] - k4·Xt[r]
14 nY <-- k3·B·Xt[r]
- k2·Xt[r]2·Yt[r]
15 Xt+1[r]
<-- Xt[r] + nx·t
16 Yt+1[r]
<-- Yt[r] + ny·t
17 Ende wiederhole
18 Zeichne Xt[r] undYt[r]
für
alle r als Linie
19 Ende wiederhole
Hierbei bedeutet Xt[r] (bzw. Yt[r]) die Stoffmenge von X (bzw. Y) am Raumpunkt r zur Zeit t. In den Zeilen 1-6 des Programmes werden die Zellen des Raumes (Feldes) mit den Ausgangswerten X0 und Y0 plus einer zufälligen Abweichung (pos./neg.) gesetzt. A und B bleiben wieder an allen Raumpunkten gleich, um ein Fließgleichgewicht zu erreichen. Danach beginnt die Hauptschleife (Z. 7-19). In ihr wird zuerst die Diffusionsformel auf die X- und Y-Stoffmenge jeder Zelle der Linie angewendet (Z. 8-11). Danach werden die Reaktionsformeln für den Brüsselator (siehe 3.2.1) auf jede Zelle (jeden Raumpunkt) angewendet (Z. 12-17). Die bei der Diffusion auf Xt+1 und Yt+1 zugewiesenen Werte werden jetzt als Xt und Yt angesprochen. Das bedeutet, dass zu den Werten des Eingangsfeldes zuerst die Diffusion addiert wird und dann die Konzentrationsänderung durch die Reaktion, also
Die so erhaltenen Ausgangsfelder mit den Stoffmengen Xt+1[r] und Yt+1[r] werden nach der Ausgabe auf dem Bildschirm (Z. 18) wieder als Eingansfelder eingesetzt (Iteration). Interessant ist die Betrachtung der Randbedingungen des ZA. Diese beschreiben das Verhalten der Randzellen der Linie, da diese ja auf einer Seite eine nicht existente, also auch in Bezug auf X[r] und Y[r] undefinierte ,,Zelle`` haben, die aber in die Formeln eingeht. Im Falle meiner Implementierung verhalten sich diese Randzellen so, als hätten sie immer die Startkonzentrationen X0 und Y0.
Das eben beschriebene Programm habe ich wieder in Delphi umgesetzt. Abbildung 20 zeigt das ausgegebene Ergebnis. Entlang der Zeit-Achse (nach unten) werden einfach die Zustände der Zellen aufgetragen (Raumachse nach rechts).
Abb. 20: Der Brüsselator als Reaktions-Diffusions-System
auf einem eindimensionalen Raum (Linie). Parameter: k1 =
k2
=
k3
=
k4
= 1;
X0
= 1; Y0
= 1; A0
= 1; B0
= 3; t
= 0,1; DX
= 0,1; DY = 0,01; Abweichung 1
%; Länge = 100 Pixel; Farben: schwarz
X[r]=0; weiß
X[r]=5; eine Reihe zeigt den Stand nach jeweils 4 Rechenschritten
Wie man sieht, bilden sich ineinander verschachtelte Dreiecke. Dieses Bild bedeutet, dass Konzentrationswellen vom Rand aus (Störstelle) nach innen laufen und sich dort auslöschen. Dies ist ein Ergebnis, das schon ZHABOTINSKY im Experiment beschrieben hat. Er führte die BZR in einer dünnen Kanüle durch [Zaikin, Zhabotinsky 1970].
Nun habe ich den Brüsselator auf einen zweidimensionalen Raum (Fläche) übertragen. Daraus folgt, dass nun jeder Raumpunkt r zwei Koordinaten hat, nämlich rx und ry. Damit ist r formal der Vektor . Somit stelle ich die Konzentration von X an der Stelle zur Zeit t als Xt[rx, ry] dar. Da ein Punkt auf einer Fläche mehr als nur zwei Nachbarn (wie bei der Linie) hat, muss man die Diffusionsformel entsprechend erweitern. Auf die Reaktionsformel hat die Änderung der Dimension keinen Einfluss, da sie sich ja nur auf eine Zelle bezieht. Wie ich bereits anfangs geschrieben habe, wird die Diffusion in meinem Programm implementiert, indem man den Mittelwert der Konzentrationsänderungen zu den Nachbarzellen, zur Konzentration der betrachteten Zelle addiert. Bei der Fläche stellt sich nun die Frage, welche Zellen man als Nachbarn ansieht. Für die Fläche gibt es hier hauptsächlich zwei verschiedene Möglichkeiten [Weimar 1997]:
Ich verwende die einfachere von-Neumann-Nachbarschaft. Daraus ergibt sich folgende Formel für die Konzentrationsänderung durch die Diffusion:
Um ein Programm zu schreiben, das obige Anforderungen erfüllt, kann man das Gerüst des Brüsselators auf der Linie verwenden. Man muss nur zwei Dinge ändern: 1. Die Diffusionsformel für die Linie muss durch Formel (RD.3) ersetzt werden. 2. Die Schleifen, die bisher die Linie anhand von r durchlaufen haben, müssen jetzt die Fläche anhand von durchlaufen. Es muss also je eine zweite verschachtelte Schleife eingefügt werden, damit rx und ry durchlaufen werden. Dieses abgeänderte Programm sieht wie folgt aus:1 A <-- A0
2 B <-- B0
3 wiederhole für rx=0 bisrx=Breite
4 wiederhole für ry=0
bisry=Länge
5 Xt[rx,
ry]
<-- X0 + Zufallsabweichung
6 Yt[rx,
ry]
<-- Y0 + Zufallsabweichung
7 Ende wiederhole
8 Ende wiederhole
9 wiederhole
10 wiederhole für rx=1
bis
rx=Breite-1
11 wiederhole für ry=1
bisry=Länge-1
12
13
14 Ende wiederhole
15 Ende wiederhole
16 wiederhole für rx=1
bisrx=Breite-1
17 wiederhole für ry=1
bisry=Länge-1
18 nX <--k1·A
+ k2·Xt[rx,
ry]2·Yt[rx,
ry]
- k3·B·Xt[rx,
ry]
- k4·Xt[rx,
ry]
19 nY <--
k3·B·Xt[rx,
ry]
- k2·Xt[rx,
ry]2·Yt[rx,
ry]
20 Xt+1[rx,
ry]
<-- Xt[rx,
ry]
+ nx·t
21 Yt+1[rx,
ry]
<-- Yt[rx,
ry]
+ ny·t
22 Ende wiederhole
23 Ende wiederhole
24 Zeichne Xt[rx,
ry]
und
Yt[rx, ry]
für
alle
als Fläche
25 Ende wiederhole
Diesmal sind die Randbedingungen so gewählt, dass den Randzellen auf die gleiche Weise, wie den normalen Zellen zufällig schwankende X- und Y-Konzentrationen zugewiesen werden, die aber während der gesamten Simulation wie A und B konstant bleiben. Die Umsetzung des obigen Programmes in Delphi ergibt die Ausgabe in Abbildung 21. Unter den Bildern sind jeweils die verstrichenen Rechenschritte (Generationen) angegeben.
Abb. 21: Der Brüsselator als Reaktions-Diffusions-System
im zweidimensionalen ZA. Aufgetragen ist die Konzentration von X.
Zwei Spiralstrukturen sind jeweils vergrößert dargestellt. Parameter:
k1
=
k2
=
k3 = k4
= 1;
X0
=
1;
Y0 = 1; A0
= 1;
B0
=
3; t
= 0,2; Dx=0,2; Dy=0,02; Abweichung
1000 %; Breite = 100 Pixel; Farben: blau
X[]
= 0; rot
X[]
= 5.
Auf dem ersten Bild (10. Generation) sieht man den zufälligen Ausgangszustand des ZA. Auf den folgenden Bildern entstehen dann stabile Spiralenmuster. Der Rand wirkt aufgrund der Randbedingungen ebenfalls als Störzentrum. Von ihm gehen konzentrische Kreiswellen aus. Treffen zwei Wellenfronten aufeinander, so löschen sie sich gegenseitig aus. Die Farbgebung wurde in Anlehnung an das Experiment mit Ferroin/Ferriin gewählt.
Abb. 22: Gegenüberstellung der Spiralmuster in der BZR
(Quelle: [Kauffman 1996,
Seite 87]) und der Simulationsergebnisse.
Der Brüsselator ist also auch in ein- und zweidimensionalen Systemen dazu geeignettrotz seiner Einfachheit die komplexen Phänomene der BZR nachzubilden. Die Umsetzung meines eigenen und des FKN-Modell schlug fehl. Beide zeigten keine sich ausbreitenden Wellenstrukturen. Somit sind sie wohl eher dazu geeignet gerührte Systeme zu simulieren.