Articulo de referencia

Sistema L

Los árboles del sistema L forman modelos realistas de patrones naturales. Un sistema L o sistema de Lindenmayer es un sistema de reescritura paralela y un tipo de gramática form...

Los árboles del sistema L forman modelos realistas de patrones naturales.

Un sistema L o sistema de Lindenmayer es un sistema de reescritura paralela y un tipo de gramática formal . Un sistema L consta de un alfabeto de símbolos que se pueden usar para formar cadenas , un conjunto de reglas de producción que expanden cada símbolo en una cadena de símbolos más grande, una cadena inicial de " axioma " a partir de la cual comenzar la construcción y un mecanismo para traducir las cadenas generadas en estructuras geométricas. Los sistemas L fueron introducidos y desarrollados en 1968 por Aristid Lindenmayer , un biólogo teórico y botánico húngaro de la Universidad de Utrecht . [ 1 ] Lindenmayer usó sistemas L para describir el comportamiento de las células vegetales y para modelar los procesos de crecimiento del desarrollo de las plantas . Los sistemas L también se han usado para modelar la morfología de una variedad de organismos [ 2 ] y se pueden usar para generar fractales autosimilares .

Orígenes

'Malas hierbas', generadas mediante un sistema L en 3D.

Como biólogo, Lindenmayer trabajó con levaduras y hongos filamentosos , y estudió los patrones de crecimiento de diversos tipos de bacterias , como la cianobacteria Anabaena catenula . Originalmente, los sistemas L se idearon para proporcionar una descripción formal del desarrollo de organismos multicelulares tan simples y para ilustrar las relaciones de vecindad entre las células vegetales. Posteriormente, este sistema se amplió para describir plantas superiores y estructuras ramificadas complejas.

Estructura del sistema L

La naturaleza recursiva de las reglas del sistema L conduce a la autosimilitud y, por lo tanto, las formas fractales son fáciles de describir con un sistema L. Los modelos de plantas y las formas orgánicas de aspecto natural son fáciles de definir, ya que al aumentar el nivel de recursión la forma crece gradualmente y se vuelve más compleja. Los sistemas de Lindenmayer también son populares en la generación de vida artificial .

Las gramáticas de sistemas L son muy similares a la gramática semi-Thue (véase la jerarquía de Chomsky ). Los sistemas L ahora se conocen comúnmente como sistemas L paramétricos , definidos como una tupla.

G = ( V , ω, P ),

dónde

  • V (el alfabeto ) es un conjunto de símbolos que contiene elementos que pueden ser reemplazados ( variables ) y elementos que no pueden ser reemplazados ("constantes" o "terminales").
  • ω ( inicio , axioma o iniciador ) es una cadena de símbolos de V que define el estado inicial del sistema.
  • P es un conjunto de reglas de producción o producciones que definen cómo se pueden reemplazar las variables con combinaciones de constantes y otras variables. Una producción consta de dos cadenas: el predecesor y el sucesor . Para cualquier símbolo A que pertenezca al conjunto V y que no aparezca en el lado izquierdo de una producción en P, se asume la producción identidad A → A; estos símbolos se denominan constantes o terminales . (Véase Ley de identidad ).

Las reglas de la gramática del sistema L se aplican iterativamente a partir del estado inicial. Se aplican simultáneamente tantas reglas como sea posible en cada iteración. El hecho de que cada iteración emplee tantas reglas como sea posible diferencia un sistema L de un lenguaje formal generado por una gramática formal , que aplica solo una regla por iteración. Si las reglas de producción se aplicaran solo una a la vez, se generaría simplemente una cadena en un lenguaje, y todas esas secuencias de aplicaciones producirían el lenguaje especificado por la gramática. Sin embargo, hay algunas cadenas en algunos lenguajes que no se pueden generar si la gramática se trata como un sistema L en lugar de una especificación de lenguaje. Por ejemplo, [ 3 ] supongamos que hay una regla S→SS en una gramática. Si las producciones se hacen una a la vez, entonces a partir de S, podemos obtener primero SS, y luego, aplicando la regla de nuevo, SSS. Sin embargo, si todas las reglas aplicables se aplican en cada paso, como en un sistema L, entonces no podemos obtener esta forma sentencial. En cambio, el primer paso nos daría SS, pero el segundo aplicaría la regla dos veces, lo que nos daría SSSS. Por lo tanto, el conjunto de cadenas producidas por un sistema L a partir de una gramática dada es un subconjunto del lenguaje formal definido por la gramática, y si consideramos que un lenguaje se define como un conjunto de cadenas, esto significa que un sistema L dado es, en efecto, un subconjunto del lenguaje formal definido por la gramática del sistema L.

Un sistema L es independiente del contexto si cada regla de producción se refiere únicamente a un símbolo individual y no a sus vecinos. Por lo tanto, los sistemas L independientes del contexto se especifican mediante una gramática independiente del contexto . Si una regla depende no solo de un único símbolo, sino también de sus vecinos, se denomina sistema L sensible al contexto .

Si existe exactamente una producción para cada símbolo, se dice que el sistema L es determinista (un sistema L determinista libre de contexto se conoce popularmente como sistema D0L ). Si existen varias, y cada una se elige con cierta probabilidad en cada iteración, entonces se trata de un sistema L estocástico .

El uso de sistemas L para generar imágenes gráficas requiere que los símbolos del modelo hagan referencia a elementos de un dibujo en la pantalla del ordenador. Por ejemplo, el programa Fractint utiliza gráficos de tortuga (similares a los del lenguaje de programación Logo ) para generar imágenes en pantalla. Interpreta cada constante de un modelo de sistema L como un comando de tortuga.

Ejemplos de sistemas L

Ejemplo 1: algas

El sistema L original de Lindenmayer para modelar el crecimiento de las algas.

variables  : AB
constantes  : ninguna
axioma  : A
Reglas  : (A → AB), (B → A)

lo cual produce:

n = 0  : A
n = 1  : AB
n = 2  : ABA
n = 3  : ABAAB
n = 4  : ABAABABA
n = 5  : ABAABABAABAAB
n = 6  : ABAABABAABAABAABAABABA
n = 7  : ABABABAABAABABAABABAABAABABAABAAB

Ejemplo 1: algas, explicación

n=0: Un comienzo (axioma/iniciador) / \ n=1: AB, la única A inicial generada en AB por la regla (A → AB), la regla (B → A) no se pudo aplicar. /| \ n=2: ABA, antigua cadena AB con todas las reglas aplicadas, A se convirtió de nuevo en AB, la antigua B se convirtió en A / | | | \ n=3: ABAAB observe que todas las A producen una copia de sí mismas en primer lugar, luego una B, que a su vez... / | | | \ | \ \ n=4: ABAABABA ... en una A una generación después, comenzando a generar/repetir/recurrir entonces

El resultado es la secuencia de palabras de Fibonacci . Si se cuenta la longitud de cada cadena, se obtiene la secuencia de números de Fibonacci (omitiendo el primer 1, debido a la elección del axioma):

1 2 3 5 8 13 21 34 55 89 ...

Si no se desea omitir el primer 1, se puede utilizar el axioma B. Esto colocaría un nodo B antes del nodo superior ( A ) del gráfico anterior.

Para cada cadena, si se cuenta la k -ésima posición desde el extremo izquierdo de la cadena, el valor se determina por si un múltiplo de la proporción áurea cae dentro del intervalo.(k1,k){\displaystyle (k-1,k)}. La razón entre A y B también converge a la proporción áurea.

Este ejemplo produce el mismo resultado (en términos de la longitud de cada cadena, no de la secuencia de A y B ) si la regla ( AAB ) se reemplaza por ( ABA ), excepto que las cadenas están reflejadas.

Esta secuencia es una secuencia localmente catenativa porqueGRAMO(norte)=GRAMO(norte1)GRAMO(norte2){\displaystyle G(n)=G(n-1)G(n-2)}, dóndeGRAMO(norte){\displaystyle G(n)}es la n -ésima generación.

Ejemplo 2: árbol fractal (binario)

  • variables  : 0, 1
  • constantes : "[", "]"
  • axioma  : 0
  • reglas  : (1 → 11), (0 → 1[0]0)

La forma se construye alimentando recursivamente el axioma a través de las reglas de producción. Cada carácter de la cadena de entrada se compara con la lista de reglas para determinar con qué carácter o cadena reemplazarlo en la cadena de salida. En este ejemplo, un '1' en la cadena de entrada se convierte en '11' en la cadena de salida, mientras que ' [ ' permanece igual. Aplicando esto al axioma de '0', se obtiene:

Se puede observar que esta cadena crece rápidamente en tamaño y complejidad. Esta cadena se puede representar como una imagen utilizando gráficos de tortuga , donde a cada símbolo se le asigna una operación gráfica que la tortuga debe realizar. Por ejemplo, en el ejemplo anterior, a la tortuga se le pueden dar las siguientes instrucciones:

  • 0: dibuja un segmento de línea que termine en una hoja.
  • 1: dibuja un segmento de línea
  • [ : posición y ángulo de empuje, girar a la izquierda 45 grados
  • ] : posición y ángulo de salida, girar a la derecha 45 grados

Las operaciones push y pop se refieren a una pila LIFO (una gramática más técnica tendría símbolos separados para "empujar posición" y "girar a la izquierda"). Cuando la interpretación de la tortuga encuentra un ' [ ', la posición y el ángulo actuales se guardan y se restauran cuando la interpretación encuentra un ' ] '. Si se han "empujado" varios valores, una operación "pop" restaura los valores guardados más recientemente. Aplicando las reglas gráficas enumeradas anteriormente a la recursión anterior, se obtiene:

Ejemplo 3: Conjunto de Cantor

variables  : AB
constantes  : ninguna
inicio  : Una {cadena de caracteres inicial}
Reglas  : (A → ABA), (B → BBB)

Sea A "avanzar" y B "mover hacia adelante".

Esto produce el famoso conjunto fractal de Cantor sobre una línea recta real R.

Ejemplo 4: Curva de Koch

Una variante de la curva de Koch que utiliza únicamente ángulos rectos.

variables  : F
constantes  : +
inicio  : F
Reglas  : (F → F+F F F+F)

Aquí, F significa "avanzar", + significa "girar 90° a la izquierda" y significa "girar 90° a la derecha" (ver gráficos de tortuga ).

n = 0:
F
Cuadrado de Koch - 0 iteraciones
n = 1:
F+F F F+F
Cuadrado de Koch - 1 iteración
n = 2:
F+F F F+F+F + F F F+F F + F F − F+F − F F+F+F+F F F+F
Cuadrado de Koch - 2 iteraciones
n = 3:
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+ FF F+F+F+F F F+F
F+F F F+F+F+ F F F+F F +F F F+F − F+ FF 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
Cuadrado de Koch - 3 iteraciones

Ejemplo 5: triángulo de Sierpinski

El triángulo de Sierpinski dibujado utilizando un sistema L.

variables  : FG
constantes  : +
inicio  : F G G
Reglas  : (F → F G+F+G F), (G → GG)
ángulo  : 120°

Aquí, F y G significan "avanzar", + significa "girar a la izquierda en ángulo" y significa "girar a la derecha en ángulo".

También es posible aproximar el triángulo de Sierpinski utilizando un sistema L de curvas de punta de flecha de Sierpiński .

variables  : AB
constantes  : +
inicio  : A
Reglas  : (A → B A B), (B → A+B+A)
ángulo  : 60°

Aquí, A y B significan "avanzar", + significa "girar a la izquierda en ángulo" y significa "girar a la derecha en ángulo" (ver gráficos de tortuga ).

Evolución para n = 2, n = 4, n = 6, n = 8

Ejemplo 6: curva del dragón

La curva del dragón dibujada utilizando un sistema L.

variables  : FG
constantes  : + −
inicio  : F
Reglas  : (F → F+G), (G → FG)
ángulo  : 90°

Aquí, F y G significan "avanzar", + significa "girar a la izquierda en ángulo" y − significa "girar a la derecha en ángulo".

Curva del dragón para n = 10

Ejemplo 7: planta fractal

variables  : XF
constantes  : + [ ]
inicio  : -X
reglas  : (X → F+[[X]-X]-F[-FX]+X), (F → FF)
ángulo  : 25°

Primero, se debe inicializar una pila vacía. Esto sigue el método LIFO (último en entrar, primero en salir) para agregar y eliminar elementos. Aquí, F significa "dibujar hacia adelante", − significa "girar a la derecha 25°" y + significa "girar a la izquierda 25°". X no corresponde a ninguna acción de dibujo y se usa para controlar la evolución de la curva. El corchete "[" corresponde a guardar los valores actuales de posición y ángulo, por lo que la posición y el ángulo se colocan en la parte superior de la pila. Cuando se encuentra el token "]", se extrae un elemento de la pila y se restablecen la posición y el ángulo. Cada "[" precede a cada token "]".

Planta fractal para n = 6

Variaciones

Se han desarrollado diversas variantes de esta técnica básica del sistema L, las cuales pueden utilizarse conjuntamente. Entre ellas se encuentran las gramáticas estocásticas , las gramáticas sensibles al contexto y las gramáticas paramétricas.

Gramáticas estocásticas

El modelo gramatical que hemos analizado hasta ahora ha sido determinista; es decir, dado cualquier símbolo del alfabeto de la gramática, existe exactamente una regla de producción, que siempre se elige y siempre realiza la misma conversión. Una alternativa es especificar más de una regla de producción para un símbolo, asignando a cada una una probabilidad de ocurrencia. Por ejemplo, en la gramática del Ejemplo 2, podríamos cambiar la regla para reescribir "0" de:

0 → 1[0]0

a una regla probabilística:

0 (0,5) → 1[0]0
0 (0,5) → 0

En este proceso, si se encuentra un "0" durante la reescritura de la cadena, existe un 50 % de probabilidad de que se comporte como se describió anteriormente y un 50 % de probabilidad de que no cambie durante la producción. Cuando se utiliza una gramática estocástica en un contexto evolutivo , es recomendable incorporar una semilla aleatoria al genotipo para que las propiedades estocásticas de la imagen permanezcan constantes entre generaciones.

Gramáticas sensibles al contexto

Una regla de producción sensible al contexto no solo considera el símbolo que está modificando, sino también los símbolos de la cadena que aparecen antes y después de él. Por ejemplo, la regla de producción:

b < a > c → aa

transforma "a" en "aa", pero solo si la "a" aparece entre una "b" y una "c" en la cadena de entrada:

…de vuelta…

Al igual que con las producciones estocásticas, existen múltiples producciones para manejar símbolos en diferentes contextos. Si no se encuentra ninguna regla de producción para un contexto dado, se asume la producción de identidad y el símbolo no cambia al transformarse. Si existen producciones sensibles al contexto y libres de contexto dentro de la misma gramática, se asume que la producción sensible al contexto tiene prioridad cuando sea aplicable.

Gramáticas paramétricas

En una gramática paramétrica, cada símbolo del alfabeto tiene asociada una lista de parámetros. Un símbolo junto con su lista de parámetros se denomina módulo, y una cadena en una gramática paramétrica es una serie de módulos. Un ejemplo de cadena podría ser:

a(0,1)[b(0,0)]a(1,2)

Los parámetros pueden ser utilizados por las funciones de dibujo y también por las reglas de producción. Las reglas de producción pueden utilizar los parámetros de dos maneras: primero, en una instrucción condicional que determina si se aplicará la regla, y segundo, la regla de producción puede modificar los parámetros reales. Por ejemplo, observe:

a(x,y)  : x == 0 → a(1, y+1)b(2,3)

El módulo a(x,y) se transforma según esta regla de producción si se cumple la condición x=0. Por ejemplo, a(0,2) se transformaría, mientras que a(1,2) no.

En la parte de transformación de la regla de producción, tanto los parámetros como los módulos completos pueden verse afectados. En el ejemplo anterior, el módulo b(x,y) se agrega a la cadena, con parámetros iniciales (2,3). Además, los parámetros del módulo ya existente se transforman. Bajo la regla de producción anterior,

a(0,2)

Se convierte

a(1,3)b(2,3)

ya que el parámetro "x" de a(x,y) se transforma explícitamente en un "1" y el parámetro "y" de a se incrementa en uno.

Las gramáticas paramétricas permiten que la longitud de las líneas y los ángulos de ramificación se determinen mediante la propia gramática, en lugar de mediante los métodos de interpretación de Turtle. Además, si se especifica la edad como parámetro para un módulo, las reglas pueden cambiar según la edad de un segmento de la planta, lo que permite crear animaciones de todo el ciclo de vida del árbol.

Gramáticas bidireccionales

El modelo bidireccional separa explícitamente el sistema de reescritura simbólica de la asignación de formas. Por ejemplo, el proceso de reescritura de cadenas en el Ejemplo 2 (Árbol fractal) es independiente de cómo se asignan las operaciones gráficas a los símbolos. En otras palabras, un número infinito de métodos de dibujo son aplicables a un sistema de reescritura dado.

El modelo bidireccional consta de 1) un proceso directo que construye el árbol de derivación con reglas de producción, y 2) un proceso inverso que materializa el árbol con formas de manera gradual (desde las hojas hasta la raíz). Cada paso de derivación inversa implica un razonamiento geométrico-topológico esencial. Con este marco bidireccional, las restricciones y los objetivos de diseño se codifican en la traducción de la gramática a la forma. En aplicaciones de diseño arquitectónico, la gramática bidireccional presenta una conectividad interna consistente y una rica jerarquía espacial. [ 4 ]

Construcción e inferencia del sistema L

Construcción manual del sistema L

Históricamente, la construcción de sistemas L dependía en gran medida del trabajo manual de expertos, [ 5 ] [ 6 ] [ 7 ] lo que requería mediciones detalladas, conocimiento del dominio y una inversión de tiempo considerable. El proceso a menudo implicaba analizar estructuras biológicas y codificar sus reglas de desarrollo en sistemas L, símbolo por símbolo. Este método laborioso hacía que la creación de modelos precisos para procesos complejos fuera tediosa y propensa a errores.

Un ejemplo notable es el trabajo de Nishida [ 7 ] sobre cipreses japoneses, donde segmentó manualmente ramas a partir de una serie de imágenes e identificó 42 mecanismos de crecimiento distintos para construir un sistema L estocástico. A pesar del considerable esfuerzo invertido, el sistema resultante solo proporcionó una aproximación del crecimiento del árbol, lo que ilustra las dificultades de codificar manualmente procesos biológicos tan detallados. Esta ardua tarea fue descrita como «tediosa e intrincada», lo que subraya las limitaciones de los métodos manuales.

Los desafíos de la construcción manual de sistemas L también están bien documentados en *The Algorithmic Beauty of Plants * [ 6 ] , de Przemyslaw Prusinkiewicz y Aristid Lindenmayer. El libro demuestra cómo los sistemas L pueden modelar elegantemente el crecimiento de las plantas y los patrones fractales, pero los ejemplos a menudo requerían la intervención de expertos para definir las reglas necesarias.

La construcción manual se vio aún más limitada por la necesidad de conocimientos especializados en el dominio, como se observa en otras aplicaciones de los sistemas L más allá de la biología, como el diseño arquitectónico y la modelización urbana. [ 8 ] En estos campos, la creación de un sistema L preciso requería no solo la comprensión del formalismo del sistema L, sino también un conocimiento extenso del dominio que se estaba modelando.

Inferencia del sistema L

La idea de automatizar la inferencia de sistemas L surgió para abordar las ineficiencias de los métodos manuales, que a menudo requerían amplios conocimientos especializados, mediciones y procesos de ensayo y error. Esta automatización tenía como objetivo permitir la inferencia de sistemas L directamente a partir de datos de observación, eliminando la necesidad de codificar manualmente las reglas.

Los algoritmos iniciales se centraron principalmente en sistemas L deterministas libres de contexto (sistemas D0L), que se encuentran entre los tipos más simples de sistemas L. Estos primeros esfuerzos demostraron la viabilidad de la inferencia automática, pero su alcance era muy limitado, ya que generalmente solo manejaban sistemas con alfabetos pequeños y reglas de reescritura simples. [ 9 ] [ 10 ] [ 11 ] [ 12 ] Por ejemplo, el trabajo de Nakano [ 10 ] destacó los desafíos de inferir sistemas L con alfabetos más grandes y estructuras más complejas, describiendo la tarea como "inmensamente complicada".

Herramientas manuales y semiautomáticas

Las primeras herramientas para la inferencia de sistemas L a menudo se diseñaban para asistir a los expertos en lugar de reemplazarlos. Por ejemplo, los sistemas que presentaban al usuario una población de posibles sistemas L, permitiéndole seleccionar opciones estéticamente agradables o plausibles, reducían parte de la carga de trabajo manual. [ 12 ] [ 13 ] Sin embargo, estas herramientas dependían en gran medida del juicio humano y no automatizaban completamente el proceso de inferencia.

Enfoques de inferencia específicos del dominio

Algunos algoritmos iniciales estaban estrechamente integrados en dominios de investigación específicos, principalmente en el modelado de plantas. [ 13 ] Estos enfoques utilizaban el conocimiento del dominio para restringir el espacio de búsqueda y obtener mejores resultados. Sin embargo, su dependencia de reglas predefinidas específicas del dominio limitaba su generalización y aplicabilidad a otras áreas.

Algoritmos de inferencia generalizados

Los intentos de crear algoritmos generalizados para la inferencia de sistemas L comenzaron con sistemas deterministas libres de contexto. Los investigadores buscaban inferir sistemas L a partir únicamente de datos, como secuencias de cadenas o datos temporales de imágenes, sin depender del conocimiento específico del dominio. Estos algoritmos encontraron desafíos significativos, [ 14 ] [ 15 ] entre los que se incluyen:

  • El crecimiento exponencial del espacio de búsqueda aumenta con el tamaño del alfabeto y la complejidad de las reglas.
  • El manejo de datos imperfectos o ruidosos introdujo errores en los sistemas inferidos.
  • Se produjeron limitaciones en la eficiencia computacional, ya que los métodos de búsqueda exhaustiva se volvieron intratables salvo en los casos más sencillos.

La tesis doctoral de Bernard [ 16 ] , dirigida por el Dr. Ian McQuillan en la Universidad de Saskatchewan, representa un avance significativo en la inferencia de sistemas L, al introducir el conjunto de herramientas de inferencia de modelos de plantas (PMIT). A pesar de su nombre, esta herramienta es independiente del problema y se denomina así debido a la fuente de financiación original del proyecto P2IRC. Estas herramientas abordan los desafíos de la inferencia de sistemas L deterministas, estocásticos y paramétricos:

Sistemas L deterministas libres de contexto (D0L):

La herramienta PMIT-D0L mejoró el estado del arte al permitir la inferencia de sistemas L con hasta 31 símbolos, en comparación con los algoritmos anteriores que solo admitían dos. Esto se logró mediante técnicas de codificación novedosas y métodos de reducción del espacio de búsqueda.

Sistemas L deterministas sensibles al contexto (D(j,k)L):

La herramienta PMIT-DCSL mejoró aún más la inferencia de sistemas L deterministas al demostrar que las técnicas funcionaban en el caso sensible al contexto con pocas modificaciones. Esta herramienta también presentó mejoras adicionales que permitieron la inferencia de sistemas L deterministas con hasta cientos de símbolos. Además, este trabajo y el artículo teórico de McQuillan [ 17 ] demuestran la complejidad de la inferencia de sistemas L sensibles al contexto. En un trabajo inédito, Bernard afirma demostrar que la sensibilidad al contexto nunca cambia la naturaleza fundamental del problema de inferencia, independientemente de la regla de selección. Es decir, inferir sistemas L estocásticos sensibles al contexto es posible si es posible inferir sistemas L libres de contexto.

Sistemas L estocásticos (S0L):

Para sistemas L estocásticos, se desarrolló PMIT-S0L, que utiliza un enfoque híbrido de algoritmos voraces y genéticos para inferir sistemas a partir de múltiples secuencias de cadenas. La herramienta demostró la capacidad de inferir reglas de reescritura y probabilidades con alta precisión, un logro sin precedentes en este campo.

Sistemas L paramétricos temporales:

McQuillan fue el primero en darse cuenta de que los sistemas L paramétricos podían considerarse sistemas L estocásticos; sin embargo, esto no resolvía el problema de inferir las reglas de selección paramétricas. Mediante la programación genética cartesiana, se podían inferir sistemas L paramétricos junto con las reglas de selección paramétricas, siempre que el conjunto de parámetros incluyera el tiempo (para proporcionar una secuencia a los parámetros, aunque el tiempo es un parámetro razonable para cualquier proceso real). Esta herramienta, PMIT-PARAM, infirió con éxito sistemas complejos con hasta 27 reglas de reescritura, estableciendo un nuevo referente en la inferencia de sistemas L.

Problemas abiertos

Existen muchos problemas abiertos relacionados con el estudio de los sistemas L. Por ejemplo:

  • Caracterización de todos los sistemas L deterministas libres de contexto que son localmente catenativos . (Se conoce una solución completa solo en el caso de que haya solo dos variables). [ 18 ]

Tipos de sistemas L

Sistemas L en la recta real R :

Los sistemas L más conocidos en un plano R 2 son:

Véase también

Notas

  1. Lindenmayer, Aristid (marzo de 1968). "Modelos matemáticos para interacciones celulares en el desarrollo II. Filamentos simples y ramificados con entradas de dos lados". Journal of Theoretical Biology . 18 (3): 300– 315. Bibcode : 1968JThBi..18..300L . doi : 10.1016/0022-5193(68)90080-5 . ISSN 0022-5193 . PMID 5659072 .  
  2. Grzegorz Rozenberg y Arto Salomaa. La teoría matemática de los sistemas L (Academic Press, Nueva York, 1980). ISBN 0-12-597140-0
  3. "Sistemas L" . Enciclopedia de Matemáticas . Springer . Consultado el 26 de julio de 2022 .
  4. Hua, H., diciembre de 2017. Un modelo procedimental bidireccional para el diseño arquitectónico . En Computer Graphics Forum (Vol. 36, No. 8, pp. 219-231).
  5. Dinnus Frijters y Aristid Lindenmayer. Un modelo para el crecimiento y floración de Aster novae-angliae basado en la tabla < 10 > de sistemas L. En Sistemas L, páginas 2452. Springer, 1974.
  6. 1 2 Prusinkiewicz, P., & Lindenmayer, A. (2012). La belleza algorítmica de las plantas . Springer Science & Business Media.
  7. 1 2 T. Nishida, Sistema K0L que simula casi, pero no exactamente, el mismo caso de desarrollo del ciprés japonés, Memorias de la Facultad de Ciencias, Universidad de Kioto, Serie B 8 (1) (1980) 97122.
  8. Pascal Muller, Peter Wonka, Simon Haegler, Andreas Ulmer y Luc Van Gool. Modelado procedimental de edificios. ACM Transactions On Graphics, 25(3):614-623, 2006.
  9. Bian Runqiang, Phoebe Chen, Kevin Burrage, Jim Hanan, Peter Room y John Belward. Derivación de modelos de sistemas L a partir de mediciones de estructuras de ramificación biológicas mediante algoritmos genéticos. En Actas de la Conferencia Internacional sobre Aplicaciones Industriales, de Ingeniería y Otras Aplicaciones de Sistemas Inteligentes Aplicados, páginas 514-524. Springer, 2002.
  10. 1 2 Ryohei Nakano. Inducción emergente de la gramática del sistema L determinista libre de contexto. En Innovaciones en computación y aplicaciones bioinspiradas, páginas 7584. Springer International Publishing, 2014.
  11. PG Doucet. El problema de la inferencia sintáctica para secuencias D0L. L Systems, páginas 146-161, 1974.
  12. 1 2 Roger Curry. Sobre la evolución de los sistemas L paramétricos. Informe técnico, Universidad de Calgary, 2000.
  13. 1 2 Fabricio Anastacio, Przemyslaw Prusinkiewicz y Mario Costa Sousa. Parametrización basada en bocetos de sistemas L utilizando líneas de construcción inspiradas en ilustraciones y modulación de profundidad. Computers & Graphics, 33(4):440-451, 2009.
  14. Colin De La Higuera. Un estudio bibliográfico de la inferencia gramatical. Pattern Recognition, 38(9):1332 1348, 2005.
  15. ^ Kari, L., Rozenberg, G. y Salomaa, A. (1997). Sistemas L (págs. 253-328). Springer Berlín Heidelberg.
  16. Bernard, J. (2020). Inferencia de diferentes tipos de sistemas de Lindenmayer mediante inteligencia artificial (tesis doctoral, Universidad de Saskatchewan).
  17. McQuillan, I., Bernard, J., & Prusinkiewicz, P. (2018). Algoritmos para inferir sistemas L sensibles al contexto. En Computación no convencional y computación natural: 17.ª Conferencia Internacional, UCNC 2018, Fontainebleau, Francia, 25-29 de junio de 2018, Actas 17 (pp. 117-130). Springer International Publishing.
  18. Kari, Lila; Rozenberg, Grzegorz; Salomaa, Arto (1997). "Sistemas L". Manual de Lenguajes Formales . págs. 253–328 . doi : 10.1007/978-3-642-59136-5_5 . ISBN  978-3-642-63863-3.

Libros

  • Przemysław Prusinkiewicz , Aristid LindenmayerLa belleza algorítmica de las plantas. Versión en PDF disponible aquí gratuitamente. Archivado el 10 de abril de 2021 en Wayback Machine.
  • Grzegorz Rozenberg , Arto SalomaaSistemas Lindenmayer: Impactos en la informática teórica, los gráficos por computadora y la biología del desarrollo ISBN 978-3-540-55320-5
  • DS Ebert, FK Musgrave, et al. – Texturizado y modelado: un enfoque procedimental , ISBN 0-12-228730-4
  • Burry, Jane, Burry Mark, (2010). Las nuevas matemáticas de la arquitectura, Nueva York: Thames and Hudson.
  • Aristid Lindenmayer, " Modelos matemáticos para la interacción celular en el desarrollo ". J. Theoret. Biology, 18:280—315, 1968.
  • Botánica algorítmica en la Universidad de Calgary
  • Sistemas L : Una página fácil de usar para generar fractales y plantas a partir de sistemas L.
  • Ramificación: Árbol del sistema L. Un applet de Java y su código fuente ( código abierto ) para la simulación del crecimiento de árboles botánicos mediante el sistema L.
  • Fractint L-System Fractales verdaderos
  • OpenAlea Archivado el 17-10-2005 en Wayback Machine : un entorno de software de código abierto para modelado de plantas, [ 1 ] que contiene L-Py , una implementación de Python de código abierto de los sistemas Lindenmayer [ 2 ]
  • "powerPlant", un software de modelado de paisajes de código abierto.
  • Un generador de sistemas L evolutivos (anyos*)
  • Una implementación de sistemas L en Racket
  • Griffiths, Dave (2004). "LsystemComposition" . Pawfal . Archivado del original el 6 de noviembre de 2004. Recuperado el 19 de abril de 2012 .Página sobre el uso de sistemas L y algoritmos genéticos para generar música.
  • Sistemas L extendidos (XL), gramáticas de crecimiento relacional y la plataforma de software de código abierto GroIMP.
  • Un applet de Java con numerosas figuras fractales generadas por sistemas L. Archivado el 6 de agosto de 2016 en la Wayback Machine.
  • Manousakis, Stelios (junio de 2006). Sistemas L musicales (PDF) (tesis de maestría). Real Conservatorio de La Haya . Archivado (PDF) del original el 23 de julio de 2011. Recuperado el 19 de julio de 2022 .
  • Experimentos en línea con sistemas L utilizando JSXGraph (JavaScript)
  • Flea es una implementación en Ruby de LSYSTEM, que utiliza un lenguaje específico de dominio en lugar de comandos de generador concisos.
  • Generador de energía Lindenmayer: una planta y un generador fractal que utiliza sistemas L (JavaScript).
  • Rozenberg, G.; Salomaa, A. (2001) [1994], "Sistemas L" , Enciclopedia de Matemáticas , EMS Press
  • L-Parser de Laurens Lapré archivado el 13 de septiembre de 2013 en Wayback Machine.
  • Sistemas HTML5 L: prueba experimentos en línea
  • El programa de gráficos vectoriales Inkscape incluye un analizador sintáctico del sistema L.
  • Liou, Cheng-Yuan; Wu, Tai-Hei; Lee, Chia-Ying (2009). "Modelado de la complejidad en el ritmo musical". Complexity . 15 (4): 19– 30. doi : 10.1002/cplx.20291 . S2CID 18737938 . 
  • Implementación de un analizador sintáctico del sistema L y gráficos sencillos de tortuga en el lenguaje de programación Icon.
  • Un generador de sistemas Lindenmeyer de Nolan Carroll
  • Bloogen: Sistemas L con un toque genético
  • Inferencia de diferentes tipos de sistemas de Lindenmayer mediante inteligencia artificial
  1. Pradal, Christophe; Fournier, Christian; Valduriez, Patrick; Cohen-Boulakia, Sarah (2015). «OpenAlea». Actas de la 27.ª Conferencia Internacional sobre Gestión de Bases de Datos Científicas y Estadísticas (PDF) . págs. 1–6 . doi : 10.1145/2791347.2791365 . ISBN  9781450337090. S2CID 14246115 . Archivado (PDF) del original el 17-10-2019. 
  2. Boudon, Frédéric; Pradal, Christophe; Cokelaer, Thomas; Prusinkiewicz, Przemyslaw; Godin, Christophe (2012). "L-Py: Un marco de simulación de sistema L para modelar el desarrollo de la arquitectura de plantas basado en un lenguaje dinámico" . Frontiers in Plant Science . 3 : 76. Bibcode : 2012FrPS....3...76B . doi : 10.3389/fpls.2012.00076 . PMC 3362793. PMID 22670147 .  
Obtenido de " https://en.wikipedia.org/w/index.php?title=L-system&oldid=1335145955 "