representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · las reglas y hechos...

51
Representación del conocimiento mediante reglas (2011/2012) Luis Valencia Cabrera (coordinador) [email protected] ( http://www.cs.us.es/~lvalencia) Manuel García-Quismondo [email protected] ( http://www.cs.us.es/~mgarcia) Ciencias de la Computacion e IA ( http://www.cs.us.es/) Universidad de Sevilla

Upload: others

Post on 02-Feb-2020

36 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Representación

del

conocimiento

mediante reglas

(2011/2012)

Luis Valencia Cabrera (coordinador)

[email protected]

(http://www.cs.us.es/~lvalencia)

Manuel García-Quismondo

[email protected]

(http://www.cs.us.es/~mgarcia)

Ciencias de la Computacion e IA

(http://www.cs.us.es/)

Universidad de Sevilla

Page 2: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Reglas de producción

Formalismo mas común de representar el

conocimiento en un SBC

Page 3: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Tipos de conocimiento

Hechos (afirmaciones)

Reglas:

SI <ANTECEDENTE>*

ENTONCES <CONSECUENTE>*

Interpretaciones posibles:

Si condición P entonces conclusión C

Si ocurre S entonces acción A

Page 4: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ventajas de las reglas de

producción

Modularidad

Conocimiento incremental

Conocimiento modificable

Permiten explicaciones al usuario

Preguntas:

¿Cómo? (¿cómo se llega a la conclusión?)

¿Por qué? (¿por qué se le pregunta al usuario?)

Page 5: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplos de reglas Regla en el SE MYCIN:

si 1. el reactivo toma el color azul 2. la morfología del organismo es alargada 3. el paciente es un posible receptor

entonces existe una probabilidad 0.7 de que la infección provenga de

organismos pseudomonas.

Regla en el SE AL/X si

la presión en V01 ha alcanzado la presión de apertura de la válvula auxiliar

y la válvula auxiliar de V01 se ha abierto

entonces la válvula auxiliar de V01 se ha abierto prematuramente

Page 6: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Obtención de reglas

Tales reglas se extraen de:

Expertos humanos

Literatura especializada

Bases de datos

Page 7: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo. Fuga de agua.

Descripción. Reglas:

Si la cocina está seca y el recibidor mojado entonces la fuga de agua está en el baño.

Si el recibidor está mojado y el baño está seco entonces el problema está en la cocina.

Si la ventana está cerrada o no llueve entonces no entra agua del exterior.

Si el problema está en la cocina y no entra agua del exterior, la fuga de agua está en la cocina.

Hechos: El recibidor está mojado.

El baño está seco.

La ventana está cerrada.

Page 8: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo. Fuga de agua.

Formalización. Reglas:

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.

Hechos:

recibidor_mojado.

bagno_seco.

ventana_cerrada.

Pregunta en Prolog:

?- fuga_en_cocina. true

Page 9: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Formalización en Prolog.

Debilidades.

El usuario puede no estar familiarizado con

la sintaxis de Prolog.

La representación del conocimiento puede

no ser natural.

Page 10: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Formalización en Prolog.

Operadores.

Vamos a dar una alternativa para

separar la sintaxis de Prolog pura de la

base de conocimiento.

Lo haremos a través de operadores.

Page 11: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Representación de

Reglas y hechos La representación interna de una

regla debe ser la que aparece a la derecha.

Cond puede ser una combinación mediante ’o’/’y’, de afirmaciones (la disyunción ‘o’ con precedencia mayor).

Los hechos se deben representar internamente como:

f

Page 12: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Representación. Operadores.

Sintaxis.

Para poder escribir los hechos y reglas

con esta sintaxis definimos una serie de

operadores:

:- op(<prioridad>, <aridad y asociatividad>,

<identificador o lista de identificadores>).

Page 13: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Representación. Operadores.

Ejemplos.

:- op(875, xfx, hecho).

% El operador hecho tiene aridad 2 y es simétrico. Estará arriba en el árbol, y se evaluará después que cualquier operador con precedencia menor que 875.

:- op(800, xfy, o).

% El operador o tiene aridad 2 y es asociativo a la derecha:

Ej: (operando1 f (operando2 f operando3)).

Se evaluará antes que cualquier operador con prioridad menor que 800.

Page 14: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Fuga de agua. Operadores.

:- op(875, xfx, hecho).

:- op(875, xfx, #).

:- op(825, fx, si).

:- op(850, xfx, entonces).

:- op(800, xfy, o).

:- op(775, xfy, y).

Page 15: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Fuga de agua. Reglas.

r1 # si cocina_seca y

recibidor_mojado

entonces

fuga_en_bagno.

r2 # si recibidor_mojado y

bagno_seco

entonces

problema_en_cocina.

r3 # si ventana_cerrada o

no_llueve

entonces

no_agua_exterior.

r4 # si problema_en_cocina y

no_agua_exterior

entonces

fuga_en_cocina.

Page 16: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Fuga de agua. Hechos.

f1 hecho recibidor_mojado.

f2 hecho bagno_seco.

f3 hecho ventana_cerrada.

Page 17: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Conclusión sobre esta

representación

Las reglas y hechos de la base de

conocimiento continúan siendo hechos

Prolog.

Los operadores Prolog consiguen acercar

la expresión de las reglas al lenguaje

natural.

Esto facilita la legibilidad para el usuario

no familiarizado con Prolog.

Page 18: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: animales. Operadores.

% ----- Operadores adicionales:

:- op(750,xfx,[es,tiene,come,vuela,pone,da,nada]).

% Representacion de varios operadores con la

misma precedencia y asociatividad.

:- op(500,fx,[un,una]).

Page 19: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: animales. Reglas (I) % ----- Reglas:

r1 # si Animal tiene pelo o Animal da leche

entonces Animal es mamifero.

r2 # si Animal tiene plumas o Animal vuela bien y Animal pone huevos

entonces Animal es un pajaro.

r3 # si Animal es mamifero y

(Animal come carne o Animal tiene ’dientes afilados’) y

(Animal tiene garras y Animal tiene ’ojos oblicuos’)

entonces

Animal es carnivoro.

Page 20: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

r4 # si Animal es carnivoro y Animal tiene ’color pardo’

y Animal tiene ’manchas oscuras’

entonces Animal es un guepardo.

r5 # si Animal es carnivoro y Animal tiene ’color pardo’

y Animal tiene ’rayas negras’

Entonces Animal es un tigre.

r6 # si Animal es un pajaro y Animal vuela mal

y Animal nada bien

entonces Animal es un pinguino.

r7 # si Animal es un pajaro y Animal vuela ’muy bien’

entonces Animal es una gaviota.

Ejemplo: animales. Reglas (III)

Page 21: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: animales. Hechos. %------ 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’.

Page 22: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: animales.

Observaciones.

Uso de operadores adicionales, propios del

dominio de conocimiento

Uso de variables en las reglas

Page 23: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: coches. Operadores

% ----- Operadores adicionales:

:-

op(725,fx,[velocidad,seguridad,capacidad,gama,

motor,

frenos,cilindrada]).

:- op(725,xf,c_cubicos).

:- op(750,xfx,[es,tiene,no_tiene]).

Page 24: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: coches. Reglas (I).

% ----- Reglas:

r1 # si Coche tiene velocidad X

y (Coche tiene seguridad X o Coche tiene capacidad X)

o Coche tiene seguridad X y Coche tiene capacidad X

entonces Coche es gama X.

r2 # si Coche tiene cilindrada X entonces Coche tiene velocidad X.

r3 # si Coche tiene motor inyeccion y Coche es mono-volumen

entonces Coche tiene velocidad media.

r4 # si Coche tiene motor inyeccion y Coche es deportivo

entonces Coche tiene velocidad alta.

Page 25: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

r5 # si Coche es mono_volumen y Coche tiene motor diesel

entonces Coche tiene velocidad baja.

r6 # si Coche tiene 2000 c_cubicos

entonces Coche tiene cilindrada alta.

r7 # si Coche tiene 1600 c_cubicos

entonces Coche tiene cilindrada media.

r8 # si Coche tiene 1400 c_cubicos

entonces Coche tiene cilindrada baja.

r9 # si Coche tiene frenos abs y Coche tiene airbag

entonces Coche tiene seguridad alta.

r10 # si Coche tiene frenos abs y Coche no_tiene airbag o

Coche no_tiene frenos abs y Coche tiene airbag

entonces Coche tiene seguridad media.

Ejemplo: coches. Reglas (II).

Page 26: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

r11 # si Coche no_tiene frenos abs y Coche no_tiene airbag

entonces Coche tiene seguridad baja.

r12 # si Coche es deportivo entonces Coche tiene capacidad baja.

r13 # si Coche es mono_volumen entonces Coche tiene capacidad alta.

r14 # si Coche es turismo entonces Coche tiene capacidad media.

Ejemplo: coches. Reglas (III).

Page 27: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Ejemplo: coches. Hechos. %------ 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.

Page 28: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento usando reglas Razonamiento = Motor de inferencia

Dos maneras de razonar: Hacia adelante (forward chaining o modus ponens) Hacia atrás (backward chaining o modus tollens)

Razonamiento hacia delante: A partir de los hechos, buscar las conclusiones

Desde los datos hacia los objetivos. 𝑎,𝑎→𝑏

𝑏

Razonamiento hacia atrás: Dadas las conclusiones que se buscan, buscar los

hechos que las derivan

Desde los objetivos hacia los datos. 𝑎→𝑏,¬𝑏

¬𝑎

Page 29: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia atrás

Dadas las conclusiones que se buscan,

buscar los hechos que las derivan

Desde los objetivos hacia los datos. 𝑎→𝑏,¬𝑏

¬𝑎

Page 30: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante

Dados los hechos evidenciados, buscar las

consecuencias de los mismos en forma de

conclusiones.

Desde los hechos hacia sus consecuencias. 𝑎→𝑏, 𝑎

𝑏

Page 31: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia atrás.

Meta-intérpretes.

Formalización

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).

Page 32: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia atrás.

Meta-intérpretes.

Comportamiento.

Ejemplo:

?- se_deduce(fuga_en_cocina).

Yes

?- se_deduce(fuga_en_bagno).

No

Page 33: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia atrás.

Meta-intérpretes. Nuevas

sentencias.

write(<texto>)

% Escribe por pantalla un texto

dynamic < identificador >/1.

% Indica que pueden añadirse hechos y reglas relacionados con <identificador> en tiempo de ejecución

nl

% Escribe un salto de linea

assert(<hecho>)

% Incluye un nuevo hecho. Este hecho debe tener como identificador un identificador definido con dynamic

listing(<identificador>)

% Indica todos los hechos y reglas que tengan como identificador <identificador>.

Page 34: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante.

Reglas (I). dynamic < identificador >/1.

adelante :- nuevo_hecho_deducido(P),

!, write(’Deducido: ’), write(P), nl, assert(hecho_deducido(P)), adelante, write(’No hay más hechos’).

nuevo_hecho_deducido(P) :- _ # si Condicion entonces P, not(hecho_deducido(P)), hecho_compuesto(Condicion).

Page 35: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante.

Reglas (II)

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).

Page 36: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante.

Comportamiento.

Ejemplo:

?- adelante.

Deducido: problema_en_cocina

Deducido: no_agua_exterior

Deducido: fuga_en_cocina

No hay más hechos

Yes

Page 37: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante.

Listing.

?- 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

Page 38: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento hacia delante

vs razonamiento hacia atrás

Deducción = búsqueda en espacios de estados: Datos --> .... --> Objetivos

Evidencias --> .... --> Hipótesis

Observaciones --> .... --> Justificaciones

Síntomas --> ... --> Diagnóstico

La dirección de la búsqueda determina el tipo de razonamiento: Hacia adelante: de los hechos hacia las

conclusiones Hacia atrás: de los objetivos hacia los hechos

Page 39: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Problemas adecuados para

razonar hacia atrás

Diagnóstico

Problemas dirigidos por los objetivos

Interacción/Explicación al usuario

Page 40: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Problemas adecuados para

razonar hacia adelante

Monitorización y control

Problemas dirigidos por los datos

Sin necesidad de explicación

Page 41: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con

incertidumbre.

El conocimiento puede no ser categórico

Reglas y hechos tienen un grado de certeza

Page 42: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con

incertidumbre. Ejemplos.

Ejemplos:

- Si el recibidor está mojado y el baño está seco,

entonces existe probabilidad 0.9 de que el

problema esté en la cocina.

- Creo que ha llovido, con probabilidad 0.8.

Reglas y hechos afectados de un factor de

certeza

Page 43: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con

incertidumbre. 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).

Page 44: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con

incertidumbre. Ejemplo.

r2 # si recibidor_mojado y bagno_seco

entonces problema_en_cocina : 0.9 .

f4 hecho no_llueve : 0.8.

Page 45: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Fuga de agua con incertidumbre.

Base de conocimiento. Reglas.

r1 # si recibidor_mojado y cocina_seca

entonces fuga_en_bagno : 0.8.

r2 # si recibidor_mojado y bagno_seco

entonces problema_en_cocina : 0.9 .

r3 # si ventana_cerrada o no_llueve

entonces no_agua_exterior : 1.

r4 # si problema_en_cocina y no_agua_exterior

entonces fuga_en_cocina : 0.8 .

Page 46: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Fuga de agua con incertidumbre.

Base de conocimiento. Hechos.

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.

Page 47: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con incertidumbre.

Manejo de probabilidades.

Cada combinación lógica de

proposiciones P, tiene asignado un coeficiente de certeza, c(P):

- Los hechos, valores asignados en la BC.

- Si P2 se obtiene mediante la regla

_ si P1 entonces P2 : C

entonces c(P2) = c(P1) * C

- c(P1 y P2) = min(c(P1),c(P2))

- c(P1 o P2) = max(c(P1),c(P2))

Page 48: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Razonamiento con incertidumbre. Manejo de probabilidades. Razonamiento hacia atrás.

certeza(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 min(C1,C2).

certeza(P1 o P2,C) :- certeza(P1,C1), certeza(P2,C2),

C is max(C1,C2).

Page 49: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Incertidumbre. Observaciones.

Problemas.

Simplificaciones:

Distintas reglas no deben servir para deducir

lo mismo

Independencia de las observaciones

La realidad es más compleja

Page 50: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Incertidumbre. Observaciones.

Soluciones

Modelar el razonamiento usando teoría de la probabilidad

* Ventajas: deducciones correctas.

* Desventajas: demasiado complejo.

Simplificar el tratamiento probabilístico

* Ventajas: funciona en la práctica.

* Desventajas: posibles razonamientos incorrectos.

Page 51: Representación del conocimiento mediante reglas (2011/2012) · 2012-03-13 · Las reglas y hechos de la base de conocimiento continúan siendo hechos Prolog. Los operadores Prolog

Bibliografía Bratko, I. Prolog programming for Artificial Intelligence. (3rd

ed.)(Addison Wesley, 2001)

Cap. 14: “Expert system and Knowledge Representation”

Giarratano,J. y Riley, G. Expert Systems: Principles and Programming (2nd ed.)(PWS, 1994)

Cap. 2: “Representation of knowledge ”

Cap. 3: “Methods of inference”

Rich, E. y Knight, K. Inteligencia artificial (2nd Ed) (McGraw-Hill Interamericana, 1994).

Capítulos 6 y 7