You are on page 1of 10

Sistemas Expertos

por
Ing. Jos Manuel Saavedra Rondo

PARTE I :
INTRODUCCIN A LOS SISTEMAS EXPERTOS

Sistemas Expertos

SISTEMAS EXPERTOS

Jos Manuel Saavedra Rondo


ingeniero informtico
2006

1.

Introduccin
Los sistemas expertos son programas de computadora que son derivados de una de las ramas de la
Ciencias de la Computacin denominada Inteligencia Artificial. Uno de los pioneros en el desarrollo
de Sistemas Expertos es Edward Feigenbaum. El empez a hipotizar acerca de la creacin de un
Sistema Experto a inicios de 1962, cuando junto a Julie Feldman co-editaron Computadoras y
Pensamiento.
Los programas de Inteligencia Artificial que alcanzan un nivel de competencia de un experto en
resolver problemas en determinadas reas a travs de conocimiento especfico en dicha reas son
denominados Sistemas Expertos o Sistemas Basados en Conocimiento.

2.

Definicin
Algunas definiciones planteadas a Sistemas Expertos son:
[Edward Feigenbaum], define a un Sistema Experto como un programa de
computadora, inteligente, que usa el conocimiento y los procedimientos de
inferencia para resolver problemas que son suficientemente difciles como para
requerir significativa experiencia humana para su solucin.
Los Sistemas Expertos son una rama de la Inteligencia Artificial, que hace un
amplio uso del conocimiento especializado para resolver problemas, como lo
hace un especialista humano. Un Sistema Experto, trabaja sobre un dominio
especfico. Se utilizan los trminos: Sistema Experto, Sistema basado en
Conocimiento o Sistema Experto basado en Conocimiento.

E. Feigenbaum

Otras Definiciones
Un Sistema Experto es un modelo y procedimiento asociado que exhibe, dentro de un dominio
especfico, un grado de experticia en la solucin de problemas, que es comprado a la de un experto
humano
Un Sistema Experto es un sistema computacional que emula la habilidad de tomar decisiones de un
experto humano
DOMINIO DEL
PROBLEMA
(Medicina, Mecnica,
Biologa, etc)

DOMINIO DEL
CONOCIMIENTO

Fig. 1. Dominio del Problema y del Conocimiento

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

3.

Dominio del Problema y del Conocimiento


Un dominio del problema es el rea especfica del problema, como Medicina, Finanzas, Ciencias,
Ingeniera, etc, en el que un especialista puede resolver problemas con facilidad. Los Sistemas
Expertos, como los especialistas humanos, suelen disearse especializados en un dominio de
problemas, Por ejemplo, no se espera que un ingeniero tenga conocimiento especializado en
medicina.
Al conocimiento del especialista para resolver problemas especficos se le llama dominio del
conocimiento del experto. Por ejemplo, un Sistema Experto Mdico diseado para diagnosticar
enfermedades infecciosas debe tener una gran cantidad de conocimiento acerca de los sntomas
causados por este tipo de enfermedades. En otras palabras dentro de un dominio del problema
existen varios dominios de conocimiento.

4.

Ventajas en el uso de un Sistema Experto


a. Mayor disponibilidad
La experiencia est disponible para cualquier hardware de cmputo adecuado. La experiencia
humana es trasladada a medios de mayor disponibilidad.
b.

Costo reducido
El costo de poner la experiencia a disposicin del usuario se reduce en gran medida.

c.

Peligro reducido
Los Sistemas Expertos pueden usarse en ambientes que podran ser peligrosos
humano.

para un

d.

Permanencia
La experiencia es permanente. A diferencia de los especialistas humanos, que pueden retirarse,
renunciar o morir, el conocimiento del Sistema Experto durar indefinidamente.

e.

Experiencia mltiple
El conocimiento de varios especialistas puede estar disponible para trabajar simultanea y
continuamente en un problema, en todo momento. En muchos casos, el nivel de conocimiento
almacenado en un Sistema Experto puede exceder al de un solo especialista.

f.

Mayor confiabilidad
Al capturar experiencia mltiple en un sistema experto, stos aumentan su confiabilidad. La
aplicabilidad de un Sistema Experto depende en gran medida de la confianza que tengan los
usuarios sobre ste.

g.

Explicacin
El Sistema Experto puede explicar clara y detalladamente el razonamiento que conduce a su
conclusin, lo que aumenta la confianza del usuario en la decisin tomada. Un ser humano
puede estar cansado, mostrarse renuente o incapaz de hacerlo siempre.

h.

Respuestas rpidas
Muchas veces resulta importante tener respuestas en poco tiempo o en tiempo real.
Dependiendo de la tecnologa utilizada, un Sistema Experto puede responder ms rpido y estar
ms dispuesto que un especialista humano.

i.

Respuestas slidas
Un Sistema experto puede dar respuesta slidas, completas y sin emociones. Esto puede ser
muy importante en tiempo real y en situaciones de emergencia, cuando un ser humano, muchas
veces a causa de la presin no trabaja al 100%.

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

Componentes de un Sistema Experto

INTERFAZ DE USUARIO

5.

Adquisicin de
conocimiento

Base de Conocimiento

Mecanismo de
Inferencia

Memoria Activa
(Hechos)
y
Reglas

Medio de Explicacin

Fig. 2. Componentes de un Sistema Experto

5.1. Interfaz de Usuario


El usuario interacta con el Sistema Experto a travs de una interfaz de usuario, la cual puede
contener mens, procesamiento del lenguaje natural u otro tipo de interaccin. La interfaz debe
ser amigable en la entrada y salida de informacin.
5.2. Base de Conocimiento
Conocimiento Terico y Conocimiento Heurstico. El conocimiento heurstico es el menos
riguroso, es ms experimental, en contraste con el conocimiento terico. La base del
conocimiento formaliza y organiza el conocimiento adquirido. Una de las representaciones ms
utilizadas en la representacin del conocimiento es la produccin de reglas. Una regla se
compone de una parte condicional SI y de una parte consecuente ENTONCES (condicin y
accin). Sistemas expertos cuyo conocimiento es representado en forma de reglas son llamados
Sistemas Expertos basados en Reglas.
si (ANTECEDENTES) entonces (CONSECUENTE O ACCIN)
Por ejemplo, a continuacin tenemos algunas REGLAS:

SI el automvil no avanza y el indicador del combustible indica nivel bajo


ENTONCES
cargar gasolina
SI hay humo y temperatura es alta
ENTONCES
hay fuego

Por lo tanto un Sistema Experto se basa en reglas como las que se han presentado. Sin
embargo existe conocimiento previo o que se va generando conforme el Sistema Experto
funcione. Este conocimiento se traduce en trminos de HECHOS. Por ejemplo:
-

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

La temperatura ambiental es 40
El paciente tiene dolor de cabeza
El paciente tiene ojos amarillos

Sistemas Expertos

Cuando el conocimiento es preciso y es suficiente para determinar una conclusin se dice que el
Sistema Experto es Determinstico. Sin embargo existe frecuentemente aplicaciones en las
que el conocimiento es impreciso o no se puede captar completamente lo que origina
INCERTIDUMBRE, lo que conlleva el desarrollo de Sistemas Expertos bajo Incertidumbre.
Este tipo de Sistemas Expertos requieren mecanismos especficos para manipular el
conocimiento afectado por incertidumbre.

5.3. Motor de Inferencia


Un motor de inferencia es usado para razonar en base al conocimiento adquirido. El
conocimiento se representa tpicamente como un conjunto de reglas y hechos El motor de
inferencia se asocia con un modelo o paradigma para resolver problemas. Uno de los modelos
comunes involucra los mtodos de encadenamiento de reglas SI ENTONECS para formar
una lnea de razonamiento. Si el encadenamiento comienza de un conjunto de condiciones y se
mueve hacia las conclusiones entonces el mtodo es denominado encadenamiento hacia
adelante. Si la conclusin es conocida pero la ruta de la conclusin no es conocida entonces el
mtodo que se utiliza es el encadenamiento hacia atrs. El motor de inferencia contiene
implementado estos mtodos de razonamiento.
El motor de inferencia controla la ejecucin de reglas. Busca a travs de la base de
conocimientos, intentado asociar el conocimiento almacenado en forma de hechos el
antecedente de una regla (condicin). Si el antecedente de una regla es satisfecho, entonces la
regla ejecuta la accin de la conclusin o el consecuente.

5.4. Medio de Explicacin


El medio de explicacin, permite explicar el proceso de razonamiento seguido para tomar una
decisin. Este componente responder a la pregunta Cmo ? o Por qu? cuando ha
efectuado un conclusin.
5.5. Medio de Adquisicin del Conocimiento
En muchas aplicaciones se requiere medios automticos para que el usuario alimente del nuevo
conocimiento al Sistema Experto, por ejemplo agregar nuevas reglas de razonamiento. El Medio
de Adquisisicin del Conocimiento es el encargado de sta tarea.

6.

Algunos Sistemas Expertos


6.1. DENDRAL
Considerado el primer Sistema Experto desarrollado por, E. Figenbaum, Buchanan y fue
aplicado a la Qumica (anlisis del espectro de masa) (1965).
6.2. MACSYMA
(Martin y Moses) Sistema Experto en Matemticas (1969).
6.3. MYCIN
(Shortliffe) aplicado al diagnstico de enfermedades infecciosas de la sangre (1973).
6.4. PROSPECTOR
(Duda, Hart), aplicado a la evaluacin del potencial mineral en ciertas regiones (1974-1983).

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

7.

Fases en el Desarrollo de un Sistema Experto

ANLISIS

ESPECIFICACIN

DESARROLLO

IMPLANTACIN
Fig. 3. Fases en el Desarrollo de un Sistema Experto

7.1. Anlisis
El propsito del Anlisis es identificar potenciales aplicaciones. El desarrollador debe analizar y
valorar si el problema es adecuado para ser solucionado por un sistema experto. Se evaluarnd
difrentes posibles problemas y se determinar en cual o cules es necesario un Sistema
Experto.

Elemento de Valoracin

La necesidad para una solucin debe justificar los costos de desarrollo. Debe haber una
valoracin realista de los costos y beneficios involucrados.
Cunto me costar el Sistema Experto?

La experticia humana no est disponible en todas las situaciones en donde se necesite.


Si el conocimiento del experto es ampliamente disponible entonces no ser necesario el
sistema experto. Sin embargo, en reas como exploracin de petrleo y medicina lo
sistemas expertos representaran una gran ventaja.

El Problema puede ser resuelto usando razonamiento simblico. Los problemas que se
traten de resolver no deben requerir destreza manual o habilidades fsicas.

El problema est bien definido y no requiere mucho conocimiento subjetivo. El


conocimiento subjetivo es difcil de capturar y representar.

El problema no puede ser fcilmente solucionado usando mtodos computacionales


tradicionales.

Existe la cooperacin voluntaria de uno o muchos expertos.

El problema es de tamao y alcance apropiado, no muy complejo.

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

7.2. Especificacin
La especificacin es en donde el desarrollador define lo que el sistema experto har. El
desarrollador deb definir las fuentes de conocimiento (expertos humanos, libros, etc) con los
que trabajar. El desarrollador debe familiarizarse con el problema para que el desarrollo pueda
ser ejecutado.
-

Definicin del Problema Qu har el Sistema Experto?


Especificar Fuentes de Conocimiento

7.3. Desarrollo
a.

Captura del Conocimiento


La fase de desarrollo comprende muchas tareas. Aqu, el desarrollador debe aprender como
el experto ejecuta las tareas. En otras palabras debe profundizar en la adquisicin del
conocimiento. Existen tres tipos de casos que el desarrollador debe discutir con el experto:
actuales, histricos e hipotticos. Casos actuales pueden ser cubiertos observando el
desempeo del experto. Casos histricos se cubre discutiendo con el experto sobre su
desempeo en casos pasados. Se debe analizar adems casos hipotticos discutiendo con
el experto sobre su probable desempeo.
La adquisicin del conocimiento empieza con la fase de especificacin y contina hasta el
fase de desarrollo. El desarrollador (Ingeniero del Conocimiento) debe extraer
conocimiento bajo la discusin los casos anteriores. El conocimiento se agrupa en
Conocimiento Terico y Conocimiento Herurstico.

b.

Modelamiento del Conocimiento (Diseo)


Representar el conocimiento adecuadamente, de modo que pueda ser entendido por el
experto y por el mismo Ing. del Conocimiento:
Grafo AND-OR
rbol de Decisin
Lgica de Primer Orden (Formal)

c.

Implementacin (Programacin)
Usando un lenguaje de programacin, generalmente Lenguaje Lgico, traducimos el
conocimiento modelado a un cdigo y generamos el software. Prolog es un lenguaje lgico
muy potente.
Sin embargo es posible utilizar herramientas ms especficas como los famosos Shells para
Sistemas Expertos, por ejemplo: Exsys, Clips.

d.

Testing o Pruebas
Se realizan las pruebas necesarias para determinar la correccin y fiabilidad del Sistema
Experto.
Especialista
Humano

Ingeniero en
Conocimiento

Base de Conocimiento
del Sistema Experto
Fig. 4. Desarrollo de un Sistema Experto

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

7.4. Implantacin
Se distribuye el Sistema Experto y se pone en ambientes de explotacin, listo para ser usado.

8.

Tipologa de los Sistemas Expertos


8.1. Diagnstico y Tratamiento
Esta clase comprende sistema que deducen fallas y sugieren acciones para procesos o
dispositivos en mal funcionamiento. El diagnstico mdico fue una de los primeras reas en la
que los SE fueron aplicados, pero el diagnstico de sistemas de ingeniera proliferaron
rpidamente.
8.2. Planificacin
Sistemas que caen dentro de este clase, analizan un conjunto de una o ms objetivos y ordenan
un conjunto de acciones para alcanzar los objetivos planteados, considerando persona,
materiales y otras variables. Ejemplo de estos son Sistemas Expertos para la planificacin de
vuelos y planificacin de procesos de manufactura.
8.3. Toma de Decisiones Financieras
Soportan las decisiones bancarias como prstamos o seguros. Evalan el riesgo y sugieren una
decisin.
8.4. Proceso de Manufactura y Control
Analizan datos en tiempo real con el objetivo de notar anomalas, predecir problemas y controlar
ptimamente el proceso. Ejemplo, SE en la industria de refinera.
8.5. Diseo
Se configuran objetos bajo restricciones.
8.6. Interpretacin
Se describen situaciones bajo informacin adquirida. Ejemplo: Sistemas Expertos aplicados en
la Astronoma, para el anlisis de imgenes satelitales (Huracanes)

9.

Ejemplo de un Sistema Experto Simple


Supongamos que tenemos las siguientes reglas
1.

IF motor_tiene_petrleo
AND motor_enciende
THEN problema_con_buja

2.

IF NOT motor_enciende

AND NOT luces_enciende


THEN problemas_con_batera
3.

IF NOT motor_enciende
AND luces_encienden

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

THEN problema_con_arrancador
4.

IF petrleo_en_tanque
THEN motor_tiene_petroleo
Nuestro problema es encontrar lo que est funcionando mal con un automvil, dando alguno
sntomas observables. Hay tres posibles problemas con el auto: problema_con_bujas,
problema_con batera, problema_con_arrancador. Asumiremos que no hemos proporcionado
hechos iniciales, respecto a los sntomas.
En el ms simple sistema dirigido por objetivos, nosotros podramos tratar de probar cada una de
los problemas hipotticos con el automvil. Primero el sistema tratar de probar
problema_con_buja.
La Regla 1 es potencialmente til, as, el sistema establecer los nuevos objetivos a probar. As,
se deber probar si el motor_tiene_petrleo y si el motor_enciende. Para probar el primer
objetivo debemos usar la Regla 4, con el nuevo objetivo intentamos probar si
petroleo_en_tanque. No existe reglas que concluyan esto, por lo tanto preguntaremos al
usuario:
Hay petrleo en el tanque?
Supongamos, que la respuesta es SI. Esta respuesta ser almacenada como un hecho,
as el usuario no har la misma pregunta. El sntoma ahora ha sido probado, el
motor_tiene_petrleo, as debemos encontrar si el motor_enciende. Como el sistema no
encuentra una regla que concluya este sntoma, entonces el sistema pregunta:
El motor enciende?
Supongamos ahora que a respuesta es NO. Como no hay otra regla que pueda probar
problema_con_buja, el sistema concluye que este no es el problema y considerar la
siguiente hiptesis problema_con_batera. Es verdad que el motor no enciende, por lo
tanto el sistema tiene que probar que las luces no encienden, el sistema preguntar:
Las luces encienden?
Ahora, supongamos que la respuesta es No. As, puede probar que el problema es la
batera. Algunos sistemas pueden detenerse aqu, sin embargo en algunas ocasiones
se deben evaluar las siguientes hiptesis, pues puede haber ms de un problema con
el automvil. Sin embargo, como las luces no encienden, el problema con el arrancada
no se valida.
Notemos que en general, resolver problema mediante el mtodo de encadenamiento
hacia atrs involucra bsquedas a travs de todas las posibles formas de probar la
hiptesis. Un modo de hacer esto es mediante la bsqueda en profundidad con
bactracking.
Esquema Completo
>> Sistema: Hay petrleo en el tanque?
Usuario: SI.

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

Sistemas Expertos

>> Sistema: El motor enciende?


Usuario: NO.
>> Sistema: Las luces encienden?
Usuario: NO.
>>

Sistema: Concluyo que el auto tienen un problema con la batera.

JOSE MANUEL SAAVEDRA rondo


ingeniero informtico

You might also like