| Formulario de acceso |
|---|
| Anuncios |
|---|
|
|
| El jardín de Lindenmayer |
|
|
| miércoles, 18 de enero de 2006 | ||||||
|
Por amor a su mujer, Nebuchadnezzar II, rey de Mesopotamia, mandó construir alrededor del siglo VI A.C. en su palacio a orillas del río Eufrates una de las siete maravillas del mundo, los jardines más bellos jamás creados, los Jardines Colgantes de Babilonia. Formados por un impresionante complejo arquitectónico de terrazas a varios niveles soportadas por inmensas columnas de piedra y escaleras ascendiendo hasta la cúspide. Un ingenioso entramado de canalizaciones llevaba el agua a los pisos superiores y, a partir de éstos, iban regándose los demás de tal manera que todos los pisos estaban siempre exhuberantes de vegetación que colgaba de las terrazas formando una cascada multicolor de hojas, flores y frutos. Una obra de arte y de ingeniería, de esplendor y lujo, cantada por los historiadores griegos muchos siglos después de su construcción y que ha llegado hasta nuestros días transformando nuestra conciencia colectiva, formando aquello que hemos dado en llamar cultura clásica.
Ya no nos es posible pasear por los jardines de Babilonia, salvo que seamos unos intrépidos arqueólogos, al más puro estilo Indiana Jones, y nos guste estar metidos hasta la cintura en barro y polvo mientras servimos de menú exótico a las hordas de mosquitos del lugar, para descubrir unas polvorientas piedras de las que ni siquiera tendremos certeza si son las ruinas que buscamos. Sí podemos, sin embargo, pasear por un frondoso bosque durante un caluroso día de verano y darnos cuenta de la enorme variedad de formas, colores, tamaños, texturas y distribución espacial de las plantas que lo forman. Los botánicos, a falta de nada mejor que hacer, se han dedicado durante los siglos pasados a describir los principios en los que se basan el crecimiento, distribución, orientación, estructura geométrica y funcionalidad de hojas, ramas y troncos de las plantas. En nuestros días, además, se ha producido también un enorme interés por la modelización, lo más realista posible, de formas vegetales, motivado, entre otras cosas, por la necesidad de generar escenas y paisajes "virtualmente naturales" para ser utilizadas en películas (no os perdáis Toy Story si queréis ver el estado del arte en imaginería digital), juegos, anuncios. La modelización, atendiendo a la realidad biológica subyacente, tiene además campos de aplicación enteramente nuevos como pueden ser el estudio de la productividad de las cosechas debido a la diferente distribución de plantas originadas por diferentes técnicas de siembra, riegos, y cuidados, o la propagación de enfermedades y plagas de insectos y los diferentes métodos para combatirlas. De tal manera que, cambiando el tractor por el ordenador, pueden estudiarse cuáles son los parámetros que afectarían, en qué medida podrían cambiarse, y cuál sería el resultado final de dichos cambios sobre las cosechas. Los modelos más alejados de la realidad biológica son aquellos basados en métodos puramente matemáticos y hacen uso de algoritmos fractales o de lenguajes formales. Aunque existe una distinción matemática precisa sobre lo que es un sistema formal, una gramática formal y un lenguaje formal, aquí utilizaremos estos términos de manera informal (perdón por el juego de palabras) como conceptos muy relacionados.
Un sistema formal consta de :
Olvidémonos por un momento de la teoría y veamos un ejemplo. Supongamos que tenemos un alfabeto formado por los números "0" y "1", un axioma que es el "1", y dos reglas de producción: R1 : donde aparece "1" sustituir por "10". R2 : donde aparece "0" sustituir por "11". Dos posibles secuencias de generación de palabras podrían ser : R1 R2 R1 1 -> 10 -> 111 -> 1011 R1 R1 R1 1 -> 10 -> 100 -> 1000 Todas las secuencias 10, 111, 1011, 100, 1000, etc., son palabras del lenguaje y cada uno de los pasos que hemos dado es una derivación. Aristid Lindenmayer, en la década de los 60, fue el primero en utilizar estos modelos teóricos de crecimiento biológico y por eso se llaman sistemas-L. Sin embargo, fueron dos de sus estudiantes, Ben Hesper y Pauline Hogeweg de la Universidad de Utrech los primeros en darse cuenta de las posibilidades de los sistemas-L para representar plantas. En 1970, Hesper y Hogeweg emplearon dos semanas en crear el primer programa que, a partir de una ristra de 5.000 caracteres generados por un sistema-L, imprimió algo que se parecía mucho al dibujo de una hoja vegetal. Aunque esta primera excursión en el campo de la imaginería digital no gustó mucho a Lindemayer, (y dejó atónito al operador del ordenador donde ejecutaron el programa -recordemos que estamos hablando de la prehistoria,cuando aún se programaba con tarjetas perforadas, y, donde el resultado de la ejecución de los programas era un interminable listado de cálculos numéricos-), que consideraba que no debían perder el tiempo en tales banalidades. Lo cierto es que la idea comenzó a circular y arraigó en otros investigadores. Cuando en 1986 Lindemayer conoció a Przemyslaw Prusinkiewicz se convenció plenamente de las posibilidades de los sistemas-L, y empezó también a utilizarlos para generar imágenes cada vez más realistas de plantas. Juntos escribieron el maravilloso libro "La belleza algorítmica de las plantas" (The Algorithmic Beauty of Plants). Lindenmayer también introdujo la noción de sistemas-L con paréntesis que son los sistemas-L que incluyen en su alfabeto los paréntesis cuadrados "[" y "]" que permite la representación de árboles como secuencia de caracteres ya que los paréntesis contienen las ramas de nuestro árbol. Así, por ejemplo, según vamos leyendo, de izquierda a derecha, una palabra generada por una de estas gramáticas, si nos encontramos un paréntesis abierto indica que comienza una rama y si nos encontramos uno cerrado indica que ha acabado la última ramificación que se había abierto. Llamaremos graftales a los árboles generados así. El alfabeto que usaremos está formado por los símbolos "0", "1", "[" y "]", donde el "0" indica una hoja y el "1" indica un fragmento de tallo. Nuestro axioma o semilla será el "0". Ya estamos listos para presentar nuestra primera gramática y ver qué tipo de plantas es capaz de generar. Gramática 1. 1.- 0 -> 1[0]1[0]0 2.- 1 -> 11 3.- [ -> [ 4.- ] -> ] Partiendo de "0" los 3 primeros pasos o generaciones son: 0->1[0]1[0]0-> 11[1[0]1 [0]0]11[1[0]1[0]0]1[0]1[0]0 ...que podemos representar como se ve en la figura 1. Podemos decir que las palabras que estamos generando son la secuencia genética de nuestra planta que crece a partir de nuestra pequeña semilla, el "0". Esta secuencia genética determinará el número de ramas y hojas que tendrá nuestra planta. Además de ésta, vamos a utilizar tres gramáticas más, y, a la hora de modelizar nuestro bosque virtual, elegiremos cada planta al azar entre las cuatro gramáticas. Las otras gramáticas tienen las mismas reglas 2, 3, y 4 que la gramática 1 y sólo se diferencian en la primera regla. Gramática 2. 1.- 0 -> 1[0]1[0]1[0]0 resto de reglas igual que Gramática 1. Gramática 3. 1.- 0 -> 1[0][0]0 resto de reglas igual que Gramática 1. Gramática 4. 1.- 0 -> 1[0]0 resto de reglas igual que Gramática 1.
Los sistemas-L especifican las estructuras de ramificación desde un punto de vista puramente topológico, es decir, solamente tenemos el esqueleto : cuántas ramas, de qué longitud, cuántas subramas hay para cada rama, etc., etc. Para los propósitos de la sístesis de imágenes se hace necesario especificar también aspectos geométricos y gráficos como son el color, el grosor, la textura, aspectos de sombra, etc., de los objetos modelizados. En nuestro caso vamos a hacer que la primera rama vaya hacia la izquierda la siguiente a la derecha y así sucesivamente alternándose a un lado y otro del tronco. Si la rama es de una planta herbácea (tallo fino) simplemente la dibujamos de acuerdo a su ángulo de ramificación. Si se trata de una planta arbórea, dibujaremos el tronco y ramas gruesas, teniendo en cuenta que los troncos y las ramas de los árboles son más gruesos en la base y van disminuyendo su grosor a medida que nos acercamos a los extremos de los mismos. Dibujaremos las hojas como rombos orientados según la misma dirección que la rama final que las soporta eligiendo su tamaño al azar en un intervalo [5, 10] para romper un poco la simetría de tener todas las hojas del mismo tamaño.
Los sistemas-L son extraordinariamente potentes. Aquí se ha presentado uno de los más simples posibles, tengamos en cuenta que sólo hemos utilizado dos símbolos, "0" y "1" (no consideramos los paréntesis) y cuatro gramáticas muy relacionadas entre sí (sólo hemos variado una de las reglas, y lo hemos hecho de manera muy ligera), y aún así hemos conseguido una diversidad que puede recordarnos a cualquier bosque. Son infinitas las maneras en las que podemos modificar los ejemplos aquí presentados ya que podemos utilizar tantos símbolos como queramos (siempre que encontremos un significado coherente para cada uno de ellos), y tantas reglas gramaticales como queramos. Aunque la teoría dice que las reglas de los sistemas-L deben aplicarse simultáneamente sobre todos los símbolos en cada paso de derivación nada nos impide aplicarlas secuencialmente o decidir de manera probabilística, o al azar para cada símbolo, si en el paso de derivación que estamos calculando se va a aplicar una regla o no para dicho símbolo. Una variación de PLANTA que podría ser muy simple es el crear las hojas utilizando otra gramática de sistema-L o un algoritmo fractal. Como muestra bien vale un botón no tengo más que comentaros un programa que los POVadictos recordaréis, Lparser (PCmanía nº 36), y las infinitas imágenes que es posible generar con él, sólo que en este caso las imágenes están renderizadas y la gramática usada es muy compleja. Como véis el límite estriba únicamente en nuestra imaginación.
Se puede descargar el programa que adapta este artículo en la sección Descargas de esta web. * Artíulo publicado en la desaparecida revista PCMANIA Nº 45, de la editorial HobbyPress.
Sólo los usuarios registrados pueden escribir comentarios. Powered by AkoComment 2.0! |
||||||







