Lindenmayer-Systeme
Romanesco-Blumenkohl
Selbstähnlichkeit der Struktur
Fraktale
Fraktale: Beispiel Kochkurve Erzeugung durch Rekursion: initiator Ersetzung jeder Strecke durch den Generator generator
Fraktale: Beispiel Kochkurve Geometrische Betrachtung: (4/3)-fachung der Länge
Fraktale: Beispiel Kochkurve Geometrische Betrachtung: Somit ist die Länge der unvollständigen Kurve nach n Rekursionsschritten: 4 n L(n)=( ) 3 Länge des Fraktals: unendlich
Fraktale: Beispiel Kochkurve Bestimmung der fraktalen Dimension: Überlagerung mit Gitter: ε Gitterbreite N(ε) Anzahl der Treffer Zerlegung der Kurve in N(ε) Teile d = 1: N ( ε)= g ε d = 2: N ( ε)= g 2 ε allgemein: N ( ε)= l d ε
Fraktale: Beispiel Kochkurve Bestimmung der Fraktalen -Dimension: N ( ε)= l d ε d =lim ε 0 nach d umgeformt: d= log( N (ε)) 1 log ( ) ε log( N (ε)) 1 log ( ) ε Für Fraktale muss dieser Wert nicht zwingend ganzzahlig sein.
L-Systeme
fact sheet: LSysteme 1968: Aristid Lindenmayer - Pflanzenmodelierung Ersetzungssysteme auf string-basis ähnlich zu BNR-Form/formale Sprachen
Unterschiede: L-Systeme zu kontextfreie Sprachen Terminalsymbole nicht zwingend ( weitere Iteration) keine sequentielle Anwendung der Produktionen sondern: Parallele Anwendung
DOL-Systeme
Deterministische Kontextfreie L-Systeme
Wachstum der Anabaena catenula
L-Systeme: formale Definition V sei ein Alphabet, V* alle Wörter aus V, V+ alle nichtleeren Wörter aus V. Ein DOL-System ist ein Tripel G = (V, ω, P) mit: V das System des Alphabets, ω V+ das Axiom oder Initiator P V V* ist die Menge der Produktionen a V ohne Produktion: Identitätsproduktion angenommen Somit: L(DOL-Systeme) L(Kontextfreie Grammatiken) Sei μ = a1 am V* Dann ist ν = χ1... χm V direkt von μ abgeleitet, gdw. ai für χi alle i = 1,..., m.
Biologisches Wachstum durch L-Systeme Anabaena: entweder groß oder klein wächst nach links oder rechts
Algenwachstum durch L-Systeme A = (V, ω, P) mit: V = {Gl,Gr,Kl,Kr} Alphabet ω = Gr Axiom/Initiator P: Ersetzungsregeln Gl KlGr Zelldivision l G r Gl K r Zelldivision r Kl Gl Zellwachstum l Kr Gr Zellwachstum r
Algenwachstum durch L-Systeme Axiom als Anfang 0: 1: 2: 3: Gr Kl Gr Gl K l Gr Gl Kr Gl Kl Gr Grafische Darstellung: Gl K l Gr Gr GlKr Kl G l Kr G r
Fraktale durch L-Systeme K = (V, ω, P) mit: V = {F, +, -} Alphabet ω=f Axiom/Initiator P: Ersetzungsregeln F F+F-F+F
Fraktale durch L-Systeme Axiom als Anfang F K0 parallele Anwendung der Erzeugungsregeln (F) + (F) - (F) + (F) K1 parallele Anwendung der Erzeugungsregeln (F + F - F + F) + (F + F - F + F) - (F + F - F + F) + (F + F - F + F) K2
Fraktale durch L-Systeme Im Gegensatz zur kontextfreien Sprachen: (F) + (F) - (F) + (F) keine selektive Anwendung Falsch: (F + F - F + F) + (F) - (F) + (F + F - F + F)
Fraktale durch L-Systeme grafische Interpretation des strings Turtle-Grafik: dressierte Schildkröte Bei F: Nach vorne bewegen Bei -: um δ nach rechts drehen Bei F: Nach vorne bewegen Bei +: um δ nach links drehen Bei f: Nach vorne bewegen ohne Zeichen
Fraktale durch L-Systeme Turtle-Grafik von F + F - F + F mit δ = 60
Fraktale durch L-Systeme Turtle-Grafik von F + F - F + F mit δ = 60 n = 2, mit kleineren Liniengrößen
Modellierung durch L-Systeme Wie konstruiert man ein L-System für eine gewünschte Struktur oder einen gewünschten Wachstumsprozess? inference problem der L-System-Theorie Ansätze für algorithmische Lösung spez. Probleme, aber nicht gut genug für Pflanzenmodellierung Anderer Ansatz: Intuition
space-filling, self-avoiding, simple and self-similar: FASS-Kurven
FASS-Kurven Endliche, selbst-ausweichende Annäherungen an Kurven, die alle Punkte eines Quadrats ausfüllen. Zwei Ansätze für erleichterte FASS-Konstruktion: Kantenersetzung Knotenersetzung
FASS-Kurven: Kantenersetzung Fl Fr
FASS-Kurven: Knotenersetzung Bei einer Produktion werden an den Knoten der Vorgängerkurve Polygone eingefügt, die selber Knoten haben, die ersetzt werden können
FASS-Kurven: Beispiele Kantenersetzung
FASS-Kurven: Beispiele
FASS-Kurven: Beispiele
FASS-Kurven: Beispiele Knotenersetzung
FASS-Kurven: Beispiele
FASS-Kurven: Beispiele
Verzweigende Strukturen
Bäume
Bäume F+F+F FF F+F FF+ F F Resultat wäre: nicht gewollt
Bäume: geklammerte OL-Systeme F [+ F [+ F] F] F [ F [+ F] [ F]] F [+ F] F Einführung der Positionsspeicherung: [ = push Position & Orientierung auf stack ] = pop Position & Orientierung von stack
geklammerte OL-Systeme: Beispiele
geklammerte OL-Systeme: Beispiele
stochastische L-Systeme
stochastische L-Systeme Problem: deterministisch generiert immer das selbe Lösung: Randomisierung der Produktionen
stochastische L-Systeme: Definition Ein stochastisches OL-System ist ein Vier-Tupel Gπ = (V, ω, P, π) mit: V, ω, P wie in DOL-Systemen, π : P (0,1], genannt die Wahrscheinlichkeitsverteilungsfunktion Für jedes a V sei die Summe aller Produktionswahrscheinlichkeiten gleich 1. Beispiel:
stochastische L-Systeme: Beispiel Beispiel:
kontextsensitive L-Systeme
kontextsensitive L-Systeme: IL-Systeme
IL-Systeme: Notwendigkeit Umgebung für Pflanzenwachstum relevant: Nährstoff- oder Hormonfluss Wachstumsprozesse: Blatt- und Blütenbildung
IL-Systeme: Typen 1L-Systeme: Produktionen sehen wie folgt aus: al < a b (a wird nur mit b ersetzt, wenn es auf al folgt) oder a > ar b (analog zu oben)
IL-Systeme: Typen 1L-Systeme: al < a b 2L-Systeme: al < a > ar b OL-, 1L- und 2L-Systeme sind Teil der größeren Menge der IL-Systeme, auch (k,l)-systeme genannt, deren linker Kontext k-lang und deren rechter Kontext l-lang ist.
IL-Systeme: Definition Ein (k,l)l-system (kurz: IL-System) ist ein Tripel G = (V, ω, P) mit: V, ω wie in DOL-Systemen Die Produktionsregeln von P sind in der Form: al a ar al b ar, wobei al = k und ar = l Die Identitätsproduktion wird verwendet, wenn in P keine Produktion vorhanden ist. Kontextsensitive Produktionen haben Vorrang vor Produktionen, deren al = 0 und ar = 0.
IL-Systeme: Beispiele #ignore: + ω : baaaaaaaa ω : Fb [+ Fa ] Fa [ - Fa ] Fa [ + Fa ] Fa p1: b< a b p 1: p2 : b a baaaaaaaa abaaaaaaa aabaaaaaa aaabaaaaa... F b < Fa F b
IL-Systeme: Beispiele #ignore: + ω : baaaaaaaa ω : Fb [+ Fa ] Fa [ - Fa ] Fa [ + Fa ] Fa p1: b< a b p 1: p2 : b a baaaaaaaa abaaaaaaa F b < Fa F b akropetaler Signaltransfer aabaaaaaa Gegensatz: aaabaaaaa basipetal mit... F a > Fb F a
IL-Systeme: Beispiele
Wachstumsfunktion
L-Systeme: Wachstumsfunktion 1. Produktion: Verästelung 2. Produktion: Linienverdoppelung
L-Systeme: Wachstumsfunktion Länge des von (f) erzeugten Wortes wn in Abhängigkeit von n: wn = 2n
L-Systeme: Wachstumsfunktion Allgemeiner Ansatz: G = (V, ω, P) sei ein DOL-System mit V = {a1, a2,, am} Qm m ist die Matrix, in der der Eintrag qij gleich der Anzahl an aj im Ergebnis einer Produktion mit Vorläufer ai. aki ist die Anzahl der ai im Wort x das in k Schritten in G generiert wurde. Daraus folgt: [a 1k a k2 [ ] q11 q12 q1m a km ] q21 q22 q 2m = [a k1 +1 a k2 +1 a km+ 1 ] qm1 qm2 q mm
L-Systeme: Wachstumsfunktion: Beispiel ω:a p1 : a ab p2 : b a somit: [a k k b ] [ ] 1 1 k +1 k +1 = [a b ] 1 0 daraus folgt: ak+1 = ak + bk = ak + ak-1 weiterhin gilt a0 = 1 (aus Axiom) und a1 = 0 Die Anzahl der as in dem L-System wächst demnach gleich der Fibonacci-Zahlenfolge.
parametrische L-Systeme
parametrische L-Systeme: Notwendigkeit z.b.: Streckenlänge/Wachstum eines Segments abh. v. Nähe zur Blüte Parametrisierung der Buchstaben zu Modulen Module bestehen aus Buchstaben mit asoziierten Parametern Mehrere Module ergeben ein parametrisches Wort
parametrische L-Systeme: Definition Ein parametrisches OL-System ist ein Vier-Tupel G = (V, Σ, ω, P) mit: V als Alphabet, Σ die Menge der formalen Parameter, ω (V R )+ wobei R die Menge der reellen Zahlen ist, P (V Σ ) C(Σ) (V E(Σ)) wobei c(σ) ein korrekter logischer Ausdruck auf Σ e(σ) ein korrekter arithmetischer Ausdruck C(Σ) und E(Σ) sind die Mengen aller c(σ) und e(σ)
parametrische L-Systeme: Definition (V Σ ), ein Modul wird auch als A(a1, a2,, an) geschrieben, wobei A V und a1, a2,..., an Σ sind. Die Ableitungen sehen so aus: A(x) : x > 9 B(t+1)CD( t * 0,5, t 2) A(x) wird druch B(t+1)CD( t * 0,5, t 2) ersetzt, wenn x > 9 gilt
parametrische L-Systeme: Beispiel ω p1 p2 p3 p4 : B(2)A(4, 4) : A(x, y) : (y <= 3) A(x 2, x + y) : A(x, y) : (y > 3) B(x)A(x/y, 0) : B(x) : (x < 1) C : B(x) : (x >= 1) B(x 1)
parametrische L-Systeme: Anwendung Anabaena catenula: Heterocysten-Bildung
parametrische L-Systeme: Anabaena catenula again #define CH 900 /* high concentration */ #define CT 0.4 /* concentration threshold */ #define ST 3.9 /* segment size threshold */ #include H /* heterocyst shape specification */ #ignore f H ω : -(90)F(0,0,CH)F(4,1,CH)F(0,0,CH) p1 : F(s,t,c) : t=1 & s>=6 F(s/3*2,2,c)f(1)F(s/3,1,c) p2 : F(s,t,c) : t=2 & s>=6 F(s/3,2,c)f(1)F(s/3*2,1,c) p3 : F(h,i,k) < F(s,t,c) > F(o,p,r) : s>st c>ct F(s+.1,t,c+0.25*(k+r-3*c)) p4 : F(h,i,k) < F(s,t,c) > F(o,p,r) :!(s>st c>ct) F(0,0,CH) H(1) p5 : H(s) : s<3 H(s*1.1)