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