Tema 4: Representaci´on del conocimiento mediante reglas
Transcript of Tema 4: Representaci´on del conocimiento mediante reglas
Introduccion a la Ingenierıa del Conocimiento Curso 2006–2007
Tema 4: Representacion delconocimiento mediante reglas
Miguel A. Gutierrez Naranjo
Dpto. de Ciencias de la Computacion e Inteligencia Artificial
Universidad de Sevilla
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.1
Reglas y conocimiento
B Reglas: formalismo mas comun de representarel conocimiento en un SBCu Reglas si ... entonces ...
u Sinonimo: reglas de produccion
B Interpretaciones:
u Si condicion P entonces conclusion C
u Si ocurre S entonces accion A
B Ventajas del formalismo de reglas:
u Modulares
u Conocimiento incremental
u Conocimiento modificable
u Separacion entre control y conocimiento
u Permiten explicaciones al usuario
u Preguntas ¿como? y ¿por que?
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.2
Ejemplos de reglas
B Regla en MYCINSi1. el reactivo toma el color azul2. la morfologıa del organismo es alargada3. el paciente es un posible receptor
Entoncesexiste una evidencia (0.7) de que la infeccionproviene de organismos pseudomonas.
B Regla en AL/XSila presion en V01 ha alcanzadola presion de
apertura de la valvula auxiliaryla valvula auxiliar de V01 se ha abierto
Entoncesla valvula auxiliar de V01 se ha abierto prematuramente[N=0.001, S=2000]
B Reglas extraidas de:
u Expertos humanos
u Literatura especializado
B Extraccion del conocimiento
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.3
Ejemplo: fuga de agua
B Situacion:
COCINA
BAÑO RECIBIDOR
VENTANA
B Descripcion:- Si la cocina esta seca y el recibidor mojado entonces
la fuga de agua esta en el ba~no.- Si el recibidor esta mojado y el ba~no esta seco
entonces el problema esta en la cocina.- Si la ventana esta cerrada o no llueve entonces
no entra agua del exterior.- Si el problema esta en la cocina y no entra agua del
exterior, la fuga de agua esta en la cocina.
B Evidencias:- El recibidor esta mojado.- El ba~no esta seco.- La ventana esta cerrada.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.4
Ejemplo: fuga de agua
B Representacion directa en Prolog:fuga_en_bagno :- recibidor_mojado, cocina_seca.problema_en_cocina :- recibidor_mojado, bagno_seco.no_agua_exterior :- ventana_cerrada; no_llueve.fuga_en_cocina :- problema_en_cocina, no_agua_exterior.
recibidor_mojado.bagno_seco.ventana_cerrada.
B Pregunta en Prolog:?- fuga_en_cocina.
Yes
B Desventajas:
u El usuario puede no estar familiarizado con la sin-
taxis de Prolog
u La base de conocimiento debe de distinguirse del
programa Prolog que implemente el SBC
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.5
Sintaxis de reglas y hechos
B Representacion en Prolog:
% La representacion interna de una regla debe ser:%% #% / \% / \% Id entonces% / \% / \% si Afirmacion% |% Cond
% Cond puede ser una combinacion, usando ’o’ o ’y’,% de afirmaciones (la disyuncion con prioridad mayor).
% Los hechos se deben representar internamente como:%% hecho% / \% / \% Id Afirmacion
:- op(875, xfx, hecho).:- op(875, xfx, #).:- op(825, fx, si).:- op(850, xfx, entonces).:- op(800, xfy, o). % Asociatividad a la derecha:- op(775, xfy, y). % Asociatividad a la derecha
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.6
Reglas y hechos en la fuga de agua
B Base de conocimiento:r1 # si recibidor_mojado y
cocina_secaentonces
problema_en_cocina.r2 # si recibidor_mojado y
bagno_secoentonces
problema_en_cocina.r3 # si ventana_cerrada o
no_llueveentonces
no_agua_exterior.r4 # si problema_en_cocina y
no_agua_exteriorentonces
fuga_en_cocina.
f1 hecho recibidor_mojado.f2 hecho bagno_seco.f3 hecho ventana_cerrada.
B Las reglas y hechos de la base de conocimientoson hechos Prolog.
B Operadores Prolog para acercar la expresion delas reglas al lenguaje natural.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.7
Ejemplo: animales.pl (I)
% =========== Bratko, cap. 15
% ----- Operadores adicionales::- op(750,xfx,[es,tiene,come,vuela,pone,da,nada]).:- op(500,fx,[un,una]).
% ----- Reglas:r1 # si Animal tiene pelo
oAnimal da leche
entoncesAnimal es mamifero.
r2 # si Animal tiene plumasoAnimal vuela bienyAnimal pone huevos
entoncesAnimal es un pajaro.
r3 # si Animal es mamiferoy(Animal come carneoAnimal tiene ’dientes afilados’yAnimal tiene garrasyAnimal tiene ’ojos oblicuos’)
entoncesAnimal es carnivoro.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.8
Ejemplo: animales.pl (II)
r4 # si Animal es carnivoroyAnimal tiene ’color pardo’yAnimal tiene ’manchas oscuras’
entoncesAnimal es un guepardo.
r5 # si Animal es carnivoroyAnimal tiene ’color pardo’yAnimal tiene ’rayas negras’
entoncesAnimal es un tigre.
r6 # si Animal es un pajaroyAnimal vuela malyAnimal nada bien
entoncesAnimal es un pinguino.
r7 # si Animal es un pajaroyAnimal vuela ’muy bien’
entoncesAnimal es una gaviota.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.9
Ejemplo: animales.pl (III)
%--------- Hechos:
f1 hecho oblongo tiene pelo.f2 hecho oblongo come carne.f2 hecho oblongo tiene ’color pardo’.f3 hecho oblongo tiene ’rayas negras’.f4 hecho rayo da leche.f5 hecho rayo tiene ’dientes afilados’.f6 hecho rayo tiene garras.f7 hecho rayo tiene ’ojos oblicuos’.f8 hecho rayo tiene ’color pardo’.f9 hecho rayo tiene ’manchas oscuras’.
B Observaciones:u Uso de operadores adicionales, propios del dominio
de conocimiento
u Uso de variables en las reglas
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.10
Ejemplo: coches.pl (I)
% ----- Operadores adicionales::- op(725,fx,[velocidad,seguridad,capacidad,gama,motor,
frenos,cilindrada]).:- op(725,xf,c_cubicos).:- op(750,xfx,[es,tiene,no_tiene]).
% ----- Reglas:r1 # si Coche tiene velocidad X y
(Coche tiene seguridad XoCoche tiene capacidad X)o
Coche tiene seguridad X yCoche tiene capacidad X
entoncesCoche es gama X.
r2 # si Coche tiene cilindrada Xentonces
Coche tiene velocidad X.
r3 # si Coche tiene motor inyeccion yCoche es mono-volumen
entoncesCoche tiene velocidad media.
r4 # si Coche tiene motor inyeccion yCoche es deportivo
entoncesCoche tiene velocidad alta.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.11
Ejemplo: coches.pl (II)
r5 # si Coche es mono_volumen yCoche tiene motor diesel
entoncesCoche tiene velocidad baja.
r6 # si Coche tiene 2000 c_cubicosentonces
Coche tiene cilindrada alta.
r7 # si Coche tiene 1600 c_cubicosentonces
Coche tiene cilindrada media.
r8 # si Coche tiene 1400 c_cubicosentonces
Coche tiene cilindrada baja.
r9 # si Coche tiene frenos abs yCoche tiene airbag
entoncesCoche tiene seguridad alta.
r10 # si Coche tiene frenos abs yCoche no_tiene airbagoCoche no_tiene frenos abs yCoche tiene airbag
entoncesCoche tiene seguridad media.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.12
Ejemplo: coches.pl (III)
r11 # si Coche no_tiene frenos abs yCoche no_tiene airbag
entoncesCoche tiene seguridad baja.
r12 # si Coche es deportivoentonces
Coche tiene capacidad baja.
r13 # si Coche es mono_volumenentonces
Coche tiene capacidad alta.
r14 # si Coche es turismoentonces
Coche tiene capacidad media.
%------ Hechos:
f1 hecho opel_astra tiene 1600 c_cubicos.f2 hecho opel_astra tiene airbag.f3 hecho opel_astra no_tiene frenos abs.f4 hecho fiat_punto tiene 1400 c_cubicos.f5 hecho fiat_punto no_tiene airbag.f6 hecho fiat_punto no_tiene frenos abs.f7 hecho renault_space es mono_volumen.f8 hecho renault_space tiene motor diesel.f9 hecho renault_space tiene frenos abs.f10 hecho renault_space tiene airbag.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.13
Razonamiento usando reglas
B Razonamiento = Motor de inferencia
B Dos maneras de razonar:u Hacia adelante (forward chaining)
u Hacia atras (backward chaining)
B Razonamiento hacia delante:u A partir de los hechos, buscar las conclusiones
u Desde los datos hacia los objetivos
B Razonamiento hacia atras:u Dadas las conclusiones que se buscan, buscar los
hechos que las derivan
u Desde los objetivos hacia los datos
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.14
Razonamiento hacia atras
B Meta-interpretes
B Programa Prolog:se_deduce(P) :-
_ hecho P.
se_deduce(P) :-_ # si C entonces P,se_deduce(C).
se_deduce(P1 y P2) :-se_deduce(P1),se_deduce(P2).
se_deduce(P1 o _) :-se_deduce(P1).
se_deduce(_ o P2) :-se_deduce(P2).
B Ejemplo:?- se_deduce(fuga_en_cocina).
Yes?- se_deduce(fuga_en_bagno).
No
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.15
Razonamiento hacia adelante
B Programa Prolog:
:- dynamic hecho_deducido/1.
adelante :-nuevo_hecho_deducido(P),!,write(’Deducido: ’), write(P), nl,assert(hecho_deducido(P)),adelante
;write(’No hay mas hechos’).
nuevo_hecho_deducido(P) :-_ # si Condicion entonces P,not(hecho_deducido(P)),hecho_compuesto(Condicion).
hecho_compuesto(C) :-hecho_deducido(C).
hecho_compuesto(C) :-_ hecho C.
hecho_compuesto(C1 y C2) :-hecho_compuesto(C1),hecho_compuesto(C2).
hecho_compuesto(C1 o C2) :-hecho_compuesto(C1)
;hecho_compuesto(C2).
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.16
Razonamiento hacia adelante
B Ejemplo:?- adelante.Deducido: problema_en_cocinaDeducido: no_agua_exteriorDeducido: fuga_en_cocinaNo hay mas hechos
Yes
?- listing(hecho_deducido).
hecho_deducido(problema_en_cocina).hecho_deducido(no_agua_exterior).hecho_deducido(fuga_en_cocina).
Yes
?- listing(hecho).
f1 hecho recibidor_mojado.f2 hecho bagno_seco.f3 hecho ventana_cerrada.
Yes
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.17
Hacia adelante vs hacia atras
B Deduccion = busqueda en espacios de estados:Datos --> .... --> ObjetivosEvidencias --> .... --> HipotesisObservaciones --> .... --> JustificacionesSıntomas --> ... --> Diagnostico
B La direccion de la busqueda determina el tipode razonamiento:u Hacia adelante: de los hechos hacia las conclusiones
u Hacia atras: de los objetivos hacia los hechos
B Problemas adecuados para razonar hacia ade-lante:u Monitorizacion y control
u Problemas dirigidos por los datos
u Sin necesidad de explicacion
B Problemas adecuados para razonar hacia atras:
u Diagnostico
u Problemas dirigidos por los objetivos
u Interaccion/Explicacion al usuario
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.18
Razonamiento con incertidumbre
B El conocimiento puede no ser categorico
u Reglas y hechos tienen un grado de certeza
u Ejemplos:
- Si el recibidor esta mojado y el ba~no esta seco,entonces existe probabilidad 0.9 de que elproblema este en la cocina.
- Creo que ha llovido, con probabilidad 0.8.
B Reglas y hechos afectados de un factor decerteza
B Modificacion de la sintaxis:
:- op(860, xfx, :). % factor de certeza.:- op(875, xfx, hecho).:- op(875, xfx, #).:- op(825, fx, si).:- op(850, xfx, entonces).:- op(800, xfy, o).:- op(775, xfy, y).
B Ejemplo:
r2 # si recibidor_mojado ybagno_seco
entoncesproblema_en_cocina : 0.9 .
f4 hecho no_llueve : 0.8.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.19
Fuga de agua con incertidumbre
B Base de conocimiento:
r1 # si recibidor_mojado ycocina_seca
entoncesfuga_en_bagno : 0.8.
r2 # si recibidor_mojado ybagno_seco
entoncesproblema_en_cocina : 0.9 .
r3 # si ventana_cerrada ono_llueve
entoncesno_agua_exterior : 1.
r4 # si problema_en_cocina yno_agua_exterior
entoncesfuga_en_cocina : 0.8 .
f1 hecho recibidor_mojado : 1.f2 hecho bagno_seco : 1.f3 hecho ventana_cerrada : 0.f4 hecho no_llueve : 0.8.f5 hecho cocina_seca : 0.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.20
Razonamiento con incertidumbre
B Manejo de probabilidadesCada combinacion logica de proposiciones P, tieneasignado un coeficiente de certeza, c(P):- Los hechos, valores asignados en la BC.- Si P2 se obtiene mediante la regla
_ si P1 entonces P2 : Centonces c(P2) = c(P1) * C
- c(P1 y P2) = min(c(P1),c(P2))- c(P1 o P2) = max(c(P1),c(P2))
B Razonamiento hacia atras con probabilidadcerteza(P,C) :-
_ hecho P : C.
certeza(P,C) :-_ # si Cond entonces P : C1,certeza(Cond,C2),
C is C1 * C2.
certeza(P1 y P2,C) :-certeza(P1,C1),certeza(P2,C2),
C is max(C1,C2).
B Ejemplo:?- certeza(fuga_en_cocina,C).C = 0.72
?- certeza(fuga_en_bagno,C).C = 0.8
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.21
Incertidumbre: observaciones.
B Simplificaciones:
u Distintas regla no deben servir para deducir lo mis-
mo
u Independencia de las observaciones
B La realidad es mas compleja
B Dos aproximaciones:
u Modelar el razonamiento usando teorıa de la pro-
babilidad* Ventajas: deducciones correctas.* Desventajas: demasiado complejo.
u Simplificar el tratamiento probabilıstico
* Ventajas: funciona en la practica.* Desventajas: posibles razonamientos incorrectos.
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.22
Bibliografıa
B Bratko, I. Prolog Programming for ArtificialIntelligence (2nd ed.) (Addison–Wesley, 1990)
u Cap. 14: “Expert system and Knowledge Repre-
sentation”
B Giarrantano,J. y Riley, G. Expert Systems:Principles and Programming (2nd ed.) (PWS,1994)
u Cap. 2: “Representation of knowledge ”
u Cap. 3: “Methods of inference”
B Rich, E. and Knight, K. Inteligencia Artificial(segunda edicion) (McGraw-Hill, 1994)
u Capıtulos 6 y 7
IIC 2006–07 CcIa Representacion del conocimiento mediante reglas 4.23