VII.2  Sistema Evolutivo Constructor de Sistemas Expertos

Javier Ortiz Hernández*

Fernando Galindo Soria**

 

Introducción

En este trabajo se presenta el uso de los sistemas evolutivos para construir sistemas expertos en forma automática, entendiéndose dicha aplicación, como un ejemplo de los sistemas evolutivos aplicados en el campo de la informática.

   Para este efecto se describe en forma general la idea de construir sistemas que en lugar de tener con antelación a su explotación y ya debidamente predefinidos datos, procesos y estructuras de control, tengan los mecanismos que les permitan la adquisición y manejo del conocimiento de una manera natural y en el lenguaje del usuario.

   Es decir, con capacidad de aprender en el lenguaje del usuario, interpretando, almacenando y relacionando la información con el propósito de generar nuevo conocimiento, mismo que utiliza para comunicarse de nueva cuenta con el usuario, en un proceso dialógico que permite el consecuente enriquecimiento de los sistemas.

 

I Sistemas Expertos y de Toma de Decisiones

Para iniciar este tema, es necesario definir antes los conceptos de experto y sistema experto:

 

 

*Javier Ortiz Hernández y **Fernando Galindo Soria escribieron este trabajo en 1988 cuando los autores estaban en el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) en Cuernavaca, Mor. y se presentó como Conferencia en el III Encuentro Nacional de Investigación en Ciencias Computacionales, en el Instituto Tecnológico de Toluca, Edo. de México, en Noviembre de 1988.

1) Experto. Persona de vasta experiencia y con un conocimiento detallado y especializado de los problemas que se manejan en una área determinada.

2) Sistema Experto. Programa que usa la experiencia y el conocimiento de los expertos para resolver problemas.

   Llegado a este punto es claro suponer que un sistema experto es entonces capaz de “equipararse” a un experto en persona, claro con todas las posibles e imaginables deficiencias que aquel o este pudieran tener. De allí, que el hecho de desarrollar sistemas expertos debe considerar criterios de eficiencia y de costo-beneficio en relación a su homólogo.

 

I  Partes Componentes de un Sistema Experto Tradicional

Fundamentalmente un sistema experto se encuentra constituido por:

1) Una Base de Conocimientos. Se conforma utilizando un conjunto de técnicas de representación de conocimiento, que pueden utilizarse solas    o combinadas de acuerdo al caso, ya que cada una de ellas tiene ciertos beneficios que ofrecer.

Dos requisitos muy importantes son: modularidad en el manejo de la información y la capacidad de asociación de la información con su significado.

2) Una Máquina de inferencia. Se construye con mecanismos más o menos complejos de manejo de información, basados principalmente en la teoría de resolución de problemas, particularmente en la teoría de búsqueda en un espacio de estados.

   Los sistemas expertos pueden dividirse en tres tipos principales, de acuerdo a la naturaleza de los problemas que tratan:

1) Sistemas Expertos de Diagnostico. El núcleo de este sistema es la máquina de inferencia. Utilizando tanto la base de conocimientos como los datos particulares, la máquina de inferencia considera cada una de las entradas (síntomas) y consecuentemente evalúa y reevalúa las hipótesis pertinentes según el caso. Así dicho sistema es "hecho a la medida" para una área de aplicación especifica, y el diagnóstico y acciones sugeridos por el sistema se obtienen paso a paso.

2) Sistemas Expertos de Planeación. Son utilizados para resolver problemas en donde tanto el estado inicial como el final (o deseado) son conocidos, y el sistema tiene determinar la secuencia de acciones necesarias para lograr los objetivos y metas previstas.

3) Sistemas Expertos de Carácter Mixto.

 

II  Introducción a los Sistemas Evolutivos

Un sistema evolutivo construye su versión de la realidad directamente de las fuentes de información, utilizando para el caso, el mismo lenguaje de comunicación para captar y construir una representación propia de las estructuras del objeto de conocimiento. Más aún, es capaz de interactuar con su entorno, propiciando un diálogo que procure el crecimiento intelectual del sistema.

   En una aplicación práctica es capaz de comprender un lenguaje de comunicación a partir de ejemplos, y al mismo tiempo construir su base de conocimiento; proceso que le permite poco a poco aumentar su conocimiento del lenguaje, manejar eficientemente su propio conocimiento e interactuar con el usuario del sistema.

 

III  Arquitectura de un Sistema Evolutivo

   Para llevar a cabo su propósito un sistema evolutivo debe contar más que con conocimientos específicos, o estructuras específicas (datos, acciones, control) con mecanismos que le permitan construir sus propias estructuras en forma relativamente sencilla.

   En términos generales, es un mecanismo inductivo-deductivo, en contraste con los que tradicionalmente se han utilizado (mecanismos deductivos) para la resolución de problemas independientemente de su complejidad y de la complejidad de dichos mecanismos (manejadores de bases de datos, nómina, contabilidad, sistemas expertos, etc.). Estos mecanismos deductivos, requieren que antes que sea utilizado el sistema, contenga todas las reglas aplicables al caso para el manejo de los datos y procesos, llámense programas, esquemas de base de datos, máquinas de inferencia, etc., convirtiendo a dichos sistemas en estructuras rígidas incapaces de adaptarse dinámicamente a los nuevos requerimientos de los usuarios y finalmente en artículos de consumo.

   Los sistemas evolutivos tienen integrados en un solo mecanismo la captación, estructuración y el proceso de la información. Es decir cuentan con una interfase que interpreta directamente en términos de datos, procesos y estructuras, y otra interfase que da respuesta a alguna cuestión utilizando el conocimiento adquirido.

 

IV  Sistemas Evolutivos Generadores de Sistemas Expertos

Una de las características de los sistemas de diagnóstico y toma de decisiones (sistemas de soporte a las decisiones, reconocedores de patrones, etc.) en general y de los sistemas expertos en particular se encuentra en que el lenguaje del usuario consta principalmente de oraciones de la forma:

   SINTOMAS : DIAGNOSTICO : ACCIONES o TRATAMIENTO

donde este tipo de oraciones nos permiten plantear por ejemplo la base de un conjunto de reglas de inferencia o el patrón general de un cierto tipo de figuras.

   A partir de lo anterior, el problema de construir un sistema experto, o en general de toma de decisiones mediante un sistema evolutivo, es decir, la construcción automática de sistemas expertos se vuelve un problema relativamente fácil de atacar y específicamente la etapa de ingeniería de conocimiento se puede
automatizar en buena medida, ya que el problema clásico de encontrar las reglas de inferencia desaparece y es sustituido por el problema más general de encontrar un conjunto de ejemplos significativos de diagnósticos o de toma de decisiones reales, en los cuales se encuentren precisamente inmersos los síntomas, diagnósticos y acciones, de donde el sistema evolutivo queda como se ve en la figura 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figura 1. Sistema Evolutivo Constructor de Sistemas Expertos

 

 

 

 

Supóngase que se tiene el siguiente conjunto de ejemplos:

a b c d e f    : D1 : T1 T2 T3

a b x y c m  : D2 : T2 T4

a b k l          : D1 : T1 T2 T6

d m l f g      : D4 : T6

a b k o         : D2  :T7 T8

Se ordenan los síntomas en cada oración y se genera la gramática canónica:

S ®  a b c d e f    : D1 : T1 T2 T3  ½

         a b c m x y  : D2 : T2 T4 ½

         a b k l          : D1 : T1 T2 T6 ½

         d f g l m      : D4 : T6 ½

         a b k o         : D2 : T7 T8

Se ordenan las oraciones según sus síntomas:

S ®  a b c d e f    : D1 : T1 T2 T3 ½

         a b c m x y  : D2 : T2 T4 ½

         a b k l          : D1 : T1 T2 T6 ½

         a b k o         : D2 : T7 T8  ½

         d f g l m      : D4 : T6

Se factoriza la parte de los síntomas:

S ® a b X ½ d m l f g      : D4 : T6

X ® c d e f    : D1 : T1 T2 T3

         c m x y  : D2 : T2 T4

         k l          : D1 : T1 T2 T6

         k o         : D2 : T7 T8

Se continua factorizando:

S ® a b X ½ d m l f g      : D4 : T6

X ® c Y ½ k  Z

Y ® d e f    : D1 : T1 T2 T3 ½m x y  : D2 : T2 T4

Z ® l          : D1 : T1 T2 T6  ½o         : D2 : T7 T8

En este momento ya se tienen prácticamente las reglas de inferencia, sin embargo, se continua ahora trabajando sobre los diagnósticos.

S ® a b X ½ d m l f g : A1

X ® c Y ½ k  Z

Y ® d e f : A2 ½m x y : A3

Z ® l : A2½o : A3

A1 ® D4 : T6  

A2 ® D1 : T1 T2 T3 ½ : D1 : T1 T2 T6

A3 ® D2 : T2 T4 ½  D2  : T7 T8

Se factorizan los diagnósticos:

S ® a b X ½ d m l f g : A1

X ® c Y ½ k  Z

Y ® d e f : A2 ½m x y : A3

Z ® l : A2½o : A3

A1 ® D4 : T6  

A2 ® D1 : T1 T2 B1

A3 ® D2 : B3

B1 ® T3 ½ T6

B3 ® T2 T4 ½T7 T8

En este punto se termina la etapa de inferencia y se integran las rutinas semánticas del sistema:

S ® a b X ½ d m l f g : A1

X ® c Y ½ k  Z

Y ® d e f : A2 ½m x y : A3

Z ® l : A2½o : A3

A1 ® S1 D4 : S2 T6  

A2 ® S1 D1 : S2 T1 T2 S3 B1

A3 ® S1 D2 : S3 B3

B1 ® T3 ½ T6

B3 ® T2 T4 ½T7 T8

S1 ® imprime “EL DIAGNÓSTICO ES: “

S2® imprime “EL TRATAMIENTO ES: “

S3 ® imprime “EL TRATAMIENTO PUEDE SER CUALQUIERA DE LOS SIGUIENTES: “

Obtener el sistema experto a partir de la gramática anterior es trivial, ya que si por ejemplo, la representamos como un diagrama de Warnier, se tiene lo mostrado en la figura 2, y se aprovecha que el paso a un programa es directo.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figura 2. Sistema Experto obtenido y representado como un diagrama de Warnier.

 

 

Conclusión

El paradigma de los Sistemas Evolutivos nos facilita la construcción de sistemas expertos como se ha visto en este trabajo.

   Se presentó la manera de utilizar la inferencia gramatical para que a partir de un conjunto de ejemplos significativos del área se pueda obtener directamente las reglas de un sistema experto y luego de estas es directo pasar a un programa.