Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Godehard Stoessel Geändert vor über 9 Jahren
1
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 7. Vorlesung: 26. 6. 2014
2
zuletzt: kontextsensitive Regeln Interpretationsregeln Graph als mathematische Grundstruktur (ein Exkurs: topologische Analyse von Graphen) Graph-Ersetzungsregeln
3
als nächstes: Funktionsweise von relationalen Wachstumsgrammatiken zwei Regelsorten: L-System- und SPO-Regeln ein weiterer Regeltyp: Aktualisierungsregeln Notation von Graphen in XL
4
Wiederholung: Relationale Wachstumsgrammatiken (RGG: Relational Growth Grammars, parallele Graph-Gramm.) Zusammenfassung: Aufbau einer Regel einer RGG
5
Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Eingabe gebraucht)
6
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-> )
7
für allgemeine Graphen: Problem der Einbettung der rechten Regelseite Regel: Anwendung:
8
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
9
a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A Ausgangs- graph: ABC Beispiel:
10
a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A ABC DEA
11
a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A ABC DEA a:
12
a:A ==>> a C (SPO-Regel) B ==> D E (Regeln vom L-System-Typ) C ==> A AADE a: C = Endergebnis
13
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)
14
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
15
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: />
16
Darstellung von Graphen
17
selbstdefinierte Kantentypen const int xxx = EDGE_0; // oder EDGE_1,..., EDGE_14... Verwendung im Graphen: -xxx->, <-xxx-, -xxx-
18
(vgl. Kniemeyer 2008, S. 150 und 403)
19
Notation von Graphen in XL Beispiel: wird im Programmcode dargestellt als (die Darstellung ist nicht eindeutig!) ( >: Nachfolgerkante, +: Verzweigungskante)
20
wie lässt sich der folgende Graph im Code textuell beschreiben? X Bud Leaf + > 01
21
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 )
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.