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.