LOGO und die L-System

 

Das Wort "L-System" ist eine Abkürzung von "Lindenmayer system". Aristid Lindenmayer (1925-1989), ungarischer Biologe, war das Erste zu bemerken, daß bestimmte natürliche Wachstumsvorgänge durch eine einfache Gesamtheit von Regeln modelliert werden konnten. So beim Wachstum eines lebenden Wesens teilen sich die Zellen des Organismus, indem sie sich reproduzieren abwechselnd in zwei, kleiner. Manchmal verschwindet die Ursprungszelle nicht sofort bei der folgenden Generation. Von dieser Beobachtung hat Lindenmayer daraus mehrere mögliche und unabhängige Axiome gezogen:   

Man wird Z die "Zelle-Mutter" und z eine "Zelle-Mädchen" nennen.
Der Pfeil - > will sagen "… ersetzt durch…"  
Axiom 1: Z-> z z Z (die zwei "Zellen-Mädchen" sind links von der "Zelle-Mutter")
Axiom 2: Z-> Z z z
                         (die zwei "Zellen-Mädchen" sind rechts von der "Zelle-Mutter")
Axiom 3: Z-> z Z z
                       (die zwei "Zellen-Mädchen" rahmen die "Zelle-Mutter“ ein)
 
Wenn die "Zelle-Mutter" bei der folgenden Generation verschwindet, gibt es nur ein mögliches Axiom:
Axiom 4: Z - > z z
Wird man nimmt Axiom 3, um von einer Generation zum folgenden überzugehen und haben:
Anfangsgeneration: Z
Generation 1: z Z z
Generation 2: z Z z z Z z z Z z 
                    (die zwei "Zellen-Mädchen" haben sich jede ihrerseits geteilt)
Generation 3: z Z z Z z Z z z Z z Z z Z z z Z z Z z Z z  
Generation 4:
 z Z z Z z Z z Z z Z z Z z Z z z Z z Z z Z z Z z Z z Z z Z z z Z z Z z Z z Z z Z z Z z Z z
.......................
 
Wie man es feststellt, verursacht dieses Axiom einen Organismus, der gigantisch werden kann. In der Natur verschwindet die "Zelle-Mutter" meistens bei den ersten Generationen, die ihrem Reproduktion folgen, was den Organismus in Konstruktion auf eine vernünftige Größe (Axiom 4) zurückbringt.
 Die Beobachtungen von Lindenmayer sind davon dort bis zum Jahre 1968 geblieben, Datum, das den Aufschwung der Minicomputer sah, was ihre Anpassung an das Gebiet der Geometrie und der Graphik durch die Informatik erlaubt hat. Man mußte einfach die "Zelle-Mutter“ ersetzen und die zwei "Zellen -Mädchen" (3 mögliche Konfigurationen), um eine Länge der Reise des Stiftes und einen Winkel zu definieren, um von einer Generation zum folgenden überzugehen. Dieser übergang von einer Generation zur anderen kann erfolgen, entweder indem er links dreht (-), oder indem er rechts dreht (+). Die Stelle der Zeichen ist rein willkürlich, und sie können ausgewechselt werden.
Wenn man die Reiselänge durch L (1 Einheit) und den Alphawinkel durch eine Zahl definierte, (ausgedrückt in Grad oder in Radianten je nach Fall), wird man haben zum Beispiel:
  ein Viereck durch die Linke:                      ein Viereck durch die Rechte:
   L=1                                                             L=1
   alpha=90°                                                   alpha=90°
   Axiom: L -> L - L                                        Axiom: L -> L +  L 
 
Für das Viereck durch die Linke wird man nach und nach haben: 
 
 Anfangsgeneration: L
 Generation 1: L - L
 Generation 2:  L - L - L - L
 Generation 3: L - L - L - L - L - L - L - L

Ein L-System ist also eine formelle Grammatik: eine Gesamtheit von Regeln und von Symbolen.

Er setzt sich aus vier Elementen zusammen:

1. Die Variablen: Symbole, die ersetzt werden können.
2. Die Konstanten: Symbole, die nicht ersetzt werden können (Winkel, Reisemodul).
3. Ein Reproduktionsaxiom rekursiv angewendet auf die Variablen.
4. Eine Anfangskonfiguration oder noch Startgegenstand. In Logo befindet sich der  Igel in (0,0).

Die Bedingungen sind jetzt erfüllt, um diese Axiome in Sprache LOGO zu übersetzen.

Wenn VORWÄRTS, RECHTS und LINKS Primitiven sind offensichtlich anzuwenden, muß man, bevor man der Igel verschieben läßt, die Liste der Bewegungen bauen, die sich aus der Umwandlung des Reproduktionsaxioms während des überganges ergibt halb-Generation. An der dritten Generation wird das Viereck durch die Linke für Liste der Bewegungen haben:

                                 [L - L - L - L - L - L - L - L]

Man muß also die Benutzung des Primitiven ERSTES, OHNEERSTES,
 SATZ, LÄNGE vorsehen. Man wird zunächst definieren:
 
1) Die ReiseProzeduren:

 

 

PR F
VORWÄRTS :Lange
ENDE
 
PR minus
LINKS :alpha
ENDE
 
PR plus
RECHTS :alpha
ENDE  
 
2) Ein Prozedur, um die Liste der Bewegungen einer Generation zu folgende übergehen zu lassen:
 
 
PR wandle_Liste :Liste1 :Liste2 :Zeichen :Niveau
PRÜFE :Niveau = 0
WENNWAHR RÜCKGABE :Liste1
WENNFALSCH [
SETZE "l1 :Liste1 SETZE "Ergebnis []
SETZE "c1 LÄNGE :Liste1 SETZE "c2 LÄNGE :Liste2
WIEDERHOLE :c1 [
      SETZE "s ERSTES :l1
      PRÜFE :s = :Zeichen
      WENNWAHR [
                    SETZE "l2 :Liste2
                    SETZE "Ergebnis SATZ :Ergebnis [/]
WIEDERHOLE :c2 [ SETZE "Ergebnis SATZ :Ergebnis  ERSTES :l2 SETZE "l2  OHNEERSTES  :l2 ]
                    SETZE "Ergebnis SATZ :Ergebnis [x]
                          ] 
      WENNFALSCH SETZE "Ergebnis SATZ :Ergebnis ERSTES :l1
              SETZE "l1 OHNEERSTES :l1
                           ]
                      RÜCKGABE wandle_Liste :Ergebnis :Liste2 :Zeichen :Niveau -1
              ]   
ENDE  

 

3) Die Variablen:
 
 
SETZE "alpha 90 // PI/2 //
SETZE "Lange 28
 
4) Die Anfangskonfiguration und das Reproduktionsaxiom:
 
SETZE "Axiom1 [ F - F - F - F ] SETZE "Axiombis [ F + F - F - F + F ]  
SETZE "Konfig [ F - F ]
 
5) Man legt die Umwandlung der Liste der Bewegungen nach der zweiten Generation fest:
 
SETZE "Axiom1 wandle_Liste :Axiom1 :Axiombis "F 3
 
 
6) Man kann jetzt sich die Igel entwickeln lassen:  
 
WIEDERHOLE LÄNGE :Konfig [
     SETZE "Befehl ERSTES :Axiom1
     SETZE "Axiom1  OHNEERSTES :Axiom1
     WENN :Befehl = "F F
     WENN :Befehl = "- minus
     WENN :Befehl = "+ plus
     WENN :Befehl = "/ SETZE "Lange GANZZAHL (:Lange / 2 )
     WENN :Befehl = "x SETZE "Lange :Lange * 2
                                         ]
 
Bestimmte wiederholende Berechnungen können sehr lang sein, denn die Konfiguration der Bewegungen verlängert sich an jeder Generation. Das hier illustrierte Beispiel ist ästhetisch nicht sehr überzeugend (der Igel zieht ein Viereck genausoviel Mal, das von Generationen (=2)), aber die Mehrzahl der Rechner wird diese Liste ziemlich schnell bauen. Es ist ihr Hauptvorteil.
 
Um die Prozedur LOGO Herunterzuladen, klicken Sie Hier .
 
Bemerkung: indem man die Linie des Axioms ersetzt:
 
SETZE "Konfig [L - L] SETZE "Axiom [L - L]
 
durch:
 
SETZE "Konfig [L - L] SETZE "Axiom [L - L +]
 
  man erhält eine zu beobachtende deutlich weniger monotone Kurve C.
 
                                                     
 

Kopf der Seite >>

 

Rückkehr >>