360 likes | 724 Views
Sistemas Expertos basados en Reglas. Tópicos. Introducción Base de Hechos Base de Conocimiento Motor de inferencia Métodos de encadenamiento Técnicas de equiparación Algoritmo RETE Técnicas de resolución de Conflictos. 1.-Introducción.
E N D
Tópicos • Introducción • Base de Hechos • Base de Conocimiento • Motor de inferencia • Métodos de encadenamiento • Técnicas de equiparación • Algoritmo RETE • Técnicas de resolución de Conflictos
1.-Introducción En nuestra vida diaria encontramos muchas situaciones complejas gobernadas por reglas deterministas: sistemas de control de tráfico, sistemas de seguridad, transacciones bancarias, etc. Los sistemas basados en reglas son una herramienta eficiente para tratar estos problemas. Las reglas deterministas constituyen la más sencilla de las metodologías 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 lógica clásica a estas reglas. Por regla se entiende una proposición lógica que relaciona dos o más objetos e incluye dos partes, la premisa y la conclusión. Cada una de estas partes consiste en una expresión lógica con una o más afirmaciones objeto-valor conectadas mediante los operadores lógicos y, o, o no. Una regla se escribe normalmente como “Si premisa, entonces conclusión".
2.- Base de Hechos Definición Es una memoria auxiliar que contiene los datos del usuario (hechos iníciales que describen el problema a resolver) y los resultados intermedios obtenido a lo largo del procedimiento de deducción. Ejemplo: Diagnóstico de enfermedades Datos personales del paciente: (nombre, dirección, N° de seguro) Síntomas del paciente: (s1 s2 s3 s4 ....sk)
3.- Base del Conocimiento Definición 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 … Definición Reglas de inferencias Es una estructura de representación del conocimiento que tiene la siguiente forma: Si A1, A2,... Aa Entonces C1, C2,... Cc Patrones Si Antecedentes Patrones Entonces Consecuente
3. Base de Conocimiento … Ejemplo: Diagnóstico de Enfermedades • Si Síntoma11, Síntoma12, Síntoma13, ... Síntoma1k Entonces Enfermedad 1 • Si Síntoma21, Síntoma22, Síntoma23, ... Síntoma2k Entonces Enfermedad 2 • ... • Si Síntoma n1, Síntoma n2, Síntoma n3, ... Síntoma nk Entonces Enfermedad n
4.- Motor de Inferencia • Definición • Es la unidad lógica con la que se extraen conclusiones de la base de conocimientos, una conclusión se produce mediante aplicación 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 Métodos de Encadenamiento Progresivo ó Encadenamiento hacia delante Las inferencias se realizan desde los antecedentes hacia los consecuentes. Regresivo ó Encadenamiento hacia atrás Las inferencias se realizan partiendo desde los consecuentes hacia los antecedentes Reversibilidad Reversibilidad
Método 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. Además, solo existen interés 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 L R6: Si K,L M LCT : M Lista de Consecuentes terminales
Representación gráfica 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 conclusión 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 más encadenamientos, por ejemplo cuando se llega a un axioma ó hecho.
Ejemplo de Encadenamiento Progresivo (1). SI (x ES JEFE_DPTO) ENTONCES (x ES CATEDRÁTICO)(2). CATEDRÁTICO("Mario Pérez")(3). CATEDRÁTICO("Manuel Fernandez")(4). CATEDRÁTICO("Maria Gonzalez")Al evaluar el objetivo: "Mario Pérez es Jefe_Dpto"?, se dispara la R1, la cual a su vez se encadena con la R2 en este momento no se pueden producir más 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 Regresivo Consiste en, dado un objetivo, buscar una regla que permita establecer dicha conclusión, el proceso se repite hasta encadenar con la regla cuya conclusión satisfaga el objetivo propuesto, o se detecte que dicho problema no se puede resolver positivamente. Por ejemplo para averiguar si "Mario Pérez es doctor" se busca un regla que tenga esta afirmación en sus consecuencias. Analizando las reglas anteriores vemos que la regla: R5. SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)Satisface estas condiciones; siguiendo esta regla hacia atrás tenemos que buscar una nueva que permita validar si "Mario Pérez" es catedrático, lo cual se hace con el axioma R2.
6. Equiparación Concepto Se dice que una regla se dispara (equipara), si todos los antecedente de dicha regla se verifican. Problemas : 1.- La equiparación 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. Equiparación … Soluciones : 1.-Técnicas de indexación .- Consisten en añadir a las reglas nuevas condiciones relacionadas con el punto de inferencia. Esto permite dividir el problema en varias etapas y agrupar las reglas en función de la etapa en la que se aplican. La indexación suele ser un factor importante para la eficiencia de los SBR. 2.-Técnicas que aceleran el proceso de equiparación, sin necesidad de examinar toda la BC. Método más conocido es el algoritmo RETE
Algoritmo RETE • El algoritmo Rete es un algoritmo de reconocimiento de patrones eficiente para implementar un sistema de producción de Reglas. Fue creado por el Dr. Charles L.Forgy en la Carnegie Mellon University,1979. • Rete es hoy en día la base de muchos SE muy famosos, incluyendo CLIPS, Jess, JBoss Rules y Soar.
Algoritmo RETE … PARAMETROS El algoritmo RETE lo que hace primero es compilar la memoria de reglas en la red. • Los círculos representan las pruebas de predicado. • Los rectángulos representan acciones: añadir E, añadir 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)
Algoritmo RETE… Desventajas • Consume gran cantidad de memoria para incrementar velocidad de procesamiento. Ventajas • Elimina la duplicación en la reglas. Esta red se modifica luego de una incorporación o una eliminación. • La fase de solución de conflictos sirve para decidir cuál 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 duplicación. 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 creación. • Especificidad. Da preferencia a aquellas reglas que sean más específicas. • Prioridad de operación. Prefiere aquellas reglas que tienen mayor prioridad, según lo especificado por cierto sistema de calificación
Método de Encadenamiento Progresivo Algoritmo 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 BC 3.2 Resolver_conflicto(Rx, Cx, sw_di) 3.3 If (sw_di) 3.4 thenBH BH + Cx 3.5 If Cx Є LCT then sw_sol True; If (sw_sol) 4.1 thenWrite(“Solución =”, Cx), 4.2 else Write(“No hay Solución”); MOTOR DE INFERENCIA
Método de Encadenamiento Progresivo Parámetros sw_sol: es una variable lógica que indica si se encontró (True) o no (False) una solución. sw_di: es una variable lógica 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.
Método 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 prioridad Seleccionar una regla que no se haya ejecutado antes (principio de refracción) Seleccionar arbitrariamente una regla. Seleccionar la regla más 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.
Método de Encadenamiento Progresivo Observaciones El algoritmo propuesto se aplica a problemas donde la respuesta del sistema es una sola. Esta situación ocurre cuando los consecuentes que pertenecen al LCT son excluyente, por ejemplo, en los problemas de segmentación de mercados, clasificación por tipo de riesgo, etc. El algunos casos los consecuentes terminales no son excluyentes como en los problemas de diagnóstico de enfermedades, en el cual un paciente puede tener más de una enfermedad. En este caso se requiere generar todos los consecuente terminales que se verifican. En algunas situaciones las reglas deben ser procesadas según 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 conflicto
Método de Encadenamiento Progresivo Algoritmo - Todos los consecuentes terminales Read(BC); Read(BH); 2. LS { }; sw_di True; 3. While(sw_di) 3.1 Verificar c/regla de BC 3.2 Resolver_conflicto(Rx, Cx, sw_di) 3.3 If (sw_di) 3.4 thenBH BH + Cx 3.5 If Cx Є LCT then LS LS + Cx; If (LS <> { }) 4.1 thenWrite(“Soluciones =”, LS), 4.2 else Write(“No hay Solución”); MOTOR DE INFERENCIA
Método de Encadenamiento Progresivo Algoritmo - Todos los consecuentes terminales + prioridades Read(BC); Read(BH); Read(prioridades); 2. LS { }; sw_di True; Ordenar(BC, prioridades) 3. While(sw_di) 3.1 Verificar c/regla de BC 3.2 Resolver_conflicto(Rx, Cx, sw_di) 3.3 If (sw_di) 3.4 thenBH BH + Cx 3.5 If Cx Є LCT then LS LS + Cx; If (LS <> { }) 4.1 thenWrite(“Soluciones =”, LS), 4.2 else Write(“No hay Solución”); MOTOR DE INFERENCIA
Ejercicios Problema : Acreditación Financiera Para efecto de hacer más eficiente el proceso de acreditación financiera; las organizaciones financieras que usan lo más avanzado en tecnología de información realizan la acreditación financiera automática a través del uso de sistemas expertos. Esta automatización es indispensable para el posicionamiento en el mercado financiero, por dos razones: reduce el tiempo del proceso de préstamo de semanas a segundos, y reduce la tasa de morosidad ocasionada por la intervención humana. Considere la siguiente Base de Conocimiento de un pool de especialistas en acreditación de una organización financiera: R1: Sí Y, C6 X R2: Sí C1, C4 Y R3: Sí C7, X, Y P R4: Sí C1, X C7 R5: Sí C2, C7, Z R R6: Sí Y, C5 Z R7: Sí C1 C3 C4 R8: Sí C4, C2 C6 R9: Sí C3, C4 C5
Ejercicios Los antecedentes de las reglas arriba, son dados por las características financieras asociado a los tipos de riesgos (Riesgo alto, riesgo normal, sin riesgo) y a la acreditación financiera (otorgar crédito, rechazar crédito), como son: ingreso personal y familiar, deudas vencidas, protestos, tipos de riesgo financiero, etc. El sistema deberá concluir con dar crédito (P) ó rechazar crédito 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 deberán ser primero procesadas):
Ejercicios Reglas R1 R2 R3 R4 R5 R6 R7 R8 R9 Prioridad 3 6 7 2 5 9 8 1 4 • Responda: • Presente el algoritmo de encadenamiento progresivo sugerido para resolver el problema de segmentación financiera automática. Defina el LCT. • Los resultados de un sistema de consolidación 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 crédito. Muestre en una tabla, iteración por iteracción los resultados del algoritmo. • 3 Si el resultado no P ni R. ¿Qué usted podría sugerir al decisor?.