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). |