# Iteriertes Funktionensystem

Ein iteriertes Funktionensystem (IFS) ist eine Menge ${\mathcal {F}}$ von Funktionen, die denselben Raum $M$ als Definitions- und Wertebereich haben und unter Verknüpfung abgeschlossen sind. Also
    ${\mathcal {F}}\circ {\mathcal {F}}\subset {\mathcal {F}}\;$ d. h. $\;\forall f,g\in {\mathcal {F}}:\;f\circ g\in {\mathcal {F}}.$
Iterierte Funktionensysteme dienen meist der Konstruktion von Fraktalen, die dann auch als IFS–Fraktale bezeichnet werden. Bekannte Vertreter dieser Klasse von Fraktalen sind das Sierpinski-Dreieck und die Koch-Kurve wie auch die Grenzmengen von Lindenmayer-Systemen.
* Sierpinski-Dreieck
* Koch-Kurve
* Sierpinski-Teppich
* Drachen-Fraktal
Diese Art der Fraktalkonstruktion wurde 1981 von John Hutchinson erfunden und später von Michael F. Barnsley mit seinem Buch Fractals Everywhere popularisiert. Dort gab Barnsley auch den Collage-Satz an, welcher die Grundlage der fraktalen Bildkompression bildet. Diese Art, Bilder effizient mittels Datenstrukturen zu kodieren, hat sich jedoch nie richtig durchsetzen können und wird heute im Wesentlichen nur noch als Hybridverfahren in Kombination mit einer Wavelet-Transformation untersucht.

## Invariante, selbstähnliche Mengen

Um für ein IFS Eigenschaften ableiten zu können, muss die Funktionenmenge zusätzliche Voraussetzungen erfüllen. Üblicherweise, wenn von IFS gesprochen wird, werden diese Voraussetzungen stillschweigend als gegeben angenommen. Diese Voraussetzungen sind
* dass das IFS endlich erzeugt ist, also endlich viele Funktionen enthält, aus welchen die anderen durch wiederholte (iterierte) Verknüpfung zusammengesetzt werden können,
* dass der Raum $M$ ein vollständiger metrischer Raum mit Metrik $d$ ist, und
* dass jede Funktion des IFS kontraktiv bezüglich $d$ ist. Mit Voraussetzung 1. reicht es, dies von den Erzeugenden zu verlangen.
Unter diesen Umständen gibt es eine invariante, selbstähnliche Menge $X\subseteq M$.
* Die Teilmenge $X$ ist invariant, wenn sie von jeder Funktion des IFS wieder in sich abgebildet wird.
* Die Teilmenge $X$ ist selbstähnlich, wenn jeder Punkt aus $X$ in der Bildmenge $F(X)$ einer Funktion $F\in {\mathcal {F}}$ liegt.
Selbstähnliche Mengen haben meist keine ganzzahlige Hausdorff-Dimension und werden dann auch als Fraktal bezeichnet, deshalb die Bezeichnung IFS-Fraktal. Man könnte auch weitergehend den Begriff der Selbstähnlichkeit durch die Forderung der Existenz eines IFS definieren.

## Existenz und Eindeutigkeit der invarianten Menge

Mathematisch gesehen handelt es sich bei der Theorie der iterierten Funktionensysteme, wie auch die Begrifflichkeit vermuten lässt, um eine direkte Anwendung des banachschen Fixpunktsatzes, wobei mehrere Funktionen statt einer betrachtet werden und, statt eines eindeutigen Fixpunktes, sich eine invariante, meist fraktale, Teilmenge des Raumes $M$ ergibt. Zur Illustration wird meist das zweidimensionale Einheitsquadrat $M=[0,1]\times [0,1]$ mit dem euklidischen Abstand gewählt.
Wir beginnen also mit einer endlichen Menge von Funktionen eines kompakten metrischen Raumes $(M,d)$ in sich selbst:
    ${\mathcal {F}}_{1}:=\{\phi _{1},\dots ,\phi _{r}\colon M\to M\},$
von denen wir voraussetzen, dass es eine Kontraktionskonstante $0<c<1$ gibt mit
    $\forall x,y\in M,\phi \in {\mathcal {F}}_{1}:\;d(\phi (x),\phi (y))\leq c\,d(x,y)$
Durch Iteration setzen wir ${\mathcal {F}}_{1}$ zu einem IFS ${\mathcal {F}}$ fort, es sei
    ${\mathcal {F}}_{n+1}:={\mathcal {F}}_{1}\circ {\mathcal {F}}_{n}:=\{\phi \circ F:\;\phi \in {\mathcal {F}}_{1},\;F\in {\mathcal {F}}_{n}\}$
und erhalten schließlich
    ${\mathcal {F}}:=\bigcup _{n=1}^{\infty }{\mathcal {F}}_{n}$.
Satz: Sind alle Funktionen $\phi _{1},\dots ,\phi _{r}$ in ${\mathcal {F}}_{1}$ kontraktiv, so gibt es eine invariante Teilmenge $X$, welche die Fixpunktgleichung
    $X=\bigcup _{i=1}^{r}\phi _{i}(X)$
erfüllt. Für diese gilt:
* Zu jedem $F\in {\mathcal {F}}$ gibt es genau einen Fixpunkt. Die invariante Menge $X$ ist der topologische Abschluss der Menge aller Fixpunkte
       $\{x\in M|\;\exists F\in {\mathcal {F}}:\,x=F(x)\}$.
* Ist $y\in M$ ein beliebiger Punkt, so gilt für den Abstand dieses Punktes
       $d(X,F(y))\leq c_{F}\,d(X,y)$ für jedes $F\in {\mathcal {F}}$.
    Es gilt die Abschätzung $c_{F}\leq c^{m}$, falls $F$ eine $m$-fache Verkettung $F\in {\mathcal {F}}_{m}$ der Ausgangsfunktionen ist.
* Damit kann $X$ durch Iteration einer beschränkten Ausgangsmenge
       $X_{0}\subset M,\quad X_{n+1}=\bigcup _{i=1}^{r}\phi _{i}(X_{n})$
    beliebig gut angenähert werden.
Der Beweis des Satzes erfolgt dadurch, dass man aus dem metrischen Raum $(M,d)$ einen neuen Raum konstruiert, dessen „Punkte“ genau die kompakten Teilmengen von $M$ sind. Hierauf kann man eine Metrik definieren (die Hausdorff-Metrik), bezüglich der dieser Raum vollständig und die Abbildung $X\mapsto \bigcup _{i=1}^{r}\phi _{i}(X)$ eine Kontraktion ist. Dadurch wird der banachsche Fixpunktsatz anwendbar.

## Approximation der Grenzmenge
### Chaosspiel

Die Gestalt der fraktalen Menge $X$ kann durch ein so genanntes Chaosspiel visualisiert werden. Dabei wird zunächst ein Fixpunkt ${\vec {x}}$ von ${\vec {x}}=\phi _{1}({\vec {x}})$ aufgesucht und auf diesen in zufälliger Reihenfolge die definierenden Funktionen angewandt. Als Algorithmus kann dies wie folgt aussehen:
* Weise 100 mal hintereinander ${\vec {x}}:=\phi _{1}({\vec {x}})$ zu
* Wiederhole beliebig oft
** Wähle zufällig ein $i\in \left\{1,\dots ,r\right\}$
** Weise ${\vec {x}}:=\phi _{i}({\vec {x}})$ zu
** Zeichne den Punkt $x$.
Anmerkung:
* Es ist in den ersten, blinden, Iterationen unwesentlich, welche Funktion gewählt wird, da in jedem Schritt der Abstand zur fraktalen Menge $X$ reduziert wird. Ist z. B. die Kontraktionskonstante $c=0{,}5$ und die Grundmenge $M$ das Einheitsquadrat, welches mit 1024×1024 Pixeln dargestellt wird, so ist bereits nach 12 blinden Iterationen der Fehler unter die Pixelgröße gesunken.
* Es werden im Allgemeinen bessere Darstellungen erzielt, wenn die Wahrscheinlichkeit des Aufrufs jeder der Funktionen $\phi _{i}$ in etwa proportional zum Volumen von $\phi _{i}(M)$ ist.

### Rekursion

Eine weitere Möglichkeit der Darstellung, vorzugsweise für die affinen Fraktale, ist die rekursive Approximation der Menge $X$. Dies wird meist anschaulich mittels eines Fotokopierers erklärt: Man macht verschiedene Verkleinerungen eines Ausgangsbildes, fixiert diese nach Vorschrift auf einem neuen Blatt und benutzt dieses dann als Ausgangsbild des nächsten Schrittes.
Auch die Turtle-Grafik, die zur Konstruktion der L-Systeme verwendet wird, folgt einer ähnlichen Idee.
Als Algorithmus braucht man dazu eine rekursiv aufrufbare Funktion, welche die Zuordnung $F(n)=\bigcup _{i=1}^{r}\phi _{i}(F(n-1))$ bei einer beliebigen Menge $F(0)$ realisiert. Die Implementierung benötigt einen Stackspeicher, in welchem das jeweils aktuelle Koordinatensystem als affine Koordinatentransformationen festgehalten wird. Damit ergibt sich als Algorithmus
$Figur(n)$:
* Falls $n=0$
** zeichne die Basisfigur (z. B. eine Strecke, einen Buchstaben, ein schwarzes Rechteck)
* sonst:
** Für $i:=1$ bis $r$
*** Lege aktuelles Koordinatensystem auf Stack ab
*** Transformiere das aktuelle Koordinatensystem entsprechend $\phi _{i}$
*** Rufe $Figur(n-1)$ auf
*** Stelle Koordinatensystem vom Stack wieder her
Fraktal:
* Rufe $Figur(10)$ auf (10 als Beispiel)

## Beispiele für iterierte Funktionensysteme
### Affine Abbildungen

Die erzeugenden Funktionen des IFS seien affine Abbildungen des zweidimensionalen Einheitsquadrates in sich selbst. Jede Funktion $\phi _{k}$ ist gegeben durch eine 2×2–Matrix $A_{k}$ und einen Verschiebungsvektor $b_{k}$.
Das Koch-Fraktal wird z. B. von folgendem System von 2 Funktionen erzeugt:
* $\phi _{1}{\binom {x}{y}}={\frac {1}{\sqrt {3}}}{\begin{pmatrix}\cos 30^{\circ }&\sin 30^{\circ }\\\sin 30^{\circ }&-\cos 30^{\circ }\end{pmatrix}}\,{\binom {x}{y}}$,
* $\phi _{2}{\binom {x}{y}}=-{\frac {1}{\sqrt {3}}}{\begin{pmatrix}-\cos 30^{\circ }&\sin 30^{\circ }\\\sin 30^{\circ }&\cos 30^{\circ }\end{pmatrix}}{\binom {x}{y}}+{\frac {1}{\sqrt {3}}}{\binom {\cos 30^{\circ }}{\sin 30^{\circ }}}$
Die klassische Methode zur Erzeugung der Koch-Kurve benutzt 4 Funktionen
* $\phi _{1}(x,y)=\left({\frac {x}{3}},{\frac {y}{3}}\right)$
* $\phi _{2}(x,y)=\left({\frac {2+x-{\sqrt {3}}y}{6}},{\frac {{\sqrt {3}}x+y}{6}}\right)$
* $\phi _{3}(x,y)=\left({\frac {3+x+{\sqrt {3}}y}{6}},{\frac {{\sqrt {3}}-{\sqrt {3}}x+y}{6}}\right)$
* $\phi _{4}(x,y)=\left({\frac {2+x}{3}},{\frac {y}{3}}\right)$
Das rechtwinklige Sierpinski-Dreieck wird erzeugt von
* $\phi _{1}(x,y)=\left({\frac {x}{2}},{\frac {y}{2}}\right)$
* $\phi _{2}(x,y)=\left({\frac {x+1}{2}},{\frac {y}{2}}\right)$
* $\phi _{3}(x,y)=\left({\frac {x}{2}},{\frac {y+1}{2}}\right)$

## Collagen

Grundlage für die Begeisterung für solche IFS–Fraktale war das Collage–Theorem von Barnsley. Es besagt, dass jede kompakte Menge – jede Gestalt – durch ein IFS–Fraktal beliebig genau angenähert werden kann. Die Grundlage dafür sind folgende Beobachtungen:
1. Jede endliche Menge ist ein IFS–Fraktal. Die zugehörigen Funktionen sind diejenigen konstanten Funktionen, welche den gesamten Raum auf jeweils einen der endlich vielen Punkte abbilden.
2. Jede kompakte Menge $K$ hat für jedes $\varepsilon >0$ ein $\varepsilon$-Netz, wird also durch endlich viele Kugeln vom Radius $\varepsilon$ überdeckt.
    ⇒ Das IFS–Fraktal der Kugelmittelpunkte enthält die Ausgangsmenge in einer $\varepsilon$-Umgebung
Anschaulicher: Haben wir in einem 100×100–Pixelbild eine Figur von 500 schwarzen Pixelpunkten, so können wir das Bild um den Faktor 100 auf die Größe eines Pixels verkleinern und mit diesem einen schwarzen Punkt dann wieder die Figur malen, indem wir ihn auf jeden der zugehörigen 500 Pixel abbilden. Diese Vorgehensweise ist bei weitem nicht optimal, hier wäre das einfache Speichern der Positionen der 500 Pixel einfacher. Aber wenn wir für den gleichen Zweck mit nur fünf Abbildungen auskämen, wäre eine Datenreduktion erzielt.
Wir sind auch nicht auf einfache Schwarzweißbilder eingeschränkt. Bei einem Graustufenbild kann der Grad der Schwärzung als dritte Koordinate des Punktes aufgefasst werden, es ergibt sich eine kompakte Fläche im dreidimensionalen Raum, auf welche wieder das Collage–Theorem angewendet werden kann. Mit systematischen Verfahren zur Konstruktion eines IFS–Fraktals mit möglichst wenigen Funktionen befasst sich die Fraktale Bildkompression sowie die Fraktale Tonkompression.