12.07.2015 Views

Sistemas Expertos Sistemas Expertos - Fernando Berzal

Sistemas Expertos Sistemas Expertos - Fernando Berzal

Sistemas Expertos Sistemas Expertos - Fernando Berzal

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Sistemas</strong> <strong>Expertos</strong>© <strong>Fernando</strong> <strong>Berzal</strong>, berzal@acm.org<strong>Sistemas</strong> <strong>Expertos</strong><strong>Sistemas</strong> expertosHistoriaEstructura de un sistema expertoCaracterísticas de un sistema experto<strong>Sistemas</strong> expertos basados en reglas (S.E.B.R.)Motor de inferenciaEncadenamiento hacia adelante y hacia atrás1


<strong>Sistemas</strong> <strong>Expertos</strong>Encargados de realizar (o asistir en la realización de)tareas ejecutadas por expertos: Ingeniería (diseño, detección de fallos…) Análisis científico Diagnóstico médico Análisis financiero Configuración de componentes <strong>Sistemas</strong> de control y monitorización Educación [intelligenttutoring systems] …2<strong>Sistemas</strong> <strong>Expertos</strong>HistoriaDendral [“DendriticAlgorithm”]Universidad de Stanford, 1965-19751975Edward Feigenbaum, Bruce Buchanan, Joshua Lederberg & Carl DjerassiPrimer sistema experto, programado en LISP parala identificación de compuestos orgánicos analizandodatos de espectroscopia de masas.3


<strong>Sistemas</strong> <strong>Expertos</strong>HistoriaMYCINStanford Research Institute, 1970sTesis doctoral de Edward Shortliffe bajo la dirección de Bruce Buchanan.Diseñado en LISP para identificar las bacteriascausantes de infecciones severas (p.ej. meningitis) yrecomendar antibióticos, con una dosis ajustada alpeso del paciente [NOTA:: el nombre de muchosantibióticos termina con el sufijo “-mycin”].Separación entre datos y conocimiento (reglas).Manejo de incertidumbre mediantefactores de certeza [CF: Certainty Factors].4<strong>Sistemas</strong> <strong>Expertos</strong>HistoriaPROSPECTORStanford Research Institute, 1974-19831983R. Duda, P.E. Hart, N.J. Nilsson, et al.Evaluación del potencial minerode una localización geológica(lugares de exploración o prospección).Representación del conocimiento del experto(mediante una red de inferencia)y de su proceso de razonamiento(mediante el uso de técnicas de tipo probabilístico). 5


<strong>Sistemas</strong> <strong>Expertos</strong>HistoriaR1 / XCON [eXpertCONfigurer]Carnegie Mellon University, 1978John P. McDermottEscrito en OPS5 para ayudar en la selección decomponentes para la configuración de máquinas DECVAX, de Digital Equipment Corporation (adquirida porCompaq en 1998, que se fusionó con HP en 2002).Puesto en marcha en 1980, en 1986 había procesado80,000 pedidos y se estima que le ahorraba a DECmás de $40M al año. 6<strong>Sistemas</strong> <strong>Expertos</strong>HistoriaCLIPSNASA Johnson Space Center, 1985-Gary Rileyhttp://clipsrules.sourceforge.net/C Language Integrated Production System.Sintaxis y nombre inspirado en OPS (“OfficialProduction System”), 1977,creado por Charles Forgy durante su doctorado con Allen Newell en CMU.Otros “expertsystem shells”, descendientes de CLIPS:Jess [Java Expert System Shell] http://www.jessrules.com/FuzzyCLIPS, NRC, Canada7


<strong>Sistemas</strong> <strong>Expertos</strong>Algunos sistemas expertos “clásicos”MedicinaQuímicaMatemáticas AM (InformáticaElectrónicaIngenieríaGeologíaMYCIN, PUFF, ABEL, AI/COAG, AI/RHEUM, CADUCEUS,ANNA, BLUE BOX, ONCOCIN, VM, INTERNIST-I, I, CASNETCRYSALIS, DENDRAL, TQMSTUNE, CLONER,MOLGEN, SECS, SPEX…AM (AutomatedMathematician), EURISKO, SMP,MATHPERT… CCH-ES,ExperTAX…PTRANS, BDS, R1/XCON, XSEL, XSITE, DART, SNAP,YES/MVS, TIMM…ACE, IN-ATE, NDS, EURISKO, PALLADIO, IDEA,REDESIGN, CADHELP, SOPHIE…REACTOR, DELTA (GE), JETA, STEAMER, SACON,CALLISTO, G2, SHARP, MARVEL, Pile Selection…DIPMETER, LITHO, MUD, PROSPECTOR…8<strong>Sistemas</strong> <strong>Expertos</strong>Algunos “shells” para sistemas expertosE-MYCIN[“EssentialEssential/EmptyEmpty MYCIN”],Stanford Research Institute, 1973-1980. 1980.OPS [“OfficialProduction System”]Carnegie Mellon University, 1977.KEE [“KnowledgeEngineering Environment”]para máquinas Lisp, IntelliCorp, 1983CLIPS [“C Language Integrated Production System”]NASA Johnson Space Center, 1985ESDE [“Expert System Development Environment”],para máquinas MVS y VM, IBM, 1986JESS [“Java Expert System Shell”]Sandia National Labs, 1995Drools [businessrules engine]JBoss, 2001 http://www.jboss.org/drools/9


<strong>Sistemas</strong> <strong>Expertos</strong>¿En qué áreas resultan útileslos sistemas expertos?En aquellas en las que haya expertos [humanos]que nos puedan proporcionar el conocimientonecesario (de ahí el nombre de sistemas expertos).10<strong>Sistemas</strong> <strong>Expertos</strong>Diferencias con respectoa la programación convencional (imperativa)Se separa el conocimientode los mecanismos que permiten manipularlo:Apenas existen instrucciones en el sentido clásico.El “programa” consiste, básicamente, en declararconocimiento (usualmente, en forma de reglas).Una “caja negra” (motor de inferencia) infiere nuevoconocimiento y determina el flujo de control.11


<strong>Sistemas</strong> <strong>Expertos</strong>DatosEn lenguaje natural:Los padres de Elena son Carlos y Belén.Los padres de Carlos son Juan y María.Declaración de hechos PROLOG:padres('Carlos','Belén','Elena').').padres('Juan','María','Carlos').').12<strong>Sistemas</strong> <strong>Expertos</strong>ConocimientoEn lenguaje natural:Los padres de los padres son los abuelos.Programa en “PROLOG”:abuelos(Abuelo,Abuela,Nieto) ifpadres(Abuelo,Abuela,Hijo) andpadres(Hijo,MujerDelHijo,Nieto).abuelos(Abuelo,Abuela,Nieto) ifpadres(Abuelo,Abuela,Hija) andpadres(EsposoHija,Hija,Nieto).13


<strong>Sistemas</strong> <strong>Expertos</strong>Uso de un sistema expertoConsulta (objetivo):?- abuelos(‘Juan’, ‘María’, Nietos).donde Nietos es una variable.Respuesta del intérprete/compilador de PROLOG:Nietos = ‘Elena’Conocimiento inferido (deducido) a partir delos hechos y las reglas conocidos por el sistema.14<strong>Sistemas</strong> <strong>Expertos</strong>EjemploSistema de control de una planta industrialDatos:Temperatura actual del reactor 1 = 75ºConocimiento:Si la temperatura de cualquier reactorsupera el umbral establecido, entoncesactivar el mecanismo de emergencia.15


<strong>Sistemas</strong> <strong>Expertos</strong>EjemploSistema de control de una planta industrialEl conocimiento suele ser más estático que los datos,pero también puede cambiar (“refinarse”):Si la temperatura de cualquier reactorsupera el umbral establecido, entoncesactivar el mecanismo de emergencia, hacersonar la alarma y evacuar al personal.16<strong>Sistemas</strong> <strong>Expertos</strong>Datos vs. ConocimientoDatosAfirmaciones puntualesSuelen ser dinámicosDeclaración extensivaGran volumenAlmacenamiento secundarioRepresentación eficienteConocimientoAfirmaciones generalesSuele ser estáticoDeclaración intensivaPequeño volumenAlmacenamiento en RAMRepresentación simbólica17


<strong>Sistemas</strong> <strong>Expertos</strong>Estructura de un sistema expertoConocimientoDatosMotor de inferenciaNuevos datosy conocimiento18<strong>Sistemas</strong> <strong>Expertos</strong>Términos habituales en PsicologíaMemoriaa largo plazoMemoriaa corto plazoRazonamientoLTM [long-term memory]: Memoria a largo plazo.STM [short-term memory]: Memoria a corto plazo.19


<strong>Sistemas</strong> <strong>Expertos</strong>Arquitectura de un sistema expertoBase deconocimientoMemoriade trabajoMotor de inferenciaKB [knowledge base]: Base de conocimiento.WM [working memory]: Memoria de trabajo.20<strong>Sistemas</strong> <strong>Expertos</strong>Arquitectura de un sistema expertoBase deconocimientoMemoriade trabajoMotor de inferenciaEl motor de inferencia [inference engine] determinacuáles son las reglas aplicables en cada momento yse encarga de ejecutarlas. 21


<strong>Sistemas</strong> <strong>Expertos</strong>EjemploRegla 1. Si el coche no arranca,realice una comprobación de la bateríaRegla 2. Si el coche no arranca,compruebe el indicador de combustible…Regla 75. Si se comprobado la batería y el voltajede la batería es inferior a 10 voltios, entoncestiene que cambiar la batería.…Regla 120. Si ha comprobado el indicador decombustible y el depósito de combustible estávacío, entonces hay que llenar el depósito.22<strong>Sistemas</strong> <strong>Expertos</strong>EjemploRegla 1.Regla 2.…Regla 75.…IF coche no arranca,THEN comprobar bateríaIF coche no arrancaTHEN comprobar combustibleIF comprobar bateríaAND voltaje batería < 10VTHEN cambiar bateríaRegla 120. IF comprobar combustibleAND depósito de combustible vacíoTHEN llenar depósito.23


<strong>Sistemas</strong> <strong>Expertos</strong>Ejemplocoche no arrancavoltaje < 10depósito vacíoR1coche no arrancavoltaje


<strong>Sistemas</strong> <strong>Expertos</strong>Características de un sistema expertoObjetivo:Ayudar en la toma de decisiones(pero no sustituir al experto!!!).Consejo práctico:No intentar cubrir un área excesivamente grande.Dividirla en subproblemasy construir, para cada uno de ellos,un sistema experto específico que lo resuelva.26<strong>Sistemas</strong> <strong>Expertos</strong>Características de un sistema expertoRazonamiento simbólicosi una persona tiene fiebrey no es alérgica al ácido acetil salicílico (AAS)entonces suministrar aspirina 500 mgPedro no tiene fiebrePedro no es alérgico al AAS∀x x Fiebre(x) ∧ ¬AlergiaAAS(x)Terapia(x,Aspirina500)Fiebre(Pedro)¬AlergiaAAS(Pedro)27


<strong>Sistemas</strong> <strong>Expertos</strong>Características de un sistema expertoRazonamiento heurísticoReglas heurísticas basadas en la experiencia de losexpertos (que pueden fallar en situaciones concretas):Ante un problema de arranque,descartar que sea un fallo de carburacióny chequear primero el sistema eléctrico.Si el tipo de interés está bajo, considerar invertir en acciones.Si el tipo de interés está alto, mejor invertir en bonos.Las personas no suelen coger una gripe en verano.Si se sospecha cáncer, comprobar el historial familiar.28<strong>Sistemas</strong> <strong>Expertos</strong>Características de un sistema expertoRazonamiento inexacto (con incertidumbre) PROSPECTOR (‘likelihoods’ [verosimilitudes]) MYCIN (‘certaintyfactors’ [factores de certeza])Si el paciente es un huésped de riesgoy existen reglas que mencionan a las pseudomonasy existen reglas que mencionan a las klebsiellas,entonces es plausible (0.4)que deban considerarse primero las segundas.29


<strong>Sistemas</strong> <strong>Expertos</strong>Resumen de característicasProgramasconvencionalesProgramación imperativaRazonamiento algorítmicoControl definidopor el programadorDifíciles de modificarInformación precisaSe ofrece una solucióncomo resultado finalSolución “óptima”<strong>Sistemas</strong>expertosProgramación declarativaRazonamiento heurísticoControl determinadopor el motor de inferenciaFáciles de modificarInformación no precisaSe ofrece unarecomendación razonadaSolución aceptable30<strong>Sistemas</strong> expertos basados en reglasModelos conductualesp.ej. Aprendizaje condicionado (perros de Pavlov)AntesComidaTimbreSalivaciónSin respuestaDurante el condicionamientoComida+timbreSalivaciónDespuésTimbre Salivación 31


<strong>Sistemas</strong> expertos basados en reglasModelos conductualesp.ej. Aprendizaje condicionado (perros de Pavlov)32<strong>Sistemas</strong> expertos basados en reglasProducción: : Término utilizado en Psicología Cognitivapara describir relaciones entre situaciones y acciones.Regla de producción: : Término utilizado en I. A.para denotar un mecanismo de representación delconocimiento que implementa una producción.SI situación ENTONCES acción La situación (condición ó antecedente) establecelas condiciones que se han de satisfacer en unmomento dado para que la regla sea aplicable. La acción ó consecuente establece las accionesque se han de realizar cuando la regla “se active”. 33


<strong>Sistemas</strong> expertos basados en reglasLa acción en una regla de producción puede involucrar:Añadir algún dato (hecho) a la memoria de trabajo.Suprimir algún dato de la memoria de trabajo.Ejecutar algún procedimiento.EjemploBase de conocimiento:Reglas de producción.Mecanismo de inferencia:Encadenamiento hacia adelante (p.ej. CLIPS).34<strong>Sistemas</strong> expertos basados en reglasEjemplo: Guía de reparación del automóvilRegla 1.Regla 2.…Regla 75.…IF coche no arranca,THEN comprobar bateríaIF coche no arrancaTHEN comprobar combustibleIF comprobar bateríaAND voltaje batería < 10VTHEN cambiar bateríaRegla 120. IF comprobar combustibleAND depósito de combustible vacíoTHEN llenar depósito.35


<strong>Sistemas</strong> expertos basados en reglasEjemplo: Guía de reparación del automóvilcoche no arrancavoltaje < 10depósito vacíoR1coche no arrancavoltaje


<strong>Sistemas</strong> expertos basados en reglasRepresentación del conocimiento en un S.E.B.R.Datos: : Cualquier mecanismo de representación vale.vg. Tupla(Pedro,27,124000)Registro (C) Empleado ( Nombre=Pedro,Edad=27,Salario=124000 )Objeto (OO) Clase cliente (propiedades y métodos)Conocimiento: : Reglas.vgvg. SI condición ENTONCES acciónSI antecedente ENTONCES consecuente38<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia¿Cómo se van aplicando las reglas de la base deconocimiento sobre los hechos de la memoria de trabajo?El motor de inferencia es el encargado de hacerlo.Pueden utilizarse dos mecanismos básicos de inferencia: Hacia adelante (p.ej. CLIPS) Hacia atrás (p.ej. PROLOG).Se puede programar por completo (p.ej. en C) o utilizarun shell de sistema experto (que proporciona unlenguaje específico para declarar hechos y reglasy el motor de inferencia ya implementado). 39


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteDada una regla R: si A entonces CLa regla R se puede disparar, ejecutar o aplicar haciaadelante cuando se satisfacen las condicionesespecificadas en su antecedente A.Cuando la regla se dispara, se procede a la ejecución delas acciones especificadas en su consecuente C.40<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteUn motor de inferenciacon encadenamiento hacia adelante:parte de unos hechos (datos en la memoria de trabajo),va cotejando (emparejando) los datos de la memoria detrabajo con los antecedentes de las reglas, ylas va disparando hasta que se satisface algún objetivoo hasta que ninguna regla sea aplicable.41


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEmparejamientoComparación de los antecedentes de cada regla con loshechos de la memoria de trabajo.Resultado: Conjunto de reglas que pueden aplicarse encada momento (“conjunto conflicto”).42<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteResolución de conflictosSelección de una regla del “conjunto conflicto”(cuando exista más de una).Resultado: Regla seleccionada para su aplicación.43


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEjecución de la reglaLa regla seleccionada se ejecuta (dispara); esto es, seejecutan las acciones especificadas en su parte derecha.Principio de refracción: : La regla ejecutada novolverá a ser aplicable hasta que no desaparezca algunode los hechos que hicieron posible su aplicación yvuelvan a afirmarse (“asertarse”)44<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOR0: IF hay placas (puntos blancos) en la gargantaTHEN diagnóstico: posible infección de gargantaR1: IF garganta inflamadaAND sospechamos infección bacterianaTHEN diagnóstico: posible infección de gargantaR2: IF temperatura paciente > 39THEN paciente tiene fiebreR3: IF paciente enfermo más de una semanaAND paciente tiene fiebreTHEN sospechamos infección bacteriana 45


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOM.T. C.C. Resolucióntemperatura = 40enfermo dos semanasgarganta inflamadaMemoria de trabajo inicial:Datos provenientes de la exploración del paciente, p.ej.temperatura = 40enfermo dos semanasgarganta inflamada 46<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOM.T. C.C. Resolucióntemperatura = 40enfermo dos semanasgarganta inflamadatemperatura = 40enfermo dos semanasgarganta inflamadafiebreR2R2Si no aplicamos el principio de refracción, podríamosestar añadiendo indefinidamente el hecho de que lapersona tiene fiebre. 47


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOM.T. C.C. Resolucióntemperatura = 40enfermo dos semanasgarganta inflamadatemperatura = 40enfermo dos semanasgarganta inflamadafiebretemperatura = 40enfermo dos semanasgarganta inflamadafiebreposible infección bacterianaR2R3R2R348<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOM.T. C.C. Resolucióntemperatura = 40enfermo dos semanasgarganta inflamadafiebreposible infección bacterianatemperatura = 40enfermo dos semanasgarganta inflamadafiebreposible infección bacterianainfección en la gargantaR1R1Diagnóstico: Posible infección en la garganta49


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia adelanteEJEMPLOSi, en la exploración inicial, se hubiesen vistopuntos blancos en la garganta, entonces tendríamos:M.T. C.C. Resolucióntemperatura = 40enfermo dos semanasgarganta inflamadapuntos blancos en la gargantaR0, R2 ???Dependiendo del orden en que el motor de inferenciaseleccione las reglas, podríamos llegar a un diagnósticocon menos pasos (si se elige R0 primero) o, incluso,puede que diferente.50<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásEs obligatorio incluir un objetivo inicial(lo que pretendemos demostrar),que se se irá reemplazado porotros subobjetivos como resultadode aplicar las reglas hacia atrás.objetivohechos51


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásDada una regla R: si A entonces CLa regla se puede aplicar hacia atrás cuando existe unobjetivo OBJ que concuerda con el consecuente C.Cuando se aplica una regla hacia atrás, se procede asustituir la demostración de OBJ por la demostración delos antecedentes A de la regla; esto es, el objetivoinicial OBJ se reemplaza por todos los objetivos A.52<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásUn motor de inferenciacon encadenamiento hacia atrás:parte de unos hechos (datos) y de un objetivo inicial,va cotejando (emparejando) los consecuentes de lasreglas con la lista de objetivos, yva aplicando las reglas hacia atrás (aumentando así lalista de objetivos) hasta que todos ellos coincidan conhechos de la memoria de trabajo.53


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásPara representar los objetivos que han de demostrarse,suele utilizarse un grafo Y/O:EJERCICIODibujar el grafo Y/Opara el ejemplo anterior.54<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásEJERCICIOposible diagnósticoR0R1placas en la garganta infección bacteriana garganta inflamadaR3fiebreenfermo > 1 semanaR2temperatura > 3955


<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásEJERCICIOposible diagnósticoUna posible solución(todas las hojas son hechos)R0R1placas en la garganta infección bacteriana garganta inflamadaR3fiebreenfermo > 1 semanaR2temperatura > 3956<strong>Sistemas</strong> expertos basados en reglasMotor de inferencia:Encadenamiento hacia atrásEJERCICIOposible diagnósticoR0R1placas en la garganta infección bacteriana garganta inflamadaOtra posible soluciónR3fiebreenfermo > 1 semanaR2temperatura > 3957


Bibliografía: <strong>Sistemas</strong> <strong>Expertos</strong>John Durkin, Expert Systems: Design andDevelopment. . Prentice Hall, 1994.Peter Jackson, Introduction to Expert Systems.Addison Wesley, 1998. James P. Ignizio, Introduction to Expert Systems:The Development and Implementation of Rule-Based Expert Systems. . McGraw-Hill, 1990.Ernest Friedman-Hill,Jess in Action: Java Rule-Based Systems. . Manning Publications, 2003.Jay Liebowitz (editor): The Handbook of AppliedExpert Systems. . CRC Press, 1997.58Bibliografía: <strong>Sistemas</strong> <strong>Expertos</strong>CLIPS Joseph C. Giarratano & Gary D. RileyExpert Systems:Principles and ProgrammingThomson, 4 th edition, 2005.ISBN 0534384471PROLOG William F. Clocksin& Christopher S. Mellish:Programming in PrologSpringer, 5 th edition, 2003ISBN 3540006788 59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!