Upload
zoe
View
36
Download
0
Embed Size (px)
DESCRIPTION
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 7. Vorlesung: 26. 6. 2014. zuletzt: kontextsensitive Regeln Interpretationsregeln Graph als mathematische Grundstruktur - PowerPoint PPT Presentation
Citation preview
Struktur-Funktions-Modelle von Pflanzen- Sommersemester 2014 -
Winfried Kurth
Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik
7. Vorlesung: 26. 6. 2014
zuletzt:
• kontextsensitive Regeln
• Interpretationsregeln
• Graph als mathematische Grundstruktur
• (ein Exkurs: topologische Analyse von Graphen)
• Graph-Ersetzungsregeln
als nächstes:
• Funktionsweise von relationalen Wachstumsgrammatiken
• zwei Regelsorten: L-System- und SPO-Regeln
• ein weiterer Regeltyp: Aktualisierungsregeln
• Notation von Graphen in XL
Wiederholung: Relationale Wachstumsgrammatiken (RGG: Relational Growth Grammars, parallele Graph-Gramm.)
Zusammenfassung: Aufbau einer Regel einer RGG
• Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Eingabe gebraucht)
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->)
für allgemeine Graphen:
Problem der Einbettung der rechten Regelseite
Regel:
Anwendung:
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
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
Ausgangs-graph: A B C
Beispiel:
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A B C
D E A
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A B C
D E A
a:
a:A ==>> a C (SPO-Regel)
B ==> D E (Regeln vom L-System-Typ)
C ==> A
A AD Ea:
C= Endergebnis
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)
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
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: />
Darstellung von Graphen
selbstdefinierte Kantentypen
const int xxx = EDGE_0; // oder EDGE_1, ..., EDGE_14
...
Verwendung im Graphen: -xxx->, <-xxx-, -xxx-
(vgl. Kniemeyer 2008, S. 150 und 403)
Notation von Graphen in XL
Beispiel:
wird im Programmcode dargestellt als
(die Darstellung ist nicht eindeutig!)
( >: Nachfolgerkante, +: Verzweigungskante)
wie lässt sich der folgende Graph im Code textuell beschreiben?
X
Bud
Leaf+
>
0 1
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)