Deutscher Verband Forstlicher Forschungsanstalten, Sektion

Werbung
Deutscher Verband Forstlicher Forschungsanstalten, Sektion Forstliche Biometrie und Informatik: 12. Jahrestagung, Göttingen, 29.9.1.10.1999 / Herbstkolloquium der AG Ökologie der Internationalen Biometrischen Gesellschaft, Deutsche Region
Winfried Kurth
Spezifikation räumlicher Bestandes- und Populationsmodelle
mit sensitiven Grammatiken
Institut für Forstliche Biometrie und Informatik
Universität Göttingen
Büsgenweg 4, 37077 Göttingen
[email protected]
Zusammenfassung:
In der individuenbasierten Simulation von Pflanzen- und Tierpopulationen wurden bisher häufig die Wachstumsund Interaktionsregeln unmittelbar im Quellcode des Simulationsprogramms in einer prozeduralen oder
objektorientierten Allzwecksprache implementiert — mit dem Nachteil einer relativ geringen Flexibilität, wenn
die Regeln geändert werden sollen. Im Quellcode wird häufig noch das abstrakte, biologische Modell mit technischen Aspekten der Datenverwaltung verquickt.
Modelle, die auf "zellulären Automaten" beruhen, bieten zwar einen höheren Grad an Abstraktion und eine striktere Trennung von Software und Regelsystem (Transitionsfunktionen der Gitterzellen). Häufig ist aber ihre inhärente Auszeichnung bestimmter räumlicher Richtungen und Skalenbereiche unerwünscht.
Eine Alternative stellen erweiterte Lindenmayer-Systeme (Wachstumsgrammatiken) dar: Parallele string-rewriting-Systeme, die mit topologischen und geometrischen Semantiken ausgestattet werden und bisher vor allem
zur Modellierung der zeitlichen Entwicklung der Architektur pflanzlicher Verzweigungssysteme herangezogen
wurden. Durch die Hinzufügung sogenannter sensitiver Funktionen, die eine Rückkopplung zwischen erzeugter
geometrischer Struktur und Regelanwendungsprozeß herstellen, können Interaktionen zwischen Individuen
derselben oder unterschiedlicher Arten im Modell realisiert werden.
Erste, einfache Beispiele behandeln Pflanzen und tierische Pflanzenfresser als kreis- bzw. punktförmige Objekte.
Sensitive Funktionen fragen geometrische Lagebeziehungen ab (gegenseitige Überschattung von Pflanzen) und
steuern einen Transfer von Kohlenstoff von den Primärproduzenten auf die Phytophagen, sofern die
Lagerelationen dies erlauben. Einfach manipulierbare und austauschbare Regeln beschreiben die Mobilität der
Tiere (Zufallsbewegungen / gezielte Nahrungssuche) und das Vermehrungsverhalten. Das globale Langzeitverhalten solcher einfacher Modellsysteme zeigt bereits grobskalige räumliche Musterbildungsvorgänge, Fluktuationen der Populationsstärken und (bei bestimmten Parameterkombinationen) das Aussterben von Arten.
Die Software GROGRA liest die in Textdateien niedergelegten Regelsysteme ein, setzt sie in Zeitreihen von Grafiken der Bestandesstruktur um und stellt Analysewerkzeuge zur Verfügung. Damit ist bereits eine weitgehende
Trennung von Modellspezifikation und Software-Quellcode vollzogen. Lediglich bei tiefergehenden Änderungen
an den sensitiven Funktionen muß ein Teil der Simulationssoftware neu kompiliert werden. Es wird angestrebt,
auch diese Interaktionsmechanismen in einer stärker abstrahierenden Form zu beschreiben und voll in den
Formalismus der Grammatiken zu integrieren.
Einleitung
Individuenbasierte Modelle haben in der Ökologie in vielen Bereichen Verbreitung gefunden
(DeAngelis & Gross 1992). Insbesondere im Gebiet der Forstwirtschaft und Waldökologie
verspricht man sich von ihnen die Erfüllung folgender Anforderungen:
 Die Wiedergabe räumlicher Strukturen von Waldbeständen,
 eine lokale (und damit an den realen Verhältnissen orientierte) Informationsweitergabe
zwischen den Objekten im Modell,
 die Berücksichtigung von Strukturen, Stoffflüssen, Prozessen sowie verschiedener Organismen-Typen und ihrer vielfältigen Interaktions-Möglichkeiten in einem einheitlichen
Modell-Rahmen.
Zwei zusätzliche Anforderungen sollen hier noch postuliert werden, die bisher auch bei den
fortgeschritteneren Individuen-Modellen nicht notwendig erfüllt sind, die aber aus praktischen
und konzeptionellen Gründen wünschenswert erscheinen:
 sowohl stochastische, als auch deterministische Submodelle sollen einfügbar und ggf. miteinander austauschbar sein,
 es sollte eine weitestmögliche Trennung des (mathematisch-abstrakten) "Modell-Kerns"
von softwaretechnischen Hilfskonstrukten, die lediglich der Umsetzung des Modells und
dem Datenmanagement dienen, durchgehalten werden.
Diese beiden Zusatzanforderungen werden u.a. im Hinblick auf eine bessere Modularisierbarkeit und "genericness" (Acock & Reynolds 1997) von Modellen erhoben.
Die klassischen populationsdynamischen Modelle (für Beispiele siehe etwa Bartlett & Hiorns
1973) beruhen meist auf Differenzen- oder Differentialgleichungen und sind nicht individuenbasiert. Populationsgrößen gehen als diskrete oder kontinuierliche Variablen in die
Modellgleichungen ein. Der Differentialgleichungs-Formalismus bringt viele Vorteile: mathematische Eleganz und Kürze der Modellspezifikation, Analogien zur Physik und zu anderen
Fachdisziplinen, wo mitunter schon Lösungsverfahren für diverse Gleichungstypen etabliert
sind, und die oben geforderte Trennung von Modell-Kern (Gleichungssystem) und Lösungsalgorithmus. Von Nachteil ist jedoch, daß sich räumliche Strukturen im Rahmen dieser Modelle nur mit erheblichem Zusatzaufwand wiedergeben lassen: Man gelangt dann entweder auf
partielle Differentialgleichungen oder auf ergänzende ad hoc-Modellkonstruktionen (Hybridmodelle), wodurch die Lösbarkeit und / oder die Geschlossenheit des mathematischen
Formalismus Einschränkungen erfährt, d.h. man büßt von den Vorteilen des Ansatzes dann
wieder vieles ein (zur Diskussion siehe auch Breckling 1990).
Individuenbasierte Modelle wurden häufig als objektorientierte Simulationsprogramme realisiert: Die für Individuen (und auch für abiotische Komponenten) stehenden Objekte werden
während des Programmlaufs erzeugt, können untereinander Informationen austauschen und
werden wieder gelöscht. Es resultiert eine Systemdynamik, die nicht, wie beim Differentialgleichungsansatz, von vornherein in das Modell hineingesteckt wurde, sondern die sich als
globales Gesamtergebnis zahlreicher lokaler und individuengebundener Prozesse ergibt (siehe
Breckling 1996 für ein Beispiel aus der Pflanzenmodellierung). Von den oben gestellten
Anforderungen ist bei diesem Modelltyp die realitätsnahe, lokale Informationsweitergabe gut
verwirklicht. Räumliche Strukturen lassen sich darstellen, und ein einheitlicher Modellrahmen
für Submodelle unterschiedlichen Typs ist gewährleistet. Was in den bisherigen objektorientierten Modellen noch nicht erfüllt ist, ist die Trennung von Modell und Software.
Änderungen am Modell-Kern müssen, ganz ähnlich wie bei klassischen prozeduralen
Simulationsmodellen, durch Änderungen am Quellcode der Software, die in der Regel in einer
objektorientierten Allzweck-Programmiersprache (Simula, Smalltalk, C++, Java oder andere)
geschrieben ist, realisiert werden. Zwar ist durch besondere Eigenschaften des
objektorientierten Programmier-Paradigmas (Kapselung, Vererbung; siehe z.B. Lippman &
Lajoie 1998) ein besonders hoher Modularisierungsgrad der Software erreichbar, der für die
Modifikation und den Austausch von Submodellen natürlich günstig ist. Um die Einarbeitung
in Details der softwaretechnischen Umsetzung kommt man aber in der Regel nicht herum,
wenn man wesentliche Teile des Modells verändern will.
Ein Ansatz, bei dem die Trennung von Modell und Software dagegen realisiert ist, ist gegeben
durch die zellulären Automaten. Das Grundprinzip ist einfach: Der Raum wird in ein Gitter
aus prinzipiell gleichartigen Zellen zerlegt, von denen jede einen von endlich vielen
möglichen Zuständen annimmt. In jedem Zeitschritt wird der neue Zustand jeder Zelle mittels
einer Transitionsfunktion aus dem eigenen Zustand und den Zuständen der Nachbarzellen
berechnet. Die linke Seite von Abbildung 1 zeigt dieses Prinzip an einem eindimensionalen
zellulären Automaten, wo also der Modell-Raum nur aus einer linearen Aneinanderreihung
von Zellen besteht. Die Nachbarschaftsrelation zwischen den Zellen ist hier sofort klar. Im
zweidimensionalen Fall gibt es mehrere mögliche Nachbarschaftsdefinitionen (Abb. 1 rechts).
Abb. 1. Links: Anwendung der Transitionsfunktion eines eindimensionalen
zellulären Automaten zur Berechnung des Zustandes der Zelle z aus ihrem vorherigen Zustand und dem vorherigen Zustand der beiden Nachbarzellen. Rechts:
Zwei Varianten von Nachbarschaft bei zweidimensionalen zellulären Automaten.
Aus Kurth (1998).
Mathematisch läßt sich jede Zelle als ein endlicher Automat im Sinne der theoretischen Informatik auffassen, in dessen Transitionsfunktion die Zustände der Nachbarzellen als Argumente
eingehen — daher die Bezeichnung "zellulärer Automat". Dieser Modellansatz hat zahlreiche
Anwendungen gefunden, z.B. für chemische Systeme mit räumlicher Diffusion, für das
Kristallwachstum, die Bildung von Pigmentmustern, für Walddynamik und Veränderung von
Landschaftsmustern.
Abb. 2. Beispiele für zelluläre Automaten aus der Literatur. Links: Modell eines
Wirt-Parasit-Systems, die Schattierung der Zellen steht für die Stärke des Parasitenbefalls (aus Ermentrout & Edelstein-Keshet 1993). Rechts: Modell der Nährstoffdynamik in Bodenzellen bei Durchwurzelung durch flachwurzelnde Bäume
(aus Middelhoff & Breckling 1997). Die Schattierung der Zellen gibt die
Phosphatkonzentration wieder, die Linienstücke stehen für die Grobmorphologie
der Wurzelsysteme, die Kreise für die oberirdischen Kronenradien der Bäume.
Abbildung 2 zeigt exemplarisch zwei Anwendungen aus der Literatur: Links sieht man einen
Ausschnitt aus einer Simulation der räumlichen Dynamik eines Wirt-Parasit-Systems in einem
zweidimensionalen zellulären Automaten mit quadratischen Gitterzellen, bei der sich
"Wellenmuster" des Parasitenbefalls herausbilden, rechts eine Momentaufnahme aus einer
Simulation der Nährstoffdynamik im Boden bei Durchwurzelung durch die Schwarzerle (vgl.
Beitrag von U. Middelhoff in diesem Band), wo das Boden-Kompartiment in sechseckige
Zellen zerlegt ist. Aufgrund der Beteiligung weiterer, nicht zellengebundener Komponenten
wird man im letztgenannten Beispiel von einem Hybridmodell sprechen.
Ein Vorteil dieses Ansatzes ist, daß die Entwicklungsregeln (in Form der Transitionsfunktion)
von vornherein lokal wirken. Auch die Einfachheit des Konzepts ist ein Pluspunkt; schon mit
relativ geringem Aufwand an Modellierungsarbeit lassen sich in vielen Beispielen wesentliche
Grundzüge der räumlichen Systemdynamik erfassen und analysieren. Durch generische Software-Werkzeuge, die z.T. im Internet verfügbar sind und wo nur noch die Transitionsfunktion
an das jeweilige konkrete System angepaßt werden muß, wird der Aufwand weiter gesenkt.
Ein Nachteil ist allerdings, daß durch die vorgegebene, einheitliche Diskretisierung des
ganzen Raumes in gleichförmige Zellen bestimmte Richtungen sowie Längen- und Zeitskalen
von vornherein besonders ausgezeichnet sind (die Richtungen der Gitterachsen; die
Seitenlänge einer Gitterzelle als Minimal-Länge; die Bewegung um eine Zelle pro Zeitschritt
als Maximal-Geschwindigkeit). Beim Wachstum der Struktur von Bäumen und Waldbeständen haben wir zudem die Situation, daß die Topologie des Systems (Verzweigungen,
Kronenkontakte, Nachbarschaftsbeziehungen von Bäumen, Vegetationsmuster) sich erst im
Laufe des Wachstums entwickelt. Ein Modellansatz wie derjenige der zellulären Automaten,
bei dem die Topologie von vornherein durch das Gitter fest vorgegeben und starr ist, wird
diesem Umstand kaum gerecht.
Es liegt daher nahe, verwandte Ansätze heranzuziehen, bei denen die topologischen Beziehungen der Elemente selbst Gegenstand des Modells sind und sich beim Simulationslauf
mitverändern. Dies ist der Fall bei Regelsystemen aus der theoretischen Informatik, die schon
frühzeitig zur Modellierung der Verzweigungsarchitektur einzelner Pflanzen herangezogen
worden sind (Lindenmayer 1968): Sogenannte L-Systeme (Lindenmayer-Systeme), oder ihre
erweiterte Version, "Wachstumsgrammatiken" (Kurth 1994).
Sensitive Wachstumsgrammatiken
Sensitive Wachstumsgrammatiken sind Mengen von Ersetzungsregeln, die vom Standpunkt
der theoretischen Informatik unter das "Fallregel-Paradigma" einzuordnen sind, d.h. es wird in
einer gegebenen Situation geprüft, ob sich eine Regel anwenden läßt; im positiven Fall wird
diese angewandt, und das Ergebnis wird wieder auf Anwendbarkeit von Regeln überprüft, und
so fort. Im Gegensatz zur prozeduralen Programmierung mit ihren expliziten Konstrukten zur
Kontrollfluß-Festlegung (if-Bedingungen, Schleifen...) wird der Programm- oder Simulationsablauf also "von Fall zu Fall" entschieden, durch die Anwendbarkeit von Regeln aus einer
u.U. sehr umfangreichen Menge. Es ist bekannt, daß formale Systeme dieser Art dieselbe
potentielle "Berechnungs-Mächtigkeit" haben wie klassische, prozedurale Programmiersprachen (Chien & Jürgensen 1992). Alle Berechnungen, die sich in gängigen Programmiersprachen (oder mit dem abstrakten Modell der "Turing-Maschine") erledigen lassen, sind also
auch mit solchen Grammatiken möglich. Im Gegensatz zu den üblichen, universalen Programmiersprachen sind Wachstumsgrammatiken aber an botanische Anwendungen besser an-
gepaßt, was dazu führt, daß Modelle in kürzerer und übersichtlicherer Form spezifiziert
werden können. Regeln und Gleichungen, die ein Modell festlegen, können leichter ausgetauscht werden.
Im Gegensatz zu den zellulären Automaten werden im Formalismus der Wachstumsgrammatiken keine bestimmten Richtungen und Längenskalen ausgezeichnet. Lediglich die Zeitskala
ist, wie bei den zellulären Automaten, in Schritte fester Länge diskretisiert — eine Einschränkung, die aber durch die Erweiterung auf "zeitverstetigte L-Systeme" (Prusinkiewicz & Lindenmayer 1990, Kap. 6) ebenfalls beseitigt werden kann. Es sind lokale und globale Interaktionsregeln im selben Modell möglich — jedenfalls dann, wenn man die bei Kurth (1994)
oder unabhänging bei Prusinkiewicz et al. (1994) eingeführte "globale Sensitivität" (bzw.
"environmental sensitivity") zuläßt. Die Trennung von Modell (Regelsystem) und Software
läßt sich weitgehend durchhalten. (Eine Ausnahme bilden allerdings, wie wir noch sehen
werden, die "sensitiven Funktionen", welche für die globalen Interaktionen zuständig sind und
bisher eine "Insel der Prozeduralität" im Konzept der Wachstumsgrammatiken darstellen. Hier
sind noch zukünftige Arbeiten vonnöten, um das Fallregelparadigma konsequenter auch auf
diesen Bereich auszudehnen.)
Wie sieht nun so ein Regelsystem aus? Bei jedem Programmier-Paradigma (prozedural, funktional, logikbasiert, objektorientiert...) erfolgt die Realisierung in verschiedenen Programmiersprachen, die die Grundidee auf unterschiedliche Weise und mal mehr, mal weniger
konsequent umsetzen. So ist es auch bei der regelorientierten Programmierung botanischer
Modelle. Wir stützen uns hier auf diejenige Regelsprache, die von der Software GROGRA
umgesetzt werden kann (Kurth 1994, 1998); diese beruht auf den von Prusinkiewicz & Lindenmayer (1990) vorgestellten Symbolen und Konstrukten, systematisiert und erweitert diese
aber noch in manchen Punkten. (Siehe Chien & Jürgensen (1992) und Goel & Rozehnal
(1992) für alternative Ausprägungen desselben Paradigmas.)
Ein L-System (Lindenmayer-System; nach Aristid Lindenmayer, Botaniker, 1925-1989) in
seiner Grundform besteht aus einem Symbolvorrat oder Alphabet, einem Startwort und dem
eigentlichen Regelsystem, einer Menge von Ersetzungsregeln der Form "Symbol  Kette von
Symbolen". Beginnend mit dem Startwort, werden die Regeln auf die einzelnen Symbole, aus
denen die jeweils vorhandene Symbolkette besteht, angewandt, wobei alle ersetzbaren
Symbole parallel gegen ihre entsprechenden rechten Regelseiten ausgetauscht werden. (Nicht
ersetzbare Symbole, auf die also keine der Regeln angewandt werden kann, werden für den
nächsten Zeitschritt unverändert übernommen.) Dieser Vorgang wird dann iteriert, so daß sich
eine Zeichenkette über mehrere Zeitschritte ("Generationen") immer weiter verändert ("generative Regelanwendung").
Diese Veränderung von Zeichenketten (strings) ist zunächst ein rein abstrakter, syntaktischer
Umformungsprozeß, der zu seiner Nutzbarmachung für räumliche Modelle noch einer
weiteren Komponente bedarf: einer geometrischen Interpretation oder Semantik. Hierfür wird
seit Prusinkiewicz et al. (1988) meist die turtle geometry ("Schildkrötengeometrie") verwendet, ein Code, der bestimmte Buchstaben und Buchstabenkombinationen als "Befehle" für
ein dreidimensionales Zeichen- oder Konstruktionsgerät (die "Turtle") festlegt. Durch eine
Abfolge von Konstruktions-, Rotations- und Zustandsänderungsbefehlen kann eine Kette geometrischer Objekte erzeugt werden; durch eine zusätzliche, durch eckige Klammern gesteuerte
Verwendung eines Kellerspeichers (stack) für Turtle-Zustände können auch Verzweigungen
angelegt werden. Genauere Beschreibungen der einzelnen Turtle-Befehle und der L-SystemSyntax und Semantik findet man bei Kurth (1994, 1998).
Ein einfaches Beispiel verdeutlicht das Prinzip der Umformung nach Regeln: Das Alphabet
des Regelsystems enthalte zwei Zeichen a und b, die morphologisch für verschiedene
Knospentypen oder -zustände stehen, und die "Standardzeichen" (Turtle-Kommandos) F,
RU45, [ und ]. Das Regelsystem selber bestehe nur aus den zwei Regeln
a  F [ RU45 b ] a,
bFb.
Durch die sukzessive Anwendung dieses Regelsystems auf das Startwort a erhält man die
Abfolge von Zeichenketten, deren erste drei Glieder in Abbildung 3 oben dargestellt sind.
Dies ist "reine Syntax", reiner Formalismus. Die geometrische Umsetzung, entsprechend der
Turtle-Geometrie, erfolgt für jeden Zeitschritt einzeln (nach unten gehende Pfeile in Abb. 3)
und liefert geometrische (in diesem Beispiel zweidimensionale) Strukturen. F erzeugt ein
zylindrisches Segment. Symbole wie a und b, die nicht dem Turtle-Befehlsvorrat angehören,
werden normalerweise nicht interpretiert; in diesem Beispiel wurden zum besseren Verständnis ovale Knospen-Schemata für diese Symbole eingesetzt.
Abb. 3. Strukturerzeugung aus der Wachstumsgrammatik
a  F [ RU45 b ] a, b  F b . (Aus Kurth 1998.)
Dieses Beispiel bleibt im Bereich der "klassischen" L-Systeme. Wichtige Erweiterungen, die
den Einsatzbereich solcher Regelsysteme deutlich vergrößert haben und zum zusammenfassenden Konzept der "Wachstumsgrammatiken" führen, sind:
 die Verwendung von Interpretationsregeln (interpretive rules),
 globale Sensitivität bei der Regelanwendung,
 die Verfügbarmachung lokaler Variablen und der Zugriff auf sie mittels arithmetisch-struktureller Operatoren,
 die Verwendung eines expand-Operators zur beschleunigten Abarbeitung von
Subsystemen,
 die Möglichkeit des object instancing (einmalige Definition von Substrukturen, die mehrfach und in verschiedenen Skalierungen innerhalb ein- und desselben Modells verwendet
werden können).
Es würde hier zu weit führen, alle diese Erweiterungen im Detail und an Beispielen zu erläutern; es wird dazu auf Kurth (1998) verwiesen. Lediglich die ersten drei Punkte sollen etwas
näher erörtert werden, da sie für das anschließende populationsdynamische Beispiel wichtig
sind.
Interpretationsregeln sind gesonderte Regeln, die nicht in den generativen Prozeß der
Zeichenketten-Umformung zur Entwicklung neuer Strukturen (obere Zeile in Abb. 3)
eingreifen, sondern deren (potentielle) Anwendung der geometrischen Interpretation unmittelbar vorgeschaltet wird. Durch die Anwendung einer solchen Regel wird also ein Zeichen
"interpretiert", aber nicht für alle Zeiten umgeformt und weitertransformiert. In Abb. 3 wären
die senkrechten Pfeile dementsprechend noch einmal zu unterteilen: Anwendung von Interpretationsregeln, anschließend geometrische Interpretation durch die Turtle. Beispielsweise
könnten die Knospen-Ovale durch entsprechende, auf a und b anwendbare Interpretationsregeln beschrieben worden sein. In den Beispiel-Grammatiken werden wir diesen Regeltyp
dadurch von den generativen Regeln unterscheiden, daß wir als Transformationssymbol einen
Doppelpfeil () anstelle des einfachen Pfeils () verwenden. (GROGRA verwendet statt der
Pfeile die Symbole ## für Interpretationsregeln und # für generative Regeln.)
Sensitive Grammatiken beinhalten die Möglichkeit, bei der Regelanwendung Informationen
aus der Umgebung oder aus der bereits erzeugten dreidimensionalen Struktur "sensitiv"
aufzunehmen. Je nachdem, ob bestimmte Bedingungen erfüllt sind, wird die Regel angewandt
oder nicht. Dieser Informationsfluß wird in Abbildung 4 durch die gestrichelten Pfeile von
den geometrischen Strukturen S1, S2... zu den Transformationspfeilen zwischen den Zeichenketten 1, 2, ... angedeutet. Die Umgebungsinformation kann durch bestimmte Variablentypen (z.B. für Positionsinformationen) oder durch sensitive Funktionen bereitgestellt werden.
Abb. 4. Schema der Strukturerzeugung durch eine sensitive Wachstumsgrammatik. Durchgezogene Pfeile: Regelanwendungen und Interpretationen. Gestrichelte
Pfeile: Einfluß der erzeugten Strukturen auf die Regelanwendung (Sensitivität).
Aus Kurth (1998).
Beispielsweise zeigt Abbildung 5 das Austriebsverhalten eines simulierten Laubbaum-Jahrestriebes, bei dem eine sensitive Funktion die Neigung des Triebes im Verhältnis zur Vertikalen
bestimmt hat. In Abhängigkeit von dieser Information werden die Tochtersprossen ausgerichtet. Andere Sensitivitäten können beispielsweise die verfügbare Lichtmenge abschätzen
oder helfen, durch räumliche Nachbarschaftstests Kollisionen zwischen Objekten zu
vermeiden oder Mindestabstände einzuhalten. Beispiele werden bei Kurth (1998) und bei
Kurth & Sloboda (1999) beschrieben.
Abb. 5: Nachbildung eines winkelsensitiven Austriebsverhaltens eines
pflanzlichen Sprosses mittels einer Wachstumsgrammatik mit 4 Regeln, die auf
eine sensitive Funktion zurückgreift (komplette Dokumentation der Grammatik in
Kurth (1998)). Von links nach rechts variiert der über das Austriebsverhalten
entscheidende Winkel des Muttertriebes zur Vertikalen von 0° über 30° bis 90°.
Es sind auch die Knospen sichtbar, die die Positionen (noch nicht die Richtungen)
der nächstjährigen Tochtertriebe andeuten. Simulation mit GROGRA.
Die Verwendung von lokalen Variablen innerhalb eines Regelsystems eröffnet eine Brücke
zum objektorientierten Paradigma. Eine lokale Variable mit dem Namen x kann mit dem Befehl K(x) an jeder Stelle in einer bereits erzeugten Struktur angelegt werden und kann eine
Information über den lokal gültigen Zustand an dieser Stelle aufnehmen, z.B. einen Kohlenstoffgehalt, ein Wachstumspotential oder eine Bilanzgröße für das von dem jeweiligen
Element ausgehende System. Natürlich können auch mehrere solche Variablen (mit verschiedenen Bezeichnern) dasselbe Element charakterisieren (Abbildung 6).
Abb. 6. Drei sehr einfache Bäume, von denen jeder seinen eigenen Satz von drei
lokalen Variablen mit den Namen x, nt und nl hat (aus Kurth 1998).
Auf die Inhalte dieser Variablen kann u.a. mit Hilfe von arithmetisch-strukturellen Operatoren während der Wachstumssimulation zugegriffen werden (Summationen über bestimmte
Bereiche einer räumlichen Struktur; Vergleichsoperationen). Eine Zuweisung eines neuen
Wertes erfolgt während der Laufzeit der Simulation mittels des Assignment-Kommandos A(x,
arithmetischer Ausdruck), wobei diejenige Instanz der Variablen x referenziert wird, die gerade "in der Nähe" der aktuell bearbeiteten Position in der virtuellen Struktur vorhanden ist (genaueres bei Kurth 1998). Eine Variante hiervon bietet der Operator KL(x), der eine neue lokale Variable mit Namen x erzeugt und ihr sofort den aktuellen "Schrittweite"-Wert (Länge) der
Turtle zuweist.
Die Regelsysteme für botanische, forstliche oder populationsdynamische Anwendungen erzeugen im allgemeinen so viele und auf scheinbar komplizierte Art verbundene Grundelemente, daß es nicht möglich ist, sie "per Hand" abzuarbeiten. Daher wurden verschiedene
Software-Werkzeuge entwickelt, die diese Aufgabe übernehmen. Aus der Arbeitsgruppe von
Przemyslaw Prusinkiewicz aus Kanada stammt die Software vlab (virtual laboratory)* mit
einer Anzahl von Möglichkeiten, L-Systeme zu verarbeiten. Vom Autor wurde an der
Forstlichen Fakultät der Universität Göttingen das System GROGRA entwickelt (Growth
Grammar Interpreter; Kurth 1994)**. GROGRA enthält neben der Möglichkeit, Regelsysteme
zu lesen und in Zeitreihen von virtuellen dreidimensionalen Strukturen umzusetzen, auch
Analysewerkzeuge zur quantitativen Untersuchung dieser virtuellen Strukturen. Damit ist es
möglich, regelbasiert erzeugte und reale Strukturen mit denselben Methoden zu analysieren
und zu vergleichen (Abbildung 7).
StrukturDaten
statistische
Datenanalyse
(StandardSoftware)
RegelsystemAufstellung
theoretische
Konzepte
des Biologen
Regeldatei
GROGRA
Zeitreihe von
virtuellen Strukturen
Abb. 7. Zur doppelten Funktion der Software GROGRA: Erzeugung virtueller
Strukturen aus Wachstumsgrammatiken (Mitte) und Analyse (links), dadurch
werden auch Vergleiche möglich mit realen, in GROGRA rekonstruierten Strukturen (rechter Pfad). Für die Aufstellung von Regelsystemen für bestimmte Arten
oder Biozönosen ist bislang jeweils ein Einbringen theoretischer Konzepte und
von Vorstrukturierungen erforderlich, so daß dieser Teil bisher noch nicht
vollständig automatisiert werden kann (oben rechts).
*
siehe http://www.cpsc.ucalgary.ca/projects/bmv/index.html. Eine Beispiel-Anwendung von vlab im Bereich der
Agrarpflanzen-Genetik stellt G. Buck-Sorlin vor unter http://mansfeld.ipk-gatersleben.de/bucksorlin.
**
Die Software ist auf Anfrage vom Autor erhältlich, Dokumentationen sind im Internet verfügbar unter
http://www.uni-forst.gwdg.de/uni-forst/fbi/public.html.
GROGRA existiert als lauffähiges Programm auf verschiedenen Plattformen (SGI,
XWindows unter Unix auf DEC, Sun, IBM Workstations, Windows95-PC, Demo-Version
unter MS-DOS). Auf bestimmten Plattformen sind ergänzende Software-Werkzeuge verfügbar, z.B. ein Editor und Parser für die Erstellung und Überprüfung der Regelsysteme (GROPARS), ein Modul für die fraktale Dimensionsbestimmung (GROFANT, Grogra fractal analysis tool) und eine Darstellungssoftware für Baumschaftformen (GROBOL, Growth of boles
display).
Es soll nun schrittweise eine Beispiel-Wachstumsgrammatik entwickelt werden, um die Möglichkeiten der Modellierung von populationsdynamischen Modellen vorzustellen. Die einzelnen Symbole und Turtle-Kommandos, die hierfür gebraucht werden, werden gleich an Ort
und Stelle erläutert. Systematischere Darstellungen der Regelsystem-Syntax und –Semantik
findet man bei Kurth (1994, 1998). Das verwendete Submodell für die Pflanzen wurde in
einer ähnlichen Variante bereits bei Kurth (1998, S. 253 f.) kurz vorgestellt. Es handelt sich
— der Einfachheit halber — um ein zweidimensionales Modell, d.h. die Höhe wird vernachlässigt, es wird nur die Ausbreitung der Organismen in einer Ebene modelliert. Dies ist aber
keinesfalls eine prinzipielle Einschränkung.
Ein einfaches Pflanzenmodell
Die Pflanzen (Primärproduzenten) werden in unserem Beispielmodell durch das Symbol b
repräsentiert. Zu b gehören zwei Parameter: Das Alter t und eine Größe r, die den Energieoder Kohlenstoffgehalt der Pflanze quantifiziert und zugleich zu ihrem (Kronen-) Radius proportional sein soll. Wir haben somit für jede Pflanze in unserem Modell ein parametrisiertes
Symbol
b(t, r).
Graphisch wird diese Pflanze durch einen Kreis mit Radius r dargestellt.
Wie sehen nun die Regeln aus, die das Verhalten der Pflanzen bestimmen? Zunächst einmal
gibt es verschiedene Regeln für die Mortalität. In einem weiterentwickelten Modell wäre es
möglich, diese alle zusammenzufassen zu einer einzigen Regel, die auf einem Bilanzkriterium
(Kohlenstoffmangel) beruht. Da unser Modell aber so einfach gebaut ist, daß die Photosynthese der Pflanzen mit ihrer Abhängigkeit von Licht und Konkurrenzeinflüssen darin nicht als
Prozeß auftaucht, sind wir auf mehrere, unabhängige Regeln für das Absterben angewiesen:
(t > bmaxage) b(t, r)  ,
Diese Regel tritt in Kraft, wenn die Pflanze ein vorgegebenes Maximalalter (bmaxage)
erreicht hat. Auf der rechten Regelseite steht "nichts", das heißt, die Pflanze verschwindet,
ohne Spuren zu hinterlassen (eine Mineralisation und ein Nährstoffkreislauf werden in diesem
einfachen Modell ebenfalls nicht berücksichtigt).
(r < 0) b(t, r)  ,
Dies bedeutet: Die Pflanze stirbt an Kohlenstoffmangel. r ist ja der C-Gehalt; als unterer
Schwellenwert wird hier vereinfachend 0 angenommen.
(sh > 0) b(t, r)  ,
Diese Regel hat zur Folge, daß eine Pflanze an Konkurrenzwirkung (Überschattung) eingehen
kann. Die Variable sh ist als sensitive Funktion definiert (Funktion Nr. 4, siehe Kurth 1998, S.
100 für Details) und liefert einen Wert > 0 zurück, wenn sich die Pflanze innerhalb des
Kronenradius einer größeren Pflanze befindet.
b(t, r)  b(t+1, rad+bgrow)
Wenn keine der Absterbe-Regeln greift, wird die Pflanze gemäß dieser Regel um eine Zeiteinheit älter, und ihr Radius wird aktualisiert. Der Wachstumsbetrag bgrow ist einfach eine
Konstante. Ein Detail ist hier noch wichtig: Auf der rechten Regelseite steht nicht einfach der
in der linken Regelseite verwendete Radius r, sondern eine neue Variable rad, die der Pflanze
als lokale Variable zugeordnet ist und ebenfalls den Kohlenstoff-Gehalt repräsentiert. Der
Grund dafür ist, daß auf diese lokale Variable extern (von Phytophagen) zugegriffen werden
kann. Bei der Aktualisierung des Radius werden somit eventuelle Verluste durch Fraß bereits
berücksichtigt (die Berechnung dieser Verluste erfolgt allerdings in einer anderen Regel, siehe
unten). Die Initialisierung von rad mit dem Radiuswert r erfolgt in einer Interpretationsregel,
die zugleich die graphische Darstellung der Pflanze spezifiziert (als Kreis; hier nicht im Detail
ausgeführt):
b(t, r)  L(r) [ ... graphische Darstellung (Kreis) ... ] ... F KL(rad),
darin ist L ein Turtle-Kommando, das die Schrittweite bzw. Länge des nächsten, zu konstruierenden Elements festlegt. F bewirkt die Erzeugung eines "Referenz-Stammes" der Pflanze (unabhängig von ihrer kreisförmigen Darstellung und in der Draufsicht nicht sichtbar), an
den mit dem KL-Kommando eine neu instantiierte lokale Variable mit dem Bezeichner rad
angefügt wird. Als Anfangswert erhält diese den Wert der Schrittweite, also r.
Schließlich gibt es eine Reproduktionsregel, die aktiviert wird, wenn eine von zwei festen Altersstufen erreicht ist ("Mastjahre") und zugleich r einen vorgegebenen Schwellenwert überschritten hat. Diese Bedingung geht der Regel in runden Klammern voran, und in ihr werden
die in der Programmiersprache C üblichen logischen Operatoren || (oder) und && (und)
verwendet (vgl. Kernighan & Ritchie 1990):
(((t=bgenage1) || (t = bgenage2)) && (r >= bminrad))
b(t, r)  &(bgenfac*rad)  [ RH(ro) + f(dist) – b(0,0) ]  b(t+1, rad),
Diese Regel enthält einen Wiederholungsoperator (&), der angibt, wieviele Samen ausgestreut
werden. Die Anzahl (in Klammern hinter &) ist proportional zum Kronenradius. Der Wiederholungsfaktor bezieht sich auf die gesamte Zeichenkette, die in spitze Klammern   eingeschlossen ist. Jeder dieser Samen wird in eine zufällige Richtung (ro: Zufallsvariable
zwischen 0 und 360°) und um eine ebenfalls zufällig bestimmte Distanz (dist)
fortgeschleudert. (Die Symbole + und – stellen sicher, daß die Ausbreitung in der horizontalen
Ebene erfolgt.) Der Pflanzensame selbst wird durch b(0,0) symbolisiert — eine Pflanze mit
Radius 0 und noch ohne erworbenen Energievorrat. Die Pflanze selbst (b ganz rechts in der
Regel) altert bei diesem Vorgang (erster Parameter t+1), stellt aber ihr Wachstum
vorübergehend ein (Fortfall des Inkrements bgrow im zweiten Parameter, vgl. die Wachstumsregel oben). Die Pflanzen bleiben natürlich ortsfest. Das Bewegungssymbol f (für
"forward") ist nur den Samen vorangestellt, und durch die eckigen Klammern [ ] bleibt seine
Wirkung auf den mittleren, wiederholten Teil der rechten Regelseite beschränkt.
Bereits mit diesem einfachen Modell (5 generative Regeln, eine Interpretationsregel; die
Variablen- und Konstantendeklarationen haben wir vorerst fortgelassen), das nur Pflanzen
simuliert, erhält man reichhaltige räumliche Muster. Es bilden sich mit der Zeit Klumpungen
kleinerer Pflanzen sowie größere Bestandeslücken, die später wiederbesiedelt werden. Abbildung 8 zeigt eine Momentaufnahme: Die Draufsicht auf den Bestand, wie er sich nach 54
Zeitschritten darstellt. Begonnen worden war diese Simulation im ersten Zeitschritt mit einer
einzigen Pflanze in der Mitte.
Abb. 8. Pflanzenbestand nach 54 Zeitschritten, wie er sich aus der oben angegebenen Wachstumsgrammatik ergibt. Die Interaktion der Pflanzen erfolgt über die
Beschattungsregel. Die Punkte ohne umgebenden Kreis stellen Pflanzensamen
dar, die im nächsten Zeitschritt austreiben werden. Simulation mit GROGRA.
Ein einfaches Tiermodell
Die Tiere werden in der Wachstumsgrammatik durch das Symbol a ("animal") repräsentiert.
Wie bei den Pflanzen beschränken wir uns auf eine einzige Art und somit auch auf eine
einzige trophische Ebene (Phytophagen). Wieder gibt es zwei Parameter: Alter t und Energieoder Kohlenstoffgehalt e. Die Darstellung der Tiere erfolgt duch einen kleinen Kreis. Um das
Reproduktionsverhalten so einfach wie möglich zu halten, nehmen wir an, daß sich die Tiere
durch Teilung vermehren. Wir könnten uns darunter also Mikroorganismen vorstellen. Es
genügt diesmal eine einzige Sterblichkeitsregel:
(e  0) a(t, e)  ,
(auch hier ist die rechte Seite leer, die organische Materie wird also nicht in das System
zurückgeführt). Im Unterschied zu den Pflanzen haben wir es bei den Tieren mit mobilen
Organismen zu tun, in jedem Zeitschritt bewegen sie sich in eine zufällige Richtung. Wenn
ein Tier nicht in Kontakt mit einer Pflanze ist, befindet es sich auf Nahrungssuche und macht
weitere Bewegungen (Distanz long). Dabei ist ein Energieverlust (respi) zu verkraften:
a(t, e)  RH(ro) + f(long) – a(t+1, e–respi),
Dieser Regel wird eine Regel vorangestellt, die dann angewandt wird, wenn das Tier in Kontakt mit einer Pflanze gekommen ist. Der Kontakt mit der Pflanze wird wieder durch eine
sensitive Funktion (f) festgestellt:
(f > 0) a(t, e)  RH(ro) + f(short) – a(t+1, e+eat–respi) Ar+(rad, –eat),
hier ist die Bewegungsdistanz (short) kürzer als bei der Nahrungssuche. Der Energievorrat
wird zwar auch um den Betrag respi vermindert, es erfolgt aber zusätzlich eine Aufstockung
durch den von der Pflanze aufgenommenen Betrag eat. Diese Kohlenstoff-Menge wird der
Wirtspflanze zugleich abgezogen durch die Assignment-Anweisung Ar+(rad, –eat), die auf
die der Pflanze zugeordnete lokale Variable mit dem Namen rad zugreift. An dieser Stelle
erfolgt also die externe Veränderung des Radius (bzw. des Energiegehalts) der Pflanze. — Die
Vermehrung der Tiere erfolgt dann, wenn ihr Energiegehalt einen Schwellenwert
überschritten hat (sie also genug "gewachsen" sind):
(e > thr) a(t, e)  [ RH(ro) + f(short) – a(0, e/2 – respi) ]
RH(ro) + f(short) – a(0, e/2 – respi),
beide "Nachkommen" bewegen sich in zufällige Richtungen davon und erhalten den halben
Energiebetrag des Eltern-Tieres, abzüglich eines Respirationsverlustes. Wie für die Pflanzen,
gibt es auch für die Tiere eine Interpretationsregel. Jedem Tier entspricht eine durch den
Turtle-Befehl F(0) erzeugte elementare Einheit, die die Länge 0 hat und die durch Pl und Dl
spezifizierten Farb- und Durchmesser-Werte zugewiesen bekommt:
a(t, e)  Pl(if(t<0, 5, 2)) Dl(0.2*e) F(0),
wobei die Farbe nach einer Fallunterscheidung (if-Konstruktion) vergeben wird. Man sieht,
daß sich hier in die Regelsprache auch prozedurale Programmierkonzepte integrieren lassen!
— Die Farbgebung dient lediglich der Unterscheidung aktiver Tiere von "schlafenden" Tieren
(oder "Sporen"), die aus einem rein technischen Grund eingeführt wurden, nämlich um am
Anfang nicht gleich mit aktiven Pflanzenfressern starten zu müssen. Die folgende Zusatzregel,
die für das Systemverhalten eigentlich entbehrlich ist, legt fest, daß Tiere, die am Anfang der
Simulation mit einem negativen Altersparameter versehen wurden, ohne Energieverbrauch
"weiterschlafen", bis ihre "innere Uhr" auf 0 vorgerückt ist:
(t<0) a(t, e)  a(t+1, e),
wobei diese Regel nur am Anfang eines Simulationslaufes Verwendung finden wird. Man
kann natürlich mit mehreren Pflanzen und Tieren in unterschiedlichen Anordnungen beginnen; wir geben hier eine Startregel an mit nur je einem Exemplar:
*  [ RH(ro) + f(random) – a(–15, 4) ] P3 b(0,0),
womit die für die Entwicklung des Systems wesentlichen Regeln vollständig aufgezählt sind.
Wir haben insgesamt 16 Parameter in dem Modell verwendet, die in Deklarationen spezifiziert und dem Regelsystem vorangestellt werden. Die gesamte Wachstumsgrammatik (mit Deklarationen) wird in der Form, wie die GROGRA-Software sie verarbeiten kann, noch einmal
in Tabelle 1 aufgelistet.
\const
\const
\const
\const
\const
bgrow 0.9,
respi 0.26,
eat 1.2,
thr 8,
short 0.4,
/*
/*
/*
/*
/*
growth of plants */
respiration of animals */
consumption plant -> animal */
threshold for animal reprod */
movement of eating animal */
\const long 20,
/* movement of searching animal */
\const bmaxage 30,
/* max age of plant */
\const bgenage1 10, /* age of first plant reprod */
\const bgenage2 18, /* age of second plant reprod */
\const bminrad 8,
/* min radius of plant required for reprod */
\const bgenfac 0.28, /* coefficient plant radius -> nb of offspring */
\const ang 45,
/* angle of light sensitivity of plants */
\var ran uniform 5 15,
/* start movement of animal */
\var ro uniform 0 360,
/* random rotation */
\var dist uniform 15 50, /* distance of plant offspring */
\var i index,
/* running index in circle approximation */
\var rad local 0,
/* energy pool of plant, corresp. to radius */
\var len length,
/* equivalent to radius of plant */
\angle 90,
\var f function 21 1,
/* sensitive function checking adjacent plant */
\var sh function 4 1,
/* sensitive function calculating shadow */
\randomseed 1,
\axiom circ 1,
/* construction of circle representing plant */
\axiom * 1-150,
/* number of time steps for simulation */
* # [ RH(ro) + f(ran) – a(–15, 4) ] P3 b(0,0),
/* 1 animal, 1 plant
(t < 0) a(t,e) # a(t+1, e),
(e <= 0) a(t,e) # , /* animal starving */
(e > thr) a(t,e) # [ RH(ro) + f(short) – a(0, e/2 – respi) ] /* animal
RH(ro) + f(short) – a(0, e/2 – respi), /* reprod
(f(3) > 0) a(t, e) # RH(ro) + f(short) – a(t+1, e + eat – respi)
Ar+(rad, –eat),
/* animal eating from plant
Ar+(x, y) # ,
a(t,e) # RH(ro) + f(long) – a(t+1, e - respi),
/* animal, searching
(t > bmaxage) b(t,r) # , /* plant, dying from old age */
(r < 0)
b(t,r) # , /* plant, dying from loss of biomass */
(sh(ang) > 0) b(t,r) # , /* plant, dying from lack of light */
(((t=bgenage1) || (t=bgenage2)) && (r >= bminrad))
b(t,r) # &(bgenfac*rad) < [ RH(ro) + f(dist) - b(0,0) ] >
b(t+1, rad),
/* reprod of plants */
b(t,r) # b(t+1, rad + bgrow),
/* plant, growing */
*/
*/
*/
*/
*/
/* interpretive rules: */
a(t, e) ## Pl(if(t<0,5,2)) Dl(0.2*e) F(0),
b(t,r) ## L(r) [ Pl1 Dl1 O(circ, 1) ] f(r) RU180 N(100) Dl(0.1) F KL(rad),
circ ## P3 + &(30) < [ f1 S(i) ] RL12 > &(29) < C(i,i+1) > C(29,0)
Tabelle 1. Sensitive Wachstumsgrammatik für ein zweidimensionales populationsdynamisches Modell mit Primärproduzenten und Phytophagen, lesbar für
GROGRA und mit Kommentaren.
Ergebnisse
Es sind bisher keine systematischen Modell-Läufe gemacht worden, um den Parameterraum
des Modells gründlich zu explorieren. Ziel dieses Artikels ist es aber gar nicht, Detail-Ergebnisse über dieses oder ähnliche Populationsmodelle von Pflanzen und Pflanzenfressern zu
präsentieren, sondern es geht darum, die Eignung des Formalismus der sensitiven Wachstumsgrammatiken für die Spezifikation solcher Modelle unter Beweis zu stellen. Wir begnügen uns
damit, zu zeigen, daß unser Beispielmodell ein "interessantes Verhalten" an den Tag legt. Das
heißt konkret, daß sich sowohl räumlich, als auch zeitlich differenzierte Muster bilden
können, die den lokal wirkenden Regeln nicht von vornherein anzusehen waren (Emergenz).
Welche Muster sich entfalten, hängt natürlich stark von der Wahl der Parameter ab. Abbildung 9 zeigt eine Momentaufnahme aus einem Simulationslauf, der mit einer einzigen
Pflanze und einem einzigen Tier (ungefähr in der Mitte des gezeigten Ausschnitts der ModellEbene) begonnen hat. Gezeigt ist der Zustand nach 100 Zeitschritten. Die Phytophagen sind
als kleine, schwarze Punkte vorwiegend in der Mitte und in der linken Bildhälfte vertreten (im
Original-Display farbig). Abbildung 10 zeigt dieselbe Simulation nach 160 Zeitschritten. Die
Phytophagen wirken deutlich auf die Pflanzenpopulation und erzeugen wesentlich größere Bestandeslücken als diejenigen, die in den Simulationsläufen ohne Tiere (vgl. Abb. 8) auftreten.
Abb. 9. Schritt 100 aus einem Simulationslauf mit der vorgestellten Wachstumsgrammatik, Blick von oben auf den Bestand. Die Pflanzen werden durch graue
Kreise repräsentiert, die Tiere durch schwarze Punkte.
Abb. 10. Schritt 160 aus demselben Simulationslauf wie Abb. 9.
Bei einer anderen Parametrisierung des Modells kann es passieren, daß der Bestand durch den
Einfluß der Phytophagen völlig in einzelne Inseln zerfällt (Abbildung 11).
Abb. 11. Schritt 160 aus einem anderen Simulationslauf mit veränderter Parametrisierung.
Abhängig von der Wahl der Parameter können sich auch in der zeitlichen Dynamik des
Systems ganz unterschiedliche Verhaltensweisen herausbilden. Abbildung 12 zeigt einen Simulationslauf, bei dem die Individuenzahlen der Pflanzen (durchgezogene Linie) sowie der
Tiere (gestrichelt) bis zum 160. Zeitschritt relativ stetig ansteigen. Über das spätere Verhalten
des Systems läßt sich aus diesem nach Schritt 160 abgebrochenen Simulationslauf noch nichts
aussagen.
Abb. 12. Entwicklung der Individuenzahl (durchgezogene Linie: Pflanzen, gestrichelte Linie: Pflanzenfresser) in einem Simulationslauf mit anwachsenden
Populationen.
Ein gegenteiliges Verhalten sehen wir in Abbildung 13 (mit anderer Parametrisierung
gewonnen): Es kommt nach ca. 125 Schritten zu einem völligen Aussterben der Pflanzenpopulation. Von den Tieren sind am Ende des Simulationslaufes (Schritt 160) zwar noch viele
vorhanden, diese sind aber auch zum Aussterben verurteilt, da ihnen die Nahrung fehlt. Das
System "kollabiert" also. Möglich ist aber bei entsprechend veränderten Parametern auch die
in Abbildung 14 dargestellte, wesentlich "interessantere" Dynamik, bei der sich erst ein starkes Überhandnehmen der Phytophagen mit entsprechender Dezimierung des Pflanzenbestandes ergibt, bei der aber danach der Tierbestand wieder zurückgeht und die Pflanzenpopulation
sich zu erholen beginnt. Um zu überprüfen, ob es zu weiteren solchen Fluktuationen kommt,
müßte man das Modell noch über die ausgeführten 250 Simulationsschritte hinaus laufen
lassen.
Abb. 13. Entwicklung der Individuenzahl in einem Simulationslauf mit Kollaps
des Systems (Aussterben beider Arten).
Abb. 14. Entwicklung der Individuenzahl in einem Simulationslauf mit langfristigen Schwankungen in den Populationsstärken.
Als Vorteile des Modellansatzes gegenüber anderen Populationsmodellen zeigen sich:
 Das Modell ist leicht manipulierbar (Parameter und / oder ganze Regeln können leicht verändert werden, ohne daß die Software neu kompiliert werden müßte),
 die Regeln sind zum großen Teil intuitiv verständlich und beschreiben unmittelbar das Verhalten der Pflanzen und Tiere,
 es sind auch die "local histories" bestimmter Pflanzen oder bestimmter Regionen in der
Modell-Ebene erfaßbar — so wären auch Vergleiche mit realen Bestandesausschnitten
möglich,
 das Zustandekommen von Singularitäten (Katastrophen) im System kann im Detail studiert
werden (vgl. Breckling 1990).
Einige mögliche Erweiterungen des vorgestellten Beispielmodells liegen auf der Hand:
 Man kann mehrere trophische Ebenen einführen (Räuber), wie dies z.B. in dem objektorientierten Modell von Breckling (1990), welches allerdings nicht mit Wachstumsgrammatiken spezifiziert war, bereits geschehen ist,
 es läßt sich durch Erweiterung der Regeln und durch Hinzunahme neuer Regeln ein komplexeres Such- und Reproduktionsverhalten der Phytophagen modellieren,
 ebenso läßt sich für die Pflanzen ein detaillierteres Wachstums- und Konkurrenzmodell implementieren (für Ansätze der Realisierung eines Kohlenstoffhaushalts in grammatikbasierten Pflanzenmodellen siehe Kurth & Sloboda 1997),
 eine weiterführende Ergänzung, die in den Bereich "Artificial Life" verweist (siehe z.B.
Langton 1989, Wilke et al. 1998), wäre die Weitergabe nicht nur von Kohlenstoff-Quantitäten, sondern auch von genetischer Information bei der Vermehrung. Ein Mechanismus
hierfür ließe sich unschwer im Rahmen der Vermehrungs-Regeln für Pflanzen und Tiere
durch die Mitführung weiterer formaler Parameter bei den Symbolen b und a realisieren.
Wenn zusätzlich Mutationen eingeführt werden, erhalten wir eine künstliche Evolution. So
ließe sich zum Beispiel die Suchstrategie der Tiere genetisch steuern und "evolutiv" optimieren.
Die Universalität des Ansatzes der Grammatiken zeigt sich auch darin, daß es möglich war,
ganz unterschiedliche Pflanzenmodelle aus der Literatur damit "nachzubauen" (Kurth, submitted). Für populationsdynamische Modelle der hier vorgestellten Art mit mehreren Arten
wurde dies bisher allerdings noch nicht versucht.
Eine Schwäche der bisherigen Wachstumsgrammatiken ist es aber, daß die sensitiven Funktionen und Interaktionsmechanismen darin nicht vollständig spezifiziert werden können. Eine
Verbesserung der Mächtigkeit der Regelsprache wäre hier sinnvoll. Beispielsweise greifen die
Funktionen f und sh in dem oben vorgestellten Beispiel auf besondere, in der Programmiersprache C geschriebene Routinen zurück, die dem Modellierer, der nur die Regeln manipuliert, nicht unmittelbar zugänglich sind. Ihre Wirkungsweise ist sehr speziell, und wenn sie
verändert werden sollen, muß die Software GROGRA neu kompiliert werden. Dadurch geht
ein Teil der Unabhängigkeit und Flexibilität, die durch den Formalismus der Wachstumsgrammatiken gewonnen wurde, wieder verloren. Es ist geplant, durch zukünftige Erweiterungen des Formalismus hier Abhilfe zu schaffen.
Danksagung
Der Verfasser dankt Herrn Prof. Dr. Dr.h.c. Branislav Sloboda für das erwiesene Vertrauen
und für die erhaltene Förderung am Institut für Forstliche Biometrie und Informatik der Universität Göttingen, wo die hier vorgestellten Forschungen durchgeführt wurden. Außerdem
gilt Herrn PD Dr. Broder Breckling der Dank für motivierende Anregungen.
Literatur
Acock, B., and Reynolds, J.F. (1997): Introduction: modularity in plant models. Ecological Modelling, 94, 1-6.
Bartlett, M.S., and Hiorns, R.W., Eds. (1973): The Mathematical Theory of the Dynamics of Biological Populations. Academic Press, London (347 S.).
Breckling, B. (1990): Singularität und Reproduzierbarkeit in der Modellierung ökologischer Systeme. Dissertation, Universität Bremen, Fachber. 2.
Breckling, B. (1996): An individual based model for the study of pattern and process in plant ecology: An application of object oriented programming. EcoSys, 4, 241-254.
Chien, T.W., and Jürgensen, H. (1992): Parameterized L systems for modelling: Potential and limitations. In: G.
Rozenberg, A. Salomaa (eds.), Lindenmayer Systems. Springer, Berlin, 213-229.
DeAngelis, D.L., and Gross, L.J. (1992): Individual Based Models and Approaches in Ecology. Populations,
Communities and Ecosystems. Chapman & Hall, New York.
Ermentrout, G.B., and Edelstein-Keshet, L. (1993): Cellular automata approaches to biological modelling. J.
Theor. Biol., 160, 97-133.
Goel, N.S., and Rozehnal, I. (1992): A high-level language for L-systems and its applications. In: G. Rozenberg
and A. Salomaa (eds.), Lindenmayer Systems. Springer, Berlin, 231-251.
Kurth, W. (1994): Growth Grammar Interpreter GROGRA 2.4. Introduction and reference manual. Berichte des
FZW Göttingen, Ser. B, Bd. 38.
Kurth, W. (1998): Die Simulation der Baumarchitektur mit Wachstumsgrammatiken. Habilitationsschrift, Universität Göttingen (erscheint Anfang 2000 im Wissenschaftlichen Verlag Berlin).
Kurth, W. (submitted). The universality of growth grammars: Models of Bell, Pagès, and Takenaka revisited.
Ann. For. Sci.
Kurth, W., and Sloboda, B. (1997): Growth grammars simulating trees — an extension of L-systems incorporating local variables and sensitivity. Silva Fennica, 31, 285-295.
Kurth, W., and Sloboda, B. (1999): Tree and stand architecture and growth described by formal grammars. II.
Sensitive trees and competition. Journal of Forest Science, 45, 53-63.
Langton, Ch.G., ed. (1989): Artificial Life. Santa Fe Institute Studies in the Sciences of Complexity, Vol. VI.
Addison-Wesley, Redwood City.
Lindenmayer, A. (1968): Mathematical models for cellular interactions in development. J. Theor. Biol., 18, 280299, 300-315.
Lippman, St.B., and Lajoie, J. (1998): C++ Primer. 3rd ed., Addison-Wesley, Reading (1236 S.).
Middelhoff, U., and Breckling, B. (1998): Nutrient uptake and growth of an Alnus glutinosa stand: An individual
based model on the interaction of plant and soil. Bayreuther Forum Ökologie, 52, 189-203.
Prusinkiewicz, P.; Lindenmayer, A., and Hanan, J. (1988): Developmental models of herbaceous plants for computer imagery purposes. Computer Graphics (ACM / SIGGRAPH), 22 (4), 141-150.
Prusinkiewicz, P.; James, M., and Mech, R. (1994): Synthetic topiary. Computer Graphics Proceedings, Annual
Conference Ser., 1994, 351-358.
Wilke, C.; Altmeyer, St., and Martinez, Th., Hg. (1998): Third German Workshop on Artificial Life. Verlag
Harri Deutsch, Frankfurt.
Herunterladen