Descarga la aplicación para disfrutar aún más
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.
Compartir