Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."—  Präsentation transkript:

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

2 zuletzt: Interpretationsregeln Graph als mathematische Grundstruktur ein Exkurs: topologische Analyse von Graphen Graph-Ersetzungsregeln

3 als nächstes: Funktionsweise von relationalen Wachstumsgrammatiken zwei Regeltypen: L-System- und SPO-Regeln Aktualisierungsregeln die Programmiersprache XL: wichtige Eigenschaften

4 Erinnern Sie sich? Bu d Shoot Bu d Shoot Bud Shoot Bu d Shoot Bu d Shoot Bu d Shoot Bud Shoot Bu d Shoot Bu d Root

5 Eine relationale Wachstumsgrammatik enthält: ein Alphabet –die Definition aller erlaubten Knotentypen Typen von Relationen das Axiom –ein initialer Graph, der aus den Elementen des Alphabets zusammengesetzt ist eine Menge von Graphersetzungsregeln Shoot Root Bu d RootShoot Bu d Nachfolger Verfeinerung

6 Was sind nun diese Graphersetzungsregeln (RGG-Regeln) ? und wie wendet man sie an?

7 Graphersetzungsregeln sind Regeln für die Transformation eines Graphen (Teilgraphen) in einen anderen Graphen. eine Regel besteht im wesentlichen aus: linker Regelseite ==> rechter Regelseite

8 Wie eine RGG-Regel angewandt wird jede linke Regelseite beschreibt einen Teilgraphen (ein Muster aus Knoten und Kanten, das im Gesamtgraphen gesucht wird), welcher ersetzt wird bei der Regelanwendung. jede rechte Regelseite definiert einen neuen Teilgraphen, der als Ersatz für den entfernten Teilgraphen eingefügt wird.

9 einfaches Beispiel mit Zeichenkette Jedes Vorkommen des in der linken Regelseite definierten Teilgraphen wird ersetzt! ABCA DBCD AD wird ersetzt durch 2 Regelanwendungen im selben Zeitschritt. C C

10 eine vollständige RGG-Regel kann 5 Teile enthalten: (* Kontext *), Linke Regelseite, ( Bedingung ) ==> Rechte Regelseite { imperativer XL-Code }

11 Kontext-Beispiel (* Kontext *), Linke Regelseite, (Bedingung) ==> Rechte Regelseite { imperativer XL-Code } ABCA DC D A wird ersetzt durch B A Beispiel: (* *) B C C

12 Bedingungs-Beispiel (* Kontext *), Linke Regelseite, ( Bedingung ) ==> Rechte Regelseite { imperativer XL-Code } ABCA DC D a:A wird ersetzt durch B A Beispiel: ( a[length] > 10 ) ABCA 2 mögliche Ergebnisse, abhängig vom aktuellen Längenparameter des A-Knotens C C C

13 RELATIONALE WACHSTUMSGRAMMATIKEN (RGG: Relational Growth Grammars, parallele Graph-Gramm.) Zusammenfassung: Aufbau einer Regel einer RGG

14 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-> )

15 Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Eingabe gebraucht)

16 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) 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

17 a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A Ausgangs- graph: ABC Beispiel:

18 a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A ABC DEA

19 a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A ABC DEA a:

20 a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A AADE a: C = Endergebnis

21 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)

22 imperativobjektorientiertregelbasiert Java XL Die Sprache XL eXtended L-system language Einordnung in die Programmierparadigmen:

23 Die Sprache XL Sprachspezifikation: Kniemeyer (2008) Dissertation: http://nbn-resolving.de/urn/resolver.pl?urn=urn:nbn:de:kobv:co1-opus-5937 Erweiterung von Java erlaubt zugleich Spezifikation von L-Systemen und RGG (Graph-Grammatiken) in intuitiv verständlicher Regelschreibweise imperative Blöcke, ähnlich wie in Java: {... } regelorientierte Blöcke (RGG-Teil): [... ]

24 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

25 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte

26 Beispiel: XL-Programm für die Kochsche Kurve public void derivation() [ Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ] Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte

27 Beispiel: XL-Programm für die Kochsche Kurve public void derivation() [ Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ] Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Knoten des Graphen Kanten (Typ Nachfolger)

28 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram...

29 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Zugriff auf Attribute über die Parameterliste: Box(x, y, z) (Länge, Breite, Höhe) oder mit speziellen Funktionen: Box(...).(setColor(0x007700)) (Farbe)

30 Zugriff auf Knotenattribute: Beispiel sm09_b26.rgg

31 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Transformationsknoten Translate(x, y, z), Scale(cx, cy, cz), Scale(c), Rotate(a, b, c), RU(a), RL(a), RH(a), RV(c), RG,...

32 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Transformationsknoten Translate(x, y, z), Scale(cx, cy, cz), Scale(c), Rotate(a, b, c), RU(a), RL(a), RH(a), RV(c), RG,... Lichtquellen PointLight, DirectionalLight, SpotLight, AmbientLight

33 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen

34 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen Beispiel: Regeln für den stochastischen Baum Axiom ==> L(100) D(5) A; A ==> F0 LMul(0.7) DMul(0.7) if (probability(0.5)) ( [ RU(50) A ] [ RU(-10) A ] ) else ( [ RU(-50) A ] [ RU(10) A ] );

35 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung

36 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung (kann modifiziert werden: Sequenzieller Modus einstellbar, später mehr)

37 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich spezieller Zuweisungsoperator := neben dem normalen = Quasiparallele Zuweisung an die Variablen x und y: x := f(x, y); y := g(x, y);

38 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren)

39 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen)

40 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen) Graph-Abfragen (queries) zur Analyse der aktuellen Struktur

41 Beispiel für Graph-query: Binärer Baum, Wachstum soll nur erfolgen, wenn genügender Abstand zu anderen F -Objekten Axiom ==> F(100) [ RU(-30) A(70) ] RU(30) A(100); a:A(s) ==> if ( forall(distance(a, (* F *)) > 60) ) ( RH(180) F(s) [ RU(-30) A(70) ] RU(30) A(100) ) ohne die if-Bedingung mit der if-Bedingung

42 Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen) Graph-Abfragen (queries) zur Analyse der aktuellen Struktur aggregierende Operatoren (z.B. sum, mean, empty, forall, selectWhereMin)

43 Hausaufgabe zum 23. 6.: Lesen Sie die Abschnitte 3.1 bis 3.11 (S. 17-33) aus der Dissertation von Ole Kniemeyer ( http://nbn- resolving.de/urn/resolver.pl?urn=urn:nbn:de:kobv:co1- opus-5937 )


Herunterladen ppt "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."

Ähnliche Präsentationen


Google-Anzeigen