z Automat En

25
Inhalt Zelluläre Automaten - Definition 2 Geometrie der Zellanordnung 2 Nachbarschaften 2 Zustände und Übergangsregeln 3 Beispiel 1: eindimensionaler Automat 4 Game of Life 6 Programmlisting 8 Aufgaben 13 Gleiter und Kanonen 14 Beispiele: Weichzeichner, Diffusion 16 Beispiel: Krümelmonster 17 Beispiel: Belousov-Zhabotinski-Reaktion 19 Aufgaben 21 Gekoppelte Automaten 22 Seite 1 Zelluläre Automaten - Inhalt © Hans-Georg Beckmann 2003 Virtuelle Lehrerfortbildung im Fach Informatik in Niedersachsen

description

Zelluläre Automaten

Transcript of z Automat En

  • Inhalt

    Zellulre Automaten - Definition 2

    Geometrie der Zellanordnung 2

    Nachbarschaften 2

    Zustnde und bergangsregeln 3

    Beispiel 1: eindimensionaler Automat 4

    Game of Life 6

    Programmlisting 8

    Aufgaben 13

    Gleiter und Kanonen 14

    Beispiele: Weichzeichner, Diffusion 16

    Beispiel: Krmelmonster 17

    Beispiel: Belousov-Zhabotinski-Reaktion 19

    Aufgaben 21

    Gekoppelte Automaten 22

    Seite 1

    Zellulre Automaten - Inhalt

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Zellulre Automaten

    Haben sie sich schon einmal gefragt, wie eine Schneeflocke zu Stande kommt. Wie knnen die einzelnen

    Wassermolekle "wissen", wie sie sich zu diesem wunderbaren hochsymmetrischen Gebilde verbinden

    mssen ?

    Noch erstaunlicher ist es beim regelmigen Aufbau anderer Kristallstrukturen, wie z.B. dem Diamanten.

    Die Wassermolekle und auch die Kohlenstoffatome tragen keinen Bauplan fr die gesamte groe Struktur

    in sich und dennoch kann diese regelmige Struktur entstehen.

    Die Muster entspringen allein Wechselwirkungen der einzelnen Atome und Molekle mit ihren direkten

    Nachbarn.

    Man kann sich das Entstehen eines regelmigen Musters so vorstellen, dass an jedem Platz, an dem ein

    Molekl oder ein Atom plaziert sein knnte, ein Automat sitzt, der alle seine Nachbarpltze regelmig in-

    spiziert und danach entscheidet, ob diese Stelle mit einem Molekl oder Atom besetzt wird oder nicht.

    Ein Modell fr das Wachstum von Schneeflocken oder Kristallen kann man als zellulren Automaten be-

    trachten.

    Eine Standarddefinition dieses Begriffes:

    Ein zellulrer Automat ist eine regelmige Annordnung von Zellen. Jede Zelle kann eine endliche Zahl

    von Werten / Zustnden annehmen und hat eine begrenzte Zahl von Nachbarzellen, die sie beeinflussen

    knnen. Das Muster des gesamten zellulren Automaten ndert sich in einzelnen Schritten, die durch eine

    Reihe von bergangsregeln bestimmt werden, die fr alle Zellen gelten.

    Man kann zellulre Automaten durch einige Eigenschaften kennzeichnen.

    1. Die Geometrie der Zellanordnung

    Es knnte eine 2-dimensionale Anordnung von quadratischen Zellen sein, wie sie etwa ein Schachbrett

    darstellt. Eine 2-dimensionale hexagonale Zellstruktur knnte z.B. der Schneeflocke entsprechen. Auch

    eindimensionale Anordnungen, in denen die Zellen in einer Reihe liegen sind mglich. 3 - oder gar 4-

    dimensionale Anordnungen sind denkbar aber nicht in jedem Falle anschaulich darstellbar.

    2. Die Nachbarschaft der Zellen

    Es muss festgelegt werden, welche Nachbarn eine Zelle haben soll. In einem Quadratgitter knnte man 4

    Zellen als Nachbarn angeben, aber auch 8 Zellen als Nachbarn sind mglich.

    Seite 2

    Zellulre Automaten - Definition

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Der Mathematiker und Informatiker J. von Neumann , der als einer der ersten solche Automaten

    untersuchte, gab vier Felder als Nachbarn zu einer Zelle an. Ihm zu Ehren nennt man das eine von -

    Neumann-Nachbarschaft. Nimmt man alle acht mglichen angrenzenden Felder in einem zweidimensiona-

    len Gitter als Nachbarn, dann spricht man zu Ehren von Edward F. Moore von einer Moore-Nachbarschaft.

    3. Die Zustnde

    Jede Zelle kann eine festgelegt Anzahl von Zustnden einnehmen. Am hufigsten wird man Automaten mit

    nur zwei Zustnden vorfinden, die man als 0 oder 1 oder aber "tot" und "lebendig" interpretieren kann.

    4. Die bergangsregeln

    Die groe Anzahl mglicher zellulrer Automaten entspringt ihren groen Variantenreichtum an Regeln,

    die man fr das "Zusammenleben" der Zellen angeben knnte.

    Wenn eine Zelle z.B. k Zustnde hat und jeweils n Nachbarn, dann kann man k mgliche Regeln

    formulieren.

    Bei einer Mooreschen Nachbarschaft und jeweils 2 Zustnden sind es so schon 10 77 Regeln . Nur ein

    kleiner Bruchteil davon konnte bis heute in zellulren Automten untersucht werden.

    Beispiel 1: ein 1-dimensionaler zellulrer Automat

    Man habe eine unendliche Reihe von qudratischen Zellen, die die Zustnde 0 oder 1 haben knnen. Zu Be-

    ginn seine alle Zellen im Zustand 0. Irgend eine der Zellen wird dann in den Zustand 1 versetzt.

    In einer graphischen Darstellung knnte das dann wie folgt aussehen:

    Seite 3

    zellulre Automaten - Nachbarschaften

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    kn

    Neumann- Nachbarschaft Moore- Nachbarschaft

    Zelle im Zustand "1"

  • Es gelten nun folgende Regel:

    Seien mit X,Y und Z drei nebeneinanderliegende Zellen bezeichnet, dann gilt fr den Zustand der Zelle Y ,

    die zwischen X und Z liegt: Y = ( X + Z ) mod 2.

    Das bedeutet anschaulich fr eine beliebige Zelle in der Mitte einer Dreiergruppe auf der unendlichen

    langen Zeile des Automaten, dass es acht mgliche bergnge gibt:

    Bei jedem Durchlauf ( fr jede Generation ) werden alle Zellen des Automaten mit der bergangsregel

    "bearbeitet", so das fessteht, ob sie in der nchsten Generation lebend oder tot sind ( also den Zustand 1

    oder den Zustand 0 haben).

    Und was kommt dabei nach n Generationen heraus ?

    In einem einfachen Javaprogramm knnen wir das leicht prfen. Die einzelnen Generationen des zellul-

    ren Automaten stellen wir als Zeilen untereinander dar. Ist der Zustand einer Zelle 0, dann malen wir

    nichts. Ist der Zustand 1, malen wir einen kleinen schwarzen Kreis.

    Natrlich ist dieser Automat nach links und rechts begrenzt. Daher mssen wir uns fr die Randfelder be-

    sondere Regeln einfallen lassen, die aber nur der Unzulnglichkeit des Automaten entspringen. Wir been-

    den den Durchlauf durch die Generationen, wenn im zweiten Feld ( von links ) oder im vorletzten Feld

    ( von rechts ) eine "1" auftritt.

    // Zellautomat1.java// Hans-Georg Beckmann on Sat May 31 2003.// Ein eindimensionaler zellulrer Automtat. Zustandsmenge {0,1}// Am Anfang sei eine Zelle auf Zustand 1 alle anderen auf 0// bergangsregel: Eine Zelle Y zwischen X und Z wird in der nchsten// Generation zu Y = ( X + Z ) mod 2

    import java.awt.*;import java.applet.*;

    public class Zellautomat1 extends Applet{ Label Titel = new Label("Eindimensionaler zellulrer Automat",Label.CENTER); int[] Automat = new int[150]; // der zellulre Automat am Bildschirm int[] Automatneu= new int[150]; // fr die nchste Generation public void init() { setLayout (null); Titel.setBounds(180,10,140,25); add(Titel); for ( int i=0; i

  • Automat[75]=1; // Startwert } public void paint (Graphics g) { g.fillOval(5+300,36,3,3); for (int GenCount=1;GenCount
  • Ein berhmtes Beispiel "Das Spiel des Lebens"

    Das Spiel hat seinen Hintergrund in der Biologie. Es wurde 1970 von John Horton Convay erfunden und

    wird auf einem Quadratgitter gespielt. Es ist seit dem in unzhlbaren Bchern und Zeitschriften beschrie-

    ben und errtert worden, daher darf es auch hier nicht fehlen.

    Zellen auf diesem Gitter werden geboren, bleiben am Leben oder sterben ab in Abhngigkeit der

    Bevlkerungsdichte in ihrer Nachbarschaft ( gemeint ist die Moore-Nachbarschaft) . Damit haben die Zel-

    len wieder nur zwei mgliche Zustnde 0 oder 1. (0 = tot und 1 = lebend )

    Die Regeln sind einfach:

    Eine lebende Zelle bleibt fr die nchste Generation am Leben,

    wenn sie zwei oder drei lebende Nachbarn hat.

    Eine lebende Zelle stirbt an Vereinsamung ( und ist in der

    nchsten Generation leer ), wenn sie weniger als zwei lebende

    Nachbarn hat..

    Eine lebende Zelle stirbt wegen berbevlkerung, wenn sie

    mehr als 3 lebende Nachbarn hat.

    Eine tote Zelle wird neugeboren, wenn sie genau drei Nachbarn hat.

    Es ist schnell einzusehen, dass eine Startkonfiguration geben muss, da auf einem vollkommen leeren

    Zellgitter keine Leben von selbst entstehen kann.

    Bevor wir uns daran machen ein Computerprogramm zu entwerfen oder mit einem Programm zu arbeiten,

    mssen die Regeln "zu Fu" veranschaulicht werden.

    Dazu ein Beispiel: Die grnen Felder sind in der Startgeneration lebendig. In den Feldern ist jeweils einge-

    tragen, wieviele lebendige Nachbarn es gibt. Daraus ergibt sich die zweite Generation.

    Seite 6

    zellulre Automaten - Spiel des Lebens

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    Zustand Nachbarzahl Folgezustand01

    33

    11

    010

    1

    < 2 oder > 3< 2 oder > 3

    00

    2

    20

    1

    A B C D E F G H I J K123456

    001

    1 123

    24

    1 033

    12

    789

    11

    11

    42

    21

    21

    Generation 1

    A B C D E F G H I J K123456

    11

    1 221

    34

    2 123

    23

    789

    1 1 31

    11

    21

    Generation 2

    D5 , E7,E6 bleiben am LebenD6, C7 sterbenC6 , E5 werden lebendig

    Es ergeben sich neue Nachbar-schaftszahlen.

  • Fr ganz fleiige Schlerinnen und Schler wre es bestimmt eine netter Zeitvertreib auf Papier mit

    Rechenksten verschiedene Startbevlkerungen und ihr Wachstum oder ihr Absterben zu untersuchen.

    Aber zur grndlicheren Untersuchung dieses Automaten kommt nur ein Computerprogramm in Frage.

    Es muss im Prinzip so aussehen, wie das Programm fr den eindimensionalen Automaten.

    Fr dieses "Game of Life" findet man Beispielprogramme in Hlle und Flle. Manche sehr elegant und

    viele sehr funktionstchtig aber schwer zu durchschauen. Besonders im Internet finden Schlerinnen und

    Schler Programmlistings, die sich dank fehlender Erluterung kaum zum Nachprogrammieren eignen. Im

    nachfolgenden Programm wurde daher nur wenig Mhe auf Eleganz und raffinierte Methoden zur Ermitt-

    lung der Anzahl der Nachbarn verwendet, und dafr hoffentlich eine bersichtliche und nachvollziehbare

    Lsung gefunden.

    Das Programm soll ...

    - die Eingabe der Startkonfiguration mit der Maus ermglichen

    - auf Knopfdruck die nchste Generation am Bildschirm zeigen

    Seite 7

    zellulre Automaten - Spiel des Lebens

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    D5 , E5,E6 bleiben am LebenC6, E7 sterbenD7 , F6 werden lebendig

    Es ergeben sich neue Nachbar-schaftszahlen.

    A B C D E F G H I J K123456

    1 212

    24

    2 134

    32

    11

    789

    11

    11

    31

    2 1

    Generation 3

    D5 , E5, F6 bleiben am LebenC7, E6 sterbenF5 , E7 werden lebendig

    Es ergeben sich neue Nachbar-schaftszahlen.

    A B C D E F G H I J K123456

    1 211

    13

    3 235

    23

    122

    789

    11

    11

    21

    1

    Generation 4

    E5 , F5, F6 bleiben am LebenD5, E7 sterbenD6, E4 werden lebendig

    Das ist die Anfangsfigur um ei-nen Schritt in der Diagonalenverschoben.

    A B C D E F G H I J K123456789

    Generation 5

  • - die aktuelle Anzahl lebender Zellen angeben

    - einen Reset-Button haben, um neu starten zu knnen.

    Es wird mit zwei zweidimensionalen Feldern gearbeitet- Automat und Automatneu. Das erste enthlt die

    aktuelle Generation, das zweite wird die zuknftige Generation enthalten. Dieses zweite Feld wird bei vor

    Abarbeitung des aktuellen Automaten zuerst leer gemacht wird. Dann wird es durch die bergangsregeln

    aus dem aktuellen Feld heraus gefllt. Am Ende wird das Feld "Automatneu" in das Feld "Automat" ko-

    piert und als neue Generation am Bildschirm gezeigt. Die Felder sollen boolsche Werte enthalten ( man

    htte aber auch wieder 0 und 1 nehmen knnen ).

    Im nachfolgenden Beispiel ist das Speilfeld fest auf 40 x 40 Felder gesetzt.

    Das Listing:

    // Life1.java// Life1//// Created by Hans-Georg Beckmann on Tue May 20 2003.// Copyright (c) 2003 __MyCompanyName__. All rights reserved.// A simple Java applet//

    import java.awt.*;import java.applet.*;import java.awt.event.*;

    public class Life1 extends Applet implements MouseListener,ActionListener{ Button NewGen = new Button("Nchste Generation"); Button MyReset= new Button("Reset"); TextField Anzahl= new TextField(); TextField Genzahl = new TextField(); Label GenCountLabel= new Label("Generation :"); Label LifeCountLabel= new Label("Lebende Zellen:"); Label Titel= new Label("Game of life",Label.CENTER); boolean[][] Automat= new boolean[40][40]; // der Automat am Bildschirm boolean[][] Automatneu= new boolean[40][40]; // die nchste Generation int GenCount=1; // fr die Startgeneration ist es 1 int LifeCount=0; // noch keine Zelle zum Leben erweckt int nachbarn; public void init() { setLayout (null); addMouseListener(this); for(int i=0;i

  • MyReset.setBounds(320,500,140,25); MyReset.addActionListener(this); add(NewGen); add(MyReset); Titel.setBounds(200,20,140,25); add(Titel); LifeCountLabel.setBounds(120,540,90,25); add(LifeCountLabel); Anzahl.setBounds(240,540,60,25); add(Anzahl); GenCountLabel.setBounds(120,570,90,25); add(GenCountLabel); Genzahl.setBounds(240,570,60,25); add(Genzahl); }//***************************************************************// Die paint-Methode stellt die einzelnen Zellen in einem Gitter // dar oder lscht eine Zelle, wenn sie nicht mehr lebt//*************************************************************** public void paint (Graphics g) { //********************************* zuerst das Liniengitter *************** g.setColor(Color.black); for(int i=0;i
  • { if((z>0)&&(z0)&&(s=0)&&(i=0)&&(j
  • //*************************************************************************** // Dann die Methode vom ActionListener//*************************************************************************** public void actionPerformed(ActionEvent e) { Object welcher; welcher=e.getSource(); if(welcher==NewGen) // der Button fr die nchsteGeneration { for(int i=0;i3 lebende Nachbarn --> Tot// Zustand unverndert bei 2 lebenden Nachbarn//******************************************************************************** for(int i=0;i
  • { Automat[i][j]=false; // Alle Zellen im Automaten tot Automatneu[i][j]=false; }// Ende von for i und j LifeCount=0; Anzahl.setText("0"); GenCount=1; Genzahl.setText(""+GenCount); repaint(); } // Ende von MyReset }// Ende von action Performed }//Ende von Applet

    Das Programm kann beliebig verndert und erweitert werden. Schreibt man eine eigene Klasse "Zelle" ,

    die das Malen und Lschen individuell fr eine Zelle ermglicht, ohne mit repaint arbeiten zu mssen,

    dann wird der Programmablauf beschleunigt.

    Man kann auch recht einfach dafr sorgen, dass die Generationen nicht immer nur durch ein Klick auf den

    entsprechenden Knopf erzeugt werden sondern das Spiel bis zu einer bestimmten Abbruchbedingung

    selbststndig abluft.

    Wie verhlt sich eine willkrlich gesetzte Anfangspopulation ?

    Es ist nicht mglich sofort vorherzusagen, was mit dieser Konfiguration geschehen wird.

    Bleibt sie am Leben ?

    Vermehren sich die Zellen bis zu einer

    stabilen Bevlkerungszahl ?

    Entsteht ein symmetrisches Bild ?

    Nach wievielen Generationen ist mgli-

    cherwesie keine Leben mehr auf dem Spiel-

    feld ?

    Probieren sie z.B. das nebenstehende Start-

    bild. Es besteht aus 8 Zellen.

    Nach einigen Generationen kann das Bild

    schon ganz anders aussehen:

    Seite 12

    zellulre Automaten - Spiel des Lebens

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Hier ein Bild aus der 12. Generation.

    Glauben sie etwa, dass dieses sehr symmetrische

    Bild aus der oben gezeigten Startaufstellung hervor-

    gehen kann ?

    Wenn sie ein wenig Erfahrung mit dem Game of

    Life gesammelt haben, knnen sie aber vielleicht er-

    ahnen, wie es mit diesen vier Dreiergruppen wohl

    weitergehen wird .

    Aufgabe:

    Untersuchen sie das Verhalten verschiedener selbstgewhlter Anfangskonfigurationen mit dem Programm

    Life1. Versuche sie Startbilder mit mglichst wenigen lebenden Zellen zu finden, die zu einer stabilen

    "Bevlkerung " fhren oder gar zu einem ungebremsten Wachstum ( wenn man von der Begrenzung des

    Spielfeldes einmal absieht ).

    Seite 13

    zellulre Automaten - Aufgaben, Gleiter und Kanonen

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Gleiter und Kanonen

    Schon kurz nach Erfindung des Spiels

    Game of Life fand Conway eine Konfigu-

    ration mit eines seltsamen Eigenschaft.

    Nach vier Generationen hat sie wieder

    ihre Anfangskonfiguration eingenommen

    und sich dabei auf dem Spielfeld um je ei-

    nen Schritt entlang der x - und y- Achse

    bewegt ( also entlang der Diagonalen ).

    Er nannte dieses Lebewesen Gleiter, weil

    es ber das Spielfeld gleitet. Es ist die

    schon oben genau beschriebene Konfigu-

    ration aus nur 5 Zellen.

    Ein Jahr spter fanden dann Studenten des

    MIT eine Gleiterkanone, die unablssig

    nach je 20 Generationen neue Gleiter er-

    zeugt, die dann ber das Spielfeld wan-

    dern. Damit war dann die Frage beantwor-

    tet, ob es mglich wre, eine Konfigurati-

    on zu finden, die im Prinzip unendlich

    wachsen kann. Auch wenn unsere Gleiter

    vom Bildschirm verschwinden, so existie-

    ren sie doch im Spiel weiter, da das Spiel-

    feld unendlich gro ist. Jeder neue Gleiter

    vergrert also die Anzahl lebender Zel-

    len.

    Probieren sie die Gleiterkanone aus.

    Seite 14

    Gleiter und Kanonen

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    Gleiterkanone

    Gleiterkanone nach 91 Generationen

  • Solche Gleiterkanonen lassen sich auch um 90 Grad (180 Grad , 270 Grad ) gedreht am Bildschirm plazie-

    ren. Hat man eine Kanone am oberen Rand und eine andere am linken Rand, dann mssen die Gleiter auf-

    einander treffen. Was passiert in so einem Fall ? Wenn die Kanonen passend stehen, knnen sich die abge-

    schossenen Gleiter gegenseitig auslschen.

    Das kann man als einen logischen Baustein interpretieren. Wenn an einer Position im Gitter ein Gleiter

    existiert dann sei das logisch "1". Wenn an der Position kein Gleiter existiert, dann sei es logisch "0".

    Eine Gleiterkanone am oberen Rand unseres Spielfeldes produziert also unablssig eine Folge von Glei-

    tern. Eine Dualzahl, die eine Folge von 0 und 1 ist , wird durch Gleiter im Gitter so kodiert, dass sich diese

    Gleiter senkrecht auf den Strom der aus der Gleiterkanone kommt richten. Da sich zwei Gleiter vernichten,

    wird aus einer 1 im Datenstrom eine Null und wenn der Datenstrom eine 0 enthlt ( also keinen Gleiter )

    dann kommt die 1 aus dem kontinuierlichen Datenstrom durch.

    Zugegeben, man kann sich einfachere Arten der Realisierung einer NOT-Schaltung vorstellen. Interessant

    ist aber, dass das NOT-Gatter keine Struktur besitzt, denn es besteht nur aus einem Bereich im Gitter, in

    dem Gleiter aufeinandertreffen. Es wurden unterdessen auch schon NAND- , UND - und ODER-Gatter

    konstruiert. Damit knnte das Spiel zu einer Rechenmaschine werden. Und tatschlich wurde 1974 die so-

    genannte Berechnungsuniversalitt des Spiel Life bewiesen.

    Ein System heit berechnungsuniversell, wenn es formal gleichwertig zu einer Turingmaschine ist, was be-

    deuten wrde, dass jedes Programm, dass auf einer Turingmaschine mglich ist, auch in diesem System

    mglich ist.

    Aufgabe:

    a)ndern Sie das Spiel so ab, dass man die Gleiterkanone auf Buttondruck als Startkonfiguration erhlt.

    b) ndern Sie das Spiel so ab, dass man zwei Generationen "zurckblttern" kann.

    Seite 15

    Gleiter und Kanonen

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    1

    0

    0 1

    1

    1

    1

    0

    1

    1

    1

    0

    1

    Von der Kanone kommenderStrom aus Gleitern (Einsen )

    Dualzahl aus Gleitern undNichtgleitern ( 0 und 1 )

    Ausgabedaten aus Gleiternund Nichtgleitern ( 0 und 1)

    Position des Aufeinandertreffens

  • Das Spiel Life und das dazu gehrende Javaprogramm sind Grundlage fr weitere Automaten, die sich nur

    wenig von Life unterscheiden aber zu ganz anderen Ergebnissen fhren. Es reicht aus, die bergangsre-

    geln zu ndern.

    Ein weiteres Beispiel: Weichzeichnen als zellulrer Automat

    Stellen sie sich ein Gitter vor, in dem einige Zellen Farbig sind - etwa rot, und andere Zellen bleiben wei.

    Fr die nchste Generation werden die Rotfarbwerte aller Nachbarzellen addiert und durch 8 dividiert, was

    dem durchschnittlichen Farbwert aller Nachbarzellen entspricht. Das Ergebnis der Rechnung wird der neu-

    ne Rotfarbwert der Zelle.

    In den Gebieten des Automaten, in dem alle Zellen und ihre Nachbarzellen den gleichen Farbwert haben,

    wird nichts passieren. was aber geschieht am Rand ?

    Man muss das Javaprogramm fr Game of Life nur ein wenig verndern. An Stelle von countNachbarn tritt

    z.B.

    public int getNachbarfarbe(int zeile, int spalte)

    {

    farbwert=0;

    int anzahl=0;

    for(int z=zeile-1;z

  • Aufgabe: Realisieren Sie den Weichzeichnerautomat.

    Ein Diffusionsautomat

    Eine weitere einfache nderung der bergangsre-

    geln besteht darin, per Zufall eine Zelle mit einer ih-

    rer Nachbarzellen tauschen zu lassen. Es entsteht

    eine "Diffusion" der Zellen, die am Anfang gesetzt

    sind in den unbesetzten Raum hinein. Bleibt man

    bei dem groben Gitter aus dem Programm Life,

    dann sieht das nicht so aus, wie man es sich wnscht.

    Aufgabe:

    Realisieren sie den Automaten und lassen sie dabei

    die Zellgre auf 2 x 2 Punkte schrumpfen.

    Der Anfangszustand sollte dabei nicht mehr punkt-

    weise mit Mausklicks gesetzt werden, sondern als

    ein groes geflltes Rechteck erscheinen.

    Ein Krmelmonsterautomat

    (Spektrum der Wissenschaft, Sonderheft 10, Computerkurzweil IV , S.86 ff )

    David Griffeath von der Universitt in Wisconsin hat einen zellulren Automaten entworfen, der selbst

    wieder ein ganzes Universum an mglichen Variationen ffnet.

    Die Zellen im 2- dimensionalen Raster haben n Zustnde die von 0 bis n1 durchnummeriert sind.

    Hat nun eine Zelle den Zustand k aus der Menge {0,1,2,.....,n1} dann ndert sich dieser Zustand nach fol-

    gender bergangsregel:

    Seite 17

    Beispiele und Aufgaben

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Hat eine Zelle in der von Neumann-Nachbarschaft genau den Zustand k+1, dann nimmt auch die Zelle

    diesen Zustand ein. Obwohl immer alle 4 Nachbarn abgefragt werden, kann dennoch eine Zelle in einem

    Durchgang nur einmal ihren Zustand ndern auch wenn mehrere Nachbarzellen den Zustand k + 1 haben.

    Hat eine Zelle z.B. den Zustand 3 und ist von Nachbarn mit den Zustnden 2, 4, 5 und 1 umgeben, dann

    wird die Zelle zuerst den Zustand 4 einnehmen, erst in der nchsten Generation dann den Zustand 5 anneh-

    men und sich danach nicht mehr ndern, wenn sich nicht die Nachbarn ndern. Man knnte sagen, dass

    erst die Zelle 4 die Zelle im Zentrum "gefressen" hat und dann die Zelle mit dem Zustand 5 das noch ein-

    mal wiederholt.

    Es sollen noch einige Sonderregeln gelten: Sowohl die Zustandsmenge als auch das Automatengitter sind

    zyklisch. Hat eine Zelle den Zustand (n1), dann gilt als nchst grerer Zustand wieder 0. Das bedeutet

    nur, dass die bergangsregel lautet: Hat eine Zelle den Zustand k und eine Nachbarzelle genau den Zu-

    stand (k+1) mod n, dann nimmt die Zelle diesen Zustand an. Fr das Gitter gilt Gleiches.

    Hat ein Gitter x mal y Zellen, mit den Nummern 0....x 1 bzw. 0 .... y 1 dann wre die Zellnummer x

    wieder 0 und auch die Zellnummer y entspricht 0. Anschaulich ist also die Gitterebene zu einem Torus ge-

    worden.

    Zu Beginn soll das Gitter mit Zufallswerten gefllt sein und dann geht es los. Die kosmische Uhr tickt ein-

    mal und das Fressen und Gefressenwerden geht los. Es gibt keinen Rand und es gibt keinen grten und

    kleinsten Zustand. Was wird passieren ?

    Die am Anfang wie Krmel versteuten Farbflecken werden grer werden, Strukturen bilden und Nachbar-

    krmel aufressen ?

    Sie sollten es selbst probieren. Stellen sie die Zustnde als unterschiedliche Farben dar. Es sollten hinrei-

    chend viele Zustnde sein. Bedenken sie aber, wenn es z.B. 20 Zustnde gibt ( 0 bis 19 ) und eine Zelle hat

    etwa den Zustand k=9, dann knnen ihr nur Nachbarzellen mit dem Zustandswert 10 direkt gefhrlich wer-

    den. Wie gro ist bei 20 Zustnden und vier Nachbarn die Wahrscheinlichkeit, dass das auch vorkommt ?

    Wohl sehr klein. Gbe es aber nur 4 Zustnde, dann wre das Spiel wohl recht langweilig, weil schnell am

    Seite 18

    Beispiele und Aufgaben

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    4

    5

    3 8

    1

    4

    5

    4 8

    1

    4

    5

    5 8

    1

  • Ende. Whlen sie zwischen 8 und 16 Zustnden ( Farben ). Whlen sie weiterhin ein Spielfeld von 200 x

    200 Zellen Gre. Wenn sie die Generationen mit einem Buttonklick erzeugen wollen, knnte es sein,

    dass Vernderungen sehr langsam sichtbar werden. Um ihnen Schmerzen im Handgelenk zu ersparen soll-

    ten sie dann pro Buttonklick gleich 10 Generationen rechnen lassen. Sie haben jeden Freiraum zum Expe-

    rimentieren. Die Ergebnisse sind erstaunlich und werfen viele neue Fragen auf.

    Hier einige Momentaufnahmen aus den ersten 100 Generationen bei 8 Zustnden:

    Aufgabe: Schreiben sie ein "Krmelmonsterapplet"

    Simulation einer chemischen Reaktion (Belousov - Zhabotinski- Reaktion)

    1951 wurden oszillierende chemische Reaktionen entdeckt in denen Zhabotinski spter periodische Muster

    feststellen konnte. Diese Reaktionen lassen sich durch einen zellulren Automaten simulieren.

    Die Zellen im 2-dimensionalen Gitter haben n Zustnde, die mit 1 bis n durchnummeriert sind.

    Als bergangsregeln werden formuliert : Ist x der Zustand einer Zelle, dann gilt:

    x = 1 > x = a/k1 + b/ k2 im Folgezustand

    mit a = Anzahl der Nachbarn im Zustand x mit 1< x < n

    und b= Anzahl der Nachbarn im Zustand n

    und k1 und k2 frei whlbare Parameter

    x = n > x = 1

    1 < x < n > x = s/(a + b + 1 ) + g

    mit s = Summe der Zustnde der Zelle und ihrer Nachbarn

    Seite 19

    Beispiele und Aufgaben

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • daher: s/(a + b + 1) ein "Durchschnittszustand" von Zelle und

    ihrer Umgebung. Ist das Ergebnis > n , dann wird x = n

    Der Anfangszustand kann per Zufall gesetzt sein. Die Parameter sind so zu whlen, dass nicht ein Zustand

    erzeugt wird, der grer als n oder kleiner als 1 ist. Die Zustandswerte lassen sich wieder als Farben dar-

    stellen. Als mgliche Regel fr die Farbwahl ist es denkbar, fr x=1 die Farbe Schwarz zu whlen und fr

    x = n Wei. Die Zustnde 1 < x < n kann man direkt einer Farbe zuornden oder aber durch den Modulo-

    Operator in wenige Farben aufteilen lassen.

    In einem Javaapplet wird dann zuerst eine Anfganskonfiguration per Zufall gesetzt.

    Hier fr einen 200 x200 Felder groen Automat:

    for(int x =0;x

  • Man muss schon viele Generationen abwarten, bevor gute Ergebnisse zu sehen sind. Lassen sie daher nichtnur eine Generation pro Buttonklick rechnen , sondern gleich 500 Generationen.

    Dieser Automat ruft nach Verschnerungen. Schreiben sie das Applet und fgen sie folgende Eigenschaf-ten hinzu: - Man soll die Anzahl der Zustnde eingeben/whlen knnen ( mindestens 4 maximal 255 )- Man soll die Anzahl der Generationen pro Buttonklick angeben/whlen knnen- Man soll die Anzahl der Farben whlen knnen ( vielleicht auch eine "Farbtafel" )- Man soll die Werte fr k1, k2 und g angeben / whlen knnen.

    Seite 21

    Beispiele und Aufgaben

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    k1=k2=3 und g=28; Generation 1000; Farben 16 k1=k2=3 und g=28; Generation 6000; Farben 16

    k1=k2=3 und g=35; Generation 0; Farben 250 k1=k2=3 und g=35; Generation 2000; Farbe 250

  • Zum Abschluss noch ein Auszug aus einem Vortrag ber gekoppelte Automaten von Eckart Modrow(Mnchen, 2003)Ein Beispiel: Gekoppelte AutomatenDas berraschende Verhalten gekoppelter Systeme kann mit zellulren Automaten sehr gut demonstriert werden. Einerseits nutztman hier ziemlich einfache endliche Automaten, so dass die Benutzung der entsprechenden Beschreibungsmittel gebt werdenkann, andererseits sind die Resultate so vielfltig, dass die Arbeit trotz dieser Einfachheit alles andere als langweilig ist. Mankann leicht Systeme modellieren, deren Verhalten sich kaum aus dem Simulationsprogramm selbst erschlieen lsst. Die Anord-nung der Elementarautomaten in Gittern liefert ein exzellentes Beispiel fr den Umgang mit zweidimensionalen Feldern. Ver-teilt man die Funktionalitt auf geeignete Objektklassen, dann kann die Darstellung der Ergebnisse standardisiert werden, sodass Experimente an den Automaten ohne groen Programmieraufwand zu realisieren sind. Die Unterrichtseinheit ist je nachder Fortschrittlichkeit der eingesetzten Programmiertechniken im Unterricht der Sek. II anzusetzen. Der erforderliche Zeitbedarfwird wesentlich dadurch bestimmt, ob und wenn, welche Teile des Simulationsprogramms vorgegeben werden.

    Wir wollen einen zellulren Automaten bauen, der auf dem Gefangenendilemma aufbaut, aber etwas abgewandelt auf den Han-del im Internet. Das Verhalten der Handelspartner wird durch endliche Automaten simuliert, die auf einem in beiden Dimensio-nen abgeschlossenen Gitter sitzen und innerhalb einer Moore-Nachbarschaft Handel mit den Partnern treiben. Sie tauschen wie im Internet blich Waren gegen Geld. Dabei gibt es unterschiedliche Arten von Geschftpartnern:

    Naive kooperieren immer, liefern also den korrekten Gegenwert. Betrger kooperieren nie. Gewitzte kooperieren anfangs und reagieren danach so,wie der Partner zuletzt.

    Hier ist die Idee des Zustands und seiner Wechsel zentral. Des Weiteren spielt aber auch die Idee der Berechenbarkeit in ihremprognostischen Aspekt eine Rolle, da sich die Frage stellt, ob Voraussagen ber das Verhalten des Systems mglich sind, ohne esvollstndig zu realisieren, also wirklich laufen zu lassen. Die Implementierung ber Objekte liefert Beispiele fr strukturierteZerlegungen und einfache Programmierkonzepte.

    Wir knnen dieses Verhalten der Handelspartner durch Zustands-diagramme beschreiben. Entsprechende, zufllig erzeugte Auto-maten ordnen wir in einem Gitter an und frben sie entsprechendihrem Zustand (schwarz als Betrger, wei als Naiver und grauals Gewitzter): (K: kooperieren, B: betrgen)

    Der weitere Ablauf ist einfach: Zuerst handeln alle Partner einmal mit ihren Nachbarn aus der Moore-Nachbarschaft. Dabei isteiniges an Orientierung im Gitter (als Array) vonnten: es wechselt die Blickrichtung (Stellung in der Nachbarschaft), und anden Rndern muss man auch berlegen. Danach bewerten alle Partner den Erfolg ihrer Nachbarn. Als Opportunistenbernehmen sie den Zustand des erfolgreichsten Nachbarn oder behalten ihren Zustand bei, wenn sie selbst besser waren. ImBeispiel wird eine Automatenklasse in einer eigenen Delphi-Unit vereinbart und darauf aufbauend eine Welt (auch in einerUnit), die mit einem Gitter aus Automaten hantiert. Beides wird von der Programmoberflche des zellulren Automatengesteuert. Die Ablufe zwischen diesen Klassen sind zwar nicht ganz trivial, dafr aber nur einmal zu lsen. Danach knnen dieAutomaten in ihrer Unit bzw. die Welt in der anderen getrennt und ohne direkte Beeinflussung manipuliert werden. Man kannschn einfach experimentieren.

    Seite 22

    Beispiel: Gekoppelte Automaten

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    K,K v B,K

    K

    Der Naive

    K,B v B,B

    B

    Der Betrger

    B,K

    K,K

    KK,B

    B,B

    B

    Der "Gewitzte" Der Automat

  • In den ersten Generationen setzen sich meist die Bsen durch. Danach bilden sich Cluster aus Guten bzw. Gewitzten, unddann beginnt eine wilde Schlacht. Zwar werden die Guten hart von den Betrgern bedrngt, sie halten sich aber in Grup-pen.

    Die Gewitzten setzen sich gegenber den Betrgern meist durch und kooperieren mit den Guten. Am Ende siegen meistdie Gewitzten aber eben nicht immer.

    Entwicklung des Gitterautomaten

    Das Beispiel ist als Vorbereitung auf die Automatentheorie eher schlicht. Es bietet aber eine extreme Bandbreite von sowohlprogrammiertechnischen wie inhaltlichen Variationen und legt sozialwissenschaftliche bzw. naturwissenschaftliche Interpreta-tionen nahe. In dieser Beziehung wird der Modellcharakter besonders deutlich.

    Seite 23

    Beispiel: Gekoppelte Automaten

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

  • Bleiben wir zuerst bei den Variationen: Das Verhalten der Partner kann leicht durch vernderte Strategien ergnzt werden.Wettbewerbe zwischen verschiedenen Strategien werden mglich, wobei Statistiken gefhrt werden mssen, da der Einzelfallnicht viel ber das Gesamtverhalten aussagt. Schon hier ist systematisches Arbeiten gefragt. Die Welt kann verndert werdendurch vernderte Nachbarschaften (von-Neumann-Nachbarschaft, andere Reichweiten, ), andere Ablufe, ... Statt des zweidi-mensionalen Gitters kann die zeitliche Entwicklung linearer Automaten in der blichen Weise dargestellt werden, wobei chaoti-sche Vorgnge auftreten . Bei beidem knnen sowohl die Art der Automaten wie das Steuerprogramm vllig ignoriert werden.Die Gewichtungsfaktoren, die den Gewinn bei unterschiedlichen Vorgngen bestimmen, sind vernderbar. Auch hier sind dieanderen Gren irrelevant. Das Steuerprogramm kann verbessert werden, z. B. um whrend des Programmlaufs die unterschied-lichen Faktoren zu verndern. Dafr sind Oberflchenprogrammierer gefragt. Die Eigenschaften der Gitterautomaten solltenauch per Mausklick gesetzt werden knnen (einige Gewitzte in einer Welt aus Bsen, ), um das Verhalten bestimmterKonfigurationen gezielt untersuchen zu knnen.

    Es kann aber auch versucht werden, die beobachteten Vorgnge systematisch zu bewerten. Dazu sind globale Gren geeignet(Bruttosozialprodukt als Summe aller Handelspunkte). Der Einfluss der Parameter auf das Erreichen und die Art des ggf. er-reichten Endzustands kann abgeschtzt werden. Lineare Automaten lassen sich entsprechend klassifizieren . Es knnen Be-schrnkungen eingefhrt werden (Anzahl der handelbaren Gter, Geldmenge, ), und die Verteilung der Gren auf dieGruppen sowie deren zeitliche Entwicklung ist darstellbar.

    Die Beobachtung der manchmal berraschenden Ablufe liefert Ansatzpunkte zur Diskussion ethischer Fragen. Auch wenn dasBeispiel natrlich nicht direkt auf gesellschaftliche Systeme bertragbar ist, so haben wir doch ein fr die meisten neuartiges Ar-gument fr kooperatives, soziales Verhalten gefunden, das nicht aus transzendenten oder philosophischen berlegungen gewon-nen wird, sondern aus Effizienzbetrachtungen. Es steht darin in klarem Gegensatz zur Egozentrik des Primitivdarwinismus, deroft die ffentliche Diskussion in dieser Hinsicht beherrscht.

    Unsere zellulren Automaten sollten den Handel im Internet simulieren. Das erhaltene Modell ist aber auch ganz anders inter-pretierbar: Betrachten wir den Handel als Energieaustausch benachbarter Teilchen, dann kommen wir recht schnell zum Ising-Modell fr Spingitter . Die globalen Gren Temperatur und Magnetisierung liefern Bewertungsmastbe zur Beurteilungdes Systems. Relativ kleine nderungen fhren auf Strukturbildungsprozesse und/oder Modelle fr biologische und chemischeSysteme .

    Die Interpretation desselben Modells in unterschiedlichem Kontext, die (teilweise) Unvorhersagbarkeit der Ergebnisse, das dy-namische Verhalten und sein Bezug zu nichtlinearen Systemen liefert Erfahrungen mit Modellen, Simulationen, deren Mchtig-keit und deren Grenzen und das fast ohne Mathematik. Die Visualisierungsmglichkeiten der Computer machen so einerseitsder Schule vllig neue Gebiete zugnglich und verdeutlichen andererseits den von der Mathematik unterschiedenen Charakterder Informatik als Prognosesystem. Nebenbei ist das Thema eine unerschpfliche Quelle von Facharbeiten der Schlerinnenund Schler.

    Haben wir als Lerngruppe z. B. den ersten Leistungskurs der Stufe 12, dann sollte der mit der elementaren Algorithmik, primiti-ven Datentypen und einfacher Computergrafik halbwegs vertraut sein. Beginnen wir also eine Unterrichtseinheit ber Visuali-sierung groer Datenmengen, dann steht uns einerseits das weite Feld der Falschfarbendarstellungen von astronomischen, geo-grafischen oder medizinischen Daten mit ihren Interpretationsmglichkeiten offen (z. B. aus dem Projekt Hands-On Universe,Satellitenbildern oder NMR-Daten der Tomografie), andererseits bilden Gitterautomaten ein interessantes Arbeitsgebiet, das hierbetrachtet wird. Reprsentieren wir die Teilautomaten durch Objekte, dann knnen die entsprechenden Klassen aus grafischenKomponenten der GUI abgeleitet werden. Wir haben damit neben einem elementaren Zugang zu endlichen Automaten auch ei-nen einfachen Einstieg in OOP-Methoden gefunden. In der angegebenen Form erfordert die Nutzung der Transitionsgraphenkaum Zeit: Bei einer Diskussion unterschiedlicher Strategien, z. B. der des Langmtigen, wird diese Notationsform nebenbeieingefhrt und gefestigt. Erheblich mehr Zeit bentigt eine eingehende Analyse der Ablufe, die daraus folgende Verteilung derInformationen und ihre Reprsentation. Wird hier nicht sorgfltig gearbeitet, dann kann es spter erhebliche Probleme geben.Sind die Alternativen und deren Konsequenzen betrachtet und die wesentlichen Entscheidungen getroffen, dann werden die Teil-probleme angegangen:

    Eine Automatenklasse mit den erforderlichen Methoden wird vereinbart, implementiert und an einzelnen Objekten getestet. Ein Gitter solcher Automaten wird als Array definiert. Die Aktionen im Gitter werden realisiert.

    Seite 24

    Beispiel: Gekoppelte Automaten

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen

    Ziel des Unterrichts ist es, bei der Implementierung eines relativ einfachen Modells elementare informatische Techniken ken-nen zu lernen, sowie sich mit Simulationen zu beschftigen, deren Ergebnisse kaum prognostizierbar sind und die zu Diskus-sionen anregen. Unter diesen Voraussetzungen wird eine anfngliche eingehende Errterung der Problematik im Unterrichts-gesprch unbedingt erforderlich sein. Aus dieser sollten sich dann die zu lsenden Teilprobleme ergeben, und aus diesen fol-gen die erforderlichen Programmiertechniken. Die Vereinbarung einer Tochterklasse z. B. von GUI-Panels, die mit Automa-teneigenschaften ausgestattet wird, sollte ebenfalls gemeinsam durchgefhrt werden, wobei der Neuigkeitswert nicht bei denin Methoden auftretenden Algorithmen, sondern in den Zugriffstechniken liegt. So etwas lsst sich schnell abhandeln, dienotwendigen Erfahrungen werden bei der Anwendung gewonnen. Sind zweidimensionale Felder schon bekannt, dann knnendi L d d Z i l d A lb li i Di d b i li h F hl ll k d k i

  • die Lernenden das Zusammenspiel der Automaten selbst realisieren. Die dabei mglichen Fehler sollten erkannt und korri-giert werden. Als Hilfe wurde in der durchgefhrten Unterrichtseinheit nur das zufllige Erzeugen einer Anfangsbelegung desFeldes vorgegeben. Danach wurde das Modell wie beschrieben variiert und erprobt.

    Ziel des Unterrichts ist es, bei der Implementierung eines relativ einfachen Modells elementare informatische Techniken kennenzu lernen, sowie sich mit Simulationen zu beschftigen, deren Ergebnisse kaum prognostizierbar sind und die zu Diskussionenanregen. Unter diesen Voraussetzungen wird eine anfngliche eingehende Errterung der Problematik im Unterrichtsgesprchunbedingt erforderlich sein. Aus dieser sollten sich dann die zu lsenden Teilprobleme ergeben, und aus diesen folgen die erfor-derlichen Programmiertechniken. Die Vereinbarung einer Tochterklasse z. B. von GUI-Panels, die mit Automateneigenschaftenausgestattet wird, sollte ebenfalls gemeinsam durchgefhrt werden, wobei der Neuigkeitswert nicht bei den in Methoden auftre-tenden Algorithmen, sondern in den Zugriffstechniken liegt. So etwas lsst sich schnell abhandeln, die notwendigen Erfahrun-gen werden bei der Anwendung gewonnen. Sind zweidimensionale Felder schon bekannt, dann knnen die Lernenden das Zu-sammenspiel der Automaten selbst realisieren. Die dabei mglichen Fehler sollten erkannt und korrigiert werden. Als Hilfe wur-de in der durchgefhrten Unterrichtseinheit nur das zufllige Erzeugen einer Anfangsbelegung des Feldes vorgegeben. Danachwurde das Modell wie beschrieben variiert und erprobt.

    Seite 25

    Beispiel: Gekoppelte Automaten

    Hans-Georg Beckmann 2003Virtuelle Lehrerfortbildung imFach Informatik in Niedersachsen