Logo Studenta

INTRODUCCION SISTEMA EXPERTO

¡Estudia con miles de materiales!

Vista previa del material en texto

Sistemas Expertos 
por 
Ing. José Manuel Saavedra Rondo 
 
 
 
 
 
PARTE I : 
INTRODUCCIÓN A LOS SISTEMAS EXPERTOS
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
1
 
SISTEMAS EXPERTOS 
José Manuel Saavedra Rondo 
ingeniero informático 
2006 
 
 
 
 
1. Introducción 
Los sistemas expertos son programas de computadora que son derivados de una de las ramas de la 
Ciencias de la Computación denominada Inteligencia Artificial. Uno de los pioneros en el desarrollo 
de Sistemas Expertos es Edward Feigenbaum. El empezó a hipotizar acerca de la creación 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 través de conocimiento específico en dicha áreas son 
denominados Sistemas Expertos o Sistemas Basados en Conocimiento. 
 
 
2. Definición 
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 difíciles como para 
requerir significativa experiencia humana para su solución. 
 
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 
específico. Se utilizan los términos: Sistema Experto, Sistema basado en 
Conocimiento o Sistema Experto basado en Conocimiento. 
 
 
Otras Definiciones 
 
Un Sistema Experto es un modelo y procedimiento asociado que exhibe, dentro de un dominio 
específico, un grado de experticia en la solución 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” 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fig. 1. Dominio del Problema y del Conocimiento 
E. Feigenbaum
DOMINIO DEL 
PROBLEMA 
(Medicina, Mecánica, 
Biología, etc) 
DOMINIO DEL 
CONOCIMIENTO 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
2
3. Dominio del Problema y del Conocimiento 
 
Un dominio del problema es el área específica del problema, como Medicina, Finanzas, Ciencias, 
Ingeniería, etc, en el que un especialista puede resolver problemas con facilidad. Los Sistemas 
Expertos, como los especialistas humanos, suelen diseñarse 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 específicos se le llama dominio del 
conocimiento del experto. Por ejemplo, un Sistema Experto Médico diseñado para diagnosticar 
enfermedades infecciosas debe tener una gran cantidad de conocimiento acerca de los síntomas 
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 cómputo adecuado. La experiencia 
humana es trasladada a medios de mayor disponibilidad. 
 
b. Costo reducido 
El costo de poner la experiencia a disposición del usuario se reduce en gran medida. 
 
c. Peligro reducido 
Los Sistemas Expertos pueden usarse en ambientes que podrían ser peligrosos para un 
humano. 
 
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 múltiple 
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 múltiple 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. Explicación 
El Sistema Experto puede explicar clara y detalladamente el razonamiento que conduce a su 
conclusión, lo que aumenta la confianza del usuario en la decisión tomada. Un ser humano 
puede estar cansado, mostrarse renuente o incapaz de hacerlo siempre. 
 
h. Respuestas rápidas 
Muchas veces resulta importante tener respuestas en poco tiempo o en tiempo real. 
Dependiendo de la tecnología utilizada, un Sistema Experto puede responder más rápido y estar 
más dispuesto que un especialista humano. 
 
i. Respuestas sólidas 
Un Sistema experto puede dar respuesta sólidas, 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 presión no trabaja al 100%. 
 
 
 
 
 
 
 
 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
3
5. Componentes de un Sistema Experto 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fig. 2. Componentes de un Sistema Experto 
 
 
 
5.1. Interfaz de Usuario 
El usuario interactúa con el Sistema Experto a través de una interfaz de usuario, la cual puede 
contener menús, procesamiento del lenguaje natural u otro tipo de interacción. La interfaz debe 
ser amigable en la entrada y salida de información. 
 
5.2. Base de Conocimiento 
Conocimiento Teórico y Conocimiento Heurístico. El conocimiento heurístico es el menos 
riguroso, es más experimental, en contraste con el conocimiento teórico. La base del 
conocimiento formaliza y organiza el conocimiento adquirido. Una de las representaciones más 
utilizadas en la representación del conocimiento es la producción de reglas. Una regla se 
compone de una parte condicional SI y de una parte consecuente ENTONCES (condición y 
acción). Sistemas expertos cuyo conocimiento es representado en forma de reglas son llamados 
Sistemas Expertos basados en Reglas. 
 
si (ANTECEDENTES) entonces (CONSECUENTE O ACCIÓN) 
 
Por ejemplo, a continuación tenemos algunas REGLAS: 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 términos de HECHOS. Por ejemplo: 
 
 
 
 
 
 
 
 
Adquisición de 
conocimiento 
Mecanismo de 
Inferencia 
Medio de Explicación 
Base de Conocimiento
 
Memoria Activa 
(Hechos) 
y 
Reglas 
 
 
IN
T
E
R
F
A
Z
 D
E
 U
S
U
A
R
IO
 
SI el automóvil no avanza y el indicador del combustible indica nivel bajo 
ENTONCES 
 cargar gasolina 
 
SI hay humo y temperatura es alta 
ENTONCES 
 hay fuego 
- La temperatura ambiental es 40º 
- El paciente tiene dolor de cabeza 
- El paciente tiene ojos amarillos 
 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
4
Cuando el conocimiento es preciso y es suficiente para determinar una conclusión se dice que el 
Sistema Experto es Determinístico. 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 específicos 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 típicamente 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 métodos de encadenamiento de reglas SI – ENTONECS para formar 
una línea derazonamiento. Si el encadenamiento comienza de un conjunto de condiciones y se 
mueve hacia las conclusiones entonces el método es denominado encadenamiento hacia 
adelante. Si la conclusión es conocida pero la ruta de la conclusión no es conocida entonces el 
método que se utiliza es el encadenamiento hacia atrás. El motor de inferencia contiene 
implementado estos métodos de razonamiento. 
 
El motor de inferencia controla la ejecución de reglas. Busca a través de la base de 
conocimientos, intentado asociar el conocimiento almacenado en forma de hechos el 
antecedente de una regla (condición). Si el antecedente de una regla es satisfecho, entonces la 
regla ejecuta la acción de la conclusión o el consecuente. 
 
 
5.4. Medio de Explicación 
El medio de explicación, permite explicar el proceso de razonamiento seguido para tomar una 
decisión. Este componente responderá a la pregunta ¿Cómo ? o ¿Por qué? cuando ha 
efectuado un conclusión. 
 
5.5. Medio de Adquisición del Conocimiento 
En muchas aplicaciones se requiere medios automáticos para que el usuario alimente del nuevo 
conocimiento al Sistema Experto, por ejemplo agregar nuevas reglas de razonamiento. El Medio 
de Adquisisición 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 Química (análisis del espectro de masa) (1965). 
 
6.2. MACSYMA 
(Martin y Moses) Sistema Experto en Matemáticas (1969). 
 
6.3. MYCIN 
(Shortliffe) aplicado al diagnóstico de enfermedades infecciosas de la sangre (1973). 
 
6.4. PROSPECTOR 
(Duda, Hart), aplicado a la evaluación del potencial mineral en ciertas regiones (1974-1983). 
 
 
 
 
 
 
 
 
 
 
 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
5
 
 
7. Fases en el Desarrollo de un Sistema Experto 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fig. 3. Fases en el Desarrollo de un Sistema Experto 
 
 
7.1. Análisis 
 
El propósito del Análisis es identificar potenciales aplicaciones. El desarrollador debe analizar y 
valorar si el problema es adecuado para ser solucionado por un sistema experto. Se evaluaránd 
difrentes posibles problemas y se determinará en cual o cuáles es necesario un Sistema 
Experto. 
 
 
Elemento de Valoración 
 
 La necesidad para una solución debe justificar los costos de desarrollo. Debe haber una 
valoración realista de los costos y beneficios involucrados. 
¿Cuánto 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 exploración de petróleo y medicina lo 
sistemas expertos representarían una gran ventaja. 
 
 El Problema puede ser resuelto usando razonamiento simbólico. Los problemas que se 
traten de resolver no deben requerir destreza manual o habilidades físicas. 
 
 El problema está bien definido y no requiere mucho conocimiento subjetivo. El 
conocimiento subjetivo es difícil de capturar y representar. 
 
 El problema no puede ser fácilmente solucionado usando métodos computacionales 
tradicionales. 
 
 Existe la cooperación voluntaria de uno o muchos expertos. 
 
 El problema es de tamaño y alcance apropiado, no muy complejo. 
 
 
 
 
 
 
ANÁLISIS 
ESPECIFICACIÓN 
DESARROLLO 
IMPLANTACIÓN 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
6
7.2. Especificación 
 
La especificación 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. 
 
- Definición 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 adquisición del 
conocimiento. Existen tres tipos de casos que el desarrollador debe discutir con el experto: 
actuales, históricos e hipotéticos. Casos actuales pueden ser cubiertos observando el 
desempeño del experto. Casos históricos se cubre discutiendo con el experto sobre su 
desempeño en casos pasados. Se debe analizar además casos hipotéticos discutiendo con 
el experto sobre su probable desempeño. 
 
La adquisición del conocimiento empieza con la fase de especificación y continúa hasta el 
fase de desarrollo. El desarrollador (Ingeniero del Conocimiento) debe extraer 
conocimiento bajo la discusión los casos anteriores. El conocimiento se agrupa en 
Conocimiento Teórico y Conocimiento Herurístico. 
 
b. Modelamiento del Conocimiento (Diseño) 
 
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 Decisión 
- Lógica de Primer Orden (Formal) 
 
c. Implementación (Programación) 
 
Usando un lenguaje de programación, generalmente Lenguaje Lógico, traducimos el 
conocimiento modelado a un código y generamos el software. Prolog es un lenguaje lógico 
muy potente. 
 
Sin embargo es posible utilizar herramientas más específicas como los famosos Shells para 
Sistemas Expertos, por ejemplo: Exsys, Clips. 
 
d. Testing o Pruebas 
Se realizan las pruebas necesarias para determinar la corrección y fiabilidad del Sistema 
Experto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fig. 4. Desarrollo de un Sistema Experto 
Especialista 
Humano
Ingeniero en 
Conocimiento
Base de Conocimiento 
del Sistema Experto 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
7
 
7.4. Implantación 
Se distribuye el Sistema Experto y se pone en ambientes de explotación, listo para ser usado. 
 
 
8. Tipología de los Sistemas Expertos 
 
8.1. Diagnóstico y Tratamiento 
 
Esta clase comprende sistema que deducen fallas y sugieren acciones para procesos o 
dispositivos en mal funcionamiento. El diagnóstico médico fue una de los primeras áreas en la 
que los SE fueron aplicados, pero el diagnóstico de sistemas de ingeniería proliferaron 
rápidamente. 
 
8.2. Planificación 
 
Sistemas que caen dentro de este clase, analizan un conjunto de una o más 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 planificación de 
vuelos y planificación de procesos de manufactura. 
 
8.3. Toma de Decisiones Financieras 
 
Soportan las decisiones bancarias como préstamos o seguros. Evalúan el riesgo y sugieren una 
decisión. 
 
8.4. Proceso de Manufactura y Control 
Analizan datos en tiempo real con el objetivo de notar anomalías, predecir problemas y controlar 
óptimamente el proceso. Ejemplo, SE en la industria de refinería. 
 
8.5. Diseño 
 Se configuran objetos bajo restricciones. 
 
8.6. Interpretación 
Se describen situaciones bajo información adquirida. Ejemplo: Sistemas Expertos aplicados en 
la Astronomía, para el análisis de imágenes satelitales (Huracanes) 
 
 
 
9. Ejemplo de un Sistema Experto Simple 
 
Supongamos que tenemos las siguientes reglas 
1. IF motor_tiene_petróleo 
AND motor_enciende 
THEN problema_con_bujía 
2. IF NOT motor_enciende 
 
AND NOT luces_enciende 
THEN problemas_con_batería 
3. IF NOT motor_enciende 
AND luces_encienden 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
8
THEN problema_con_arrancador 
4. IF petróleo_en_tanque 
THEN motor_tiene_petroleo 
Nuestro problema es encontrar lo que está funcionando mal con un automóvil, dando alguno 
síntomas observables. Hay tres posibles problemas con el auto: problema_con_bujías, 
problema_con batería, problema_con_arrancador. Asumiremos queno hemos proporcionado 
hechos iniciales, respecto a los síntomas. 
En el más simple sistema dirigido por objetivos, nosotros podríamos tratar de probar cada una de 
los problemas hipotéticos con el automóvil. Primero el sistema tratará de probar 
“problema_con_bujía”. 
La Regla 1 es potencialmente útil, así, el sistema establecerá los nuevos objetivos a probar. Así, 
se deberá probar si el motor_tiene_petróleo 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 petróleo 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 síntoma ahora ha sido probado, el 
motor_tiene_petróleo, así debemos encontrar si el motor_enciende. Como el sistema no 
encuentra una regla que concluya este síntoma, entonces el sistema pregunta: 
El motor enciende? 
Supongamos ahora que a respuesta es NO. Como no hay otra regla que pueda probar 
problema_con_bujía, el sistema concluye que este no es el problema y considerará la 
siguiente hipótesis “problema_con_batería”. 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 
batería. Algunos sistemas pueden detenerse aquí, sin embargo en algunas ocasiones 
se deben evaluar las siguientes hipótesis, pues puede haber más de un problema con 
el automóvil. Sin embargo, como las luces no encienden, el problema con el arrancada 
no se valida. 
Notemos que en general, resolver problema mediante el método de encadenamiento 
hacia atrás involucra búsquedas a través de todas las posibles formas de probar la 
hipótesis. Un modo de hacer esto es mediante la búsqueda en profundidad con 
bactracking. 
Esquema Completo 
>> Sistema: Hay petróleo en el tanque? 
Usuario: SI. 
 
Sistemas Expertos 
JOSE MANUEL SAAVEDRA rondo 
ingeniero informático 
9
>> Sistema: El motor enciende? 
Usuario: NO. 
>> Sistema: Las luces encienden? 
Usuario: NO. 
>> Sistema: Concluyo que el auto tienen un problema con la batería.

Continuar navegando