semana11y12

download semana11y12

of 31

Transcript of semana11y12

  • Sistemas Expertos basados en Reglas

  • TpicosIntroduccinBase de HechosBase de ConocimientoMotor de inferenciaMtodos de encadenamientoTcnicas de equiparacinAlgoritmo RETETcnicas de resolucin de Conflictos

  • 1.-IntroduccinEn nuestra vida diaria encontramos muchas situaciones complejas gobernadas por reglas deterministas: sistemas de control de trfico, sistemas de seguridad, transacciones bancarias, etc. Los sistemas basados en reglas son una herramienta eficiente para tratar estos problemas. Las reglas deterministas constituyen la ms sencilla de las metodologas utilizadas en sistemas expertos. La base de conocimiento contiene las variables y el conjunto de reglas que definen el problema, y el motor de inferencia obtiene las conclusiones aplicando la lgica clsica a estas reglas. Por regla se entiende una proposicin lgica que relaciona dos o ms objetos e incluye dos partes, la premisa y la conclusin. Cada una de estas partes consiste en una expresin lgica con una o ms afirmaciones objeto-valor conectadas mediante los operadores lgicos y, o, o no. Una regla se escribe normalmente como Si premisa, entonces conclusin".

  • 2.- Base de HechosEs una memoria auxiliar que contiene los datos del usuario (hechos inciales que describen el problema a resolver) y los resultados intermedios obtenido a lo largo del procedimiento de deduccin.Definicin Ejemplo: Diagnstico de enfermedadesDatos personales del paciente: (nombre, direccin, N de seguro)

    Sntomas del paciente:(s1 s2 s3 s4 ....sk)

  • 3.- Base del ConocimientoDefinicin Es una estructura de datos que contiene el conjunto de conocimiento especializado introducido por el experto del dominio (rea del saber)

  • 3. Base de Conocimiento Definicin

    Reglas de inferencias Es una estructura de representacin del conocimiento que tiene la siguiente forma:

    Si A1, A2,... Aa Entonces C1, C2,... Cc

    Patrones SiAntecedentesPatrones EntoncesConsecuente

  • 3. Base de Conocimiento Ejemplo: Diagnstico de Enfermedades

    Si Sntoma11, Sntoma12, Sntoma13, ... Sntoma1k Entonces Enfermedad 1Si Sntoma21, Sntoma22, Sntoma23, ... Sntoma2k Entonces Enfermedad 2...Si Sntoma n1, Sntoma n2, Sntoma n3, ... Sntoma nk Entonces Enfermedad n

  • 4.- Motor de InferenciaDefinicin

    Es la unidad lgica con la que se extraen conclusiones de la base de conocimientos, una conclusin se produce mediante aplicacin de las reglas sobre los hechos presentes.

    Decide que se debe aplicar, que se debe hacer, resuelve conflictos nuevos, hace uso de la base de conocimiento.

  • 5 Mtodos de EncadenamientoProgresivo Encadenamiento hacia delanteLas inferencias se realizan desde los antecedentes hacia los consecuentes.

    Regresivo Encadenamiento hacia atrsLas inferencias se realizan partiendo desde los consecuentes hacia los antecedentes

    Reversibilidad Reversibilidad

  • Mtodo de Encadenamiento Progresivo- Problema Base de Conocimiento (BC):La base de conocimiento est conformado por un conjunto de reglas, donde algunos antecedentes pueden ser consecuentes de otras reglas. Adems, solo existen inters de identificar determinados consecuentes, los cuales son llamados de consecuentes terminales.Ejemplo : Base de Hechos(BH)R1: Si A,B C BH = (H,I,K,M)R2: Si D,E, F G Problema R3: Si H,I J Determine el consecuente R4: Si C,G K terminal asociado a BH R5: Si G,J LR6: Si K,L MLCT : M Lista de Consecuentes terminales

  • Representacin grfica de las relaciones del Problemas con sus 6 Reglas

  • Resumen Encadenamiento Progresivo Se produce cuando el objetivo propuesto al sistema hace que se ejecute una regla, y la conclusin obtenida permite que se ejecute otra, y as sucesivamente hasta llegar a una respuesta, positiva o negativa. El punto final se detecta cuando no se pueden producir ms encadenamientos, por ejemplo cuando se llega a un axioma hecho.

  • Ejemplo de Encadenamiento Progresivo(1). SI (x ES JEFE_DPTO) ENTONCES (x ES CATEDRTICO) (2). CATEDRTICO("Mario Prez") (3). CATEDRTICO("Manuel Fernandez") (4). CATEDRTICO("Maria Gonzalez") Al evaluar el objetivo: "Mario Prez es Jefe_Dpto"?, se dispara la R1, la cual a su vez se encadena con la R2 en este momento no se pueden producir ms encadenamientos pues la regla R2 es un axioma. Llegado a este punto el Motor de Inferencia retrocede y da una respuesta positiva a la pregunta.

  • Encadenamiento RegresivoConsiste en, dado un objetivo, buscar una regla que permita establecer dicha conclusin, el proceso se repite hasta encadenar con la regla cuya conclusin satisfaga el objetivo propuesto, o se detecte que dicho problema no se puede resolver positivamente.

    Por ejemplo para averiguar si "Mario Prez es doctor" se busca un regla que tenga esta afirmacin en sus consecuencias. Analizando las reglas anteriores vemos que la regla: R5. SI (x ES CATEDRTICO) ENTONCES (x ES DOCTOR) Satisface estas condiciones; siguiendo esta regla hacia atrs tenemos que buscar una nueva que permita validar si "Mario Prez" es catedrtico, lo cual se hace con el axioma R2.

  • ConceptoSe dice que una regla se dispara (equipara), si todos los antecedente de dicha regla se verifican.

    Problemas :1.- La equiparacin del antecedente de las reglas con el estado de la BH no siempre es obvia.2.- La necesidad de examinar todas las reglas en cada ciclo de inferencias. Proceso poco eficiente, si hay que recorres toda la BC y sta contiene numerosas reglas.

    6. Equiparacin

  • 6. Equiparacin Soluciones :

    1.-Tcnicas de indexacin .- Consisten en aadir a las reglas nuevas condiciones relacionadas con el punto de inferencia. Esto permite dividir el problema en varias etapas y agrupar las reglas en funcin de la etapa en la que se aplican. La indexacin suele ser un factor importante para la eficiencia de los SBR.

    2.-Tcnicas que aceleran el proceso de equiparacin, sin necesidad de examinar toda la BC. Mtodo ms conocido es el algoritmo RETE

  • Algoritmo RETEEl algoritmo Rete es un algoritmo de reconocimiento de patrones eficiente para implementar un sistema de produccin de Reglas. Fue creado por el Dr. Charles L.Forgy en la Carnegie Mellon University,1979.Rete es hoy en da la base de muchos SE muy famosos, incluyendo CLIPS, Jess, JBoss Rules y Soar.

  • Algoritmo RETE El algoritmo RETE lo que hace primero es compilar la memoria de reglas en la red. Los crculos representan las pruebas de predicado. Los rectngulos representan acciones: aadir E, aadir D, borrar A. Los cuadrados representan unificaciones restricciones: A=B significa que las soluciones de las pruebas de A y de B deben ser las mismas; A=D lo mismo, respectivamente para A y D . Memoria de Trabajo WM = {A(1), A(2), B(2), B(3), B(4), C(5)} A(x) B(y) D(x) => sumar E(x) A(x) B(x) C(y) => sumar D(x) A(x) B(x) E(z) => borrar A(x)PARAMETROS

  • Algoritmo RETE

  • Algoritmo RETE

    DesventajasConsume gran cantidad de memoria para incrementar velocidad de procesamiento.

    Ventajas Elimina la duplicacin en la reglas. Esta red se modifica luego de una incorporacin o una eliminacin.La fase de solucin de conflictos sirve para decidir cul de las sugerencias se va a aceptar, a esta fase se la puede considerar como la estrategia de control. Algunas de las estrategias son:No duplicacin. No aplica dos veces la misma regla a los mismos argumentos. Novedad. Prefiere aquellas reglas que se refieren a elementos de la memoria de trabajo de reciente creacin. Especificidad. Da preferencia a aquellas reglas que sean ms especficas. Prioridad de operacin. Prefiere aquellas reglas que tienen mayor prioridad, segn lo especificado por cierto sistema de calificacin

  • Mtodo de Encadenamiento ProgresivoAlgoritmo

    Read(BC); Read(BH);2.sw_sol False; sw_di True;3. While not(sw_sol) and (sw_di)3.1 Verificar c/regla de BC3.2 Resolver_conflicto(Rx, Cx, sw_di)3.3 If (sw_di)3.4 then BH BH + Cx3.5 If Cx LCT then sw_sol True;If (sw_sol)4.1 then Write(Solucin =, Cx),4.2 else Write(No hay Solucin); MOTOR DE INFERENCIA

  • Parmetros

    sw_sol: es una variable lgica que indica si se encontr (True) o no (False) una solucin. sw_di: es una variable lgica que indica si se dispara (True) o no (False) una regla.Resolver_conflicto (Rx, Cx, sw_di):Es una rutina que verifica que regla de la BC se dispara, selecciona una regla Rx de consecuente Cx en el caso se dispara al menos una regla (sw_di True) o proporciona False para la variable sw_di en el caso que ninguna regla se dispara.

    Mtodo de Encadenamiento Progresivo

  • Estrategias para resolver conflictos Resolver_conflicto (Rx, Cx, sw_di)

    Seleccionar la primera regla que se dispara (equipara)Seleccionar la regla que presenta mayor prioridadSeleccionar una regla que no se haya ejecutado antes (principio de refraccin) Seleccionar arbitrariamente una regla.Seleccionar la regla ms general, esto es que presente menos antecedentes.

    Para resolver el problema de conflictos de reglas, esto es, de seleccionar una regla a procesar entre las disparadas (equiparadas), se puede usar cualquiera de las estrategias, incluso en forma combinada. Mtodo de Encadenamiento Progresivo

  • Observaciones

    El algoritmo propuesto se aplica a problemas donde la respuesta del sistema es una sola. Esta situacin ocurre cuando los consecuentes que pertenecen al LCT son excluyente, por ejemplo, en los problemas de segmentacin de mercados, clasificacin por tipo de riesgo, etc.El algunos casos los consecuentes terminales no son excluyentes como en los problemas de diagnstico de enfermedades, en el cual un paciente puede tener ms de una enfermedad. En este caso se requiere generar todos los consecuente terminales que se verifican.En algunas situaciones las reglas deben ser procesadas segn una prioridad establecida. Para este caso bastar con ordenar la BC de acuerdo a la prioridad antes de usar el motor de inferencia, o se podr considerar la prioridad en la estrategia para resolver conflictoMtodo de Encadenamiento Progresivo

  • Mtodo de Encadenamiento ProgresivoAlgoritmo - Todos los consecuentes terminales

    Read(BC); Read(BH);2.LS { }; sw_di True;3. While (sw_di)3.1 Verificar c/regla de BC3.2 Resolver_conflicto(Rx, Cx, sw_di)3.3 If (sw_di)3.4 then BH BH + Cx3.5 If Cx LCT then LS LS + Cx;If (LS { })4.1 then Write(Soluciones =, LS),4.2 else Write(No hay Solucin); MOTOR DE INFERENCIA

  • Mtodo de Encadenamiento ProgresivoAlgoritmo - Todos los consecuentes terminales + prioridadesRead(BC); Read(BH); Read(prioridades);2.LS { }; sw_di True; Ordenar(BC, prioridades)3. While (sw_di)3.1 Verificar c/regla de BC3.2 Resolver_conflicto(Rx, Cx, sw_di)3.3 If (sw_di)3.4 then BH BH + Cx3.5 If Cx LCT then LS LS + Cx;If (LS { })4.1 then Write(Soluciones =, LS),4.2 else Write(No hay Solucin); MOTOR DE INFERENCIA

  • EjerciciosProblema : Acreditacin Financiera Para efecto de hacer ms eficiente el proceso de acreditacin financiera; las organizaciones financieras que usan lo ms avanzado en tecnologa de informacin realizan la acreditacin financiera automtica a travs del uso de sistemas expertos. Esta automatizacin es indispensable para el posicionamiento en el mercado financiero, por dos razones: reduce el tiempo del proceso de prstamo de semanas a segundos, y reduce la tasa de morosidad ocasionada por la intervencin humana. Considere la siguiente Base de Conocimiento de un pool de especialistas en acreditacin de una organizacin financiera: R1: S Y, C6 XR2: S C1, C4 YR3: S C7, X, Y PR4: S C1, X C7R5: S C2, C7, Z RR6: S Y, C5 ZR7: S C1 C3 C4R8: S C4, C2 C6R9: S C3, C4 C5

  • Ejercicios Los antecedentes de las reglas arriba, son dados por las caractersticas financieras asociado a los tipos de riesgos (Riesgo alto, riesgo normal, sin riesgo) y a la acreditacin financiera (otorgar crdito, rechazar crdito), como son: ingreso personal y familiar, deudas vencidas, protestos, tipos de riesgo financiero, etc. El sistema deber concluir con dar crdito (P) rechazar crdito R. El experto informa que por experiencia las reglas deben ser procesadas de acuerdo a una prioridad, e informa la siguiente prioridad (las reglas de mayor prioridad debern ser primero procesadas):

  • Ejercicios Reglas R1R2R3R4R5R6R7 R8 R9Prioridad 3 6725981 4Responda:Presente el algoritmo de encadenamiento progresivo sugerido para resolver el problema de segmentacin financiera automtica. Defina el LCT. Los resultados de un sistema de consolidacin financiera (sea de Certicom Inforcorp) para un cliente con DNI No. 0644497910 presenta los siguientes resultados: C1,C2,C4. Determine si se debe dar rechazar crdito. Muestre en una tabla, iteracin por iteraccin los resultados del algoritmo. 3 Si el resultado no P ni R. Qu usted podra sugerir al decisor?.

    *Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software*Mdulo 1 - Las Mejores Prcticas de Ingeniera de Software