4.5 Wachstumsfunktionen Wenn man die Entwicklung einer Pflanze modelliert, ist es zweckmäßig, das Verzweigen und das Längenwachstum in verschiedenen Regeln zu modellieren. Das wurde zum Beispiel in den L Systemen d), e) und f) benutzt, die auf der Folie 4.33 zu sehen sind: die jeweils erste Regel definiert die Verzweigungen, wobei die jeweils zweite Regel das Längenwachstum beschreibt. Hier hatten wir in allen Fällen die Regel F F F, also modelliert diese Regel jeweils das Verdoppeln der Segmente, die durch F beschrieben werden. Das führt also letztendlich zu einem exponentiellen Wachstum für die Segmente, die anfangs durch F beschrieben werden. Eine Funktion, die die Anzahl der Zeichen in einem Wort in Abhängigkeit seiner Ableitungslänge beschreibt, wird als Wachstumsfunktion bezeichnet. Die Theorie der L Systeme kennt viele Ergebnisse zu Wachstumsfunktionen. Dabei ist eine zentrale Beobachtung, dass die Anordnung der Zeichen sowohl in den Regeln als auch in den Wörtern keine Rolle spielen. Folglich kann die Relation zwischen den Anzahlen der einzelnen Buchstaben in Wörtern µ und ν, für die µ = ν gilt, durch Matrizen dargestellt werden. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.45
Wachstumsmatrix Gegeben sei G = Σ, P, w) ein D0L System, wobei wir annehmen, dass die Zeichen im Alphabet Σ angeordnet sind, also Σ = {a 1, a 2,..., a m }. Wir konstruieren die quadratische Matrix Q m m, deren Elemente q ij gleich der Anzahl des Buchstabens a j in der rechten Seite der Regel für den Buchstaben a i ist. Wir führen die Bezeichnung a k i ein für die Anzahl des Buchstabens a i des Wortes, das mittels G durch eine Ableitung der Länge k entstanden ist. Dann folgt aus der Definition der Ableitung gemäß eines D0L-Systems G: a k 1 a k 2 q 11 q 12... q 1m... ) ak m q 21 q 22... q 2m...... = q m1 q m2... q mm a k+1 1 a k+1 2... a k+1 m Die Matrix Q ist sehr nützlich zur Untersuchung der Wachstumsfunktionen. Wir betrachten ein Beispiel. ) Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.46
Beispiel Gegeben sei G = {a, b}, {a ab, b a}, a). Dann erhalten wir als Abhängigkeit der Buchstabenvorkommen a k b k ) oder für k = 1, 2, 3... 1 1 1 0 ) = a k+1 b k+1 ) a k+1 = a k + b k = a k + a k 1. Mit a 1 = b 0 = 0 erhalten wir für die Anzahlen der Buchstaben a also die Zahlenfolge von Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,... Diese Wachstumsfunktion wurde in den Regeln p 2 und p 3 des L Systems G = {F, A, S, L}, P, A) implementiert, das einen Busch generiert, dabei ist p 1 : A [&F L!A] ///// &F L!A] /////// [&F L!A], p 2 : F S ///// F, p 3 : S F L, p 4 : L [ { f+f+f f+f+f}]. Im folgenden Bild ist für n = 7 und δ = 22,5 das Ergebnis dargestellt. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.47
Ein drei-dimensional generierter Busch Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.48
Polynomielles Wachstum Eine polynomielle Wachstumsfunktion können wir durch ein L System mit folgenden Regeln erhalten: ω : a 0 p 1 : a 0 a 0 a 1 p 2 : a 1 a 1 a 2 p 3 : a 2 a 2 a 3 p 4 : a 3 a 3 a 4. Die Wachstumsmatrix Q lautet dann: Q = Für alle i, k 1 gilt dann also: 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1. a k i + a k i+1 = a k+1 i+1. Wenn wir das Axiom mit einbeziehen, erhalten wir folgende Tabelle nur die Werte ungleich 0 sind eingetragen). Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.49
Fortsetzung Polynomielles Wachstum k a k 0 a k 1 a k 2 a k 3 a k 4 a k 5 a k 6 a k 7 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1 6 1 6 15 20 15 6 1 7 1 7 21 35 35. 21 7 1 Die Tabelle stellt das Pascalsche Dreieck dar, man kann zeigen, dass für alle k i 1 folgende Gleichung gilt: a k i = ) k i = kk 1) k i + 1) 1 2 i Also ist die Funktion der Anzahl der Buchstaben a i in Abhängigkeit der Ableitungslänge k ein Polynom vom Grad i. Es ist also möglich, mittels des Turtlesymbols F ein polynomielles Längenwachstum jedes beliebigen Grades zu modellieren. Diese Erkenntnis stammt von Szilard aus dem Jahre 1971. Er konstruierte D0L Systeme, deren Wachstumsfunktionen beliebige positive streng monoton wachsenden Polynome mit ganzzahligen Koeffizienten sind. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.50
Polynomielles und exponentielles Wachstum Bisher haben wir gesehen, wir können polynomielle und exponentielle Wachstumsfunktionen erhalten. Rozenberg und Salomaa zeigten 1980, die Wachstumsfunktion f G eines beliebigen D0L Systems G = Σ, P, ω) ist eine Kombination von Polynomen und Exponentialfunktionen: f G n) = s P i n)ϱ n i für n n 0, 1) i=1 wobei P i Polynome mit ganzzahligen Koeffizienten sind, ϱ i nichtnegative ganze Zahlen sind und n 0 die Anzahl der Buchstaben im Alphabet Σ ist. Unglücklicherweise kann man viele Wachstumsprozesse in der Natur beobachten, die sich nicht so wie in der Gleichung 1) beschreiben lassen. Es gibt zwei Ansätze, um diesen Mangel zu beheben. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.51
Sigmoidales Wachstum Wir erhöhen die Anzahl n 0 der Buchstaben im Alphabet Σ so, dass der zu modellierende Wachstumsprozess bereits beendet ist, ehe die Gleichung 1) greift. Zum Beispiel betrachten wir das L System mit ω : a 0 p i : a i a i+1 b 0 für i < k p k+j : b j b j+1 F für j < l mit Σ = {a 0, a 1,..., a k } {b 0, b i,..., b l } {F }, wobei für die Segmente, die F entsprechen, sigmoidales Wachstum erreicht wird, wobei die Bezeichnung von der Form des Mittelteils des Buchstaben S abgeleitet ist. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.52
Quadratwurzelwachstum Der zweite Ansatz ist die Benutzung kontextabhängiger L Systeme. Zum Beispiel hat das folgende 2L System eine Wachstumsfunktion, definiert durch f G n) = n + 4. ω : p 1 : p 2 : p 3 : p 4 : XF u F a X F u F a F a F u F u F a X F d F a F a F a F d F d X F a F d F u p 5 : F u F a p 6 : F d F a Die folgende Abbildung illustriert die dahinterliegende Idee. Dr. Bernd Reichel Ausgewählte Kapitel der theoretischen Informatik, Folie 4.53