![Page 1: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/1.jpg)
Struktur-Funktions-Modelle von Pflanzen- Sommersemester 2014 -
Winfried Kurth
Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik
7. Vorlesung: 26. 6. 2014
![Page 2: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/2.jpg)
zuletzt:
• kontextsensitive Regeln
• Interpretationsregeln
• Graph als mathematische Grundstruktur
• (ein Exkurs: topologische Analyse von Graphen)
• Graph-Ersetzungsregeln
![Page 3: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/3.jpg)
als nächstes:
• Funktionsweise von relationalen Wachstumsgrammatiken
• zwei Regelsorten: L-System- und SPO-Regeln
• ein weiterer Regeltyp: Aktualisierungsregeln
• Notation von Graphen in XL
![Page 4: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/4.jpg)
Wiederholung: Relationale Wachstumsgrammatiken (RGG: Relational Growth Grammars, parallele Graph-Gramm.)
Zusammenfassung: Aufbau einer Regel einer RGG
![Page 5: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/5.jpg)
• Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Eingabe gebraucht)
![Page 6: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/6.jpg)
RGG als Verallgemeinerungen von L-Systemen:
Zeichenketten entsprechen speziellen Graphen
In Textform schreiben wir allgemeine (selbstdefinierte) Kanten als -kantensorte->
Kanten des speziellen Typs "Nachfolger" werden meist als Leerzeichen geschrieben (statt -successor->)
![Page 7: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/7.jpg)
für allgemeine Graphen:
Problem der Einbettung der rechten Regelseite
Regel:
Anwendung:
![Page 8: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/8.jpg)
2 Regeltypen für Graph-Ersetzungsregeln in XL:
● L-System-Regel, Symbol: ==>
sorgt für Einbettung der rechten Seite in den Graphen (d.h. ein- und ausgehende Kanten werden beibehalten) mit Standard-Vorgabe
● SPO-Regel, Symbol: ==>>
Ein- und ausgehende Kanten werden gelöscht (sofern ihre Beibehaltung nicht explizit in der Regel angegeben wird)
„SPO“ von „single pushout“ - ein Fachbegriff aus der universellen Algebra
![Page 9: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/9.jpg)
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
Ausgangs-graph: A B C
Beispiel:
![Page 10: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/10.jpg)
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A B C
D E A
![Page 11: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/11.jpg)
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A B C
D E A
a:
![Page 12: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/12.jpg)
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A AD Ea:
C= Endergebnis
![Page 13: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/13.jpg)
Testen Sie das Beispiel sm09_b27.rgg :
module A extends Sphere(3);
protected void init()[ Axiom ==> F(20, 4) A; ]
public void runL()[ A ==> RU(20) F(20, 4) A;]
public void runSPO()[ A ==>> ^ RU(20) F(20, 4, 5) A;]
(^ bezeichnet den Wurzelknoten im aktuellen Graphen)
![Page 14: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/14.jpg)
ein weiterer Regeltyp:
Aktualisierungsregeln
manchmal will man gar nichts an der Graph-Struktur ändern, sondern nur Attribute eines einzelnen Knotens verändern (z.B. Berechnung der Photosyntheseleistung für ein Blatt).
Dazu gibt es einen eigenen Regeltyp:
A ::> { imperativer Code };
Testen Sie die Beispiele sm09_b25.rgg, sm09_b16.rgg,sm09_b18.rgg
![Page 15: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/15.jpg)
Darstellung von Graphen in der Programmiersprache XL
● (neue) Knotentypen müssen mit „module“ deklariert werden
● Knoten können alle Java-Objekte sein. Bei eigenen module-Deklarationen können auch Methoden (Funktionen) und zusätzliche Variablen mitdeklariert werden, wie in Java
● Notation für Knoten in einem Graphen: Knotentyp, optional davor: bezeichner: Beispiele: A, Meristem(t), b:Bud
● Notation für Kanten:
-Kantenbezeichner->, <-Kantenbezeichner-
● Spezielle Kantentypen: Nachfolgerkante: > Verzweigungskante: +> Verfeinerungskante: />
![Page 16: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/16.jpg)
Darstellung von Graphen
![Page 17: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/17.jpg)
selbstdefinierte Kantentypen
const int xxx = EDGE_0; // oder EDGE_1, ..., EDGE_14
...
Verwendung im Graphen: -xxx->, <-xxx-, -xxx-
![Page 18: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/18.jpg)
(vgl. Kniemeyer 2008, S. 150 und 403)
![Page 19: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/19.jpg)
Notation von Graphen in XL
Beispiel:
wird im Programmcode dargestellt als
(die Darstellung ist nicht eindeutig!)
( >: Nachfolgerkante, +: Verzweigungskante)
![Page 20: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/20.jpg)
wie lässt sich der folgende Graph im Code textuell beschreiben?
X
Bud
Leaf+
>
0 1
![Page 21: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth](https://reader036.vdocuments.pub/reader036/viewer/2022070403/568139f4550346895da1af7b/html5/thumbnails/21.jpg)
Hausaufgabe zum 3. 7.:
Lesen Sie die Abschnitte 3.1 bis 3.13 (S. 17-33) aus der Dissertation von Ole Kniemeyer (http://nbn-resolving.de/urn/resolver.pl?urn=urn:nbn:de:kobv:co1-opus-5937)