In Silico
por Florence Gouvrit

programación por Ing. Marco Antono Montes de Oca

 

In Silico es un ambiente de simulación visual tridimensional, en donde existe una colección de objetos que se desarrollan en función de sus características e interacciones y del tiempo.
El patrón de crecimiento de cada objetos es modelado a través de sistemas L.

 

Sistemas L

Son una formalización matemática de la teoría axiomática del desarrollo biológico propuesta por el biólogo Aristid Lindenmayer en 1968. Recientemente los sistemas L han encontrado muchas aplicaciones en la computación gráfica. Las dos principales áreas incluyen generación de fractales y modelos realistas de plantas.

Un punto central en los sistemas L es la noción de reescritura, tal y como sucede con las gramáticas regulares o gramáticas libres de contexto, donde la idea básica es sustituir símbolos predecesores por secuencias de símbolos; el patrón de sustitución está determinado por un conjunto de reglas de sustitución o producciones. La aplicación finita de las producciones de un sistema L produce palabras que pertenecen a un lenguaje. El proceso de reescritura puede ser recursivo.

Los sistemas que operan bajo cadenas de caracteres han sido los más estudiados y los mejor entendidos. El trabajo de Chomsky acerca de gramáticas formales (1957) generó un gran interés en los sistemas recursivos que formalizaban el crecimiento. Le siguió un periodo de fascinación acerca de las sintaxis y las gramáticas y empezó su aplicación en ciencias computacionales.

Lindemayer introdujo un nuevo tipo de gramática que posteriormente tomo el nombre de sistema L. La diferencia esencial con la gramática de Chomsky surge en la manera en la que se aplican las producciones. En el sistema de Chomsky, las producciones son aplicadas secuencialmente, mientras que en el sistema L estas son aplicadas en paralelo, reemplazando simultáneamente todos los símbolos de una sola palabra.

Las palabras o expresiones pertenecientes al lenguaje generado por un sistema L tienen una interpretación geométrica en el espacio, esto es, cada expresión derivada a partir de un sistema L se corresponde con un objeto que puede ser situado en el espacio.

El tipo de sistema L utilizado en In Silico es un sistema L paramétrico-estocástico. Los símbolos paramétricos son símbolos de un alfabeto asociados con números reales.

Además de expresiones paramétricas que resultan en estructuras cambiantes en el espacio, de acuerdo con el dominio paramétrico, estos sistemas L asignan una probabilidad de sustitución a cada producción, haciendo el lenguaje generado "inestable".

El alfabeto está conformado por símbolos de dos categorías: símbolos no terminales y terminales, esto es, símbolos sustituibles y símbolos no sustituibles. Comúnmente, los símbolos terminales tienen una interpretación geométrica, mientras que los no terminales solo sirven para definir un patrón de desarrollo a través de una sustitución.

Tomemos un ejemplo presente en The Algorithmic Beauty of Plants:

Sean
Axioma = X
Producción 1= X -> A[+X][X][-X]
Producción 2= A -> FF

En este caso X se reemplazara por una fórmula que significa que la rama se divide en 3 ramas.

 

 

- F significa trazar una línea y FF una línea después de la primer

- [ ] significan que haga la acción y regrese a su punto de origen

- + y - estipulan una rotación de la línea con respecto al origen


Esto se interpreta de la manera siguiente: el axioma es el modulo básico, cada vez que va a generarse, busca si alguno de los elementos que conforman la expresión debe sustituirse. Entonces encuentra la Producción 1 y reemplaza la X por la fórmulacorespondiente, posteriormente ejecuta la instrucción de crecimiento. Al tiempo que va leyendo las letras va reemplazándolas si es el caso, y si no continúa hasta terminar la expresión.

La diferencia entre la gramática de Chomsky y la de Lindemayer refleja la motivación biológica de los sistemas L . Las producciones intentan capturar la división celular en los organismos multicelulares donde la divisiones se dan de manera simultanea. El sistema L permite no solo la descripción y reconstrucción de estructuras simétricas bidimensionales, sino también tridimensionales, formas celulares esféricas, crecimientos caóticos, interrumpidos o influenciados por fuerzas físicas, permitiendo entender de una manera como funcionan.

 


Los modelos de Inteligencia Artificial (IA) distribuida (sistemas multiagentes)

Los sistemas de IA ponen en ejecución conocimientos de sentido común, o especializados y los explotan en mecanismos de raciocinio, es decir en sistemas a base de conocimiento. El fundamento de esta aproximación de IA es representar el saber en diferentes tipos de lógica. Por ejemplo, los sistemas expertos de producción, sistemas auxiliares al diagnóstico medico, etc
Otro aspecto de la inteligencia a base de conocimientos es el de la inteligencia colectiva, que consiste en suscitar un comportamiento inteligente de manera emergente por cooperación entre un conjunto de entidades (agentes) teniendo su propia autonomía y haciendo su propio trabajo. Estos agentes pueden ser dotados de una capacidad cognoscitiva, de conocimientos, de mecanismos de raciocinio, se le llama “sistema multiagentes”.
En los sistemas multiagentes, cada agente tiene un comportamiento puramente reactivo y aunque está desprovisto de inteligencia, emerge un comportamiento inteligente que resulta de la pertinencia de los intercambios entre agentes.
Estos sistemas permiten, por ejemplo, modelar la construcción de un nido de termita o comportamientos distribuidos para lograr un fin de modo colectivo.

 


El sistema multiagentes en In Silico

La interacción entre objetos y la base de tiempo utilizada para permitir el desarrollo de los mismos es controlada por una colección de agentes. Los agentes utilizados son del tipo reactivo, por lo que el comportamiento del sistema en su conjunto es resultado de la comunicación entre estos.

Se definen 5 tipos de agentes según sus funciones: Un agente controlador del display; un agente maestro que determina el número y el tipos de objetos en la simulación, así como también el momento en el que se desarrollan; un agente que sincroniza el audio con el display; un agente que controla el tiempo; un agente que genera las expresiones paramétricas de un sistema L y un agente que las interpreta y convierte en geometría.

Al inicio de la simulación se crean un controlador de display; un sincronizador de audio y un agente maestro que crea a su vez un determinado número de agentes generadores, intérpretes y de tiempo en la misma proporción, esto posibilita que cada objeto se desarrolle independientemente de los demás.

El desarrollo de un objeto pasa por cuatro fases: crecimiento, reproducción , envejecimiento y muerte. Los eventos de crecimiento, envejecimiento y muerte, dependen, aunque no exclusivamente, del tiempo, mientras que el evento de reproducción depende de la interacción con otros objetos en el ambiente. El tiempo de vida de un objeto puede verse reducido por el número de veces que ocurre una interacción.

Se dice que ocurre una interacción cuando un objeto invade el espacio vital de otro objeto, definido por un volumen invisible alrededor del objeto en cuestión.

Es a través de la comunicación inter-agente que los objetos pueden reaccionar, ésta se lleva a cabo mediante el envío y recepción de mensajes asíncronos, esto es, que no se requiere el acuse de recibo de éstos, lo cual hace posible una interacción mucho más ágil.