Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Struktur-Funktions-Modelle von Pflanzen
- Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 3. 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) Hinweise zu den morphologischen Messungen
3
heute: GroIMP: Einstieg Laden von dtd-Dateien
erste Analysen von Verzweigungssystemen Programmierparadigmen Turtle-Geometrie Ausführung von Turtle-Geometrie-Befehlsfolgen mit GroIMP
4
Die Software GroIMP geschrieben in Java
„Growth-grammar related Interactive Modelling Platform“ geschrieben in Java Download von Sourceforge (free & open source) rgg-Dateien, Projekte (gsz-Dateien) Editor, Entwicklungsumgebung 3D-Fenster 2D- (Graph-) Fenster (versteckt!) Attribut-Ansicht für jedes Objekt Kameraposition Navigation interaktives Modellieren Compiler für die Programmiersprache XL
5
Laden von dtd-Dateien in GroIMP
File / Open: dtd-Datei wählen (öffnen) Verzweigungsstruktur erscheint in der 3D-Ansicht ggf. Kameraeinstellungen ändern Verändern der Datei und speichern Änderung wird im Display sichtbar
6
Einfache Analysen einige Möglichkeiten wurden aus der Vorgängersoftware GROGRA übernommen Panels / RGG Panels / GROGRA functions / Analysis dort: - list of all shoots (erzeugt komplette Liste) - elementary analysis - basic tree parameters - topological analysis (später mehr)
7
Paradigmen der Programmierung
Der Begriff "Programmierparadigma" Paradigma: grundlegende Denkweise, beispielorientierte Vorstellung
8
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
9
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!
10
wurde aufgegriffen von Robert Floyd 1978:
Turing Award Lecture "The Paradigms of Programming" Robert W. Floyd ( )
11
Welche Paradigmen werden nahegelegt
durch Probleme... ... bei der Simulation natürlicher Objekte ? ... bei deren computergrafischer Darstellung ?
12
Ökologie:
13
Ökologie: Organismen
14
Ökologie: Organismen Aufbau beschreiben
15
Ökologie: Verhalten Organismen (unter bestimmten Bedingungen)
Aufbau beschreiben
16
Ökologie: Verhalten Organismen (unter bestimmten Bedingungen)
Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
17
Ökologie: Verhalten Organismen Prozesse (unter bestimmten Bedingungen)
Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen
18
Ökologie: Verhalten Organismen Prozesse (unter bestimmten Bedingungen)
Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen Ablauf berechnen
19
Grafisches System:
20
Grafisches System: Objekte
21
Grafisches System: Objekte (mit Attributen)
22
Grafisches System: Objekte (mit Attributen) regelmäßige Strukturen
23
Grafisches System: Objekte regelmäßige Strukturen Prozesse
(mit Attributen) regelmäßige Strukturen Prozesse
24
Einige wichtige Programmierparadigmen
für numerische Simulation von Prozessen: imperatives Paradigma
25
Einige wichtige Programmierparadigmen
für numerische Simulation von Prozessen: imperatives Paradigma (auch: von-Neumann-Paradigma, Kontrollfluss-Paradigma) John von Neumann ( )
26
imperativ: "Befehls-Programmierung" Computer = ?
27
"Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten.
28
"Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).
29
"Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten. Programm = ?
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).
31
"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: ?
32
"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.
33
"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, ...
34
Beispiel: x = 0; while (x < 100) x = x + 1; Inhalt der Variable x wird verändert Schleife legt Kontrollfluss fest
35
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)!
36
Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt
37
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); }
38
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); }
39
Programmiersprachen, die das imperative Paradigma unterstützen:
Fortran, Pascal, C, ..., Teile von Java, Befehlssprache der Turtle-Geometrie
40
Turtle: zeichnende Schildkröte, die auf Befehle hört
41
Turtle: zeichnende Schildkröte, die auf Befehle hört
42
F0
43
F0
44
F0 RU(90)
45
F0 RU(90)
46
F0 RU(90) F0
47
F0 RU(90) F0
48
F0 RU(90) F0 RU(90) LMul(0.5) F0
49
F0 RU(90) F0 RU(90) LMul(0.5) F0 (später mehr)
50
zurück zum Beispiel: Objekte (mit Attributen)
51
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, ...
52
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)
53
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)
54
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
55
regelmäßige Strukturen
56
Regelbasiertes Paradigma
Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.
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.
58
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
59
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
60
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, ...
61
Beispiel: L-Systeme (Lindenmayer-Systeme)
Regelsysteme zur Ersetzung von Zeichenketten (in Kürze mehr)
62
ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken
63
ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken Regel:
64
ebenfalls regelbasierter Mechanismus:
Graph-Grammatiken Regel: Anwendung:
65
Zusammenfassung: Programmierparadigmen
66
Zusammenfassung: Programmierparadigmen ● imperativ
67
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie
68
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert
69
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert
70
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken
71
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken ● weitere: funktional; nebenläufig; chemisch ...
72
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
73
Synthese: Die Sprache XL
„eXtended L-system language“ Programmiersprache, die parallele Graph-Grammatiken (RGG) einfach verfügbar macht
74
imperativ objektorientiert regelbasiert Java XL
75
Turtle-Geometrie F0 RU(90) F0 RU(90) LMul(0.5) F0
76
(Turtle geometry, "Schildkrötengeometrie")
78
Turtle-Geometrie
83
Turtle-Geometrie in GroIMP
84
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 ]
85
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
86
E-Learning-Aufgaben zum nächsten Mal:
1. Studieren Sie die ersten 3 Kapitel aus „Modellieren mit Grogra V1.1“ StudIP (Lernmodule); auch unter: Einführung Zu dieser CD Wissenschaftliche Einordnung
87
Hausaufgaben (Fortsetzung):
2. Bearbeiten Sie im ILIAS-Lernmodul „Einführung in GroIMP“ (verfügbar über StudIP): - Einführung - Lektionen 1 - 4 - Lektion 23 (beachten Sie, dass das Laden von dtd-Dateien in der aktuellen GroIMP-Version einfacher ist als dort dargestellt)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.