L-Systeme nicht sensitive Bäume

Ähnliche Dokumente
LINDENMAYER SYSTEME Astrid Koennecke

Lindenmayer-Systeme. Zusammenfassung des Vortrags im Proseminar Theoretische Informatik. Benjamin Aram Berendsohn 11.

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =

Biograe Grundlagen Arten Anwendung Problem. L-Systeme. Fabian Trattnig, Georg Messner, Benedikt Huber. 25. Jänner 2008

regelbasiertes Programmierparadigma:

Erinnerung an Kapitel 6: Szenengraphen als Möglichkeit der Modellierung komplexer Strukturen (vgl. Übung, VRML)

Mathematische Rekursion

FRAKTALE GEOMETRIE SS DEISSLER Lindenmayersysteme Einführung-2000.doc. Lindenmayer-Systeme. Das Programm L-Sys. R.Deißler

Ökosystemanalyse am Beispiel des Kohlenstoffkreislaufes (OG.1)

L-Systeme (Lindenmayer-Systeme)

Theoretische Informatik I

Romanesco-Blumenkohl

Entwurf und Implementation eines Baukastens zur 3D-Pflanzenvisualisierung in GroIMP mittels Instanzierungsregeln

4 Programmieren in Java III

Formale Systeme, Automaten, Prozesse

Turtlegrafik in Logo

1.5 Turing-Berechenbarkeit

Formale Systeme, Automaten, Prozesse

Theoretische Grundlagen der Informatik

3.2.b Turtle-Graphik. male einen 10cm langen Strich (und warte kurz) Der Datentyp Turtle

1.5 Turing-Berechenbarkeit

Formale Sprachen. Script, Kapitel 4. Grammatiken

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Fraktale und Lindenmayer-Systeme Zusammenfassung des Vortrages

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Wie "bastelt" man sich einen Kalkül?

Lindenmayer-Systeme: Fraktale rekursiv zeichnen

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 11: Fraktale

Ogden s Lemma: Der Beweis (1/5)

Mathematica kompakt. Einführung-Funktionsumfang-Praxisbeispiele von Dipl.-Math.Christian H.Weiß. Oldenbourg Verlag München

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Lexikalische Programmanalyse der Scanner

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Alphabet, formale Sprache

Lexikalische Analyse, Tokenizer, Scanner

Grundlagen der Programmierung

Kapitel IV Formale Sprachen und Grammatiken

Kontextfreie Sprachen

Theoretische Informatik II

Informatik III - WS07/08

Kontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue

Tutorial zum Umgang mit Scratch

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Algorithmische Geometrie: Einstimmung

Die mathematische Seite

Algorithmen in Zellularautomaten. Thomas Worsch Institut für Theoretische Informatik Karlsruher Institut für Technologie

Einführung in die Programmierung für NF. Arrays

Berechenbarkeit. Script, Kapitel 2

Mathematik erzeugt grafische Kunstwerke und zauberhafte Videos: Was sind Fraktale?

StarLogo Befehle. Erzeugt number Schildkröten. Erzeugt number Schildkröten, die jeweils die list of commands ausführen. Entfernt alle Schildkröten.

Das Postsche Korrespondenzproblem

Ein Anforderungskatalog für die Gestaltung von Laubbäumen in 3D

Grundlagen der Theoretischen Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Kontextfreie Sprachen

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Mathematik in der Biologie

Universität Bielefeld. Elementare Geometrie. Sommersemester Rückblick. Stefan Witzel

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

12. Felder (Arrays) II. Caesar-Code, Strings, Lindenmayer-Systeme, Mehrdimensionale Felder, Vektoren von Vektoren, Kürzeste Wege

Objektorientierte Programmierung

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

5.2 Endliche Automaten

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Theoretische Informatik I

Transkript:

L-Systeme nicht sensitive Bäume Vortrag im Rahmen des Seminars Artifical Life und Multiagentsysteme bei Prof.Dr.W.Kurth von Michael Henke SS03 am 20.05.2003

Gliederung Anwendungsgebiete, Mächtigkeit L-Systeme: die Grundlagen, die Arbeitsweise Turtle-Grafiken, als graphische Interpretation Erweiterungen der L-Systeme Beispiel: Zweigentwicklung Rotbuche Modellierung konkreter botanischer Objekte Wie kommt man zum L-System? Einschränkungen, Grenzen

Anwendungsgebiete Hauptanwendung Pflanzenmodellierung (z.b. bei Kräutern, Gräsern, Blüten, Sträuchern, Bäumen) realistische Nachbildung Selbstbeeinflussung, Umweltinteraktion Aber auch bei Webmustern, fraktaler Musik, Konfiguration von Rechnersystemen, Architektur von Gebäuden sowie Robotik Zell- und Bakterienwachstum und Ausbreitung Tierverhalten, Nahrungsaufnahme, Vermehrung

Aristid Lindenmayer(1925-1989) Botaniker an der University of Utrecht (NL) Suchte eine Methode zur Beschreibung von einfachen Zellorganismen (fadenförmigen Algen) 1968 erste Veröffentlichungen zum Thema Mathemathical models for cellular interactions in development PartI and II

L-Systeme Formalismus Spezielle Grammatiken L d (Σ, α, Ρ) Σ, das Alphabet, eine nicht leer, endliche Menge von Zeichen α, einem Startwort aus Σ+ P, eine Menge von Produktionsregeln der Form: Symbol Folge von Symbolen; P 3 Σ x Σ* anzuwenden parallel auf alle Symbole der Zeichenkette zum Zeitpunkt t in einen neue Zeichenkette zu Zeit t+1 Zeichen, auf die keine Regeln anwendbar sind, werden unverändert übernommen.

Beispiel Alphabet: Σ = {A, B, F, +, -} Startwort: α = A Produktionsregeln: Ρ = {(A A+FB+F), (B -FA-FB)} L-System d {{A,B,F,+,-}, A, {(A A+FB+F), (B -FA-FB)}} Generationenübergang: - beginnend bei i = 0, dem Startwort entsprechend, gemäß den Produktionsregeln

Ergebnis nach der 10 Iteration Drachen-Kurve (Umgebungsvariablen: n = 10; l = 1; δ = 90 )

Turtle-Graphik Die Spur der Bewegungen einer Schildkröte als grafische Interpretation

Das Turtle-Modell Ein Stift mit folgenden Eigenschaften Vektoren (2D oder 3D) eindeutigen Position P = (px, py, pz) aktuelle Richtung H = (hx, hy, hz) Methoden F.. Vorwärtsbewegung entsprechend H +,-.. Drehungen Zahlenwerte (Umgebungsvariablen) Farbe, Länge, Schreibstärke, Drehwinkel

Hauptmethoden einer Turtle-Klasse Vor(), Vor(s) Zurueck(), Zurueck(s) DreheRechts(), DreheRechts(δ) DreheLinks(), DreheLinks(δ) StiftHoch(), StiftRunter() SetzeXXX(x) Bewegt den Stift vorwärts, um den Defaultwert bzw. um s Bewegt den Stift rückwärts, um den Defaultwert bzw. um s Dreht den Stift nach rechts, um den Defaultwinkel bzw. um δ Dreht den Stift nach links, um den Defaultwinkel bzw. um δ Hebt bzw. senkt den Stift Farbe, Länge, Winkel, Stiftstärke,

Beispiel void maketree(turtle mturtle, float s) { if (s < 1) return; Point2D p = mturtle.getstiftposition(); float w = mturtle.getstiftrichtung(); mturtle.drehelinks(45); mturtle.vor(s); maketree(mturtle, s/2); mturtle.setstiftposition(p); mturtle.setstiftrichtung(w); mturtle.dreherechts(45); mturtle.vor(s); maketree(mturtle, s/2); }.. Turtle mturtle = new Turtle(xStart, ystart); maketree(mturtle, 5);..

Interpretation Eingabe: Zeichenkette (meist vom L-System erzeugt) Ausgabe: geometrische Interpretation, Visualisierung, 2D/3D-Modell Arbeitsweise: Beginnend bei S[0], dem ersten Zeichen, lineare Interpretation jedes einzelnen Zeichens des Strings Zeichen, für die keine Interpretationsvorschrift vorhanden ist, werden ignoriert Interpretation (der Grundsymbole): F.. Sichtbare Vorwärtsbewegung der Länge l f.. Unsichtbare Vorwärtsbewegung der Länge l +.. Drehe links um Winkel δ -.. Drehe rechts um Winkel δ

Veranschaulichung Umgebungsvariablen: l = 1; δ = 90 a) Interpretation der Symbole: F, +, - b) Interpretation eines Strings

Grammatikerweiterungen Zufallswerte, Variablen- und Konstantendefinitionen: \var i 0, \const x 10 Funktionsdefinition/aufrufe: sin(x), func(a,b) Bedingungen: if (i<5 && j>=3), (i<5) Stack (Verzweigungen) : [ ] Multiskalarität: / Interpretationsregeln: ## Mathematischen Ausdrücke: (i*1.1+a/3) Schleifen: &(i<5) B Einfügen von Kugeln, Quadern, Kegeln, Kurven, Freiflächen Abkürzende Schreibweisen: RU45, RH10, RL-90.. Drehanweisungen L5.. Länge auf 5 setzen P10.. Farbe auf 10 setzen volle Mächtigkeit einer höheren Programmiersprache

Stack (Verzweigungen) ermöglicht Verzweigungen, wie sie bei Pflanzen häufig vorkommen [.. Lege den aktuellen Zustand der Turtle auf dem Stack ab. ].. Hole das oberste Element vom Zustandsstack und mache es zum aktuellen Zustand der Turtle. Die Turtle bewegt sich in diesen Zustand, ohne daß eine Linie gezogen wird. Turtle-Interpretation eines geklammerten Wortes

Turtle-Interpretationen von geklammerten Systemen System Iterationen Drehwinkel Startwort Produktionsregeln a 5 25.7 F F F[+F]F[-F]F b 4 22.5 F F FF-[-F+F+F]+[+F-F-F] c 5 22.5 X X F-[[X]+X]+F[+FX]-X F FF

Wachstumsgrammatiken Zur Simulation des natürlichen Wachstums von Pflanzen, Bäumen, Zellen usw. Benutzt z.b. zur Ertragsberechnung eines Flurstückes in der Forstwirtschaft Laubmenge und Holzvolumen eines Baumes Stoffverteilung/bewegung im Baum; z.b. Wasser, Chlorophyll, Zucker Umweltbeeinflussungen wie Schattenwurf, Wasseraufnahme

Zweigentwicklung Rotbuche 0 \angle 5, 1 \var l1 table 8 9 11 14 17 16 14, 2 \var l2 table 40 44 44 40 31 20 9, 3 \var l3 table 10 11 12 15 17 15 13, 4 \var l4 table 24 35 38 35 27 17 7, 5 \var i index, 6 \var x1 normal 40 5, 7 \var len length, 8 \const bl 35, 9 \const minlf 15, 10 \const cf 0.2, 11 \const secgr 1.6, 12 \axiom veg 1 2, 13 \axiom shoot 1-8, 14 veg # bud, 15 bud # leaf, 16 leaf #, 17 bud ## P12 [RU-90 F1 S(0)] RU90 F1 18 S(1) RU-132 F3.8 S(2) f-0.8 19 RU88 F4 S(3) f-0.8 RU-84 F4.7 20 S(4) RU52 F7.2 S(5) C(0,2) C(2,4) 21 C(5,3) C(3,1), 22 leaf ## P2 D1 F12 D0 [S(0) [RU58 f(15) S(1)] [RU53 23 f(30) S(2)] &(7)<F(l1(i)) [RU(55-4*i) F(l2(i)) 24 S(i+3)] > F11 S(10)] [RU-45 f(15) S(18)] 25 &(7)<f(l3(i)) [RU(4*i-55) F(l4(i)) S(17-i)]> 26 &(18)<C(i, i+1)> C(18, 0), 27 shoot # L(bl) D+1.2 m(1, 9), 28 (j<2) m(j, n) # m(j+1, n), 29 (j=2 && n>1) m(j, n) # L*0.68 30 &(n-1)<-a(0) RH180 - [RU(x1) ang m(1, if(i<(n-1)/2,i/2, 31 i-1))] L*1.1 > - L*0.5 a(0) RH180 - L*1.7 m(1, n), 32 (j=2 && n<=1) m(j, n) # L*0.4 a(0) L*2 m(1, 1), 33 ang # RU10, 34 a(t) # a(t+0.5), 35 a(t) ## Dl+(secgr * t) F, 36 m(j, n) ## Ll(len/bl + 1/(cf*len+1/minlf)) Dl1 O(veg, j),

Entwicklungsschritte 1 bis 6

Entwicklungsschritte 7 und 8

Modellierung konkreter botanischer Objekte Analyse des Objektes in mehreren Zuständen in der Natur (Beobachtung) und / oder im Labor Auf nichtformalem Weg die Regeln aufstellen Regeln und Anfangszustand in ein L-System verwandeln Simulation laufen lassen, Erzeugung eines Wortes Resultat(wort) in eine graphische Ausgabe übersetzen (Interpretation) Das Bild (bzw. mehrere Bilder von verschiedenen Stadien) mit dem Verhalten des wirklichen Objektes vergleichen Evtl. Korrekturen vornehmen und die erforderlichen Schritte wiederholen

Beispiel Fichte

Analyse des Modells Auszugsweise an den Allgemeinen Charakteristiken veranschaulicht Anzahl der Wachstumseinheiten Probe A (gemessen) 3009 Modell (Durchschnitt aus 5 Modell-Läufen) 3140 Länge des gesamten Astes 2379 mm 2285 mm Radius des gesamten Astsystems 1473 mm 1352 mm Summe aller Wachstumseinheiten Längen Mittlerer Verzweigungswinkel 161.7 m 56.4 161.0 m 57.0 Box-Dimension (der Projektion) 1.7868 1.7877

Einschränkungen, Grenzen Kontrolle nur durch Vorgänger-Symbol (linear) oder stochastisch Fehlende Interaktion innerhalb des modellierten Objektes oder mit der Umwelt Determinismus oder stochastische Modelle ohne kausale Komponenten Beschränkung auf ortsfeste Organismen und auf diskrete Entwicklungsschritte

Literatur / Software [P. Prusinkiewicz et al. (1990)] Przemyslaw Prusinkiewicz, Aristid Lindenmayer: "The Algorithmic Beauty Of Plants", Springer Verlag, 1990 [Prusinkiewicz et al. (1989)] Przemyslaw Prusinkiewicz, James Hanan: "Lindenmayer systems, fractals and plants", Springer 1989 Fortgeschrittene Softwaresysteme zur Umsetzung:. cpfg / LStudio http://www.cpsc.ucalgary.ca/projects/bmv/index.html. Grogra http://www.uni-forst.gwdg.de/~wkurth/grogra.html. LParser http://home.wanadoo.nl/laurens.lapre/lparser.htm

Noch FRAGEN?