Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

21
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 7. Vorlesung: 26. 6. 2014

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

Transcript of Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

Page 1: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

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

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

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

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

• 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

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

für allgemeine Graphen:

Problem der Einbettung der rechten Regelseite

Regel:

Anwendung:

Page 8: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

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

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

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

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

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

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

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

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

Darstellung von Graphen

Page 17: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

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

(vgl. Kniemeyer 2008, S. 150 und 403)

Page 19: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth

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

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

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)