miércoles, 22 de diciembre de 2010

Fractales Sintácticos

Un fractal es un objeto semigeométrico cuya estructura básica, fragmentada o irregular, se repite a diferentes escalas.Muchas estructuras naturales son de tipo fractal.

Un fractal natural es un elemento de la naturaleza que puede ser descrito mediante la geometría fractal. Las nubes, las montañas, el sistema circulatorio, las líneas costeras o los copos de nieve son fractales naturales. Esta representación es aproximada, pues las propiedades atribuidas a los objetos fractales ideales, como el detalle infinito, tienen límites en el mundo natural.

Se implementó una aplicación para poder generar este tipo de fractales, usando el sistema L-System, aqui una breve explicación

Un sistema-L o un sistema de Lindenmayer es una gramática formal (un conjunto de reglas y símbolos) principalmente utilizados para modelar el proceso de crecimiento de las plantas; puede modelar también la morfología de una variedad de organismos. Los sistemas-L también pueden utilizarse para generar fractales auto-similares como los sistemas de función iterada.

Estructura de un sistema-L

La naturaleza recursiva de las reglas de los sistemas-L conduce a la autosemejanza y por tanto facilita la descripción de formas tipo fractales. Los modelos de plantas y formas orgánicas de aspecto natural son fáciles de definir: al incrementarse el nivel de recursión la forma crece lentamente y se vuelve más compleja. Los sistemas de Lindenmayer también son polulares en la generación de vida artificial.

Las gramáticas de los sistemas-L son muy similares a las gramática semi-Thue (véase la Jerarquía de Chomsky). Los sistemas-L son también conocidos con el nombre de sistemas L paramétricos, definidos como un conjunto

G = {V, S, ω, P},

donde

  • V (el alfabeto) es un conjunto de símbolos que contiene elementos que pueden ser remplazados (variables)
  • S es un conjunto de símbolos que contiene elementos que se mantiene fijos (constantes)
  • ω es una cadena de símbolos de V que definen el estado inicial del sistema (inicio o axioma)
  • P es un conjunto de reglas o producciones que definen la forma en la que las variables pueden ser remplazadas por combinaciones de constantes y otras variables. Una producción está formada por dos cadenas — el predecesor y el sucesor.

Las reglas gramaticales de los sistemas-L se aplican iterativamente a partir de un estado inicial.

Un sistema-L es libre de contexto si cada producción se refiere sólo a un símbolo individual y no a sus vecinos. Cuando la aplicación de una regla depende también de sus vecinos, se dice que el sistema-L es sensitivo al contexto.

El sistema es determinista si existe exactamente una producción para cada símbolo. Un sistema-L determinista y libre de contexto es generalmente denominado un sistema-L0D. Cuando hay varias producciones y cada una de ellas es escogida con una probabilidad determinada entonces es un sistema-L estocástico.

  • Bueno ahora que ya sabemos de que trata esto de los fractales y el sistema L, se hizo la implementación de una aplicación la cual de manera gráfica, ayudaria a generar cualquier fractal definido en el sistema DoL.
Por ejemplo :

Curva de Koch

Hojuela de Koch dibujada con un sistema-L.

Una variante de la curva de Koch que utiliza sólo ángulos rectos.

variables : F
constantes : + −
inicio : F
reglas : (F → F+F−F−F+F)

Aquí, F significa "dibujar hacia adelante", + significa "vuelta de 90° hacia la izquierda", y - significa "vuelta de 90° hacia la derecha".


n=0: cuadrado de Koch - 0 iteraciones
           F
n=1: cuadrado de Koch - 1 iteración
           F+F-F-F+F
n=2: cuadrado de Koch - 2 iteraciones
           F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
n=3: cuadrado de Koch - 3 iteraciones
           F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F


Los datos son ingresados al programa, ademas se escoge el número de iteraciones
y el vector direccion.


Y los resultados son los siguientes :


El programa esta hecho en el entorno de MATLAB , usando el lenguaje M, propio del mismo, el link de descarga es este Fractales Sintacticos, el código del programa sera liberado en las proximas semanas.

Gerardo Reaño Ortega
Ing. Infórmatica
Universidad Nacional de Trujillo







No hay comentarios: