Desarrollo Histórico de los Sistemas Evolutivos

Fernando Galindo Soria

UPIICSA-IPN

Noviembre de 1989

El área de los sistemas evolutivos es relativamente nueva ya que es alrededor de 1983 cuando se establece el concepto y es en 1986 cuando se presentan los primeros trabajos funcionando bajo este nombre, sin embargo tiene múltiples antecedentes desde hace muchos años, incluyendo los trabajos sobre.

Máquinas que aprenden (Learning Machines, de Nilsson, escrito en 1966).

Redes Neuronales (McCulloc y Pitts desde 1943).

Lingüística Matemática (trabajos de Chomsky sobre Gramáticas Generativo-Transformacionales desde 1957).

Desarrollo de Sistemas (Desarrollo Estructurado de Yourdon, Constantine y otros, durante los años 70s. Programación Estructurada, desde finales de los 60s. Desarrollo Lógico o de Warnier, durante los años 70s).

Base de Datos (concepto de Independencia de datos, bases de datos relaciónales de Codd desde finales de los 60s, modelo de Chen de Entidad-Relacion desde 1977).

Reconocimiento de formas (en particular Reconocimiento Sintáctico de Patrones, desarrollado por González y Thomason durante los 60s y el concepto fundamental de Inferencia Gramatical).

Fractales (propuestos por Mandelbrot desde los años 60s y desarrollados por el mismo desde mediados de los 70s).

   Como se puede ver existe una gran cantidad de antecedentes “dispersos” sobre el tema y es durante 1976 cuando en la Unidad de Cómputo de El Colegio de México (COLMEX), en la Escuela Superior de Física y Matemáticas (ESFM) del Instituto Politécnico Nacional (IPN) y en el Centro Nacional de Cálculo (CENAC) del IPN se comienzan a desarrollar las primeras investigaciones que culminarían en los Sistemas Evolutivos.

   Durante 1976 se organizo en el CENAC un seminario sobre Inteligencia Artificial que duró aproximadamente un año y en el cual participaron personas de la ESFM, del COLMEX, de la Escuela Superior de Ingeniería Química e Industrias Extractivas (ESIQUIE) del IPN, del Instituto Mexicano del Petróleo (IMP), de la Escuela Superior de Ingeniería Mecánica y Eléctrica (ESIME) del IPN y algunas personas de la Universidad Nacional Autónoma de México (UNAM); es dentro de este seminario donde se comenzó a encontrar la relación entre las diferentes áreas antecedentes y donde se empezó a tratar de aplicar estas herramientas para resolver problemas de reconocimiento de lenguaje.

   Durante 1976-1981 se trabajó en forma extensiva  en el Colegio de México, la ESFM y el CENAC en el desarrollo de herramientas para reconocer lenguajes en forma automática (compiladores, interpretes, constructores de compiladores) y de herramientas basadas en lenguajes (editores, manejadores de archivos, validadores de datos) por lo que para 1980 el problemas ya no era la construcción de un traductor (tesis de Lino Díaz “Construcción de Compiladores”) sino la falta de mecanismos que permitieran encontrar la estructura de un lenguaje (gramática o autómata).

   Es a principios de los 80s cuando en el COLMEX y en la Maestría en Computación del CENAC se comienzan a buscar algoritmos que permitan encontrar en forma automática la estructura de un lenguaje y se empieza a utilizar la Inferencia Gramatical (desarrollada en los trabajos sobre Reconocimiento Sintáctico de Patrones) para este propósito.

   A finales de 1980 se integra en la Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas (UPIICSA) del IPN la Unidad de Investigación y Desarrollo en Computación (UIDC) y es en este marco donde se empiezan a integrar los trabajos anteriores con las investigaciones desarrolladas por Vicente López Trueba, Christian Zempoaltecatl y Ricardo García sobre los métodos y herramientas de desarrollo de sistemas, principalmente sobre la arquitectura de los sistemas de información y los diagramas de Warnier y es en un seminario sobre informática, desarrollado a finales de 1981 en la UIDC donde se detecta que la estructura de los sistemas de información se pueden representar directamente como gramáticas.

   Por otra parte y en la misma época en los cursos de Lingüística Matemática del CENAC y de la UPIICSA se comienzan a estudiar por parte de los alumnos problemas en los cuales el “lenguaje” del problema no es un “lenguaje natural”, como por ejemplo: la estructura de una sustancia química, el dibujo de cuadrados y triángulos y muchos otros (cada alumno desarrolla un proyecto independiente) es a partir de estos trabajos donde se comienza a vislumbrar que “tal vez” los problemas informáticos en general son susceptibles de un tratamiento lingüístico y donde se comienza a proponer un enfoque dentro de los cursos en el cual dado un problema se busca el lenguaje que lo representa y de ahí se encuentra su gramática y el sistema de información, por lo que para 1983 se comenzó a contar con un esbozo de lo que para 1985 se presentó como “Programación Dirigida por Sintaxis”.

   Durante 1983 Gabriel Cordero, otro de los investigadores de la UPIICSA y en esa época Subdirector de Informática en la Secretaría de Educación Pública (SEP), desarrolla una herramienta orientada a manejar en un lenguaje natural restringido requerimientos sobre bases de datos. Este trabajo permite en una forma relativamente sencilla cambiar los términos usados, de tal forma que dos personas que utilicen el mismo dato pero con nombre diferente lo puedan hacer. A partir de este trabajo y de desarrollos paralelos realizados por Roberto Mendoza Padilla y Juan Martín González Vázquez se comienza a  pergueñar el concepto de Sistema Evolutivo como un sistema que es capaz de transformarse de acuerdo a los requerimientos del ambiente.

   Para principios de 1985, se presentan en un congreso organizado en el Instituto Tecnológico de Estudios Superiores de Monterrey (ITESM) campus Monterrey los trabajos de estos tres investigadores y en junio de 1985 se presenta la ponencia “Sistemas Evolutivos” en varios foros, donde se plantea en forma general la problemática de los sistemas de información, el concepto de sistema evolutivo, una primera propuestas de arquitectura, la factibilidad de desarrollar un sistema de ese tipo y los principales problemas que se estaban atacando en esa época. Este documento sirvió como guía de acción ya que permitió orientar la investigación sobre áreas más concretas, siendo tal vez una de las más relevantes la necesidad de dotar al Sistema Evolutivo con un mecanismo de tipo inductivo/deductivo, en contra de los mecanismos tradicionales de tipo deductivo.

   Es en la búsqueda de un mecanismo de tipo inductivo donde la Programación Dirigida por Sintaxis adquiere su verdadera magnitud ya que para 1985 este método se encuentra documentado y ya tiene desde 1983 de estarse aplicando cotidianamente para resolver problemas de Informática, depurándose a partir de la experiencia obtenida cada semestre, contándose ya con herramientas que automatizan algunas partes del proceso como por ejemplo la búsqueda de unidades léxicas a partir de un “diálogo con el usuario” las cuales tienen un antecedente de gran magnitud en el proyecto de “Diccionario del Español en México” realizado en el COLMEX desde mediados de los 70s.

   La búsqueda de la gramática de un sistema (conjunto de reglas que representan la estructura del sistema) tiene como antecedente los métodos de Inferencia Gramatical y ya para 1985 es común que los alumnos desarrollen sus propios programas que en forma automática lleven a cabo el proceso de inferencia gramatical; y por otro lado ya se cuenta con herramientas que en forma automática reconocen un lenguaje a partir de su gramática, generan y construyen bases de datos (tesis y múltiples sistemas desarrollados por los alumnos del CENAC y de UPIICSA en sus cursos hasta 1985), generan en forma automática programas y sistemas (trabajos funcionando en el campo desarrollados por Vicente López Trueba, Ricardo García y Christian Zempoaltecatl desde principios de los 80s).

   Desde 1986 se comenzaron a construir los primeros Sistemas Evolutivos y en particular Sandra Camacho Villanueva, Patricia Gómez Rendón y Jesús Olivares Ceja, tres estudiantes-investigadores de la Licenciatura en Ciencias de la Informática de la UPIICSA desarrollaron el primer Sistema Evolutivo, conocido como SI-VE (Sistema de Visión Experto), el cual tiene la capacidad de reconocer imágenes en 2D a partir de sus propiedades topológicas.

   El mismo grupo de investigadores construyó a finales de 1986 un nuevo sistema evolutivo el cual tiene la capacidad de representar imágenes simples como cuadrados o triángulos en término de gramáticas con atributos y es capaz de reestructurar en tiempo real estas gramáticas, con lo que permanentemente está evolucionando. A partir de esta idea, se desarrolló el concepto de lenguajes de trayectoria y se construyeron otros sistemas de este tipo, tanto dentro de los cursos como en trabajos de titulación.

   Por otro lado, los Sistemas Evolutivos orientados al tratamiento de imágenes como tales surgieron a partir de los trabajos que inicio Cuitláhuac Cantú Rohlík a principios de los 80’s cuanto era también estudiante-investigador en la UPIICSA y que concretó en 1988 con una serie de productos orientados al tratamiento de imágenes, mismos que desarrolla y comercializa actualmente.

   Uno de los problemas que se presenta en esta epoca es el de que los métodos de Inferencia Gramatical no son de propósito general y son relativamente complejos de programar, por lo que, durante 1986 y 1987 en los cursos de Lenguajes Formales, Compiladores y Base de Datos principalmente se continua depurando el método de programación dirigida por sintaxis, buscando aumentar el énfasis en su facilidad de manejo, su campo de acción y buscando su automatización; principalmente en los cursos de Base de Datos y Compiladores dirigidos por Vicente López Trueba, Gabriel Cordero y Alejandro Hernández se comienzan a encontrar múltiples “trucos” para que la computadora reconozca y aprenda nuevos tipos de unidades léxicas.

   Y por otro lado en los cursos de Lenguajes Formales los alumnos comienzan a descubrir métodos de inferencia gramatical propios, destacando los métodos descubiertos por María Sandra Camacho Villanueva para el reconocimiento de imágenes (aplicados en los sistemas comentados anteriormente), ya que en una “forma natural” permite encontrar la representación de una imagen cerrada (que no se puede representar mediante una gramática libre de contexto) mediante una gramática con atributos, donde una gramática con atributos es un mecanismo en el cual se maneja inmerso dentro de las reglas gramaticales un conjunto de llamados a rutinas. Las gramáticas con atributos tienen sus antecedentes en el lenguaje REC (desarrollado por el Dr. Harold V. McIntosh) programado múltiples veces en la ESFM y en los trabajos desarrollados por el Dr. Enrique Calderon y otros durante los 70´s precisamente sobre una herramienta gramatical con ese nombre y ya para 1980 se utilizaban en el CENAC y en la UPIICSA (primero para la construcción de compiladores y más adelante simplificando su notación y generalizándolas como parte integral del método de Programación Dirigida por Sintaxis (PDS) para el manejo de la semántica).

   Es también durante esta época 1986-1987 y a partir de los resultados directos de los trabajos desarrollados en la materia de Lenguajes Formales de la UPIICSA (cada alumno desarrolla un sistema completo usando la Programación Dirigida por Sintaxis) como se depura completamente el método y se detectan dos operaciones básicas de inferencia gramatical (factorización y recursividad), presentándose para el Congreso de Inteligencia Artificial desarrollado en la ciudad de Mérida, Yucatán en 1988 un documento donde ya aparece el método con una orientación al desarrollo de cualquier tipo de sistema.

   Con la automatización creciente del método muchos de los problemas planteados para el desarrollo de Sistemas Evolutivos fueron prácticamente cubiertos, por lo que durante 1988 en los cursos de Lenguajes Formales dirigidos por Miguel Angel Torres Aragón y Rafael Cabrera se desarrollaron algunos prototipos de Sistemas Evolutivos por parte de los alumnos que se presentaron en foros externos a la UPIICSA.

   Por lo que prácticamente en la actualidad (noviembre de 1989) es “natural” para los alumnos de Lenguajes Formales estar desarrollando Sistemas Evolutivos y ya se cuenta con alrededor de 20 prototipos desarrollados como trabajos de titulación, trabajos de cursos y trabajos de investigación, tanto por profesores-investigadores como por alumnos-investigadores principalmente de la Licenciatura en Ciencias de la Informática de la UPIICSA y del Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET-DGIT) de Cuernavaca, Morelos

 

   Los trabajos actuales marcan entre otros puntos, los siguientes:

   La inclusión de los fractales como herramientas para representar la estructura de fenómenos naturales ya que son “fácilmente” representables como gramáticas.

   El manejo de gramáticas semánticas (gramáticas donde todos los elementos tienen significado).

   La ampliación de los mecanismos de captación de la realidad con el fin de que se pueda captar la información por múltiples fuentes.

   El manejo de Sistemas Evolutivos Distribuidos.

   La obtención de herramientas generalizadas para no tener que estar programando todo a mano.

   El desarrollo de Sistemas Evolutivos cada vez más generalizados y buscando llegar a que no se necesite programar (esta es una de las tendencias más fuertes y se ha desarrollado durante varios años por un grupo que originalmente trabajo en el área de efectos digitales de Televisa coordinado por Cuitlahuac Cantú Rohlik).

   El desarrollo del concepto de conciencia automatizada, por Cuitlahuac Cantú Rohlik, Raúl de la Rosa y Ariel Carboney estos últimos Director y Subdirector de Sistemas de la Secretaría de Programación y Presupuesto (SPP) respectivamente.

   El uso extensivo para producción industrial de software mediante herramientas automatizadas desarrolladas por ellos mismos por parte de:

Vicente López Trueba, director del área de informática de la Secretaría de Comercio y Fomento Industrial (SECOFI).

Christian Zempoaltecatl, director del área de Sistemas de la Secretaria de Salud.

Ricardo García, director de la empresa Micrológica Aplicada.

La construcción y manejo de sistemas evolutivos para diferentes aplicaciones por parte de:

Juan Martín González Vázquez, subdirector general de informática en la Secretaria del Trabajo.

Elsa Hernández Luna, subdirectora de informática en la SECOFI.

Alfredo Blancas, subdirector de informática en la Coordinación de Transporte del Departamento del Distrito Federal (DDF).