IV.8  Sistema Evolutivo de Reconocimiento de Formas en dos Dimensiones

Diana Karla García García*

Sergio Salcido Bustamante**

Alfonso Ventura Silva***

 

Introducción

La realidad es, ante el ser humano, un enorme mosaico de fenómenos en constante cambio. Algunos de ellos son tan sutiles que sólo la observación dedicada permite apreciarlos, en cambio, otros son determinantes. Sin embargo, todos los cambios del entorno, que son captados por el ser humano mediante alguno de sus mecanismos de percepción, son útiles para que éste pueda recrear en su mente un modelo único del medio que lo rodea.

   Como el medio está en constante transformación, el modelo de la realidad de cada individuo comienza a evolucionar desde su nacimiento, y este proceso sólo concluye con la muerte. Las experiencias acumuladas en el transcurso de su vida lo preparan para responder cada vez en forma más adecuada a las transformaciones que le demandan una participación activa. Como resultado de este proceso, con el tiempo, el ser humano es capaz de dominar ciertos campos del entorno y de modificarlo de acuerdo a sus necesidades. De esta forma, la habilidad adquirida le permite interactuar continuamente en su entorno limitado, con un riesgo muy pequeño de encontrarse sin respuesta ante alguna circunstancia.

 

 

* Diana Karla García García, ** Sergio Salcido Bustamante, ***Alfonso Ventura Silva realizaron este trabajo en 1995, cuando cursaban el 4to semestre de la carrera de Ingeniería en Sistemas Computacionales en la Escuela Superior de Computo del IPN y lo presentaron en el Concurso Nacional de Ciencia y Tecnología, organizado por el CONADE en la Cd. de México en 1996

 

   De la misma forma que el hombre evoluciona en su modelo de    realidad, se pretende que los sistemas de información se adapten a entornos en constante cambio mediante la evolución del modelo de su entorno a medida que conoce más sobre el. En otras palabras, se concibe la idea de sistemas de propósito general dinámicos que tengan la disposición de "aprender" del medio en que se desarrollan mediante la integración de nuevas premisas en sus estructuras internas, las cuales comienzan a influir, en tiempo real, en los procesos que el sistema lleva a cabo, habilitándolo así para responder ante circunstancias distintas con modelos actualizados de su entorno.

   Un sistema con los mecanismos informáticos que le aporten las cualidades descritas es llamado "Sistema Evolutivo" y es una alternativa para uno de los problemas principales de la informática actual, que consiste en la dificultad para mantener vigentes los sistemas de información, ya que, una vez finalizada la construcción de un sistema convencional (estático e inalterable) es difícil que éste responda a nuevos requerimientos, producto de cambios en el medio en que se desarrolla.

   Por otra parte, en el campo de Inteligencia Artificial, uno de los problemas "clásicos" es el reconocimiento de formas, pues esta íntimamente relacionado con procedimientos de percepción, abstracción y generalización.

   No obstante, las herramientas convencionales para el reconocimiento de formas, son capaces, en el mejor de los casos, de aceptar formas "nuevas" mediante un proceso de reprogramación que permite al sistema adoptar una estructura modificada capaz de integrar la nueva forma en sus procesos de análisis. Sin embargo, la gran mayoría contienen una base de datos estática que reconoce sólo las formas que fueron consideradas y modeladas en su construcción.

   Estos sistemas requieren además cantidades grandes de memoria puesto que no pueden integrar en un solo archivo los patrones descriptivos de formas similares, sino que los modelos iniciales son inalterables, y formas identificadas se destinan a nuevos archivos con el consecuente incremento en el uso de memoria.

   El problema mayor es que generalmente se diseñan con un propósito específico, (identificación de huellas digitales, reconocimiento de imágenes, etc.) Aunque dos sistemas como estos tengan exactamente el mismo algoritmo de reconocimiento, son incapaces de intercambiar sus medios, imposibilitando su aplicación inmediata en campos diferentes.

   En este documento, se describe un sistema evolutivo diseñado para reconocer formas, que no posee 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 completamente nueva para el sistema, ésta se "aprende" bajo la definición que el usuario proporcione y almacena en un archivo nuevo. Por el contrario, cuando la forma presenta gran similitud con alguna otra comprendida dentro de las ya conocidas, en lugar de ambas formas se crea una nueva, en la que se suman las características de cada una.

   De este modo, se logra una actualización natural de la forma y con el tiempo, cada vez que se realiza este proceso, algunos rasgos o puntos inciden por encima de los demás, convirtiéndose en esenciales y ayudando a la definición del patrón correspondiente a esta forma.

 

I  Hardware del Sistema

El prototipo cuenta con un dispositivo externo que permite digitalizar formas trazadas en láminas de acetato; el digitalizador (scanner) construido es "de mesa" y tiene la cualidad de realizar el recorrido de las imágenes que se le coloquen de forma completamente automática en las 2 dimensiones empleadas (largo y ancho), a diferencia de un digitalizador manual, donde el movimiento en una dimensión debe ser realizado por el usuario. La técnica empleada en el digitalizador de mesa permite obtener imágenes más cercanas a la realidad, pues no existen movimientos donde alguna discontinuidad accidental pudiera provocar alteraciones a la representación de la imagen.

   El funcionamiento del digitalizador es controlado por una computadora, que se encarga de enviar las señales necesarias para el movimiento de tres motores.  Dos de ellos desplazan la lámina de acetato con la imagen a lo largo del digitalizador y el otro mueve a lo ancho un dispositivo sensor que va realizando la "lectura" de la información.

   Los elementos que constituyen a este digitalizador pueden ser descritos a través de tres grandes bloques: dispositivos motores, dispositivos sensores, interfaz con la computadora.

1) Dispositivos motores: Se utilizan “motores a pasos”, los cuales poseen varias terminales por donde se introduce una secuencia de pulsos digitales (ceros y unos), que permite que el eje del motor dé un "paso", es decir, un pequeño desplazamiento angular que siempre es constante. Para que el motor dé varios pasos basta introducir tantas secuencias como pasos se deseen. El eje puede dar una revolución completa en un número finito y constante de pasos. Para realizar la rotación en sentido contrario solo debe introducirse la secuencia de forma invertida.

   El movimiento a lo largo del digitalizador se genera por dos motores a pasos y transmitido a través de un sistema de tracción sobre el cual se monta la lámina de acetato. Este sistema de tracción está constituido por dos ejes de acero, donde uno de ellos tiene en cada extremo un enlace con el rotor de un motor. Es conveniente aclarar que estos dos motores giran con la misma secuencia de pasos, de manera tal que sus rotaciones se dan con la misma velocidad y al mismo tiempo. El objetivo de esta particularidad es incrementar la potencia (par) en el giro, proporcionada por estos dispositivos.  El segundo eje de acero está montado sobre la estructura de madera que sustenta a todos los elementos, de tal forma que gira sobre si mismo y es paralelo al eje enlazado con los motores. Es necesario que la lámina de acetato esté sostenida por algún elemento que al mismo tiempo le transmita el movimiento deseado, lo cual se logra por medio de un par de bandas plásticas colocadas cerca de los extremos de los ejes, estos últimos cuentan con ruedas dentadas en las regiones de contacto con la banda que suprimen el derrapamiento que pudiera existir y evitan su desplazamiento a lo largo de los ejes.

   La distancia que separa a los ejes es el doble del ancho de una hoja tamaño carta, para que una lámina de acetato colocada horizontalmente pueda desplazarse a lo largo del digitalizador y se recorra en su totalidad.

   El movimiento realizado a lo Ancho del digitalizador es generado por un tercer motor a pasos que recibe secuencias independientes de los otros dos anteriores. Este desplazamiento horizontal mueve al sensor. Para tal efecto se utiliza el carro de una impresora en el que se ha conservando intacto el mecanismo que desplaza la cabeza de impresión, en lugar de este dispositivo ha sido colocado el elemento que porta al sensor.

   El recorrido de una lámina comienza con ésta colocada junto al eje motriz (o eje de tracción), el primer movimiento que se realiza es el desplazamiento del sensor a lo ancho del digitalizador, al llegar al extremo contrario del punto de inicio se produce un pequeño desplazamiento de la lámina en dirección al segundo eje, es decir, un movimiento a lo largo del dispositivo. Inmediatamente la secuencia de pulsos se invierte para el desplazamiento horizontal provocando que el sensor haga un recorrido en sentido contrario hasta llegar nuevamente al punto de inicio y en este momento vuelve a producirse otro pequeño movimiento a lo largo del digitalizador.  Este ciclo se repite hasta que la lámina de acetato es recorrida en su totalidad. Ya que se ha terminado el proceso de recorrido, el eje motriz gira en sentido contrario para regresar la lámina a su posición original.

   Es conveniente aclarar que la lámina de acetato no se coloca directamente sobre las bandas ya que no se sustenta por sí sola, por lo tanto se requiere utilizar un material que no se flexione con tanta facilidad, tal como la mica. Por su relativa rigidez y transparencia, este es el material ocupado para apoyar la lámina.

2) Dispositivos sensores: En el apartado anterior se ha considerado al sensor como un solo elemento, pero requiere de dispositivos auxiliares para un buen funcionamiento. Los elementos que se desplazan a lo ancho del digitalizador son: un sensor de luz infrarrojo y un diodo emisor de luz roja visible.

   El sensor recibe constantemente un haz de luz que tiene la capacidad de atravesar la lámina de acetato, excepto en las regiones que tengan algún trazo en negro con el suficiente grosor e intensidad. La configuración del circuito que controla al sensor le permite entregar un uno lógico cuando recibe al haz de luz, pero cuando por alguna obstrucción el haz es interrumpido, el circuito proporciona un cero lógico. La información producida es enviada a la computadora al momento que se genera. El elemento montado sobre el carro de impresora soporta al sensor y al emisor de luz por medio de dos varillas de aluminio, la disposición de estas piezas permite al sensor estar suspendido sobre la lámina de acetato a una distancia de 28 cm. del mecanismo que le proporciona movimiento y al emisor justo frente a él por debajo de la lámina.

   En vez de ocupar luz infrarroja para excitar al sensor se optó por la luz roja visible, pues al experimentar con diversos tipos se encontró que la primera traspasa incluso materiales traslúcidos con trazos en su superficie, en cambio, el rendimiento del sensor se reduce con el segundo tipo de luz y por consiguiente es mas fácil evitar su detección con las condiciones de obstrucción ya mencionadas.  Los trazos deben ser realizados en láminas de acetato porque son completamente transparentes y esta característica permite que el haz luminoso penetre sin mayor problema en las regiones libres de tinta negra. El emisor de luz roja envía su haz en forma de abanico, lo que disminuye la sensibilidad, pues las líneas muy delgadas no pueden detectarse. Para lograr una sensibilidad mayor se requeriría la emisión de luz coherente, tal como la proveniente de un láser y un sensor adecuado para ésta.

 

3) Interfaz con la computadora: El software que controla al digitalizador tiene por salida las secuencias de pulsos que activan a los motores y como entrada a la señal proveniente del sensor. Este intercambio de datos se realiza a través del puerto paralelo. De la terminal dos a la cinco se obtienen los pulsos para el motor que mueve al sensor, de la seis a la nueve surgen los correspondientes para los motores que desplazan a la lámina de acetato. En la terminal quince entra la señal que envía el sensor. La terminal 25 es utilizada como referencia (tierra).

   Es conveniente notar que como el voltaje y la corriente proporcionadas por la computadora Son insuficientes para activar directamente a los motores, debe colocarse una etapa de protección y otra de amplificación de potencia entre el puerto de la computadora y los motores.

   La fase de protección está constituida por un optoacoplador conectado a cada línea de salida de la computadora. Este dispositivo transfiere cualquier señal que se presente a su entrada por luz infrarroja (IR) dentro del encapsulado, aislando eléctricamente a la computadora de los voltajes y corrientes para motores.

   La potencia de las señales que provienen de la etapa de protección es incrementada al voltaje y corrientes necesarios por medio de transistores.

   La señal que envía el sensor pasa por una compuerta lógica (inversor) para evitar que la entrada de la computadora reciba señales intermedias entre ceros o unos.

 

II  Sistemas Evolutivos

Un sistema evolutivo no conserva modelos fijos de la realidad sino que es capaz de reconfigurarse internamente al interactuar con el medio ambiente. Su reconfiguración interna es posible ya que posee los mecanismos que le permiten:

1) Adquirir conocimiento progresivo: Es capaz de iniciar su operación sin conocer ninguna forma y crear archivos para las formas que considere nuevas.

2) Establecer relaciones entre los conocimientos adquiridos: Está habilitado para reconocer nexos entre las formas ya conocidas y las recientes, en términos de similaridad cuantificada por medio de un valor distancia, descrito más adelante.

3) Aprender el lenguaje para comunicarse con las personas: Utiliza procedimientos de reescritura para indicar al usuario en su propio lenguaje que la forma digitalizada posee un nombre si es reconocida o, en su defecto, para solicitarle uno.

4) Inferir y abstraer nueva información: Con cada forma que digitaliza, es capaz de abstraer información nueva, la cual se traduce en un renglón más en la lista de formas o, en la misma lista, pero con un archivo que contiene una acumulación más de la forma respectiva, lo que implica un patrón más definido del objeto real que representa.

5) Comunicarse con el medio ambiente:. Esta capacitado para establecer comunicación con el usuario, por medio de la interfaz de software y con el objeto de estudio por medio del digitalizador.

 

III  El Núcleo del Sistema

Las características evolutivas son factibles de implementarse en un programa para computadora si se considera una independencia relativa entre los elementos básicos del sistema: señales de entrada, estructura del sistema, procesos del sistema, datos del sistema, señales de salida, manejador del sistema.

1) Señales de entrada: En nuestro caso están representadas por los impulsos recibidos en el puerto paralelo que son interpretados como la presencia o ausencia de un punto sobre la lámina que se digitaliza. Para otros sistemas, esta señal puede ser desde una cadena de caracteres hasta señales de voz, sin que ello afecte la validez del esquema de elementos.

2) Estructura del sistema: En nuestro caso es la lista de imágenes conocidas, y en general se denomina "la gramática del sistema". Básicamente es un conjunto de reglas de reescritura permitidas para el sistema. Aquí es importante destacar que estas reglas son susceptibles de modificarse o incrementarse en número para integrar los nuevos conocimientos que adquiera el sistema. Este sistema reescribe una forma digitalizada con un nombre correspondiente. Sin embargo es igualmente válido reescribir por ejemplo, una señal de voz con la imagen en pantalla del poseedor de la misma, o viceversa.

3) Procesos del sistema: Son las rutinas que desempeñan diversas funciones encaminadas a la obtención de resultados, y se describen más adelante por grupos.

4) Datos del sistema: Son las representaciones en archivos de las imágenes del sistema. Como se ha comentado, las imágenes similares se acumulan en un solo archivo representativo de todas. Para otros sistemas, estos datos son también representaciones para la computadora del tipo de señales que maneja.

5) Señales de salida: Son los mensajes en forma de cadenas de caracteres mediante los cuales el sistema informa al usuario de los resultados del proceso de reconocimiento. En otros sistemas puede contarse con otros dispositivos físicos (como el digitalizador) conectados como periféricos a la computadora para representar mediante voz, luz, imagen, etc. a los resultados.

6) Manejador del sistema: Se encarga de controlar todo el sistema mediante la definición de la secuencia y el llamado al resto de los elementos en el momento que se requieren.

   La independencia relativa se refiere al hecho de que las modificaciones que se produzcan en alguno de ellos, no afecten al resto de los elementos.

 

 

 

 

 

 

 

 

 

 

 

 

 


Figura 1. Estructura básica de un Sistema Evolutivo

 

 

IV  Matrices Evolutivas

Hasta aquí se han observado las características que hacen evolutivo al sistema, sin embargo, el motivo por el cual fue creado es el reconocimiento de formas. Para tal efecto el sistema requiere establecer un formato de captura para las mismas, a partir del cual pueda llevar a cabo las operaciones básicas de:

1) Comparación.

2) Suma.

3) Agregación.

   Antes de describir las operaciones es necesario destacar el detalle del formato. El archivo que contenga una imagen se identifica con la extensión .IMG y consta solo de tantos caracteres como puntos detecta el digitalizador. La disposición es por líneas, que representan el barrido con el carro de impresora, de forma que la vista del archivo bien puede interpretarse por el ojo humano. Cuando la forma es nueva, los caracteres solo son '1' y ‘0’. Pero cuando alguna forma posterior se identifica con la representada por algún archivo, la suma de ellas implica que se representen, en el mismo archivo y conservando su dimensión, los puntos donde ninguna imagen incidió, los que fueron incididos solo por una de ellas y los incididos por ambas. Respectivamente se usan los caracteres “0”, “1” y “2”. De la misma forma se tratan las incidencias de n formas, empleando los caracteres ASCII subsecuentes al “9”, pues al restar al entero ASCII el número 48, se obtiene el número de imágenes que incidieron en el punto de que se trate. Por el momento, n está limitado al alcance ASCII, es decir 200 incidencias, que para propósitos prácticos consideramos suficiente.

   Establecido lo anterior, el proceso de comparación requiere extraer de la gramática el número de formas acumuladas para cada archivo que vaya comparando con la forma en memoria proveniente del digitalizador. Con este factor evalúa, punto por punto de las matrices respectivas, la coincidencia obteniendo en cada caso una distancia puntual que se acumula en una variable. La fórmula para este valor es:

|p.archivo - (factor)(p.digitalizado)|

 

donde p.archivo es el punto de la matriz de la forma del archivo en tumo, factor son las formas que se han acumulado en ese archivo y p.digitalizado es el punto de la matriz de la forma recién digitalizada.

   Hay cuatro casos posibles de incidencia:

1) La imagen digitalizada y la del archivo inciden en el punto. En este caso, aunque el valor del archivo sea mayor que 1 (por las formas que vayan acumuladas), gracias al factor la diferencia es cero y por lo tanto no se acumula diferencia.

2) Ninguna de las dos imágenes incide en el punto. La diferencia es entonces cero, manteniendo inalterada la distancia que vaya acumulada hasta ese momento.

3) La imagen del archivo incide y la del digitalizador no. El peso del punto en el archivo determinará el valor de la diferencia, por lo que el incremento en la distancia acumulativa es proporcional a lo importante del punto.

4) La imagen digitalizada incide y la del archivo no. Entonces, como se sabe por el factor acumulativo la importancia de que ese punto no sea incidido, la diferencia es negativa y de valor proporcional al factor mencionado. Por el valor absoluto aplicado el efecto en la distancia es de incremento también.

   Una vez acumulada la distancia de todos los puntos se evalúa la razón de este valor con respecto al valor matricial de los puntos de la imagen de archivo. Si se excede de cierto valor la imagen digitalizada se juzga diferente y se inicia el proceso de agregación. De lo contrario, la imagen se declara semejante y se realiza el proceso de suma.

   El proceso de agregación implica crear un nuevo archivo para la imagen no identificada, así como insertar su nombre en la lista de imágenes para que tome parte, en adelante, de los procesos de comparación. Obviamente el número asociado de imágenes acumuladas es uno.

   El proceso de suma modifica los datos o conocimientos del sistema al cambiar los símbolos ASCII del archivo que se relacionó con la imagen proveniente del digitalizador, por el valor siguiente en ASCII, con lo cual se asegura que en análisis posteriores el punto será considerado aún más importante de lo que ya era, dado que una imagen más (la reciente) coincide en él. Además es necesario alterar el factor de imágenes acumuladas que se guarda en el listado de imágenes para los mismos fines.

 

V  Software del Sistema

El programa principal inicia la comunicación con el usuario mediante una pantalla de presentación.  Luego aparece una pantalla con las opciones de Digitalizar Imagen o Salir del Programa, la elección Digitalizar presenta la cuadricula sobre la que se graficará la imagen, e inicia la Digitalización. Una vez terminada se comienza con el proceso de Reconocimiento de la imagen, finalmente una vez que la imagen ha sido reconocida o registrada, los archivos correspondientes son almacenados y se vuelve a la pantalla de opciones, desde la cuál se puede salir al sistema operativo, no sin antes cerrar el modo gráfico y limpiar la pantalla.

   Las funciones básicas del programa son: interfaz con el usuario, manejo de archivos, digitalización, graficación, reconocimiento, apoyo.

1) Interfaz con el usuario: Tiene las funciones de mensajes de fondo y de ventana. La función de mensajes es un despachador de mensajes que se envían al usuario a través de la pantalla. Normalmente el usuario recibe ocho mensajes. La función de fondo dibuja en el modo gráfico de vídeo el fondo de la pantalla, por lo tanto es llamada cada vez que se necesita actualizar la misma. La función de ventana forma el recuadro de colores Magenta-Cyan en el cuál se visualizan todos los mensajes, consecuentemente dicha función es llamada cada vez que se envía un mensaje.

2) Manejo de archivos: Incluye las funciones de manejo de archivos. La función carga archivo se encarga de decidir si el archivo que va a procesar es el correspondiente a una imagen, o el listado de formas. Las acciones que realiza son: abrir para lectura un archivo de texto, llamar a la función de mensajes en caso de que el archivo requerido no se pueda abrir por alguna causa, guardar en un arreglo de memoria dinámica el archivo a comparar y cerrar el archivo. En caso de tratarse de archivos de imágenes de manera adicional: determina el número de imágenes acumuladas en el archivo. La función para salvar archivos se encarga de grabar los datos contenidos en los arreglos de memoria dinámica que pueden ser el arreglo de una imagen que acaba de ser digitalizada, o una imagen cuyo archivo ya existía.

3) Digitalización: Hace posible que el proceso de digitalización y visualización en pantalla de la forma sea en tiempo real, gracias a que controla el movimiento de los motores, y la señal enviada por el sensor del digitalizador. El contenido de la dirección de entrada del puerto se enmascara para detectar el estado del pin que esta recibiendo la señal.

El número de movimientos en cada dimensión queda definido por las variables globales Ancho y Largo. La cantidad de pasos máxima para cada motor queda entonces limitada y por lo tanto la resolución del digitalizador.

4) Función de Secuencias: Esta función es llamada por la función digitaliza y envía directamente las señales de salida al puerto, con tiempos de retardo diferente, dependiendo del motor que se debe controlar.

5) Graficación: Tiene la función de Cuadricula que dibuja en la pantalla una cuadricula con dimensiones Largo por Ancho en unidades de x pixeles, donde x se define en tiempo real de acuerdo a las características del monitor con que se cuenta. La función de punto se encarga de dibujar sobre la cuadrícula el punto proveniente de la imagen que esta siendo digitada, en tiempo real. Recibe las coordenadas y el color de dibujo como parámetros.

6) Reconocimiento: Involucra las funciones para los procesos de Comparación, Suma y Agregación descritos anteriormente.

7) Apoyo: Son básicamente las funciones de: escape, visualización de cadena en modo gráfico, obtención del nombre de la forma a comparar y conversión de un número flotante a cadena.

 

Conclusión

Consideradas las características de los sistemas evolutivos se concluye que son una alternativa muy conveniente para desarrollo de aplicaciones de Inteligencia Artificial como el Reconocimiento de Formas. Para los usuarios son sistemas que integran automáticamente los conocimientos y los modifican sin necesidad de recurrir al programador para que los reconfigure. Sin embargo, a pesar de lo promisorio de los sistemas evolutivos no debe olvidarse que, para todo sistema, por más avanzada que sea la tecnología en que se apoya, no es capaz de conjuntar mas que unas cuantas imitaciones (muy malas) de los mecanismos humanos de percepción, por lo cual las restricciones en cuanto a analogías con el ser humano, son evidentes.

   En el campo del reconocimiento de formas, la herramienta desarrollada es de especial utilidad si se considera que se pueden construir bases de datos suficientemente grandes en múltiples áreas del conocimiento que almacenen imágenes. Elementos desconocidos pueden ser identificados y clasificados.  Por otra parte, sucesivos ejemplos de una clasificación conocida pueden introducirse al sistema con el fin de obtener un patrón general.  Las perspectivas de desarrollo de este prototipo son grandes, sobre todo en cuanto a resolución e información sobre la imagen se refiere (color, precisión, etc.).

 

Bibliografía

[1] Chomsky, Noam, Estructuras Sintácticas.  Ed.  Siglo XXI.

[2] Bach, Emmon, Teoría Sintáctica.  Ed. Anagrama.

[3] Salomaa, Formal Languages, Ed. Academic Press.

[4] Galindo Soria, Fernando, Sistemas Evolutivos, IPN-UPIICSA.

[5].Galindo Soria, Fernando, Generador de Sistemas como Núcleo de un Sistema Evolutivo.  Memorias del Festival de Ingeniería TECCONT 90, ITESM-CEM.

[6] Galindo Soria, Fernando, Una Representación Matricial para Sistemas Evolutivos, IPN-UPIICSA.

[7] Galindo Soria, Fernando, Sistemas Evolutivos: Nuevo Paradigma de la Informática.  Memorias de la XVII Conferencia Latinoamericana de Informática, Caracas, Venezuela. 1991.