investigacion sistema l
DESCRIPTION
que es el sistema L, ejemplos y comandos del sistema L, métodos para el sistema LTRANSCRIPT
OBJETIVO GENERAL
Investigar y conocer la estructura y funcionalidad del sistema L así como sus
elementos principales y características para poder aplicarlos en ejemplos reales
con un intérprete.
OBJETIVOS ESPECÍFICOS
Conocer ejemplos de aplicación del sistema L
Investigar los diferentes elementos y características del sistema L
Aplicar la forma de resolver el sistema L con ejemplos prácticos
Relacionar la aplicación de un sistema L con los autómatas, enfocándose en
compiladores e intérpretes
LENGUAJESY AUTÓMATAS II
INTRODUCCIÓN
La informática ha seguido desempeñando un papel importante en el estudio de la
morfogénesis, aunque era la introducción de sistemas de Lindenmayer en 1968 lo
que marcó el primer uso no sólo de la potencia de cálculo, también hizo uso de la
informática teórica. Aristid Lindenmayer era un biólogo teórico que propuso
sistemas-L para describir formalmente los patrones de crecimiento de las algas.
Más tarde se amplió para incluir las estructuras de ramificación de las plantas.
Formalmente, un sistema-L es un lenguaje, lo que significa un conjunto de
cadenas que son desarrolladas mediante la aplicación de ciertas reglas. En el
siguiente documento enfocado al sistema de Lindenmayer se hace mención de
sus principales características, funcionalidad y se describe cada uno de sus
elementos. Es importante mencionar que los ejemplos son parte importante de la
investigación puesto que la forma en que funciona el sistema L se debe entender
completamente tanto en ejemplos reales como prácticos.
LENGUAJESY AUTÓMATAS II
¿QUÉ ES?
Los L-systems se basan en la reescritura de un código que genera una estructura
sencilla, sustituyendo una parte de la misma por otra más compleja elaborada a
partir de unas determinadas reglas, de tal manera que a cada paso (iteración), la
estructura aumenta su complejidad. Las reglas de producción de las nuevas partes
pueden ser las mismas que se usaron para crear las partes anteriores, y de esta
forma se pueden crear formas en las cuales cada parte de la misma se parece al
total, lo que se conoce como “autosimilaridad”.
Formalmente, un sistema-L es un lenguaje, lo que significa un conjunto de
cadenas que se realiza mediante la aplicación de ciertas reglas. (Una cadena es
una secuencia de símbolos, el texto de esta página es una cadena, por ejemplo.)
De manera informal, L-sistemas constan de dos piezas importantes:
Un axioma El axioma es el punto de partida, como una semilla.
Conjunto de producciones Son las reglas.
Mediante la aplicación de estas normas, cualquier otra cadena en el idioma puede
ser producido. Cuando las producciones se aplican al axioma, producen más
cadenas que (junto con el axioma) también están en el idioma del L-sistema. Las
reglas se pueden aplicar a cada una de esas cadenas para producir aún más
cadenas que se encuentran en el lenguaje, y así sucesivamente. Las lenguas de
la mayoría de los sistemas-L (las más útiles, de todos modos) contienen un
número infinito de cadenas.
LENGUAJESY AUTÓMATAS II
REGLAS
1. Cuando se aplica la regla al axioma, cada símbolo 'e' en el axioma se sustituye
con una 'i' símbolo. Por lo tanto, el axioma 'paridad' se convierte en 'cerdo'. Esta
nueva cadena 'cerdo' se llama la primera generación del sistema-L, ya que es el
resultado de aplicar las reglas para el axioma de una vez.
2. La segunda generación de este sistema-L es el resultado de aplicar las reglas
de la primera generación. Dado que no existen símbolos 'e' en la primera
generación, no hay nada para la regla para reemplazar. Así, la segunda
generación es también la cadena 'cerdo'. Este sistema-L se resume a
continuación:
3. L-sistemas son más interesantes cuando las reglas son recursivas. Una regla
recursiva es una norma que sustituye a un símbolo con una copia de sí mismo,
más algo extra. Un ejemplo de una regla recursiva es 'e = eie'. La siguiente tabla
muestra las primeras tres generaciones de un sistema-L con esta regla recursiva:
LENGUAJESY AUTÓMATAS II
ELEMENTOS Y COMANDOS
SISTEMA DOL:
Sistemas determinísticos libres de contexto. Estos sistemas se definen mediante
tres elementos:
1. Alfabeto: es el conjunto de caracteres que se van a usar.
2. Axioma: es la cadena inicial, que está formada por uno o más caracteres.
3. Reglas de reescritura: son las reglas que en cada iteración se aplican para
sustituir un carácter por una cadena de uno o más caracteres.
PARA GRAFICAR:
F Dibujar una línea hacia delante de longitud predeterminada.
- Girar hacia la izquierda el ángulo predeterminado.
+ Girar hacia la derecha el ángulo predeterminado.
Ej. Utilizando elementos para graficar en un software gratuito de generación de L-
systems en tres dimensiones creado por Laurens Lapré
4 # nivel de recursión (número de iteraciones)
60 # ángulo predeterminado
LENGUAJESY AUTÓMATAS II
25 # grosor del elemento (en % de la longitud del mismo)
F # axioma
F =F +F- -F+F # reglas de reescritura
@ # Fin del código
COMANDOS L-PARSER:
Comandos de orientación básicos
+ Gira en sentido positivo alrededor del eje z.
+(x) Gira x grados en sentido positivo alrededor del eje z.
- Gira en sentido negativo alrededor del eje z.
-(x) Gira x grados en sentido negativo alrededor del eje z.
& Gira en sentido positivo alrededor del eje y.
&(x) Gira x grados en sentido positivo alrededor del eje y.
^ Gira en sentido negativo alrededor del eje y.
^(x) Gira x grados en sentido negativo alrededor del eje y.
< Gira en sentido positivo alrededor del eje x.
<(x) Gira x grados en sentido positivo alrededor del eje x.
> Gira en sentido negativo alrededor del eje x.
>(x) Gira x grados en sentido negativo alrededor del eje x.
Comandos especiales de orientación
| Gira 180 grados alrededor del eje z.
LENGUAJESY AUTÓMATAS II
% Gira 180 grados alrededor del eje x.
$ Gira el plano formado por los ejes locales x e y hasta la horizontal de tal
forma que el vector z local coincida con el vector z global.
Comandos de movimiento
F Dibujar un segmento hacia delante.
F(x) Dibujar un segmento de longitud x hacia delante.
Z Dibujar medio segmento hacia delante.
Z(x) Dibujar un segmento de longitud x hacia delante.
f Mover una unidad hacia delante.
f(x) Mover x unidades hacia delante.
z Mover media unidad hacia delante.
z(x) Mover x unidades hacia delante.
Comandos de dimensionado
" Multiplica la longitud por 1.1
' Multiplica la longitud por 0.9
"(x) Multiplica la longitud por x (también '(x) )
; Multiplica el ángulo por 1.1
: Multiplica el ángulo por 0.9
:(x) Multiplica el ángulo por x (también ;(x) )
? Multiplica el grosor por 1.4
LENGUAJESY AUTÓMATAS II
! Multiplica el grosor por 0.7
?(x) Multiplica el grosor por x (también !(x))
TIPOS
MÉTODO TORTUGA
La interpretación gráfica más común aplicada a L-Systems se basa en gráficos de
tortuga, que es la más conocida, fue inventado en 1967 por Wally Feurzeig y
Seymorur Papert como una forma amigable para la enseñanza de informática en
los niños.
Al aplicar gráficos de tortuga a sistemas-L, un estado de la tortuga se define como
un cuádruple (x, y, un, c). Las coordenadas cartesianas (x, Y) representan la
posición de la tortuga. El ángulo de un, llamado el encabezamiento, se interpreta
como la dirección en la que se enfrenta a la tortuga. El color c se interpreta como
el lápiz de color que la tortuga actualmente ha presionado a la baja por lo que
cualquier movimiento de la tortuga creará una línea de ese color. Dado el tamaño
del paso d y el incremento del ángulo b, la tortuga puede responder a los símbolos
en una cadena L-sistema de acuerdo con las siguientes instrucciones:
LENGUAJESY AUTÓMATAS II
CURVA DEL DRAGÓN
La curva del dragón es uno de esos fractales, y su aproximación finita se puede
crear con un Sistema-L:
LENGUAJESY AUTÓMATAS II
NORMAS:
Este L-System tiene dos normas: una para la sustitución de símbolos 'F' y otro
para la sustitución de símbolos 'h'. Por lo tanto, tanto "f" y "g" son variables del L-
System. El '+' y '-' símbolos se consideran constantes porque no hay reglas en el
sistema para la sustitución de estos dos símbolos. El axioma del sistema es un
solo símbolo 'f'. Por lo tanto, cuando se crea la primera generación, no se utiliza la
regla de sustitución de símbolos 'h'.
COLORES:
Los rojos y verdes colores en la ayuda de mesa hacen que el proceso de
sustitución fácil de percibir. En cada generación, los nuevos símbolos que resultan
de la sustitución de un símbolo de "f" se muestran en verde, y los nuevos símbolos
que resultan de la sustitución de un símbolo 'h' se muestran en rojo. Cada símbolo
que es más de una generación de edad se muestra en negro. Sólo constantes
pueden ser más de una generación de edad, ya que las variables siempre se
sustituyen en cada generación. Sólo algunos de los '+' y '-' símbolos se muestran
en negro, ya que sólo se trata de más de una generación de edad.
RAMIFICADOS
Con el objetivo de crear ramificaciones, se introducen en el alfabeto dos nuevos
símbolos “[“ y “]” para delimitar una rama, y se dispone una memoria (pila) para
almacenarla y usarla posteriormente.
Ej. Programa
Cada vez que el programa se encuentre con los paréntesis introducirá el contenido
de la pila en el código, y volverá a situar el punto geométrico a partir del cual
continúa el trazado del dibujo en lugar en que se encontraba antes de interpretar
los paréntesis. En la primera iteración la pila está vacía, ya que todavía no hemos
metido nada en ella. Por tanto el programa no introducirá ningún contenido cuando
LENGUAJESY AUTÓMATAS II
lea por primera vez los paréntesis de la penúltima fila, simplemente interpretará el
código que ya existe dentro. No obstante el punto de dibujo sí que retornará a su
posición anterior para dibujar una nueva rama. Al llegar a la última línea se
introducirá en la pila toda la estructura generada en la primera iteración, y se
volverá a incluir entera en el código cada vez que aparezcan los paréntesis. Éste
será el resultado para diferentes iteraciones:
EJEMPLOS
PARA SISTEMA DOL:
Axioma Y
Y → XYX
La primera línea de arriba da el axioma, y las siguientes dos líneas son las
producciones. Para aplicar las producciones, se escanea una cadena que se sabe
que es el lenguaje. En cualquier lugar que se ve un patrón en el lado izquierdo de
la → ,se sustituye por la cadena a la derecha.
_______________________________
a ab b a
En cada paso de iteración cada letra a del código se sustituirá por la cadena ab y
cada b se sustituirá por la letra a. Para comenzar el proceso necesitaremos una
cadena de caracteres inicial (axioma), formada por letras de nuestro alfabeto.
Pongamos que empezamos por la cadena formada únicamente por la letra b.
Comenzamos el proceso de reescritura y obtenemos el siguiente resultado al cabo
de cinco pasos:
LENGUAJESY AUTÓMATAS II
_______________________________
PARA TORTUGA:
Toque la pluma al papel.
Avanzar 1 paso, girar a la izquierda 90 °.
Avanzar 1 paso, girar a la izquierda 90 °.
Avanzar 1 paso, girar a la izquierda 90 °.
Avanzar 1 paso.
En este caso, se ha dibujado un cuadrado.
Volviendo a las cadenas L-sistema, se puede asignar comandos como los
anteriores a los símbolos de nuestro sistema-L. Luego mediante la generación de
una cadena de un cierto orden, también ha descrito las instrucciones para la
elaboración de un cuadro-instrucciones que se pueden llevar a cabo por el método
tortuga, como por ejemplo:
Axioma FX
X → X+YF+
Y → -FX-Y
F → ε
El símbolo ε especial significa la cadena vacía, lo que significa que vamos a borrar
cualquier F de Del resultado cuando volvemos a escribir la cadena. Si la tortuga
LENGUAJESY AUTÓMATAS II
interpreta F en el sentido de "avanzar un paso más con la pluma" y - y + en el
sentido de "girar a la derecha 90 °" y "girar a la izquierda 90 °", respectivamente,
entonces la tortuga dibujará esta foto de la orden 10 cadena:
LENGUAJESY AUTÓMATAS II
CONCLUSIONES
Los sistemas de Lindenmayer son una herramienta muy poderosa, tienen una
gran capacidad expresiva en la simulación de procesos e iteraciones, lo que
representa algunas ventajas sobre la experimentación.
Por otra parte, nos enseñan un nuevo enfoque de trabajo, ya que al partir de una
expresión terminada se busca deducirla regla o la gramática quela produjo
cambiando el paradigma general del conocimiento deductivo por el inductivo que
resulta bastante útil en éste tipo de aplicaciones. Por último el sistema L es
aplicable a cualquier estructura en la que se pueda identificar un patrón básico de
desarrollo o crecimiento y si el modelo construido es adecuado para el problema
que presenta, los resultados pueden explicar mucho del fenómeno.