<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lindenmayer-System</id>
	<title>Lindenmayer-System - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lindenmayer-System"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lindenmayer-System&amp;action=history"/>
	<updated>2026-06-09T06:37:49Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Lindenmayer-System&amp;diff=63458&amp;oldid=prev</id>
		<title>imported&gt;Docosanus: /* Literatur */ + 2 Links: Heinz-Otto Peitgen,  Dietmar Saupe</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lindenmayer-System&amp;diff=63458&amp;oldid=prev"/>
		<updated>2025-05-19T14:07:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Literatur: &lt;/span&gt; + 2 Links: Heinz-Otto Peitgen,  Dietmar Saupe&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Fractal weeds.jpg|mini|Künstliche Pflanzen, die durch 3D-L-Systeme generiert wurden]]&lt;br /&gt;
&lt;br /&gt;
Bei den &amp;#039;&amp;#039;&amp;#039;Lindenmayer-&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;L-Systemen&amp;#039;&amp;#039;&amp;#039; handelt es sich um einen [[Mathematik|mathematischen]] [[Formalisierte Theorie|Formalismus]], der 1968 von dem ungarischen [[Theoretische Biologie|theoretischen]] [[Biologe]]n [[Aristid Lindenmayer]] als Grundlage einer [[axiom]]atischen [[Theorie]] [[Ontogenese|biologischer Entwicklung]] vorgeschlagen wurde. In jüngerer Zeit fanden L-Systeme Anwendung in der [[Computergrafik]] bei der Erzeugung von [[Fraktal]]en und in der realitätsnahen [[Modellierung]] von [[Pflanzen]].&lt;br /&gt;
&lt;br /&gt;
Das wesentliche Prinzip von L-Systemen besteht in der sukzessiven Ersetzung von Einzelteilen eines einfachen Objektes mittels sogenannter [[Produktionsregel]]n. Diese Ersetzungen können [[rekursiv]] durchgeführt werden. Damit gehören L-Systeme zu den sogenannten [[Ersetzungssystem]]en.&lt;br /&gt;
&lt;br /&gt;
Die bekanntesten Ersetzungssysteme sind solche, die auf Zeichenketten basieren. Besonders [[Noam Chomsky]]s Arbeiten aus den 1950ern über [[formale Grammatik]]en stießen auf großes Interesse und befruchteten die Forschung in der [[Theoretische Informatik|theoretischen Informatik]]. Im Gegensatz zu den sequentiellen Ersetzungsregeln in Chomskys Grammatiken finden Ersetzungen in L-Systemen parallel statt, analog zu den gleichzeitig stattfindenden [[Zellteilung]]en in [[Vielzeller|mehrzelligen Organismen]], die der Anstoß zur Entwicklung der L-Systeme waren.&lt;br /&gt;
&lt;br /&gt;
L-Systeme sind hervorragend geeignet, Darstellungen von Fraktalen zu erzeugen. Dazu werden die in den Rekursionen des L-Systems erzeugten Zeichenketten in direkt ausführbare Befehle eines Systems, welches die [[Turtle-Grafik]] realisiert, umgesetzt, z.&amp;amp;nbsp;B. die Programmiersprache [[Logo (Programmiersprache)|Logo]].&lt;br /&gt;
&lt;br /&gt;
== Struktur eines L-Systems ==&lt;br /&gt;
&lt;br /&gt;
Ein L-System ist ein [[Tupel|Quadrupel]] &amp;lt;math&amp;gt;G = \left(V, S, \omega, P\right)&amp;lt;/math&amp;gt;, wobei&lt;br /&gt;
&lt;br /&gt;
* V die Zeichen enthält, die als Variable angesehen werden sollen.&lt;br /&gt;
* S die Zeichen enthält, die als Konstanten angesehen werden sollen. Die Zeichen aus V und S bilden das Alphabet des L-Systems.&lt;br /&gt;
* ω ein Wort über dem Alphabet ist, welches als Startwort oder Axiom des L-Systems bezeichnet wird.&lt;br /&gt;
* P eine Menge von geordneten Paaren aus Wörtern über dem Alphabet ist, welche Ersetzungsregeln definieren. Ist das erste Wort eines jeden Paares ein einzelner Buchstabe aus V, und zu jeder Variablen eine Ersetzungsregel bekannt, so spricht man von einem kontextfreien L-System, sonst von einem [[Kontextsensitive Grammatik|kontextsensitiven]].&lt;br /&gt;
&lt;br /&gt;
== Kontextfreie L-Systeme ==&lt;br /&gt;
&lt;br /&gt;
Um ein L-System zu erzeugen, wird eine Tiefe n festgelegt, d.&amp;amp;nbsp;h., es werden Ersetzungsschritte wiederholt. In jedem Ersetzungsschritt wird das aktuelle Wort ω Zeichen für Zeichen abgearbeitet und jedes Zeichen durch das neue, in den Ersetzungsregeln festgelegte Wort ersetzt. Hierbei ist zu beachten, dass Zeichen, für die keine Ersetzungsregel definiert ist, nicht ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Kontextfreie L-Systeme (auch 0L-Systeme genannt) enthalten Produktionen p, die auf ein Anfangswort ω (auch Axiom genannt) n-mal angewandt werden. Die Produktionen ordnen dabei maximal einem Zeichen ohne Beachtung des Kontextes ein Wort zu. Wird für ein Zeichen keine Regel angegeben, wird im Allgemeinen die Identität als triviale Ersetzung des Zeichens durch sich selbst angenommen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für Systeme ohne Speicher ===&lt;br /&gt;
[[Datei:Koch Snowflake 7th iteration.svg|mini|Kochsche Schneeflocke]]&lt;br /&gt;
[[Datei:11_Order_Dragon_Curve.svg|mini|[[Drachenkurve]]]]&lt;br /&gt;
&lt;br /&gt;
Viele der bekannteren Fraktale, wie das [[Sierpinski-Dreieck]] oder die [[Koch-Kurve]], können mittels L-Systemen über dem Alphabet &amp;lt;math&amp;gt;V={F}, S={+,-}&amp;lt;/math&amp;gt; dargestellt werden. Es gibt nur eine einzige Ersetzungsregel für das Symbol &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;. Im Artikel [[Fraktal]] sind einige Beispiele aufgelistet. So hat das Kochsche Schneeflockenfraktal das Startwort &amp;lt;math&amp;gt;\omega=F--F--F&amp;lt;/math&amp;gt; und die Ersetzungsregel &amp;lt;math&amp;gt;F \to F+F--F+F&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zur Interpretation eines solchen L-Systems mittels Turtle-Grafik benötigt man einen Stauchungsfaktor &amp;lt;math&amp;gt;s&amp;lt;1&amp;lt;/math&amp;gt; und einen Winkel &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;. Mittels des Stauchungsfaktors wird die Weglänge bei Rekursionstiefe &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; als &amp;lt;math&amp;gt;s^n&amp;lt;/math&amp;gt; bestimmt. Die Schildkröte besitzt keinen Speicher und führt die Symbole des Alphabets als folgende Kommandos sofort aus&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; : Bewegung nach vorn um Länge &amp;lt;math&amp;gt;s^n&amp;lt;/math&amp;gt; und Zeichnung&lt;br /&gt;
* &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; : Drehung nach links, gegen Uhrzeigersinn, um den Winkel &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; : Drehung nach rechts, im Uhrzeigersinn, um den Winkel &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Winkel &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; und der Faktor &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; sollten so abgestimmt sein, dass &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; mit Streckenlänge &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; und das Ersetzungswort von &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; zur Streckenlänge &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; bei gleichem Ausgangspunkt ebenfalls einen gemeinsamen Endpunkt haben.&lt;br /&gt;
&lt;br /&gt;
Einige Fraktale wie die [[Drachenkurve]] benötigen zwei Ersetzungsregeln, als variablen Teil des Alphabets wählt man z.&amp;amp;nbsp;B. &amp;lt;math&amp;gt;V=\left\{R,L\right\}&amp;lt;/math&amp;gt; und legt für dieses Beispiel &amp;lt;math&amp;gt;\omega=R&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;P=\left\{(R \to +R--L+), (L \to -R++L-)\right\}&amp;lt;/math&amp;gt; fest. Beide Symbole werden in der Darstellung wie &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; behandelt, d.&amp;amp;nbsp;h. als zeichnenden Schritt nach vorn.&lt;br /&gt;
&lt;br /&gt;
Man kann diese Art der Hinzunahme von Ersetzungsregeln beliebig steigern, oder auch weitere Symbole mit anderen Aktionen definieren:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; : Bewegung nach vorn um Länge &amp;lt;math&amp;gt;s^n&amp;lt;/math&amp;gt; ohne Zeichnung, variables Symbol,&lt;br /&gt;
* &amp;lt;math&amp;gt;|&amp;lt;/math&amp;gt; : Drehung um 180 Grad, konstantes Symbol&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für Systeme mit Speicher ===&lt;br /&gt;
&lt;br /&gt;
Es wird ein [[Last In – First Out|LIFO]]-Stack für Koordinatensysteme eingeführt. Jede Koordinatentransformation&lt;br /&gt;
besteht aus einer Drehung, die durch einen Winkel parametrisiert werden kann, und einer Verschiebung.&lt;br /&gt;
Das Alphabet wird um die konstanten Symbole &amp;#039;&amp;#039;[&amp;#039;&amp;#039; und &amp;#039;&amp;#039;]&amp;#039;&amp;#039; erweitert, welche folgende Bedeutung haben:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;[&amp;#039;&amp;#039; : Lege das aktuelle Koordinatensystem auf dem Stack ab&lt;br /&gt;
* &amp;#039;&amp;#039;]&amp;#039;&amp;#039; : Stelle das oberste Koordinatensystem des Stacks als aktuelles wieder her.&lt;br /&gt;
&lt;br /&gt;
Innerhalb eines Klammerpaars kann also ein im Leeren endender Zweig gezeichnet werden. Diese Möglichkeit wurde zur Darstellung fraktaler Bäume eingeführt.&lt;br /&gt;
&lt;br /&gt;
== Kontextsensitive L-Systeme ==&lt;br /&gt;
Im Unterschied zu kontextfreien L-Systemen werden bei den Produktionen auch die Zeichen oder Zeichenfolgen vor oder nach dem zu ersetzenden Zeichen betrachtet. Dabei werden die Kontextbedingungen üblicherweise so notiert, dass der linke Kontext durch &amp;lt; vom zu ersetzenden Zeichen abgetrennt wird, und der rechte Kontext entsprechend durch &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Zeichensatz = { a, b }; Produktionen = { b &amp;lt; a → b, b &amp;gt; b → a }; ω = {baaa} (ist also links von a ein b, wird das a durch b ersetzt. Analog wird ein b zu a, wenn rechts davon ein b steht.)&lt;br /&gt;
&lt;br /&gt;
: n=0 → baaa&lt;br /&gt;
: n=1 → bbaa&lt;br /&gt;
: n=2 → abba&lt;br /&gt;
: etc.&lt;br /&gt;
&lt;br /&gt;
== Parametrische L-Systeme ==&lt;br /&gt;
Im Rahmen der parametrischen L-Systeme werden zusätzlich zu einzelnen Zeichen auch den Zeichen zugeordnete Ziffern betrachtet. Diese Parameter lassen sich nicht nur explizit in den Produktionsregeln verändern, sondern man kann auch konditionale Produktionen erstellen, die nur greifen, wenn bestimmte Bedingungen erfüllt sind, ähnlich den kontextsensitiven L-Systemen.&lt;br /&gt;
Beispiel: Sei &amp;lt;math&amp;gt;F(l)&amp;lt;/math&amp;gt; ein Ast der Länge &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;. Die Produktionen &amp;lt;math&amp;gt;F(l) : l&amp;lt;10 \to  F(l+1)&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;F(l) : l \ge 10 \to  F(l+1)F(1)&amp;lt;/math&amp;gt; lassen den Ast nun wachsen und ab einer bestimmten Länge (l=10) neue Äste entstehen.&lt;br /&gt;
&lt;br /&gt;
== Pseudocode ==&lt;br /&gt;
Sei &amp;lt;math&amp;gt;L=(\Sigma,R,w_0)&amp;lt;/math&amp;gt;. Dann beschreibt folgender Pseudocode das Vorgehen des L-Systems.&lt;br /&gt;
&lt;br /&gt;
: 1. Setze aktuelle Zeichenkette auf &amp;lt;math&amp;gt;w_0&amp;lt;/math&amp;gt;&lt;br /&gt;
: 2. Wiederhole unendlich oft:&lt;br /&gt;
: 2.1 Gib aktuelle Zeichenkette aus&lt;br /&gt;
: 2.2 Setze neue Zeichenkette auf &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
: 2.3 Wiederhole für jedes Zeichen &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; in der aktuellen Zeichenkette von links nach rechts:&lt;br /&gt;
: - Wenn möglich, wähle eine Regel &amp;lt;math&amp;gt;r \in R&amp;lt;/math&amp;gt;, deren linke Seite &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; matcht.&lt;br /&gt;
: - Wenn ein solches &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; existiert, dann hänge die rechte Seite von &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; ans Ende der neuen Zeichenkette an.&lt;br /&gt;
: - Wenn ein solches &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; nicht existiert, dann hänge &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; an das Ende der neuen Zeichenkette an.&lt;br /&gt;
: 2.4 Mache die neue Zeichenkette zur aktuellen Zeichenkette.&lt;br /&gt;
&lt;br /&gt;
* Zwei hintereinanderfolgende Ausgaben des Pseudocodes &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;w_{i+1}&amp;lt;/math&amp;gt; schreibt man als &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt; → &amp;lt;math&amp;gt;w_{i+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Existiert ein &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt;, so dass &amp;lt;math&amp;gt;w_0&amp;lt;/math&amp;gt; → ... → &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; gilt, so nennt man &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; &amp;#039;&amp;#039;ableitbar&amp;#039;&amp;#039;.&lt;br /&gt;
* Existiert ein ableitbares &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt;, so dass für &amp;#039;&amp;#039;&amp;#039;alle&amp;#039;&amp;#039;&amp;#039; Regeln aus &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; gilt: &amp;lt;math&amp;gt;w_0&amp;lt;/math&amp;gt; → ... → &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; → &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; → &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; → ... → &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt;, so sagt man, &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; &amp;#039;&amp;#039;konvergiert&amp;#039;&amp;#039; gegen &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Formale Sprache]]n&lt;br /&gt;
* [[Selbstorganisation]]&lt;br /&gt;
* [[Selbstähnlichkeit]]&lt;br /&gt;
* [[Musterbildung]]&lt;br /&gt;
* [[L-System-Invertierungs-Problem]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Henning Fernau: &amp;#039;&amp;#039;Iterierte Funktionen, Sprachen und Fraktale&amp;#039;&amp;#039;. B. I. Wissenschaftsverlag, Mannheim u. a. 1994, ISBN 3-411-17011-5, (&amp;#039;&amp;#039;Aspekte komplexer Systeme&amp;#039;&amp;#039; 2).&lt;br /&gt;
* Grzegorz Rozenberg, Arto Salomaa: &amp;#039;&amp;#039;The Mathematical Theory of L-Systems&amp;#039;&amp;#039;. Academic Press, New York NY u. a. 1980, ISBN 0-12-597140-0, (&amp;#039;&amp;#039;Pure and Applied Mathematics&amp;#039;&amp;#039; 90).&lt;br /&gt;
* [[Przemysław Prusinkiewicz]], [[Aristid Lindenmayer]]: &amp;#039;&amp;#039;The Algorithmic Beauty of Plants&amp;#039;&amp;#039;. Springer Verlag, New York NY u. a. 1990, ISBN 3-540-97297-8, (&amp;#039;&amp;#039;The virtual Laboratory&amp;#039;&amp;#039;).&lt;br /&gt;
* Elaine Rich: &amp;#039;&amp;#039;Automata, Computability and Complexity: Theory and Applications.&amp;#039;&amp;#039; Prentice Hall, Upper Saddle River (NJ) u.&amp;amp;nbsp;a. 2008, ISBN 978-0-13-228806-4.&lt;br /&gt;
* [[Heinz-Otto Peitgen]], Hartmut Jürgens, [[Dietmar Saupe]]: &amp;#039;&amp;#039;Chaos, Bausteine der Ordnung&amp;#039;&amp;#039;. Springer, Berlin u. a. 1994, ISBN 978-3608954357.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commons|L-system|L-System}}&lt;br /&gt;
* [http://www.matheprisma.de/Module/Lmayer/index.htm Matheprisma – Lindenmayersysteme] (»Iterationen in Ersetzungssystemen oder: wie Kröten Pflanzen zeichnen«)&lt;br /&gt;
* [http://olli.informatik.uni-oldenburg.de/lily/LP/start.html Lily: Eine interaktive Lernumgebung zum Thema]&lt;br /&gt;
* [http://www.kevs3d.co.uk/dev/lsystems/ Demo in HTML5 zum Generieren von Lindenmayer-Systemen] (englisch)&lt;br /&gt;
* [http://weitz.de/lindenmayer/ Lindenmayer systems] (Programm zum Erzeugen, Bearbeiten und Visualisieren von Lindenmayer-Systemen)&lt;br /&gt;
*[https://www.p-roocks.de/lsystem/ lsystem] (Interaktiver Generator für Lindenmayer-Systeme, Open Source, verfügbar für Linux und Windows, englisch)&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4074246-5|LCCN=sh/85/073593}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Theorie formaler Sprachen]]&lt;br /&gt;
[[Kategorie:Fraktale Geometrie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Docosanus</name></author>
	</entry>
</feed>