Desarrollo de sistemas expertos basados en reglas (5.5 H)

Download Report

Transcript Desarrollo de sistemas expertos basados en reglas (5.5 H)

Sistemas Expertos basados en
Reglas
Tópicos
1. Introducción
2. Base de Hechos
3. Base de Conocimiento
4. Motor de inferencia
5. Métodos de encadenamiento
6. Técnicas de equiparación
7. Algoritmo RETE
8. 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
Patrones Entonces
Antecedentes
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 …
Algoritmo RETE…
Desventajas
• Consume gran cantidad de
procesamiento.
memoria para incrementar velocidad de
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
1.
2.
3.
3.1
3.2
3.3
3.4
3.5
4.
4.1
4.2
Read(BC); Read(BH);
sw_sol  False;
sw_di  True;
While not(sw_sol) and (sw_di)
Verificar c/regla de BC
Resolver_conflicto(Rx, Cx, sw_di)
If (sw_di)
then
BH  BH + Cx
If Cx Є LCT then sw_sol  True;
If (sw_sol)
then Write(“Solución =”, Cx),
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)
1)
2)
3)
4)
5)
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
1)
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.
2)
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.
3)
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
1.
2.
3.
3.1
3.2
3.3
3.4
3.5
4.
4.1
4.2
Read(BC); Read(BH);
LS  { };
sw_di  True;
While (sw_di)
Verificar c/regla de BC
Resolver_conflicto(Rx, Cx, sw_di)
If (sw_di)
then
BH  BH + Cx
If Cx Є LCT then LS  LS + Cx;
If (LS <> { })
then Write(“Soluciones =”, LS),
else Write(“No hay Solución”);
MOTOR DE INFERENCIA
Método de Encadenamiento Progresivo
Algoritmo - Todos los consecuentes terminales
+ prioridades
1.
2.
3.
3.1
3.2
3.3
3.4
3.5
4.
4.1
4.2
Read(BC); Read(BH); Read(prioridades);
LS  { };
sw_di  True; Ordenar(BC, prioridades)
While (sw_di)
Verificar c/regla de BC
Resolver_conflicto(Rx, Cx, sw_di)
If (sw_di)
then
BH  BH + Cx
If Cx Є LCT then LS  LS + Cx;
If (LS <> { })
then Write(“Soluciones =”, LS),
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:
R2:
R3:
R4:
R5:
R6:
R7:
R8:
R9:
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Y, C6
C1, C4
C7, X, Y
C1, X
C2, C7, Z
Y, C5
C1 C3
C4, C2
C3, C4
 X
 Y
 P
 C7
 R
 Z
 C4
 C6
 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
Prioridad
R1
3
R2
6
R3
7
R4
2
R5
5
R6
9
R7
8
R8
1
Responda:
1. Presente el algoritmo de encadenamiento progresivo sugerido para
resolver el problema de segmentación financiera automática.
Defina el LCT.
2. 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.
R9
4