Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Relationale Wachstumsgrammatiken und GroIMP:

Ähnliche Präsentationen


Präsentation zum Thema: "Relationale Wachstumsgrammatiken und GroIMP:"—  Präsentation transkript:

1 Relationale Wachstumsgrammatiken und GroIMP:
Spezifikation multiskalierter Struktur-Funktions-Modelle von Pflanzen mit 3D-Grafik-Komponente

2 Pflanzenmodelle: bisherige Ansätze in der Biologie
Prozessmodelle Einheiten: Stoffpools in Kompartimenten Flüsse zwischen den Pools Umweltfaktoren Beispiel: Modell der Ozon-wirkung (Martin et al. 2000)

3 Beispiel: TREEDYN (Bossel 1994, Jansen et al. 1995)

4 Prozessmodelle – Nachteile:
mangelhaft repräsentierte räumliche Struktur Parameterfitting, bei großen Modellen zu viele Freiheitsgrade keine Repräsentation der Objekte, mit denen der Pflanzenzüchter / Botaniker / Agronom arbeitet (b) Strukturmodelle Einheiten: Organe / Module der Pflanze (botanisch sinnvolle und visualisierbare Einheiten!) Konkurrenzeffekte (Licht, Raum, Bodenressourcen) ergeben sich (z.T.) aus dem Modell Parameter überschaubar, messbar

5 L-System-basierte Modelle
Strukturmodelle – Beispiele: L-System-basierte Modelle (siehe später) Kurth 1998, 1999 Prusinkiewicz & Lindenmayer 1990

6 Lane & Prusinkiewicz 2002

7 AMAP (de Reffye et al., seit 1976, CIRAD, Montpellier):
Atelier de la Modélisation de l'Architecture des Plantes - modelliert die Aktivität von Meristemen entwickelt in enger Zusammenarbeit von Informatikern und Biologen weiterentwickelt über die letzten 25 Jahre: Aufnahme neuer Ideen (Markoffketten-Modelle, Referenzachse, Kohlenstoff-Allokations-Modelle...) verschiedene, divergierende Software-Systeme für verschiedene Zwecke

8

9 XFROG (Deussen & Lintermann):
• interaktives System zur Pflanzenmodellierung, das sich am Szenengraphen-Konzept orientiert • botanisch nur schwach fundiert, keine Wachstumsmodellierung • aber grafisch zufriedenstellende Ergebnisse • hohe Form-Flexibilität

10 Strukturmodelle – Nachteile:
• keine (oder wenig) Berücksichtigung der funktionalen Aspekte von Pflanzen • kein Stoffhaushalt, keine Kopplung mit niedrigen Skalenebenen

11 (c) aggregierte Modelle (statistische Modelle)
Beschreibung eines Kollektivs (räumlich / zeitlich) mit Mitteln der Statistik (Momente, Korrelation, Regressionsrechnung etc.) Beispiel: Modell der Blattstreckung bei Gerste (Buck-Sorlin 2004) Logistische Sigmoidfunktion mit 3 Parametern

12 "Modell-Dreieck":

13 Struktur-Funktions-Modelle von Pflanzen
(Functional-structural plant models, FSPM): Verbindung der beiden unteren Ecken des Dreiecks Vorgehensweise: Verteilung der Prozesse auf die Module Hilfsmittel: OOP aus Breckling (1996)

14 Beispiel ALMIS (Eschenbach 2000)

15 Beispiel LIGNUM (Perttunen et al
Beispiel LIGNUM (Perttunen et al. 1996, 1998, Dzierzon 2000; METLA 2006)

16 Nachteile bisheriger ad hoc - FSPMs:
Einzellösungen, oft stark spezialisiert umfangreicher, komplexer Quellcode, der technische Einzelheiten gemischt mit fundamentalen Modellstrukturen enthält

17 geringe Kompatibilität der Modelle

18

19 ?

20 • in bisherigen Struktur-Funktions-Modellen
wird oft nur 1 Konkurrenzfaktor, bzw. 1 funktionaler Aspekt behandelt Ziel: "Metasprache" für alle Typen von Pflanzenmodellen – Wachstumsgrammatik Verbesserung der Transparenz, der Vergleichbarkeit und Kombinierbarkeit von Modellen, der Reproduzierbarkeit der Ergebnisse zusätzlich: Kompatibilität mit leistungsfähigen Grafik-Tools

21 klassisches Simulationsprogramm

22 Wachstumsgrammatiken
klassisches Simulationsprogramm Interpreter für Wachstumsgrammatiken

23 analog zu Grammatiken für natürliche Sprachen
erster Ansatz: L-Systeme (Lindenmayer-Systeme) dafür verwenden analog zu Grammatiken für natürliche Sprachen in jedem Ableitungsschritt parallele Ersetzung aller Zeichen, auf die eine Regel anwendbar ist von A. Lindenmayer (Botaniker) 1968 zur Modellierung des Wachstums von fadenförmigen Algen eingeführt

24 mathematisch: Ein L-System ist ein Tripel (, , R); darin ist: eine Menge von Zeichen, das Alphabet, eine Zeichenkette mit Zeichen aus , das Startwort (auch "Axiom"), R eine Menge von Regeln der Form Zeichen  Zeichenkette; darin sind das Zeichen auf der linken Regelseite und die Zeichenkette aus  entnommen.

25 Ein Ableitungsschritt (rewriting) einer Zeichenkette  besteht aus der Ersetzung aller Zeichen in , die in linken Regelseiten von R vorkommen, durch die entsprechenden rechten Regelseiten. Man vereinbart: Zeichen, auf die keine Regeln anwenbar sind, werden unverändert übernommen. Ergebnis zunächst nur: Ableitungskette von Wörtern, die sich durch wiederholte Anwendung des rewriting-Vorgangs aus dem Startwort ergeben.  1  2  3  ....

26 Beispiel: Alphabet {A, B}, Startwort A Regelmenge R: A  B B  AB Ableitungskette: A  B  AB  BAB  ABBAB  BABABBAB  ABBABBABABBAB  BABABBABABBABBABABBAB  ... wie lang ist die n-te Zeichenkette in dieser Ableitung?

27 was für die Modellierung von räumlichen Strukturen noch fehlt:
eine geometrische Interpretation Füge also zur Def. eines L-Systems hinzu: eine Abbildung, die jeder Zeichenkette mit Zeichen aus  eine Teilmenge des 3-dimensionalen Raumes zuordnet

28 was für die Modellierung von räumlichen Strukturen noch fehlt:
eine geometrische Interpretation Füge also zur Def. eines L-Systems hinzu: eine Abbildung, die jeder Zeichenkette mit Zeichen aus  eine Teilmenge des 3-dimensionalen Raumes zuordnet dann: "interpretierte" L-System-Abarbeitung   1  2  3  ....    S1 S2 S S1, S2, S3, ... können als Entwicklungs- oder Entwurfsstufen eines Objekts interpretiert werden.

29 Als Interpretationsabbildung wird meistens gewählt:
Turtle geometry ("Schildkrötengeometrie") befehlsgesteuertes, lokales Navigieren im 2D- oder 3D-Raum (Abelson & diSessa 1982; vgl. Programmier-sprache "LOGO")

30 Als Interpretationsabbildung wird meistens gewählt:
Turtle geometry ("Schildkrötengeometrie") befehlsgesteuertes, lokales Navigieren im 2D- oder 3D-Raum (Abelson & diSessa 1982; vgl. Programmier-sprache "LOGO") "Turtle": Zeichen- oder Konstruktionsgerät (virtuell) - speichert (grafische und nicht-grafische) Informationen - mit einem Zustandsspeicher assoziiert (wichtig für Verzweigungen) - aktueller Zustand der Turtle enthält z.B. Information über aktuelle Liniendicke, Schrittweite, Farbe, weitere Eigenschaften des als nächstes zu konstruierenden Objekts

31 Der Turtle-Befehlsvorrat wird zu einer Untermenge der Zeichenmenge  des L-Systems. Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert. Befehle (Auswahl): F0 "Forward", mit Konstruktion eines Elements (Linienstück, Segment, Gebäudetrakt...), benutzt wird die aktuelle Schrittweite für die Länge (die Null steht für "keine explizite Längenfestlegung") M0 forward ohne Konstruktion (Move-Befehl) L(x) ändere die aktuelle Schrittweite (Länge) zu x LAdd(x) inkrementiere die aktuelle Schrittweite um x LMul(x) multipliziere die aktuelle Schrittweite mit x D(x), DAdd(x), DMul(x) analog für die aktuelle Dicke

32 RU(45) Drehung der turtle um die "up"-Achse um 45°
RL(...), RH(...) analog um "left" und "head"-Achse up-, left- und head-Achse bilden ein rechtwinkliges, räumliches Koordinatensystem, das von der turtle mit-geführt wird RV(x) Rotation "nach unten" mit durch x vorgegebener Stärke was ist das Ergebnis der Interpretation der Zeichenkette L(10) F0 RU(45) F0 RU(45) LMul(0.5) F0 M0 F0 ?

33 Wiederholung von Abschnitten der Zeichenkette möglich mit dem Schlüsselwort "for"
z.B. for ((1:3)) ( A B C ) liefert A B C A B C A B C was ist das Ergebnis der Interpretation von L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) ) ?

34 Verzweigungen: Realisierung mit Speicher-Befehlen
[ lege aktuellen Zustand auf Speicher ("Ablage") ] nimm obersten Zustand von der Ablage und mache diesen zum aktuellen Zustand (damit: Ende der Verzweigung)

35 Beispiel: Regeln a  F0 [ RU(45) b ] a ; b  F0 b ; Startwort L(10) a
(a und b werden normalerweise nicht geometrisch interpretiert.) (in der Abbildung wurde F statt F0 geschrieben)

36 was für eine Struktur liefert das L-System
A  [ LMul(0.25) RU(-45) F0 ] F0 B; B  [ LMul(0.25) RU(45) F0 ] F0 A; mit Startwort L(10) A ?

37 was für eine Struktur liefert das L-System
A  [ LMul(0.25) RU(-45) F0 ] F0 B; B  [ LMul(0.25) RU(45) F0 ] F0 A; mit Startwort L(10) A ? äquivalente Regel: A  [ LMul(0.25) RU(-45) F0 ] F0 RH(180) A;

38 Weitere Beispiele: Koch'sche Kurve:   L(50) RU(90) A F0; A  A LMul(0.3333); /* Skalierung */ F0  F0 RU(-60) F0 RU(120) F0 RU(-60) F0; jedes Linienstück wird durch 4 neue Linienstücke ersetzt (3. Regel); Skalierung durch Hilfssymbol A, welches sich in jedem Schritt reproduziert und dabei jeweils einen zusätzlichen Faktor 1/3 erzeugt (2. Regel). Das Startwort ist hier "  ".

39 Ausgabe nach 6 Schritten:

40 Sierpinski-Dreieck (Realisierung als geschlossene Kurve, Verwendung von Hilfssymbol X für Insertion des inneren Dreiecks):   L(50) RU(90) B F0 X F0 RU(-120) F0 F0 RU(-120) F0 F0; F0  F0 F0; X  RU(-120) F0 X F0 RU(120) F0 X F0 RU(120) F0 X F0 RU(-120); B  B LMul(0.5);

41 Verzweigungsbeispiel: Ergebnis nach 7 Schritten:
F0  F0 [ RU(25.7) F0 ] F0 [ RU(-25.7) F0 ] F0 ; Ergebnis nach 7 Schritten: (Startwort L(10) F0)

42 Verzweigung, alternierende Zweigstellung und Verkürzung:
  L(10) F0 A ; A  LMul(0.5) [ RU(90) F0 ] F0 RH(180) A ;

43 welche Struktur liefert
  F(10) A ; A  [ RU(-60) F(6) RH(180) A Sphere(3) ] [ RU(40) F(10) RH(180) A Sphere(3) ]; Sphere  Z; ? (F(n) liefert Linie der vorgegebenen Länge n, Sphere(n) eine Kugel mit Radius n)

44 Erweiterung des Konzepts:
Lasse reellwertige Parameter nicht nur bei Turtle-Kommandos wie "RU(45)" und "F(3)" zu, sondern bei allen Zeichen parametrische L-Systeme beliebig lange, endliche Parameterlisten Parameter werden bei Regel-Matching mit Werten belegt Beispiel: Regel A(x, y)  F(7*x+10) B(y/2) vorliegendes Zeichen z.B.: A(2, 6) nach der Regelanwendung: F(24) B(3) Parameter können in Bedingungen abgeprüft werden (Bedingungen mit Java-Syntax): A(x, y) (x >= 17 && y != 0)  ....

45 Welche Struktur wird von folgendem L-System erzeugt?
  [ RU(90) M(1) RU(90) A(1) ] A(1); A(n)  F(n) RU(90) A(n+1);

46 Welche Struktur wird von folgendem L-System erzeugt?
  [ RU(90) M(1) RU(90) A(1) ] A(1); A(n)  F(n) RU(90) A(n+1); Variante: in der zweiten Regel "RU(90)" etwa durch "RU(92)" ersetzen.

47 Nachteile von L-Systemen:
• in L-Systemen mit Verzweigungen (über Turtle-Kommandos) nur 2 mögliche Relationen zwischen Objekten: "direkter Nachfolger" und "Verzweigung" Erweiterungen: • Zulassen weiterer Relationstypen (beliebig wählbar) • Zulassen von Zyklen ( Graph-Grammatik)

48 • Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Input gebraucht) "relationale Wachstumsgrammatik"

49 • Knoten des Graphen können beliebige Objekte sein
außerdem Nachteil der Turtle-Interpretation von L-Systemen: Segmente sind nur Zylinder, keine Objekte im Sinne der OOP  Erweiterungen: • Knoten des Graphen können beliebige Objekte sein (auch Grafikobjekte) • Einbettung von Code einer höheren, imperativen oder objektorientierten Programmiersprache in die Regeln (für uns: Java)

50 Relationale Wachstumsgrammatiken (RGG)
Aufbau einer Regel einer RGG:

51 eine RGG-Regel und ihre Anwendung in grafischer Form:
Regel in Textform: i -b-> j -a-> k -a-> i = => j

52 Kanten-Markierungen repräsentieren verschiedene Arten
von Relationen: • ist Nachfolger von • enthält • trägt als Seitentrieb • codiert (genetisch) • ist gepaart mit • (...)  auch möglich: Darstellung von multiskalierten Strukturen

53 RGG als Verallgemeinerungen von L-Systemen:
Zeichenketten entsprechen speziellen Graphen In Textform schreiben wir allgemeine Kanten als -edgelabel-> Kanten des speziellen Typs "Nachfolger" werden als Leerzeichen geschrieben (statt -successor->) Sonderformen von RGG-Regeln: Aktualisierungsregeln ( C,(E) ::> P ): es werden nur Parameter verändert Instanzierungsregeln: einzelne Module werden in Substrukturen expandiert, ohne Einfluss auf den nächsten Entwicklungsschritt (vgl. Multiplikator-Knoten bei XFROG)

54 Realisierung dieser Konstrukte in einer Programmiersprache:
Sprache XL (eXtended L-system language) • RGG-Regeln in Blöcken organisiert  Kontrolle der Reihenfolge der Regelanwendungen • Turtle-Kommandos als Knoten erlaubt • Knoten sind Java-Objekte • Sprache Java als Rahmen für die gesamte RGG  Benutzer kann Konstanten, Variablen, Klassen... definieren

55 XL wird interpretiert von der interaktiven 3D-Plattform GroIMP (Growth-grammar related Interactive Modelling Platform) • GroIMP stellt Objekte für die 3D-Visualisierung bereit. Diese können in XL verwendet werden (analog zur Turtle-Grafik in klassischen L-Systemen). • GroIMP ist ein open source-Projekt; siehe

56

57 Signalausbreitung in einem Netzwerk
Beispiel für RGG-Anwendung: Signalausbreitung in einem Netzwerk Zellen mit zwei Zuständen (0 oder 1) – codiert als Attribut (Knoten-Markierung) "state" nur eine RGG-Regel: (* c1: Cell *) c2: Cell, (c1.state == 1) ==> c2(1) grafische Darstellung der Regel: (schattiert: Kontext)

58 2 3 1 Anwendung auf ein gegebenes Netzwerk: Verfeinerung:
Verwendung reellwertiger Zustände (für Konzentrationen...) und von Regeln, die typische Reaktionskinetiken darstellen  Simulation von Reaktions- und Transportnetzwerken

59 Crossing over Beispiel für Simulation eines genetischen Prozesses:
Zwei homologe Chromosomenstränge, codiert als Strings mit "Nachfolger"-Relation RGG-Regel: Anwendung: Alignment homologer Allele

60 Beispiel Gerstenmodell: Gibberellinsäure (GA1) steuert die Streckung der Spross-Segmente
Synthese von GA im Organismus

61 Regeln: Substratkonzentrationen: Cell [s:GA19] [p:GA20] [f:GA1] ::>
competitiveInhibition(s, p, f, Vmax, Km, KI) Transport: Cell [a:GA19] -predecessor-> Cell [b:GA19] ::> { double r = C * a.concentration; a.concentration :-= r*T; b.concentration :+= r*T; } Internodienstreckung: i:Internode [s:GA1] ::> i.length :+= L*s.concentration*T; prozedural implementiert

62 Wachstum einer Gerstenpflanze (Wildtyp)
Blätter nicht dargestellt Zylinder stehen für GA19-Konzentration

63

64 Wachstum einer Gerstenpflanze (Wildtyp)
Blätter sichtbar Konzentrations-Zylinder weggelassen

65

66 simulierte Pflanze in gerenderter 3D-Darstellung

67 Wachstum einer Gerstenpflanze: Zwerg-Mutante
Produktion von GA19 gehemmt Blätter sichtbar Konzentrations-Zylinder weggelassen

68

69 Gersten-Züchtungsmodell
mit interaktiver Auswahl der Eltern-Individuen und Simulation der Nachkommenschaft

70

71 Rapsmodell (Diplomarbeit Christian Groer)

72 Themen für Studien-, Diplom-, Bachelor-, Masterarbeiten:
Ausbau von GroIMP durch Interpolationsmöglichkeiten und dynamische Animation Erweiterung von GroIMP durch neue Rendering-Möglich-keiten (GPU-Ausnutzung) und Funktionen zur Bilderstellung Einsatz von RGG zur künstlichen Evolution von Pflanzen Implementation von Analysetools, grafischen Editor-funktionen und Schnittstellen in GroIMP (insbes. VRML) Effizientes Graph-Matching für die RGG-Anwendung Interaktives Gerstenmodell mit Genauswahl über http-Protokoll für webbasiertes Arbeiten ....


Herunterladen ppt "Relationale Wachstumsgrammatiken und GroIMP:"

Ähnliche Präsentationen


Google-Anzeigen