# Sistema iterativo de funciones

Un sistema iterativo de funciones (SIF o IFS acrónimo del inglés Iterated function system) es una construcción matemática usada para representar de manera simple ciertos conjuntos fractales que presenten autosimilitud. Muchos fractales clásicos autosimilares, autoafines y autoconformes pueden representarse como el único conjunto compacto invariante por un sistema iterativo de funciones contractivas.

## Definición

Un sistema iterativo de funciones (SIF) sobre $\mathbb {R} ^{n}$ (se puede generalizar a cualquier espacio métrico completo) se define a partir de un conjunto finito de contracciones $\{F_{1},\dots ,F_{n}\}$ con $n\geq 2$. El carácter contractivo de estas funciones implica que:
   $|F_{i}(x)-F_{i}(y)|\leq r_{i}|x-y|,\quad r_{i}<1$
Si sobre un conjunto se aplican reiteradamente las anteriores aplicaciones contractivas (iterativamente), lo que resultará en un sistema iterativo de funciones (SIF).
Estas aplicaciones inducen una aplicación sobre el conjunto de partes del espacio métrico:
   $F:{\mathcal {P}}(X)\rightarrow {\mathcal {P}}(X),\qquad F(A)=\bigcup _{i=1}^{k}F_{i}(A)$
Una propiedad fundamental de los SIFs es que existe un "punto fijo" o que es un conjunto compacto E tal que:
   $E=\bigcup _{i=1}^{n}F_{i}(E)$
Observamos que esta condición nos indica que el conjunto es igual a la unión de copias de sí mismo de menor tamaño. Por esa razón, frecuentemente ese conjunto es un conjunto fractal y su dimensión de Hausdorff D puede determinarse fácilmente, ya que es la única solución del sistema:
   $\sum _{i=1}^{n}r_{i}^{D}=1$
El conjunto de Cantor puede obtenerse como el "punto fijo" de un sistema iterativo de funciones. Dadas las dos funciones contractivas:
   $F_{1},F_{2}:\mathbb {R} \to \mathbb {R} ,\qquad F_{1}(x):={\frac {x}{3}},F_{2}(x):={\frac {x}{3}}+{\frac {2}{3}}$
De hecho, el conjunto de Cantor es el único conjunto compacto tal que:
   $K=F_{1}(K)\cup F_{2}(K)$
Y por tanto su dimensión fractal puede calcularse fácilmente:
   $r_{1}^{D}+r_{2}^{D}=\left({\frac {1}{3}}\right)^{D}+\left({\frac {1}{3}}\right)^{D}=2\left({\frac {1}{3}}\right)^{D}=1\quad \Rightarrow \quad D={\frac {\ln 2}{\ln 3}}\approx 0,630\dots$

## Distancia de Hausdorff

Si consideran todos los conjuntos compactos $\scriptstyle {\mathcal {K}}$ de un espacio topológico se puede definir un espacio métrico $\scriptstyle ({\mathcal {K}},d_{H})$ formado por dichos conjuntos y con la distancia de Hausdorff como función distancia de dicho espacio.
Puede comprobarse que el espacio métrico $\scriptstyle ({\mathcal {K}},d_{H})$ es un espacio completo. Todo sistema iterativo de funciones permite definir una contracción en el espacio métrico anterior:
   $F:{\mathcal {K}}\to {\mathcal {K}},\qquad F(K)=\cup _{i=1}^{n}F_{i}(K)$
Esta función es la restricción a conjuntos compactos de la contracción inducida por el SIF. Como toda contracción presenta un punto fijo, la aplicación anterior presenta un "punto fijo" o atractor, es decir, un conjunto compacto invariante por la aplicación anterior. El atractor o punto fijo de la aplicación anterior puede representarse como:
   $\forall K\in {\mathcal {K}}:K_{0}=\cap _{k=1}^{\infty }F_{i}(K),\quad K_{0}=F(K_{0})$
O equivalentemente como límite de la sucesión:
   $(K,F(K),F(F(K)),\dots )$
Dicho conjunto compacto usualmente es un conjunto fractal. La autosimilitud de K, una de las características de los fractales, se deriva de la condición de "punto fijo":
   $K_{0}=F(K_{0})\quad \Leftrightarrow \quad K_{0}=F_{1}(K_{0})\cup f_{2}(K)\cup \cdots \cup f_{k}(K)$,
en la que observamos que K estará formado por unión de k copias de sí mismo, posiblemente deformadas, y de menor tamaño (si las aplicaciones son contractivas), que pueden solaparse o no.

## Dimensión del atractor de un SIF

Todo SIF tiene un atractor, o conjunto compacto invariante por el SIF que frecuentemente es un objeto fractal. La dimensión de dicho atractor puede calcularse de manera sencilla si se satisface la condición del conjunto abierto (CCA), es decir, que exista un conjunto abierto no vacío $U\subset \mathbb {R} ^{n}$ tal que:
   $\cup _{i=1}^{k}F_{i}(U)\subset U$
Muchos fractales clásicos como la curva de Koch o la alfombra de Sierpiński satisfacen la CCA. Si las funciones del SIF son semejanzas, para el cálculo de la dimensión se tiene el siguiente teorema:
    Si $\scriptstyle K_{0}$ el atractor de una familia o SIF de semejanzas contractivas $\scriptstyle \{F_{1},\dots ,F_{n}\}$ donde la constante de Lipschitz para $\scriptstyle F_{i}$ es $\scriptstyle r_{i}<1$ y si se satisface la condición de conjunto abierto CCA entonces se tiene la siguiente relación entre las dimensiones fractales (de Hausdorff-Besicovitch y Minkowski-Bouligand):
          $\dim _{HB}K_{0}=\dim _{MB}K_{0}=D\,$
    siendo la medida de Hausdorff finita y no nula para esa dimensión, y además se cumple que:
          $\sum _{i=1}^{n}r_{i}^{D}=r_{1}^{D}+\dots +r_{n}^{D}=1$
Esta última expresión permite calcular la dimensión fractal (D) del atractor del SIF compuesto de n aplicaciones contractivas de factor de contracción r$_i$, en caso de que estas no provoquen solapamiento o más generalmente satisfagan la CCA.

## El problema inverso: Teorema del collage

Este teorema nos permite encontrar un SIF cuyo atractor esté todo lo próximo que deseemos (en el sentido de la distancia de Hausdorff) o coincida con un conjunto prefijado C.
Para hallar dicho SIF necesitamos encontrar un número suficiente de aplicaciones contractivas tales que la unión (collage) de las imágenes del conjunto bajo estas aplicaciones esté lo suficientemente próxima o coincida con el propio conjunto.
Como ejemplo, para conseguir un SIF cuyo atractor corresponda al conjunto fractal de la figura son necesarias 3 transformaciones:
* La que lleva el conjunto total en el triángulo amarillo:
    $F_{1}(x,y)=\left({\frac {x}{2}},{\frac {y}{2}}\right)$
* La que lleva el conjunto total en el triángulo azul:
    $F_{2}(x,y)=\left({\frac {x}{2}}+1,{\frac {y}{2}}\right)$
* La que lleva el conjunto total en el triángulo rojo:
    $F_{3}(x,y)=\left({\frac {x}{2}}+{\frac {1}{2}},{\frac {y}{2}}+{\frac {1}{2}}\right)$

## Algoritmos de representación
### Algoritmo determinista

Simplemente construye los sucesivos conjuntos {A, F(A), F(F(A)),...}. Como dicha sucesión converge al atractor del SIF independientemente del conjunto A de partida, puede usarse cualquier valor inicial, con frecuencia una caja cuadrada.

### Algoritmo de iteración aleatoria

En este algoritmo, también llamado "juego del caos", un punto que describe una danza aparentemente aleatoria va perfilando progresivamente la estructura del atractor. Para ello, se elige un punto x$_0$ del espacio métrico y se forma una sucesión del siguiente modo: en cada paso se escoge aleatoriamente y con igual probabilidad
   $x_{n}\in \{F_{1}(x_{k-1}),\cdots ,F_{k}(x_{k-1})\}$
Se demuestra que la sucesión así formada "converge" al atractor del SIF.
Este algoritmo permite una generalización en que se asignan distintas probabilidades p$_i$ a la hora de escoger cada f$_i$. Diferentes probabilidades permiten obtener diversas texturas y densidades, útiles para el modelado de escenas naturales. Un SIF en que cada función f$_i$ va acompañada de un número positivo p$_i$ de modo que $p_{1}+\cdots +p_{n}=1$ se denomina SIF con probabilidades.