Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Struktur-Funktions-Modelle von Pflanzen

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur-Funktions-Modelle von Pflanzen"—  Präsentation transkript:

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

2 letztes Mal: Modelldreieck für Pflanzenmodelle
reine Strukturmodelle, Motivation 3 Ebenen der Strukturbeschreibung 2 Arten der statischen Beschreibung - tabellarisch (dtd-Format) - imperativ (turtle geometry) (noch nicht behandelt)  Einstieg in GroIMP (Bedienung)

3 heute: Programmierparadigmen Turtle-Geometrie
Ausführung von Turtle-Geometrie-Befehlsfolgen mit GroIMP

4 Paradigmen der Programmierung
Der Begriff "Programmierparadigma" Paradigma: grundlegende Denkweise, beispielorientierte Vorstellung

5 Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions

6 Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions Paradigmenwechsel: schwierig. Revolution im Denken!

7 wurde aufgegriffen von Robert Floyd 1978:
Turing Award Lecture "The Paradigms of Programming" Robert W. Floyd ( )

8 Welche Paradigmen werden nahegelegt
durch Probleme... ... bei der Simulation natürlicher Objekte ? ... bei deren computergrafischer Darstellung ?

9 Ökologie:

10 Ökologie: Organismen

11 Ökologie: Organismen Aufbau beschreiben

12 Ökologie: Verhalten Organismen (unter bestimmten Bedingungen)
Aufbau beschreiben

13 Ökologie: Verhalten Organismen (unter bestimmten Bedingungen)
Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen

14 Ökologie: Verhalten Organismen Prozesse (unter bestimmten Bedingungen)
Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen

15 Ökologie: Verhalten Organismen Prozesse (unter bestimmten Bedingungen)
Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen Ablauf berechnen

16 Grafisches System:

17 Grafisches System: Objekte

18 Grafisches System: Objekte (mit Attributen)

19 Grafisches System: Objekte (mit Attributen) regelmäßige Strukturen

20 Grafisches System: Objekte regelmäßige Strukturen Prozesse
(mit Attributen) regelmäßige Strukturen Prozesse

21 Programmierparadigmen
für numerische Simulation von Prozessen: imperatives Paradigma

22 Programmierparadigmen
für numerische Simulation von Prozessen: imperatives Paradigma (auch: von-Neumann-Paradigma, Kontrollfluss-Paradigma) John von Neumann ( )

23 imperativ: "Befehls-Programmierung" Computer = ?

24 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten.

25 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).

26 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = ?

27 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen).

28 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: ?

29 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: Elementare Einzelschritte finden und in passende, flexible Reihenfolge bringen.

30 "Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: Elementare Einzelschritte finden und in passende, flexible Reihenfolge bringen. Programmiersprachen, die dieses Paradigma unterstützen: Fortran, Pascal, C, ..., Teile von Java, ...

31 Beispiel: x = 0; while (x < 100) x = x + 1; Inhalt der Variable x wird verändert Schleife legt Kontrollfluss fest

32 Beispiel: x = 0; while (x < 100) x = x + 1; Inhalt der Variable x wird verändert Schleife legt Kontrollfluss fest Beachte: "=" steht hier nicht für math. Gleichheit, sondern für Zuweisung (prozesshaft)!

33 Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt

34 Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch Rneu = f(R, B), Bneu = g(R, B) Anfängerfehler beim Programmieren: for (i = ... ) { R = f(R, B); B = g(R, B); }

35 Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch Rneu = f(R, B), Bneu = g(R, B) Anfängerfehler beim Programmieren: for (i = ... ) { R = f(R, B); B = g(R, B); }

36 Programmiersprachen, die das imperative Paradigma unterstützen:
Fortran, Pascal, C, ..., Teile von Java, Befehlssprache der Turtle-Geometrie

37 Turtle: zeichnende Schildkröte, die auf Befehle hört

38 Turtle: zeichnende Schildkröte, die auf Befehle hört

39 F0

40 F0

41 F0 RU(90)

42 F0 RU(90)

43 F0 RU(90) F0

44 F0 RU(90) F0

45 F0 RU(90) F0 RU(90) LMul(0.5) F0

46 F0 RU(90) F0 RU(90) LMul(0.5) F0 (später mehr)

47 zurück zum Beispiel: Objekte (mit Attributen)

48 Objektorientiertes Paradigma
Computer = Umgebung für virtuelle Objekte Programm = Auflistung von (Objekt-) Klassen, d.h. allgemeiner Spezifikationen von Objekten, die zur Laufzeit des Programms (ggf. mehrfach) erschaffen und wieder vernichtet werden können und miteinander kommunizieren. Programmfindung: Spezifikation der Klassen (Daten und Methoden), die Objektstruktur und -verhalten festlegen. Programmiersprachen: Smalltalk, Simula, C++, Java, ...

49 Klassen (Auto) mit Daten (marke, plaetze) und Methoden (anzeigen)
Beispiel: public class Auto extends Fahrzeug { public String marke; public int plaetze; public void anzeigen() System.out.println("Das Auto ist ein " + marke); System.out.println("Es hat " + plaetze + "Sitze."); } typisch: Klassen (Auto) mit Daten (marke, plaetze) und Methoden (anzeigen)

50 Vererbung von Attributen und Methoden von Ober- an Unterklassen
Beispiel: public class Auto extends Fahrzeug { public String marke; public int plaetze; public void anzeigen() System.out.println("Das Auto ist ein " + marke); System.out.println("Es hat " + plaetze + "Sitze."); } typisch: Klassen (Auto) mit Daten (marke, plaetze) und Methoden (anzeigen)

51 Organ Blatt Blüte Internodium Wurzelsegment Laub- blatt Nadel Grob- WS
Objekthierarchien sind auch in der Biologie sinnvoll zum Beispiel: Organ Blatt Blüte Internodium Wurzelsegment Laub- blatt Nadel Grob- WS Fein- WS

52 regelmäßige Strukturen

53 Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.

54 Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben.

55 Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln

56 Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln Programmfindung: Spezifikation der Regeln

57 Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln Programmfindung: Spezifikation der Regeln Programmiersprachen: L-System-Sprachen, KI-Sprachen, Prolog, ...

58 Beispiel: L-Systeme (Lindenmayer-Systeme)
Regelsysteme zur Ersetzung von Zeichenketten (in Kürze mehr)

59 ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken

60 ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken Regel:

61 ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken Regel: Anwendung:

62 Zusammenfassung: Programmierparadigmen

63 Zusammenfassung: Programmierparadigmen ● imperativ

64 Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie

65 Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert

66 Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert

67 Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken

68 Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken ● weitere: funktional; nebenläufig; chemisch ...

69 Anwendungsschwerpunkte: prozedural: Numerik,
z.B. Lösen von Gleichungssystemen Bsp. Photosynthese; Baumwasserfluss (Darcy-Gesetz = DGL,  diskretisiert, numerisches Lösungsverfahren) regelbasiert: Entwicklung verzweigter Strukturen (lokal 1-D) Bsp. Pflanzen logische Abhängigkeiten Bsp. Wissensbasierte Systeme objektorientiert: Ensembles interagierender Objekte Bsp. Tierindividuen

70 Synthese: Die Sprache XL
„eXtended L-system language“ Programmiersprache, die parallele Graph-Grammatiken (RGG) einfach verfügbar macht

71 imperativ objektorientiert regelbasiert Java XL

72 Turtle-Geometrie F0 RU(90) F0 RU(90) LMul(0.5) F0

73 (Turtle geometry, "Schildkrötengeometrie")

74

75 Turtle-Geometrie

76

77

78

79

80 Turtle-Geometrie in GroIMP

81 Wie man eine Turtle-Befehlsfolge mit GroIMP ausführt
schreiben Sie in eine GroIMP-Projektdatei (oder in eine Datei mit Endung .rgg): protected void init() [ Axiom ==> Turtle-Befehlsfolge ]

82 Beispiel: Zeichnen eines Dreiecks
protected void init() [ Axiom ==> RU(30) F(10) RU(120) F(10) RU(120) F(10) ] siehe Datei sm09_b01.rgg

83 Wiederholung von Abschnitten der Zeichenkette
möglich mit "for" z.B. for ((1:3)) ( A B C ) liefert A B C A B C A B C

84 was ist das Ergebnis der Interpretation von
L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) ) ?

85 L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) )

86

87

88

89

90

91

92

93 anderes Beispiel: for ((1:20)) ( for ((1:36))
( F0 RU(165) F0 RU(165) ) RU(270) )

94 anderes Beispiel: for ((1:20)) ( for ((1:36))
( F0 RU(165) F0 RU(165) ) RU(270) )

95 Erweiterung auf 3D-Grafik:
Turtle-Rotationen um 3 Achsen

96 Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen
left head up

97 Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen
left head up

98 Erweiterung auf 3D-Grafik:
Turtle-Rotationen um 3 Achsen RL RH RU

99 3D-Befehle: 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 mitgeführt wird RV(x) Rotation "nach unten" mit durch x vorgegebener Stärke RG Rotation ganz nach unten (Richtung (0, 0, -1))

100

101 was ist das Ergebnis der Interpretation der Zeichenkette
Beispiel: L(100) D(3) RU(-90) F(50) RU(90) M0 RU(90) D(10) F0 F0 D(3) RU(90) F0 F0 RU(90) F(150) RU(90) F(140) RU(90) M(30) F(30) M(30) F(30) RU(120) M0 Sphere(15) erzeugt was ist das Ergebnis der Interpretation der Zeichenkette L(10) F0 RU(45) F0 RU(45) LMul(0.5) F0 M0 F0 ?

102 Hausaufgaben zum nächsten Mal:
(1) Studieren Sie die ersten 3 Kapitel aus „Modellieren mit Grogra V1.1“ StudIP (Lernmodule: „Modellieren mit Grogra V1.1“) Einführung Zu dieser CD Wissenschaftliche Einordnung (2) Lesen Sie Chapter 1, Section 1.1 – 1.5 (ohne 1.4) im Buch „The Algorithmic Beauty of Plants“ von P. Prusinkiewicz und A. Lindenmayer (online verfügbar, siehe Literaturseite zur Veranstaltung). (= S ohne Abschnitt 1.4).


Herunterladen ppt "Struktur-Funktions-Modelle von Pflanzen"

Ähnliche Präsentationen


Google-Anzeigen