SISTEMAS EVOLUTIVOS

 

Fernando Galindo Soria

Unidad de Investigación y Desarrollo

Departamento de Computación,

UPIICSA, IPN.

 

Escrito en Mayo de 1985

 

Presentado en la Semana de Festejos del XXI Aniversario de Ingeniería

 y El X Aniversario de la carrera de Ing. Cibernética y Ciencias de la Computación, Universidad la Salle, México, D. F., Julio de 1985

 

Publicado en el Boletín de Política Informática del INEGI-SPP

Cd. de México, Septiembre de 1986

 

 

PLANTEAMIENTO GENERAL

 

En este documento se propone y describe en forma general la idea de construir un sistema que en lugar de tener los datos, procesos y estructuras de control de un problema, tenga los mecanismos que le permitan adquirir conocimiento, aprender el lenguaje para comunicarse con las personas (aprender tanto el vocabulario como la sintaxis y semántica del lenguaje), almacenar y relacionar conocimiento, inferir y abstraer nueva información y también los mecanismos para que pueda comunicarse con el medio - A partir de estos mecanismos el siguiente paso sería enseñar al sistema como si fuera un bebé que está reconociendo su ambiente y poco a poco aprende a comunicarse y a interpretar las señales que le llegan del exterior.  Al principio almacenando datos muy básicos y a partir de éstos aprender a reconocer señales externas más complejas y a asociarles un significado y ciertas acciones básicas y así, sucesivamente cambiando acciones y significados ya adquiridos, poco a poco, reconocer señales más complejas. y por otro lado ir creando redes de conocimiento e ir interconectando estas redes al recibir nuevos datos para crear redes más complejas, además de abstraer a partir de datos concretos reglas generales, las cuales se almacenan "olvidando" en caso de que no se necesiten a los datos concretos.

 

 

 

 

1.     PROBLEMÁTICA DE LOS SISTEMAS ESTÁTICOS

 

Uno de los problemas más fuertes a los, que se enfrenta la informática actual se encuentra en la dificultad de mantener actualizados los sistemas de información, ya que es común que cuando se termina, de construir un sistema existan nuevos requerimientos en la organización o ésta haya sufrido cambios en su estructura que no se reflejan en el sistema; Por otro lado, aun en el caso de que el sistema esté actualizado es difícil incluir cambios o modificaciones necesarios para mantener una imagen de la organización, ya que el exterior está cambiando en forma dinámica y por su lado el sistema de información es estático, este problema ha propiciado que se empiecen a estudiar mecanismos informáticos que hagan más dinámicos a los sistemas de información y que permitan insertar los cambios externos en forma natural y sencilla.

 

 

2.     NIVELES EVOLUTIVOS DE LOS SISTEMAS

 

Dentro de estos mecanismos se ha pensado en desarrollar un sistema basado en las herramientas de la inteligencia artificial, capaz de captar las modificaciones del ambiente y reconfigurarse internamente para representar estas modificaciones, este mecanismo puede caer en alguno de los siguientes niveles:

 

a)   Estáticos: Capaces de mantenerse en un medio que no cambia o con pocos cambios (nicho ecológico).

 

b)  Adaptativos Estáticos: Son capaces de adecuarse al medio estable.

 

c)   Transformadores-.  Capaces de influir para que cambie el medio.

 

d)  Adaptativos Dinámicos: Capaces de mantenerse en un medio que se está transformando.

 

e)   Evolutivos-. Capaces de transformarse en un medio que se está transformando.

 

La idea que se presenta en este trabajo versa sobre el desarrollo de sistemas evolutivos, puesto que si se tiene un sistema evolutivo, el sistema adaptativo dinámico o copia de la organización seria un caso particular del evolutivo.

 

 

3.     CARACTERÍSTICAS DE UN SISTEMA EVOLUTIVO

 

La construcción de un sistema evolutivo tiene múltiples problemas interesantes, ya que se trata de encontrar un mecanismo que se desarrolle “crezca” en forma independiente al usuario; entre otros problemas se observan los siguientes:

 

a)   El sistema debe contar con un 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 ese medio.

 

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

 

c)   El sistema debe ser capaz de "generar" nuevo conocimiento a partir de¡ que tiene almacenado y del que capta del exterior, con el fin

de que pueda proponer cambios o modificaciones a su imagen de la realidad incluyendo ese nuevo conocimiento.

 

d)  El sistema debe ser capaz de abs-' traer a partir de un conjunto de conocimientos, regias generales que los representen en forma sintética.

 

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

 

 

4.   RESTRICCIONES SOBRE EL SISTEMA

 

Como se puede observar, un sistema evolutivo es de una complejidad enorme y es difícil que la tecnología con la que se cuenta actualmente lo pueda soportar; sin embargo, introduciendo algunas restricciones se puede proponer un primer prototipo,

 

Las primeras restricciones surgen sobre el mecanismo de adquisición del conocimiento, ya que por ejemplo, el ser humano tiene múltiples herramientas para captar información del medio que lo rodea, como son: la vista, oído, tacto, etc., y estos mecanismos captan millones de señales del exterior en un momento dado y estas señales conforman la información que recibe y procesa la persona; sin embargo, en una computadora sólo se tienen algunas herramientas de captura de información del exterior (pantallas, lectoras, etc.) con una capacidad de captación de información muy pequeña en comparación con la del ser humano, por lo que, en un prototipo en principio se puede pensar en un mecanismo de captura de información conformado por un lenguaje escrito, y herramientas de recepción gráfica y de señales.

 

El segundo grupo de restricciones se presenta sobre los mecanismos de almacenamiento del conocimiento, ya que ésta es un área de investigación nueva y existen pocas herramientas- sin embargo, ya se pueden almacenar hechos y relaciones entre los hechos.

 

Por su parte, el problema de generación y abstracción de nuevo conocimiento sólo se puede atacar a un nivel muy elemental, ya que no se tienen herramientas para abstraer de un conjunto de hechos la regia general que los engloba, por lo que principalmente se cuenta con herramientas para inferir nuevo conocimiento, para relacionar conocimientos aparentemente no relacionados (al introducir @más información) y para recordar y olvidar en forma selectiva.

 

Finalmente, los mecanismos de diálogo hombre-máquina se encuentran en sus inicios y dependen principalmente de los puntos anteriores, puesto que para establecer un diálogo se requiere que el sistema tenga posibilidad de captar, almacenar y generar conocimiento.

 

 

5.   TIPO DE INFORMACIÓN EN EL SISTEMA

 

Otro punto que se tiene que considerar al desarrollar un sistema evolutivo se presenta cuando se decide qué tipo de información debe ser capaz de captar el sistema.

 

Para clarificar éste punto conviene recordar que en sus inicios la informática se orientaba al desarrollo de los procesos necesarios para resolver un problema, posteriormente se observó que los procesos lo único que hacen es transformar los datos, por lo que los métodos de desarrollo de sistemas de información se centraron en los datos y en las estructuras de datos, de donde el enfoque en el desarrollo de sistemas marca que primero se tienen que localizar los datos que se desea obtener del sistema, de esto se pasa a definir los datos que se tienen que almacenar (para poder generar los que se necesitan) y' de ahí proponer los datos que deben entrar, y a partir dé todo eso se definen los procesos y estructuras de control que se requieren.

 

Como se puede observar, de los tres componentes con los que se representa internamente a una organización (datos, procesos y estructuras de control) el enfoque de desarrollo ha migrado de los procesos a los datos,- ahora bien, un modelo que se propone actualmente hace énfasis en la relevancia de la estructura de control, ya que es común que al modificarse una organización los procesos y datos involucrados a nivel operativo cambien poco.  Sin embargo, la estructura de control se modifica parcial o totalmente (desaparece un departamento o se crea un nuevo puesto, etcétera).

 

Por lo anterior, se propone contar con sistemas en los cuales se represente de alguna forma el flujo de control de la organización y de ahí se obtenga el flujo de datos y los procesos involucrados.

 

Entonces en un modelo de este tipo se tienen 3 mecanismos que permiten representar la organización, la estructura de datos de la organización y las rutinas operativas, y por otro lado se tiene un programa administrador, el cual, a partir de los 3 mecanismos, resuelve los problemas de la organización, para lo cual toma como guía la representación de la organización y almacena, transforma y entrega datos al usuario.

 

Este modelo tiene la ventaja de que si cambia la estructura de la organización no es necesario reescribir programas de control sino únicamente modificar la representación de la organización para indicar su nueva estructura e introducir o quitar rutinas operativas.

 

 

6. PROPUESTA DE SISTEMA

 

De lo anterior surge una propuesta de Sistema Evolutivo, en la cual se tienen mecanismos que permiten construir un modelo de organización incluyendo los tres aspectos considerados dentro de un sistema de información (estructura de la organización, estructura de datos y rutinas semánticas u operativas)-, para lo cual se propone que el sistema tendría involucradas dos grandes componentes: un constructor y un administrador.

 

El constructor es el responsable de captar una imagen de la realidad y representarla en los tres mecanismos y, por su parte, el administrador sería el responsable de lograr que el sistema evolucione y dé respuestas a los problemas de los usuarios.

 

 

7.     CONSTRUCTOR DEL SISTEMA EVOLUTIVO

 

Para construir un sistema evolutivo se tienen dos grandes partes, en la primera se debe construir toda la herramienta que permita al sistema captar una realidad, entre estas herramientas se necesita:

 

a)   Un mecanismo que permita al sistema "aprender" un lenguaje de comunicación con el usuario, incluyendo la capacidad para aprender palabras aisladas y su significado, estructuras oracionales válidas y oraciones válidas y su significado en términos de palabras y de otras oraciones.

b)  Un mecanismo que permita captar a partir del lenguaje que "aprende", las estructuras de la organización (la cual se encuentra inmersa en la sintaxis de las oraciones), las estructuras de datos y las rutinas semánticas (las cuales corresponden a la semántica asociada con las oraciones).

 

c)   Un mecanismo que permita al sistema "aprender" a reconocer figuras y señales y su significado y en un momento le permita distinguir entre diferentes señales gráficas y asociaras un significado.

 

d)  Mecanismos que permitan abstraer, de datos concretos, ideas generales y otros que permitan inferir de unos datos, nuevo conocimiento.

 

La segunda parte del constructor se orienta a crear la base mínima para que un sistema de este tipo pueda funcionar. Esta base podría incluir, entre otros:

 

a) Una lengua básica (por ejemplo, español muy elemental) la cual se tendría como punto de partida ya que en un momento dado se le podrían incluir las operaciones más básicas que requiere para funcionar (por ejemplo: lee, escribe, suma, etcétera).

 

b) Reconocimiento de patrones muy elementales (por ejemplo: símbolos que indiquen áreas de la organización y flujo de datos entre diferentes áreas).

c) Estructuras gramaticales de la lengua básica y su representación en términos de estructura de la organización, estructuras de datos y rutinas semánticas.

 

d) Reglas de abstracción e inferencia primitivas y basadas, por ejemplo, en las características de las relaciones (transitividad, equivalencia, etcétera).

 

 

8.   ADMINISTRADOR DEL SISTEMA EVOLUTIVO

 

Por su parte, el administrador tendría una doble función, ya que debe ser capaz de dar respuesta a los requerimientos del exterior y además mantener evolucionando al sistema.

 

Para lograr que el sistema evolucione, el administrador debe poder captar los cambios en el exterior con el fin de adecuarse a éstos, y por otro lado debe abstraer e inferir a partir del conocimiento almacenado, nuevos conocimientos y relaciones no captadas del exterior.

 

Con base en el conocimiento generado internamente, el almacenado previamente y el captado del exterior se deben obtener nuevas propuestas o modelos del ambiente que rodea al sistema.

 

Se debe contar con un mecanismo que permita contrastar estas propuestas con el ambiente real y en su momento facilite el aprendizaje, reforzamiento u olvido de algunos segmentos de conocimiento.

 

Finalmente, el administrador debe poder dar respuesta a los requerimientos de los usuarios del sistema mediante un diálogo en lenguaje natural o mediante representación gráfica.

 

 

9. CASOS PARTICULARES DE SISTEMAS EVOLUTIVOS

 

El sistema evolutivo en toda su complejidad sería equiparable a ciertos tipos de organismos vivos que se adaptan y evolucionan en algún ambiente dado, en su momento y dependiendo del grado de complejidad del sistema podría mostrar algunos procesos de tipo "inteligente"; sin embargo, la tecnología actual requiere solucionar varios problemas de una alta complejidad, por lo que en un momento dado se puede pensar en mecanismos más sencillos en los cuales ya se tiene una tecnología básica y a partir de éstos podrían "evolucionar" los sistemas evolutivos.

 

Entre los sistemas con los que se cuenta actualmente se tienen los que se conocen como sistemas expertos, los cuales son capaces de atacar y resolver problemas de áreas de conocimiento específicas con base en que tienen una representación del conocimiento manejado en esa área y un mecanismo que les permite inferir nuevo conocimiento a partir del ya almacenado.

 

Otro caso particular de sistemas que se puede desarrollar sería el de los adaptativos, tanto estáticos como dinámicos, ya que en este caso en lugar de darles el conocimiento de algún área se les podría proporcionar la descripción de alguna organización específica incluyendo las estructuras de la organización, los datos que se manejan y las rutinas semánticas que se utilizan, y con base en esa descripción crear un modelo de la organización, el cual sólo se tendría que mantener actualizado introduciéndole los cambios en la organización mediante un proceso de "altas", "bajas" y "cambios" sobre el modelo.

 

Finalmente, un sistema evolutivo sencillo se puede desarrollar restringiendo sus mecanismos de adquisición, almacenamiento, generación y presentación de conocimiento y buscando fortalecer aquellos mecanismos orientados a aprender una lengua nueva incluyendo la semántica asociada y los mecanismos que permitan integrar el conocimiento al ya adquirido y proponer nuevos modelos del exterior.

 

 

CONCLUSIONES

 

Un sistema como el propuesto en este documento es factible de desarrollar; sin embargo, existen muchos problemas abiertos y no resueltos, por lo que en un momento dado conviene desarrollar prototipos del sistema y atacar los diferentes problemas en forma particular e integrando los resultados a la idea general.

 

Actualmente, en la Unidad de Investigación y Desarrollo del Departamento de Computación de la UPIICSA se tienen varios trabajos orientados a la construcción de un sistema de este tipo, incluyendo la búsqueda de mecanismos que permitan a un sistema aprender una lengua, esqueletos de sistemas expertos, sistemas adaptativos estáticos y los problemas de representación del conocimiento.

 

Sin embargo, la complejidad del problema es enorme y su campo de aplicación ilimitado, ya que, tanto los sistemas expertos como los adaptativos pasan a ser un caso particular y en su momento un sistema de este tipo podría evolucionar en múltiples áreas y atacar problemas no cubiertos.

 

Es por lo anterior que la idea de construir sistemas evolutivos se presenta en este trabajo con el fin de que más personas y grupos se involucren en este tipo de problemas.

 

 

BIBLIOGRAFÍA

 

l)    González Vázquez, Juan Martín.  La comunicación hombre-máquina utilizando lenguaje natural restringido. Departamento de Computación -UPIICSA1985- Proyecto Censo Agropecuario - INEGI-SPP.

 

2) Mendoza Padilla Roberto. Sistemas Adaptativos.  Departamento de Computación, UPIICSA - IPN. 1 985.

 

3).  Cordero Sánchez, Gabriel. Aplicación de un reconocedor de lenguaje natural restringido a la recuperación de datos.  Departamento de Computación -UPIICSA-IPN, 1985.  Subdirección de Análisis y Diseño de Sistemas -DGIA-SEP.

 

4)   Giles Galaz, Víctor Miguel Ángel. Construcción de sistemas expertos. Departamento de Computación –UPIICSA IPN. 1985.

 

5)   Martínez Cortés, Rosalía; Mireya Najar Alvarez;, Alfredo Rodríguez Anzures. Sistemas expertos de diagnóstico médico.  Departamento de Computación -UPIICSA-IPN. 1 985.  Licenciatura en Informática -UPIICSA-IPN,

 

6)   García Moctezuma, Rocío, Ma.  Antonieta Fierro A.; Edmundo Cruz Velázquez.  Biblioteca automatizada.  Departamento de Computación –UPIICSA IPN. 1985.  Licenciatura en Informática -UPIICSA-IPN.

 

7)   Galindo Soria, Fernando.  Notas del seminario sobre desarrollo de sistemas.  Departamento de Computación, UPIICSA-IPN. 1985-

 

8)   Galindo Soria, Fernando.  Representación de conocimiento.  Departamento de Computación -UPIICSA-IPN. 1 985.

 

9)   Díaz Bello, Lino.  Construcción de compiladores.  Departamento de Computación - UPIICSA IPN.  Unidad de Cómputo - El Colegio de México, Tesis de Titulación -ESIME-IPN, 1982.