Sistemas iterados de semejanzas
Veamos brevemente cómo un algoritmo probabilista puede producir un patrón fractal.
Empecemos con las semejanzas
z -> f1(z) y z-> f2(z).
El algoritmo funciona de la siguiente manera: Empecemos con un punto arbitrario z0 del plano. Escojamos aleatoriamente una de las transformaciones f1(z) o f2(z) de modo equiprobable (probabilidad 0.5 para cada una) y apliquémosla a z0. Dibujemos el punto resultante y procedamos iterativamente con este nuevo punto un gran número de veces.
Un proceso similar se puede aplicar a una lista de transformaciones f1, f2,... fk. Un programa de ordenador para efectuar este proceso se puede describir como sigue:
z=startpoint;
n=number of iterations;
repeat n-times: (
f=a random transformation from f_1, f_2,... f_k;
z=f(z);
draw(z);
)
Es una buena práctica no dibujar los primeros 100 puntos de este proceso, ya que pueden no estar suficientemente cerca del fractal que se obtiene con el proceso.
En el siguiente applet se puede observar el proceso. El número de iteraciones se puede ajustar con el cursor. El fractal emerge cuando el número de transformaciones es grande.
Incluso las trasformaciones más simples crean patrones interesantes. Consideremos, por ejemplo, la transformación
fp(z):=(z+p)/2
que transforma z en el punto medio del segmento de extremos z y p. El ejemplo que sigue muestra el proceso que se obtiene con tres de estas aplicaciones: fa(z), fb(z), fc(z).
El fractal que aparece es el llamado triángulo de Sierpinski.