INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

SUBDIRECCIÓN ACADÉMICA

 

 

No. de serie: TTR050                     Serie: Amarilla                    Mayo de 2001

            Trabajo Terminal

 

Mundo Artificial Basado

en Sistemas Evolutivos

http://paoneri.terrashare.com/TTdoc.htm

 

 

María Paola Neri Ortiz

 

paoneri@mail.com

http://paoneri.terrashare.com

 

RESUMEN

 

En este trabajo, se presenta el desarrollo de Mundo Artificial. Una aplicación de los Sistemas Evolutivos, los autómatas celulares y las matrices evolutivas  al campo de la Vida Artificial,  el cual se enfoca a generar ecosistemas simulados por computadora. Algunas posibles áreas de aplicación de este tipo de sistema, se encuentran en el modelado de ecosistemas reales y en el desarrollo de videojuegos evolutivos, los cuales generen nuevos personajes, no planeados, durante el desarrollo del juego.

 

Su funcionamiento se basa en el uso de matrices evolutivas, generadas a partir de  valores aleatorios, las cuales representan insectos virtuales. La interacción constante entre insectos produce cambios permanentes en las matrices que describen los insectos, y, en algunos casos, estos cambios generan nuevas entradas en las matrices, con lo que se pueden representar bichos nuevos, no predefinidos, creados con características nuevas basadas en las características de los padres. Estos cambios en las matrices  es lo que le da el carácter de evolutivo al sistema

 

Palabras clave: Sistemas Evolutivos, Vida Artificial, Autómatas Celulares, Matrices Evolutivas, Juego de la Vida, insectos virtuales.

ÍNDICE

 

 

INTRODUCCIÓN.. 4

CAPÍTULO 1

aNTECEDENTES.. 7

1.1 La Vida Artificial 7

1.2 El juego de la Vida. 10

1.3 Los Sistemas Evolutivos. 13

CAPÍTULO 2

ANÁLISIS.. 17

2.1 Generales. 17

2.2 Análisis de Mundo Artificial 17

2.3 Descripción del Funcionamiento. 18

CAPÍTULO 3

Diseño.. 25

3.1 Diagrama Nivel 0. 25

3.2 Las Especies. 26

3.3 Las Reglas. 28

3.4 El Mapa. 30

3.5 Diagrama de Nivel 1. 32

3.6 Diagrama Integrado de Nivel 2. 34

CAPÍTULO 4

Funcionamiento.. 35

CONCLUSIÓN.. 39

REFERENCIAS.. 41



 

 

INTRODUCCIÓN   

 

Existen varios artículos que describen la teoría de los Sistemas Evolutivos, la cual estudia el cambio en los sistemas, producido por el flujo de información, materia y/o energía y su aplicación a  distintas áreas del conocimiento [13], como por ejemplo, al desarrollo de sistemas enfocados al análisis, reconocimiento y tratamiento de imágenes, así como al desarrollo de sistemas y/o aplicaciones capaces de modificar su estructura de conocimiento.

 

Este proyecto propone la aplicación de los sistemas evolutivos al campo de la Vida Artificial, la cual  pretende modelar el comportamiento que siguen los seres vivos durante su desarrollo y al relacionarse entre ellos y con su entorno. Apoyándose en la utilización de matrices evolutivas, se representan  seres virtuales,  que  habitan un espacio simulado por computadora, donde, tanto los seres virtuales, como las reglas que los rigen, están en constante evolución.

 

Mundo Artificial, permite visualizar el funcionamiento de los Sistemas Evolutivos y en especial, el comportamiento y desarrollo de las matrices evolutivas [10], a través de los seres virtuales vistos en pantalla. Algunas de sus  posibles aplicaciones son, monitoreo de ecosistemas reales, diseño de simuladores de eventos y  modelación de videojuegos evolutivos. Esta última aplicación se revisa en el artículo  Reseña Cronológica de los Videojuegos y Aplicación de los Sistemas Evolutivos para su Creación [12].

 

El documento consta de cuatro partes principales. En la primera parte, se estudian los antecedentes, explicando brevemente las bases de la Vida Artificial, la definición de los autómatas celulares, la teoría de Sistemas Evolutivos, la definición de matrices evolutivas y algunos sistemas evolutivos existentes.  En la segunda parte, se hace un análisis del funcionamiento de Mundo Artificial, con ayuda de algunos ejemplos descriptivos. En la tercera parte se presenta el diseño del sistema, con apoyo de un diagrama de flujo de datos, para explicar el funcionamiento interno de Mundo Artificial. Y por último, en la cuarta parte, se presentan la implementación y ejemplos del funcionamiento del sistema.

 

 

capítulo 1

aNTECEDENTES

 

1.1 La Vida Artificial

 

Desde la aparición de las primeras computadoras, el hombre ha soñado con implementar sistemas que sean capaces de  reaccionar de manera similar a la de un ser vivo.  Así se crea  la Vida Artificial.

 

“La Vida Artificial  pretende modelar el comportamiento que siguen los seres vivos durante su desarrollo y  al relacionarse entre ellos y con su entorno” [8]. Un ejemplo de esto, es El juego de la vida, un problema clásico de la programación creado en 1970 por John H. Conway, el cual intenta modelar el desarrollo de una población con el uso de puntos llamados “células”, los cuales interaccionan usando unas cuantas reglas preestablecidas.

 

El juego de la vida no es el único ejemplo, otros sistemas como presa-depredador, peces en un cardúmen  o sistema inmunológico, también son problemas clásicos  en el modelado de Vida Artificial [9].

 

Cuando John H. Conway creo el juego de la vida, muchos programadores se emocionaron al ver cuantos patrones de movimiento podían encontrarse al cabo de algunas iteraciones. Los desplazamientos en “manada”, surgen a la vista sin una aparente  programación previa.

 

La simple idea de ser creadores de un “mundo propio” fascinó y sigue fascinando a una   gran multitud de personas dispuestas a escribir unas cuantas líneas de reglas, alterarlas y más tarde observar el resultado.

 

En Octubre de 1993, en el VI Congreso Internacional sobre Informática y Computación, los investigadores Angélica García V., Angélica Muñoz Meléndez y el Dr. José Negrete presentaron el proyecto Propuesta de un Mundo Sintético Fundado en Metodologías Basadas en el Comportamiento [11]. Un  trabajo que simula el desarrollo de una criatura en su medio ambiente y el proceso de adaptación al mismo. Para realizar este proyecto, se dotó de  atributos a un ser sintético y se le programó para ser capaz de  reconocer  los elementos que forman parte del espacio creado para él (como agua, tierra y comida) y “reaccionar” de manera distinta ante cada uno de estos elementos.

 

En el libro Vida Simulada en el Ordenador, la Nueva Ciencia de la Inteligencia Artificial [16] de Claus Emmeche, se mencionan  los siguientes siete puntos principales que describen la Vida Artificial:

 

1)      “La biología de lo posible. La Vida Artificial no se restringe a la vida creada con carbono y es el objeto     de la   biología experimental.

2)      Método Sintético. Intento de la Vida Artificial por sintetizar los procesos y comportamientos vitales, por medio de un ordenador.

3)      Vida real (artificial). La conducta y los procesos generalizados, son tan genuinos como la conducta exhibida por los organismos de la vida real. Lo artificial, de la Vida Artificial descansa en los chips de silicio y demás componentes del ordenador, que fueron creados por el hombre y no en el comportamiento, lo cual es producido por la misma naturaleza.

4)      Toda la Vida es forma. La vida es un proceso y es la forma de este proceso, no la materia, lo que constituye la esencia de la vida. Uno puede ignorar por lo tanto el material y en cambio, abstraer de él la lógica que gobierna el proceso, tomándolo de la forma material concreta que conocemos. En consecuencia se puede lograr la misma lógica en otro revestimiento o sustrato material. La vida es fundamentalmente independiente del medio

5)      Construcción de abajo hacia arriba. En la programación de abajo hacia arriba, se definen pequeñas unidades y unas pocas y sencillas reglas para su interacción interna, puramente local, de esta interacción, surge un comportamiento coherente “global”, no programado previamente. La programación de abajo hacia arriba, surge del hecho de que nuestras proteínas están “programadas”, en forma relativamente explícita por el ADN, pero, no hay un gen que especifique directamente la forma de la cara o el número de dedos. 

6)      Procesamiento paralelo. El principio de procesamiento de información en la Vida Artificial, se basa en el paralelismo masivo que ocurre en la vida real. En la vida real, las células nerviosas del cerebro trabajan una al lado de la otra, sin esperar a que su vecina  “termine su trabajo”.

7)      Facilidad de emergencia. La palabra emergencia, se usa para designar el fascinante todo que se crea cuando muchas unidades semisimples interactúan unas con otras de una manera compleja”.

 

En este mismo libro, se mencionan las Propiedades de la Vida,  y son las siguientes:

 

1)      “La vida es una configuración en el espacio-tiempo.

2)      La vida ama la autorreproducción.

3)      La vida está asociada con el  acopio de información, para su autorrepresentación.

4)      La vida prospera con la ayuda del metabolismo.

5)      La vida participa en interacciones funcionales con el ambiente.

6)      Las partes de los seres vivos tienen una crítica dependencia interna de unas respecto de las otras.

7)      La vida exhibe una estabilidad dinámica frente a perturbaciones.

8)      La vida, no la individual, sino, su linaje, tiene la capacidad de evolucionar”.

 

En Introduction to Artificial Life [6], Christoph Adami plantea la simulación de vida desde un punto de vista más abstracto. Para esto, utiliza herramientas como autómatas celulares y algunas ecuaciones fractales.

 

Una de las herramientas mas utilizadas en el desarrollo de sistemas en el área de la Vida Artificial es el Autómata Celular, propuesto  originalmente por el Dr. Von Newman en los años cuarenta.

 

En la página web Autómatas Celulares y Vida Artificial [2],    Francisco Jiménez Morales describe a los autómatas celulares como retículos que pueden contener un valor, donde el espacio y el tiempo son cantidades discretas y por lo tanto, son sistemas dinámicos discretos y pueden definirse en términos  del estado o valor de las celdas, la vecindad y la regla local.

 

El estado o valor, es el dato que contienen, el más común es el de 0 ó 1.

 

La vecindad, se refiere a los elementos más cercanos al retículo en estudio, por ejemplo, en un vector, para un elemento i, sus vecinos son i-1 e i+1.

 

Los dos tipos más comunes de vecindad son la Vecindad de Von Newman o vecindad de cuatro  puntos, donde un elemento i, tiene por vecinos a los elementos i+1,  i-1, i+n e i-n.

 

 

i-n

 

i-1

i

i+1

 

i+n

 

Figura 1.1.1. Elementos vecinos

a i en la Vecindad de Von Newman.

 

Y la Vecindad de Moore, o de ocho puntos, que considera no solo a los cuatro anteriores, sino también a los elementos i+n+1, i+n-1, i-n+1 e i-n-1.

 

i-n-1

i-n

i-n+1

i-1

I

i+1

i+n-1

I+n

i+n+1

Figura 1.1.2. Elementos vecinos

a i, en la Vecindad de Moore.

 

Las reglas, se refieren a la forma en que se relacionan  dos autómatas celulares, por ejemplo, cambiar de estado cuando se encuentren dos  autómatas  con el mismo contenido.

 

Para entender mas claramente el papel que juegan las reglas, veamos el ejemplo del Juego de la Vida.

 

1.2 El juego de la Vida                                                                                                            

 

El juego de la vida, desarrollado por John Conway, intenta modelar el desarrollo de una población con el uso de puntos llamados “células”, los cuales interaccionan usando  tres reglas preestablecidas.

 

1.-Cada elemento permanece vivo, si tiene dos o tres vecinos (necesita compañía para vivir).

2.-Un elemento muere,  si tiene más de tres vecinos (por sobrepoblación).

3.-Un elemento nace, en un espacio vacío, si tiene exactamente tres vecinos.

 

 

En la figura 1.2.1,  las literales representan células que viven en esta posición.

Así, “A” es una célula que vive en la posición (2,2).

 

 

1

2

3

1

V

V

V

2

V

A

V

3

V

V

V

 

 

 

 

 

Figura 1.2.1. Vecindad del elemento “A”.

 

 

Se consideran vecinos de “A” a los elementos representados con “V”, los cuales  ocupan una posición adyacente de “A”. Cada elemento tiene la posibilidad de rodearse de un máximo de ocho elementos vecinos (Vecindad de Moore).

 

 

Para visualizar las reglas mencionadas anteriormente, partiremos de la situación que aparece en la figura 1.2.2.

 

 

 

1

2

3

4

5

6

7

1

A

 

 

A

 

 

 

2

 

A

 

A

A

 

A

3

 

 

 

 

 

A

A

4

 

 

 

 

 

 

 

Figura 1.2.2. Generación aleatoria de células usando el algoritmo

del Juego de la Vida.

 

 

Ahora se analizará la vecindad de cada uno de los elementos de la figura 1.2.2, siguiendo las reglas citadas anteriormente.

 

Revisando el elemento “A” de la posición (1,1) de la figura 1.2.2, vemos que tiene un solo vecino y por tanto, para el siguiente estado (figura 1.2.3), esta posición quedará vacía, pues el elemento morirá por falta de vecinos (regla no. 1).

 

 

 

1

2

1

 

 

2

 

A

Figura 1.2.3. El elemento (1,1)

muere, dejando su espacio vacío.

 

Podemos adelantar que sucederá lo mismo con el elemento “A”  de la posición  (2,2) de la figura 1.2.2, pues también tiene un solo vecino.

 

 

1

2

1

 

 

2

 

 

Figura 1.2.4. El elemento (2,2)

 muere, dejando su espacio vacío.

 

Para la coordenada (3,1) de la figura 1.2.2, será el caso contrario, es decir, como el elemento “A”(3,1) de la figura 1.2.2, tiene exactamente tres vecinos (regla no.3) que son (4,1), (4,2) y (2,2), en la siguiente ronda (figura 1.2.6) la casilla (3,1) aparecerá llena. 

 

 

1

2

3

4

1

A

 

 

A

2

 

A

 

A

3

 

 

 

 

Figura 1.5. Vista parcial de la figura 1.2.2.

La coordenada (3,1) es  un espacio vacío,

susceptible de contener una nueva célula,

al tener exactamente tres vecinos.

 

 

 

1

2

3

4

1

A

 

A

2

 

A

 

A

3

 

 

 

 

Figura 1.2.6. Ahora (3,1) contiene a un nuevo

elemento “A”.

 

La casilla (4,1) de la figura 1.2.2, permanecerá llena en la siguiente ronda, al contar con dos vecinos (5,2) y (4,2).

 

 

 

1

2

3

4

5

1

A

 

 

A

 

2

 

A

 

A

A

3

 

 

 

 

 

Figura 1.2.7. El elemento con posición (4,1), cuenta con

dos vecinos que le permitirán mantenerse vivo

durante la siguiente ronda.

 

 

Siguiendo el mismo principio con los demás elementos de la figura 1.2.2, se obtiene como resultado la  figura 1.2.8

 

 

1

2

3

4

5

6

7

1

 

 

A

A

A

 

 

2

 

 

A

A

A

A

 

3

 

 

 

 

 

A

 

4

 

 

 

 

 

 

 

Figura 1.2.8. Estado siguiente del mapa propuesto en la figura 1.2.2.

 

 

 

Así se puede continuar indefinidamente, o hasta que ya no existan elementos.

 

 

En la dirección electrónica ./software/jgovida.html  se encuentra un applet  que simula el clásico juego de la vida.

 

 

Hemos visto que en el Juego de la Vida, las reglas que controlan el comportamiento de las células están predefinidas. Una posible modificación sería el permitir que estas reglas  cambiaran durante la realización de una partida.  El área que estudia a los sistemas capaces de cambiar sus reglas, procesos y/o estructura, es la de los Sistemas Evolutivos.

 

 

A continuación se presentará una breve introducción a este tema.

 

 

1.3 Los Sistemas Evolutivos                                                                                                  

Los Sistemas Evolutivos se han desarrollado en varias áreas con muy buenos resultados. Principalmente se aplican al campo de los algoritmos geneticos, las redes neuronales y los automatas celulares.

 

Durante los años 80’s surgio en México una escuela propia sobre el tema, que tiene entre otros antecedentes [5] los conceptos de Redes Neuronales (1943), Máquinas que Aprenden (1966), Lingüística Matemática (1957) y Fractales de Mandelbrot (inicios de los años 60’s).

 

A principios de los años 80’s Fernando Galindo Soria inició el desarrollo de los Sistemas Evolutivos. Fué en 1983 cuando consolidó la idea  y en septiembre  de 1986 publicó el artículo Sistemas Evolutivos [13], en el Boletín de Política Informática del INEGI-SPP, en la Cd. de México, donde presentó la Teoría de los Sistemas Evolutivos, la cual actualmente plantea que los sistemas evolucionan como resultado del constante cambio producido por el flujo de materia, energía  e información que los cruza.

 

Aplicando este enfoque al ámbito de la programación, los Sistemas Evolutivos estudian la forma de construir sistemas capaces de modificar sus reglas, procesos, datos, y/o estructura, cada vez que nueva información ingresa al mismo.

 

En mi artículo Introducción a la Evolución y los Sistemas Evolutivos [7] hago una analogía de los seres humanos y los Sistemas Evolutivos para entender el funcionamiento de estos últimos. En este artículo describo al ser humano como un Sistema Evolutivo constituido a su vez por varios sistemas (circulatorio, respiratorio, digestivo, etc.) que trabajan con un fin común; que el hombre permanezca vivo.  La analogía es la siguiente:

 

“Cuando un niño toma entre sus manos un vaso de cristal por primera vez, puede suceder que el vaso resbale o incluso caiga de sus manos.  Esto es a causa del desconocimiento de la presión que debe ejercer la mano sobre el vaso.

 

Si esta actividad fuera ejecutada por un brazo mecánico, ciertamente primero sería necesario “enseñarle” cual es la presión indicada que debe ejercer para no tirar ni destrozar el vaso.

 

En  el caso del niño, este conocimiento es absorbido de manera tan transparente que no es necesario que alguien le haga saber cuanta presión debe ejercer la próxima vez que tome un vaso de cristal.

 

Esta capacidad del Sistema (niño) de modificar su estructura de conocimiento (presión a ejercer) causada por el hecho de estar en contacto con nueva información, materia y/o energía (vaso de cristal), es lo que lo hace un Sistema Evolutivo.”

 

Fernando Galindo Soria menciona en su artículo Sistemas Evolutivos [13], las siguientes cinco características principales de los Sistemas Evolutivos:

 

1)      “El sistema debe contener algún mecanismo que le permita captar la realidad que lo rodea, ya que necesita conocer y estudiar el ambiente con el fin de detectar las diferencias y cambios que requiere para poder adaptarse y evolucionar en este medio.

2)      El sistema debe ser capaz de almacenar y representar el conocimiento, con el fin de construir su propia representación de la realidad y poderla explorar.

3)      El sistema debe ser capaz de “generar” nuevo conocimiento, a partir del que tiene   almacenado y el que capta del exterior, con el fin de que pueda proponer cambios o modificaciones a su imagen de la realidad incluyendo ese nuevo conocimiento.

4)      El sistema debe ser capaz de abstraer, a partir de un conjunto de conocimientos y reglas generales que los representan en forma sintética.

5)      El sistema debe ser capaz de establecer un diálogo con el exterior, con el fin de que pueda transmitir su conocimiento y propicie el cambio en el exterior y la retroalimentación de ese cambio hacia el interior.”

 

Durante 1986, se comenzaron a construir los primeros Sistemas Evolutivos, principalmente por investigadores de licenciatura  en Ciencias de la Informática de la UPIICSA del Instituto Politécnico Nacional y más tarde en el CENIDET-DGIT de Cuernavaca, Morelos.

 

Como ejemplo de estos sistemas, tenemos al Agente Evolutivo Manejador del Conocimiento [1] creado en 1997 por el investigador Jesús  Olivares Ceja, el cual se presentó en el X Congreso de la ANIEI sobre Informática y Computación. Este es un Sistema Evolutivo, encargado de obtener información de algún texto y extraer de él la información sustanciosa que produce conocimiento.

 

En 1993 Fernando  Galindo Soria  escribió el artículo Matrices Evolutivas [10], el cual se publicó en Abril de 1998 en la Revista Científica  de la Escuela Superior de Ingeniería Mecánica y Eléctrica del Instituto Politécnico Nacional. En él, define a una matriz evolutiva, como un espacio n-dimensional que permanentemente está cambiando de la siguiente manera: Originalmente, la matriz evolutiva está vacía, por lo que el espacio que representa también lo está. Más adelante cuando llegan las  primeras reglas o imágenes, surgen los primeros puntos, pero estos no están fijos, ya que, cuando una regla de la matriz evolutiva se modifica, el punto que la representa también cambia de posición, con lo que, en forma natural, el espacio se está afinando y evolucionando”.

 

Como ejemplos de Sistemas Evolutivos que  utilizan matrices evolutivas para su desarrollo tenemos los siguientes.

 

El trabajo Sistemas Evolutivos Generadores de Escenarios Fractales [14], desarrollado por el investigador José Armando Medina May y presentado en el X Congreso Nacional ANIEI sobre Informática y Computación, es un sistema que  crea escenarios basados en paisajes que evolucionan bajo el concepto de matrices evolutivas.

 

En Aplicación de los Sistemas Evolutivos en el Análisis de Espectros de Rayos Gamma [4], los investigadores Luis E. Torres Hernández, Luis C. Longoria G., Antonio Rojas Salinas, investigadores del Instituto Tecnológico de Toluca, diseñaron en 1995 un sistema que utiliza matrices evolutivas, para analizar espectros gamma y generar huellas de comportamiento a partir de varios archivos de datos con formatos ASCII. Para ello, se representa al espectro como un vector, que al agruparlo con otros, forma una matriz. La operación que se realiza sobre estos vectores depende de sus valores, de manera que nuevos vectores pueden ser agregados a la matriz.

 

El Sistema Evolutivo de Reconocimiento de Formas en Dos Dimensiones [15], desarrollado también en 1995 en la Escuela Superior de Cómputo del Instituto Politécnico Nacional por los investigadores Karla García García, Sergio Salcido Bustamante, Alfonso Ventura Silva, está diseñado para reconocer formas en dos dimensiones, sin que el sistema posea archivos predefinidos de imágenes, sino, que, almacena los datos que le envía el digitalizador en memoria y terminado este proceso, compara la forma recibida con todas las formas que ya conoce, las cuales están enlistadas en un archivo. En caso de que la forma sea nueva, este aprende bajo la definición que el usuario proporcione y lo almacena en un archivo nuevo. Por otro lado, cuando la forma presenta gran similitud con alguna conocida, se crea una nueva, que contiene características que se suman de cada una de ellas.

 

En 1999 Horacio Alberto García Salas presentó en la Unidad Profesional Interdisciplinaria de Ingeniería Ciencias Sociales y Administrativas del Instituto Politécnico Nacional, la Tesis de Lic. en Informática titulada Aplicación de los Sistemas Evolutivos a la Composición Musical. Éste, es un Sistema Evolutivo capaz de crear música basándose en obras existentes de uno o varios autores. El sistema lee el archivo de música y obtiene de él la información que lo distingue y lo integra en una matriz evolutiva. Con esta información, genera una nueva pieza que deja ver matices del o los autores originales.

 

 

 

 

capítulo 2

 ANÁLISIS

2.1 Generales

 

Objetivo: Se pretende obtener un Sistema Evolutivo capaz de manejar elementos programados llamados  “seres virtuales”, los cuales  vivan, crezcan, se reproduzcan y mueran basándose en reglas iniciales  que serán modificadas por el propio sistema mientras éste se encuentra en ejecución (tiempo real).

 

Requerimientos del sistema: Para la creación  del núcleo del Sistema Evolutivo será necesario contar con información sobre:

-Teoría y programación de Sistemas Evolutivos

-Información sobre matrices evolutivas

-Control de varios elementos en un programa en ejecución

-Algún lenguaje de programación

 

Para la creación de los seres virtuales será necesario contar con información sobre:

-Vida Artificial

-Programación del problema clásico del juego de la vida

-Información sobre autómatas celulares

-Detección de características y atributos inherentes a un ser

 

 

2.2 Análisis de Mundo Artificial                                                                                          

Basado en el contexto de la Vida Artificial y los Sistemas Evolutivos, se crea el proyecto Mundo Artificial Basado en Sistemas Evolutivos, el cual es un espacio simulado por computadora donde existen toda clase de seres parecidos a  insectos llamados “bichos”, los cuales poseen características que los distinguen como forma, color y tiempo de vida.

 

 

Los bichos  pueden nacer, alimentarse, reproducirse y morir dentro de un ambiente simulado llamado mapa. 

 

Un bicho, posee diferentes características que lo distinguen, como forma, color, tiempo de vida, madurez reproductiva y fuerza de ataque. Todas estas características, definen una especie.

 

Dos bichos de la misma especie pueden reproducirse y crear otro bicho idéntico a ellos. Y también,  dos bichos de diferente especie pueden reproducirse para generar una nueva especie. Debido a lo anterior, habrá especies que desaparezcan y otras nuevas que surjan con el paso del tiempo haciendo que las especies de bichos se mantengan en constante evolución.

  

Las reglas que rigen a los bichos para reproducirse y alimentarse, dependen directamente de las características de la especie a la que pertenecen.  Como los bichos, son evolutivos, las reglas que los rigen, se establecen cada vez que una nueva especie es creada, así, estas reglas y las características de cada bicho, están en constante  evolución.

 

 

2.3 Descripción del Funcionamiento                                                                                   

Al igual que en el juego de la vida, en Mundo Artificial se crea una matriz que almacena la ubicación  de cada bicho en pantalla, a la que llamaremos mapa.

 

Una vez que un bicho ha sido activado o marcado con el estado “vivo” dentro del mapa, su contador de tiempo de vida se decrementa en una unidad por cada ciclo, al igual que la ingesta o cantidad de comida que se supone tiene al iniciar.  Desde este momento, el bicho debe mantener su ingesta arriba de 0, para evitar morir de hambre. Una vez que su contador de tiempo de vida o ingesta llegue a 0, el bicho pasa al estado “muerto” y la celda que lo contiene se vacía, quedando libre para almacenar a un nuevo bicho.

 

 

Nota: La vecindad  que se utilizará, será la de ocho, vecinos.

 

 

Dentro del mapa, a cada bicho le pueden ocurrir tres cosas:

- Que se alimente

- Que se reproduzca

- Que muera

 

 

Alimentación

 

Se considera que el bicho requiere alimento si su ingesta actual (cantidad de alimento ingerido hasta ese momento), es menor a la ingesta máxima (cantidad máxima de alimento que puede ingerir, determinada por la especie a la que pertenece). Si no tiene hambre no comerá.

 

Para poder alimentarse un bicho debe:

-tener hambre

-encontrar una presa en su vecindad

-tener permitido alimentarse de la especie a la que pertenece su presa.

 

Para ejemplificar esto,  se ha seleccionado al bicho de especie “A”, que se encuentra en la posición (1,1),  en la figura 2.3.1.

 

En la figura 2.3.1, los bichos son representados con letras.  Letras iguales simbolizan bichos de especies iguales y letras diferentes, simbolizan bichos de especies diferentes.

 

En la posición (1,1),  “A” representa un bicho de especie “A”, vecino a un bicho de especie “B”.

 

 

1

2

1

A

 

2

 

B

Figura 2.3.1. A  y “B” son dos

bichos vecinos de diferentes

especies

 

En este ejemplo, suponemos que al analizar el atributo de Fuerza de ataque, se descubre que “A”tiene mayor fuerza que “B”.

 

 

Siendo  “B”  más débil que “A”, entonces, “A”se alimenta de “B”, eliminándolo de la celda que lo contiene y moviéndose a este lugar.

 

 

1

2

1

 

 

2

 

A

Figura 2.3.2 “A”se alimenta de “B”

y se desplaza a la posición de “B”.

 

Si por el contrario, se encuentra que “B” es  más fuerte que “A”, entonces, “A” intenta alejarse para evitar ser devorado.

 

En la figura  2.3.3, “A”es más débil que “B”.

 

 

1

2

3

1

 

A

 

2

 

 

B

Figura 2.3.3. “A”tiene menor fuerza

de ataque que “B”

 

Al ser “A”una posible presa de “B”, “A”busca una espacio, que se encuentre en su propia vecindad,  y que a la vez, se encuentre lejos de “B”.

 

En la figura 2.3.4, “A”se aleja de “B” para no morir.

 

 

1

2

3

1

A

 

 

2

 

 

B

Figura 2.3.4. “A”que antes estaba en

la posición (2,1) se ha mudado a la

posición (1,1) para evitar servir de

alimento a “B”

 

En estos casos en que uno bicho es mas fuerte que el otro, “A”y “B” tienen la posibilidad de interactuar, porque las reglas de alimentación lo han permitido, pero,  puede suceder que, aunque “A”sea más fuerte que “B”,  las reglas establecidas al crearse la especie, no permitan que “A”se alimente de “B”.

 

 

En la figura  2.3.5, “A”es más débil que “B”.

 

 

1

2

3

1

 

A

 

2

 

 

B

Figura 2.3.5. “A”se mantiene en su posición,

al no estar en peligro de ser alimento de “B”.

 

Suponemos que al analizar las reglas  de Alimentación, se descubre  que “B”  no puede alimentarse de “A”, entonces, el siguiente estado se verá igual,  pues “A”no puede realizar ningún cambio.

 

 Reproducción

 

Dos bichos se reproducen, cuando generan otro bicho nuevo, a partir de los valores de sus propios atributos.

 

Para poder reproducirse, un par de bichos debe:

 

- haber alcanzado la madurez reproductiva (determinada por las características de la    especie, es un valor que fluctúa entre 0 y el valor del máximo tiempo de vida).

- ser compatibles

 

En la figura 2.3.6,  los bichos de las posiciones (1,1) y (2,2) son de la misma especie.

 

 

1

2

1

A

 

2

 

A

Figura 2.3.6. “A”(1,1)  y “A”(2,2)

pertenecen a la misma especie.

 

 

Suponiendo que ambos bichos han alcanzado la madurez reproductiva, es decir que ambos han rebasado el tiempo de vida mínimo necesario para considerar que pueden reproducirse, se procede analizar la compatibilidad entre ambos.

 

 

Para verificar la compatibilidad se analizan las reglas de reproducción generadas al crearse la especie “A”. Suponiendo que son compatibles, ya que son de la misma especie, ahora pueden crear otro bicho de la misma especie en un espacio vecino a ambos bichos.

 

En la figura 2.3.7, se ha creado un nuevo bicho en la posición 2,1.

 

 

1

2

1

A

A

2

 

A

Figura 2.3.7.  “A”(2,1) es el

resultado de la reproducción

de “A”(1,1) y  “A”(2,2).

 

 

Ahora veamos el caso en que se reproducen dos bichos de especies diferentes.

 

En la figura 2.3.8,  “A”(1,1) y “B”(2,2) son de especies diferentes.

 

 

1

2

1

A

 

2

 

B

Figura 2.3.8 “A”y “B” son de

diferentes especies.

 

Al analizar la compatibilidad de  “A”(1,1)  y “B”(2,2) suponemos que tienen permiso de reproducirse y entonces, “A”(1,1) y “B”(2,2)  generan la nueva especie “C”, ubicada en (2,1).

 

 

 

1

2

1

A

C

2

 

B

Figura 2.3.9 “A”y “B” se

reproducen generando

la nueva especie “C”.

 

El bicho de especie “C”,  no es idéntico a “A”ni a “B”, si no que es un bicho de  una nueva especie producto de ambos padres.  Por lo tanto, tiene características de ambos y a la vez, sus propias características.

 

Para realizar este proceso, se permite que los valores  posibles de cada una de las características que definen a la especie  puedan caer en uno de los siguientes casos:

 

-el valor sea idéntico al de la especie “A”

-el valor sea idéntico al de la especie “B”

-el valor sea un promedio de los valores de las  especies  “A”y “B”

-el valor sea aleatorio

 

Este último,  le dará la oportunidad de contener información nueva.

 

 

Muerte

 

Se considera que un bicho muere, cuando:

-el tiempo de vida finaliza

-ha terminado su reserva de alimento

-es devorado por un depredador

 

 

En la figura 2.3.10,  “A”(1,1)  esta a punto de finalizar su tiempo de vida.

 

 

1

2

1

A

 

2

 

B

Figura 2.3.10. El contador

de tiempo de vida de “A”, 

esta a punto de llegar a 0.

 

Después de algún tiempo,  “A”(1,1) desaparece, pues su tiempo de vida ha terminado.

 

 

1

2

1

 

 

2

 

B

Figura 2.3.11. “A”desaparece

al finalizar su tiempo de vida.

 

 

CAPÍTULO 3

Diseño

 

 

 

3.1 Diagrama Nivel 0

Como se puede ver en el diagrama 3.1.1 de nivel 0, el sistema se encuentra en interacción permanente  con tres almacenes de información, que son:  el mapa de ubicación, las especies y  las reglas.    

 

De estos tres, obtiene la información necesaria para representar a cada uno de los insectos virtuales que existan en la pantalla, las características de la especie a la que pertenecen y  las reglas que actúan sobre ellos, respectivamente.

 

Esta información al ser procesada, reingresa a su respectivo almacén, alterando el contenido existente y manteniéndose en constante evolución.

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Diagrama 3.1.1. Diagrama de nivel 0 de Mundo Artificial.

3.2 Las Especies                                                                                                                      

Cada especie tiene un conjunto de características que distinguen a los bichos que forman parte de ella y  son:

 

Ø     Identificador de la especie

Ø     Tiempo Máximo  de Vida

Ø     Madurez Reproductiva

Ø     Fuerza de Ataque

Ø     Color (RGB)

Ø     Numero de puntos que forman el cuerpo

Ø     Numero de patas

Ø     Coordenadas de los puntos que definen la forma del cuerpo

 

La especie  se  almacena como un vector dentro de una matriz que contiene todas las especies de bichos.

 

 

En la tabla 3.2.1 se presenta un ejemplo de almacén de especies de bichos. En ella se han guardado cuatro especies diferentes y los valores han sido adquiridos aleatoriamente.

 

 

 

Especie

Características de la Especie

 

Tiempo de Vida

Madurez Reproductiva

Fuerza de Ataque

Pares de patas

Puntos que forman el cuerpo

Color (RGB)

1

4586

3586

78

4

8

123,233,25

2

1256

426

42

5

10

111,98,23

3

7851

3586

78

7

5

23,11,255

4

4256

3589

47

3

3

1,34,45

Tabla 3.2.1.  Información de cuatro especies de insectos virtuales.

 

 

 

Ya que las características Tiempo de Vida, Madurez Reproductiva y Fuerza de Ataque, determinan el comportamiento del bicho, estas características establecen, las reglas de comportamiento del bicho.

 

 

 

Las figuras 3.2.1 a) a 3.2.1 f)  muestran ejemplos de bichos generados con un applet generador de bichos que se encuentra en la dirección electrónica ./software/generabichos.html  .

 

 

Figura 3.2.1 a)                                                                            Figura 3.2.1  b)

  

Figura 3.2.1 c)                                                                              Figura 3.2.1 d)

  

Figura 3.2.1 e)                                                                              Figura 3.2.1 f)

 

Figuras 3.2.1  a)    a     3.2.1  f)    Especies de bichos creados con el applet generador de bichos.

 

 

3.3 Las Reglas        

Las reglas son la forma en que interactúan dos bichos que se encuentran activos dentro del mapa, ya sean de la misma especie, o de diferente especie, se determina de acuerdo a las reglas generales que rigen el ambiente en que se desarrollan los bichos, llamadas simplemente reglas. Estas pueden ser de alimentación o de reproducción.

 

Las reglas se guardan en una matriz que contiene la información de la acción a realizar cuando dos bichos se encuentran.

 

En la tabla 3.3.1, se muestra la estructura de una regla de ambiente, que dará la información necesaria para realizar la acción correspondiente, cuando dos  bichos de dos especies x y y se encuentren.

 

 

 

Regla 1

b1

b2

b3

b4

..

bn

b1

 

 

 

 

 

 

b2

 

 

 

 

 

 

b3

 

 

 

 

 

 

b4

 

 

 

 

 

 

.

.

 

 

 

 

 

 

bn

 

 

 

 

 

 

Tabla 3.3.1. Estructura general de que forma una regla. En ella se han creado n columnas

y renglones, relacionadas con n especies diferentes de bichos existentes en el

 mapa de ubicación.

 

La tabla 3.3.1 contiene n columnas y renglones, correspondientes a n especies diferentes.

 

En general, una regla contendrá tantas columnas y renglones como especies de bichos existan en el mapa.

 

Las matrices mostradas en las figuras 3.3.1 a 3.3.4, fueron generadas con el applet generador de reglas que se encuentra en la dirección electrónica ./software/generareglas.html.  

 

En ellas se muestra detalladamente, el contenido de la matriz cuando se agregan 1, 2, 4 y 6 elementos distintos. La matriz inicial no contiene elementos y conforme estos se insertan, la matriz aumenta sus dimensiones.

 

                      

Figura 3.3.1 Matriz de un solo elemento.                        Figura 3.3.2 Matriz de dos elementos.

 

                    

Figura 3.3.3 Matriz de cuatro elementos.                        Figura 3.3.4 Matriz de seis elementos.

 

La tabla 3.3.2, ejemplifica una matriz que guarda la información de las reglas que siguen los bichos para reproducirse, considerando la existencia previa de cuatro especies diferentes de bichos.

 

Reproducción

b1

b2

b3

b4

b1

1

0

0

0

b2

0

1

0

0

b3

1

0

1

0

b4

0

1

0

1

Tabla 3.3.2. En esta tabla, se ha guardado la información necesaria

para realizar la regla de reproducción de cuatro especies de bichos. 

En ella se muestra, que al relacionar  b1 con b1, será posible la

reproducción, pero al relacionar  b2 con b3, no será posible la

reproducción. No así con b1 y b3,  los cuales podrán reproducirse.

 

 

En un inicio, las matrices que contienen las reglas, se encuentran vacías, pero conforme aumentan las especies de bichos, la matriz crece. Cuando las condiciones son propicias, dos bichos de especies diferentes se unen para crear un nuevo bicho, haciendo que también dos reglas iniciales se unan para crear una nueva regla. Es este proceso el que hace que la matriz  que contiene las reglas sea una matriz evolutiva.

 

 

 

3.4 El Mapa                                                                                                                             

El mapa es una matriz que contiene información de los bichos que han sido activados, es decir que han “nacido”, en  el sistema.  Cada bicho es almacenado en un retículo que puede ser visto como un autómata celular de manera individual, pues cada bicho tiene un estado, vecinos y reglas que lo rigen.

 

 

Al nacer, el bicho es registrado dentro de la matriz, con el estado “vivo”, guardando el identificador de la especie a la que pertenece el bicho, el tiempo de vida y la ingesta o cantidad de alimento de reserva, que varía de acuerdo a la especie a la que pertenece.  A partir de este momento, el tiempo de vida y la ingesta  decrecen hasta el momento en que los contadores lleguen a 0. En ese momento el bicho pasa al estado “muerto”.

 

 

La figura 3.4.1,  representa una generación de bichos de diferentes especies que existen dentro del mapa.

 

 

 

b1

b3

b2

 

b4

 

B1

b4

 

b2

 

 

 

 

b3

 

B2

 

b1

 

b2

b4

b1

b4

 

 

 

b3

b4

b3

 

 

 

 

b4

 

B4

 

b4

 

b4

b3

b2

 

b2

 

B1

 

b3

b2

 

b1

 

b3

 

 

 

 

 

 

b3

 

 

 

 

 

B2

b1

b4

 

 

b4

 

b4

b1

 

 

 

 

b3

 

 

b1

 

 

 

B3

 

b2

 

b2

 

 

 

b2

B4

 

b4

 

b1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figura 3.4.1.  Mapa de ubicación que contiene cuarenta y cinco

                    bichos de cuatro especies diferentes.

 

 

 

 

Las figuras   3.4.2 a)    y    3.4.2 b)   son  ejemplos    de    mapas   creados   con   un applet  generador de mapas que se encuentra en la dirección electrónica ./software/generamapa.html.

 

En las figuras se pueden observar dos mapas que contienen a varios bichos de distintas especies.

 

Figura 3.4.2 a)

 

 

Figura 3.4.2 b)

 

Figuras 3.4.2 a) y 3.4.2 b) Ejemplos de mapas de ubicación creados con el applet generador de mapas.

 

 

3.5 Diagrama de Nivel 1                                                                                                        

En el diagrama 3.5.1 de nivel 1 se muestran los tres procesos principales que componen al sistema.  Después de ejecutarse el Inicializado del Sistema,  el Manejador del Desarrollo de los bichos y el Actualizador del Sistema se ejecutan en forma concurrente, es decir, simulando que se corren al mismo tiempo en un solo procesador, para permitir una mayor similitud con el mundo real.

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Diagrama 3.5.1. Diagrama de nivel 1 de Mundo Artificial.

 

 

Inicializador del Sistema

 

Se encarga de generar las especies de bichos, el mapa de ubicación y las reglas que operarán sobre los bichos.

 

 


   

 

 

 

 

 

 

 

Diagrama 3.5.2. Explosión del proceso Incializador del Sistema.

Actualizador del sistema

 

Decrementa el tiempo de vida y la ingesta actual (cantidad de reserva de alimento) de cada uno de los bichos existentes en el mapa.

Depura a los bichos muertos del mapa, es decir, a los bichos cuyo tiempo de vida o ingesta es nula y por tanto, pasan al estado muerto. También se encarga de actualizar la imagen en pantalla de los bichos que permanecen vivos.

 

 

 

 

 

 

 

 

 

 

 

 

 


Diagrama 3.5.3. Explosión del proceso Actualizador del Sistema.

 

 

Manejador del desarrollo de los bichos

 

Se encarga de seleccionar un bicho existente en  el mapa y una regla del almacén de reglas,  y aplicar esta última sobre el bicho. En este paso se hace posible la modificación de las reglas, las especies y el mapa, a través del proceso de  reproducción, que puede generar un bicho de una nueva especie, el cual será insertado en el mapa y agregado  como una nueva línea a cada una de las reglas existentes en el almacén de reglas y como una nueva especie en el almacén de especies.

 

 

 

 

 

 

 

 

 

 

 

 

 


Diagrama 3.5.4. Explosión del proceso Manejador del Desarrollo de los Bichos.


 

 

 

3.6 Diagrama Integrado de Nivel 2                                                                                                                

El siguiente diagrama, es la integración de los diagramas 3.5.2, 3.5.3 y 3.5.4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Diagrama 3.6.1. Integración de los diagramas 3.5.2, 3.5.3 y 3.5.4.

 

 

 

 


capítulo 4

Funcionamiento

En este capítulo se mostrarán algunos ejemplos del funcionamiento del sistema Mundo Artificial.

 

El sistema se implementó en el leguaje de programación Java. La razón es la facilidad que ofrece este lenguaje en la programación de hilos. Los hilos son herramientas que permiten ejecutar varios procesos de un programa, simulando que cada uno tiene su propio procesador para su ejecución.

 

En la dirección electrónica http://paoneri.terrashare.com/software/p1.html, se encuentra un applet que permite visualizar el sistema  Mundo Artificial Basado en Sistemas Evolutivos.

 

En la figura 4.1, se ha creado una generación aleatoria de bichos, en un applet que corre en una ventana.

 

 

Figura 4.1. Generación de bichos creada por el sistema “Mundo Artificial”.

 

 

 

Después de algún tiempo, la especie predominante ha rebasado en número a las demás especies.

 

Figura 4.2. Generación de bichos obtenida después de algún tiempo

de ejecución del sistema  “Mundo Artificial”. La especie predominante

ha acaparado el espacio.

 

Ahora se ha creado otro mapa con nueve especies distintas.

 

Si  observamos a los dos bichos que se encuentran en la esquina superior izquierda, vemos que son vecinos.

 

 

Figura 4.3. Mapa generado con el sistema Mundo Artificial donde se ha

puesto especial atención a los dos bichos de la esquina superior izquierda.

 

 

Poco tiempo después, el bicho que se encontraba en  la parte superior izquierda más alta de la figura 4.3, aparece en segundo lugar de arriba hacia abajo y de izquierda a derecha en la figura 4.4 y un nuevo bicho a ingresado en su posición anterior. Esto se debe a que los bichos vecinos mencionados al inicio, interactuaron como alimento uno de otro, moviéndose el depredador al lugar de la presa  y dejando libre el espacio original del depredador para almacenar a un nuevo bicho.

 

Figura 4.4. Después de algún tiempo, los bichos han cambiado respecto

a la figura 4.3.

 

 

 

 

En el mapa de la figura 4.5, los bichos de la segunda columna “mueren “, dejando su espacio vacío como se ve en la figura 4.6, mientras que el bicho de la tercera columna de la figura 4.5, se desplaza a la segunda columna en la figura 4.6. Seguramente, esto se debe a que intenta huir de algún depredador que se encuentra en su vecindad.

 

 

Figura 4.5.Mapa generado con Mundo Artificial.

 

 

Figura 4.6. Los bichos de la segunda columna han desaparecido y el bicho de la tercera columna se ha desplazado a la segunda  columna para mantenerse a salvo de algún depredador cercano.

 

 

 

Puesto que el bicho de la segunda columna en la figura 4.6 solo tenía un vecino en la figura 4.5, podemos saber que es precisamente este vecino depredador quien lo obligó a mudarse, recorriéndose una posición.

 

 

 

CONCLUSIÓN

 

En el presente trabajo se propuso la aplicación de la teoría de los Sistemas Evolutivos y los automatas celulares al área de la Vida Artificial, como una herramienta en la simulación de espacios de vida, usando en particular las matrices evolutivas. Dando como resultado un espacio simulado donde seres virtuales llamados bichos nacen, crecen, se reproducen y mueren bajo el control de reglas que se crean y modifican constantemente.

 

Durante la ejecución del sistema fue posible distinguir los patrones de comportamiento de algunas especies. Por ejemplo, se encontraron algunas especies cuyo comportamiento era similar a la de una manada de leones, es decir, el número de bichos creados era relativamente pequeño mientras que la fuerza de ataque era grande, haciendo que la manada se separara del resto de los bichos, dejando un espacio claramente delimitado a su alrededor.

 

Algunos mapas concluyen con la muerte de todos los bichos, mientras que otros, logran establecer un equilibrio entre la reproducción  y la alimentación de algunos grupos de especies. Este proceso es el que resulta mas parecido al funcionamiento que tiene un ecosistema en equilibrio, en donde, una especie produce suficientes crías como para no extinguirse cuando otra especie mas fuerte se alimenta de ella.

 

 

REFERENCIAS                                                 

  [1] OLIVARES Ceja, Jesús. “Agente Evolutivo Manejador del Conocimiento

Memorias del X Congreso Nacional ANIEI sobre Informática y Computación

Monterrey, N. L. Octubre 1997

[2] JIMÉNEZ Morales, Francisco. “Autómatas Celulares y Vida Artificial”

Francisco Jiménez Morales.

http://complex.us.es/~jimenez/CA/ac/ac.html

[3] TORRES Hernández, Luis E., LONGORIA G., Alfonso, ROJAS Salinas, Antonio. “Aplicación de los Sistemas Evolutivos en el Análisis de Espectros de Rayos Gamma“

Memorias de la Primera Conferencia de Ingeniería Eléctrica CIE/95

CINVESTAV del IPN.

Cd. de México. Septiembre 1995

[4] NERI Ortiz, Ma. Paola. “Como Programar un Sistema Evolutivo”

http://paoneri.terrashare.com/Articulos.htm

ESCOM del IPN

Cd. de México. Noviembre 2000

[5] GALINDO Soria, Fernando. “Desarrollo Histórico de los Sistemas Evolutivos”

UPIICSA del IPN

Cd. de México. Noviembre 1989

[6] ADAMI, Christoph. “Introduction to Artificial Life”

Editorial Telos (http://www.telospub.com)

[7]  NERI Ortiz, Ma. Paola. “Introducción a la Evolución y los Sistemas Evolutivos”

http://paoneri.terrashare.com/Articulos.htm

ESCOM del IPN

Cd. de México. Septiembre 2000

[8]  NERI Ortiz, Ma. Paola. “Introducción a la Vida Artificial y su Relación con los Sistemas Evolutivos”

http://paoneri.terrashare.com/Articulos.htm

ESCOM del IPN

Cd. de México. Enero 2001

[9] La Vida llegó a Maloka

Pagina web con información descriptiva sobre el área de la Vida Artificial

http://maloka.org/virtual/vida/evolucion.htm

[10] GALINDO Soria, Fernando. “Matrices Evolutivas”

Revista Científica num. 8

Editorial de la ESIME del IPN

Cd. de México.  Marzo – Abril de 1998

[11] GARCÍA V., Angélica, MUÑOZ Meléndez, Angélica, NEGRETE, José. “Propuesta de un Mundo Sintético Fundado en Metodologías Basadas en el Comportamiento”

Memorias del VI Congreso Nac. sobre informática y computación organizada por la  Asociación Nac. de Instituciones de Educación en Informática (ANIEI)

Mérida, Yucatán.  Octubre 1993

[12] NERI Ortiz, Ma. Paola. “Reseña Cronológica de los Videjuegos y Aplicación de los Sistemas Evolutivos para su creación”

http://paoneri.terrashare.com/Articulos.htm

ESCOM. del IPN

Cd. de México. Octubre 2000

[13] GALINDO Soria, Fernando. Sistemas  Evolutivos”

Boletín de Política Informática del INEGI- SPP.

Cd. de México.  Septiembre de 1986

[14] MEDINA May,  José Armando. “ Sistemas Evolutivos  Generadores de Escenarios Fractales”

Memorias del X Congreso nacional ANIEI sobre Informática y Computación

Monterrey, N. L. Octubre 1997

[15] GARCÍA García, Karla, SALCIDO Bustamante, Sergio, VENTURA Silva, Alfonso. “Sistema Evolutivo de Reconocimiento de Formas en dos dimensiones”

Teoría y Práctica de los Sistemas Evolutivos

Editor Jesús Olivares Ceja (www.jesusolivares.com)

Cd. de México, 1997

[16] EMMCHE, Claus. “Vida Simulada en el ordenador. La nueva ciencia de la Inteligencia Artificial”

Colección Limites de la Ciencia

Editorial Gedisa (http://www.gedisa.com)

Octubre de 1988

 

 

 

 

 

PROYECTO DESARROLLADO EN LA

ESCUELA SUPERIOR DE CÓMPUTO DEL

INSTITUTO POLITECNICO NACIONAL

CD. DE MÉXICO, MÉXICO

MAYO 2001