Investigacion Sistema L

17
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

description

que es el sistema L, ejemplos y comandos del sistema L, métodos para el sistema L

Transcript of Investigacion Sistema L

Page 1: Investigacion Sistema L

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

Page 2: Investigacion Sistema L

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.

Page 3: Investigacion Sistema L

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.

Page 4: Investigacion Sistema L

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:

Page 5: Investigacion Sistema L

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

Page 6: Investigacion Sistema L

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.

Page 7: Investigacion Sistema L

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

Page 8: Investigacion Sistema L

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:

Page 9: Investigacion Sistema L

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:

Page 10: Investigacion 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

Page 11: Investigacion Sistema L

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:

Page 12: Investigacion Sistema L

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

Page 13: Investigacion Sistema L

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:

Page 14: Investigacion Sistema L

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.