Sistemas Basados en Reglas

Anuncio
Tema 2 (II):
Representación del Conocimiento en IA:
Sistemas Basados en Reglas
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
Tema 2 (II):
Representación del Conocimiento en IA:
Sistemas Basados en Reglas
2. 1. Introducción.
2. 2. Representación Basada en la Lógica.
2. 3. Representación Basada en Reglas.
2. 3. 1. Introducción.
2. 3. 2. Repres. del Conocim. en SBR.
2. 3. 2. 1. Hechos: Variables-Valor.
2. 3. 2. 2. Reglas de Producción.
2. 3. 2. 3. Hechos: Tuplas Objeto-Atributo-Valor.
2. 3. 3. Relación entre Reglas de Producción y
la Lógica de Predicados de Primer Orden.
2. 3. 4. Inferencia en Sistemas Basados en Reglas.
2. 3. 4. 1. Encadenamiento Inferencial.
2. 3. 4. 2. Control Inferencial.
2. 3. 5. Patrones en Sistemas Basados en Reglas.
2. 4. Sistemas de Representación Estructurados.
1
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
™
Bibliografía Básica:
Básica:
– [Lucas 1991] Peter Lucas and Linda Van Der Gaag,
Gaag, "Principles
"Principles of
Expert Systems".
Systems". AddisonAddison-Wesley.
Wesley. (1991). Capítulo 3.
™
Bibliografía Complementaria:
Complementaria:
– [Rich 1994] E. Rich,
Rich, K. Knight,
Knight, “Inteligencia Artificial”, McGraw
Hill (1994). Capítulo 6.
– [Charniak 1985] E. Charniak,
Charniak, D. McDermott,
McDermott, "Introduction
"Introduction to
Artificial Intelligence",
Intelligence", AddisonAddison-Wesley (1985). Capítulo 7.
– [Russel 1996] S. Russel,
Russel, “Inteligencia Artificial: Un enfoque
moderno”, Prentice Hall (1996). Capítulo 10.
– [Negnevitsky 2002] M. Negnevitsky,
Negnevitsky, “Artificial Intelligence: A
Guide to Intelligent Systems”, AddisonAddison-Wesley (2002). Capítulo 2.
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.1. Introducción (I)
™
Contenido lógico de una fbf:
fbf:
– Independiente de la expresión en el calculo de predicados.
™
Conocimiento experto:
– Información extraextra-lógica o heurística implícita sobre cómo usar
dicho conocimiento de forma optima.
™
Razonamiento humano:
™
Ejemplo:
– No es en base a 'cláusulas', sino en base a 'reglas’.
SI x,y >0 ENTONCES x*y>0
∀x ∀y [>(x,0) ^ >(y,0)] → >(POR(x,y),0)
≡
∀x ∀y [>(x,0) ^ ¬ >(POR(x,y),0)] → ¬ >(y,0)
2
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.1. Introducción (II)
™
™
La implicación expresa cómo obtener una información:
∀x vertebrado(x) → animal(x)
∀x ∀y [trabaja[trabaja-en(depen(dep-ventas,x) ^ Edad(x,y) ^ >(y,30)]
→ casado(x)
∀x [cilindro(x) ^ rojo(x)] → ∃y
∃y cubo(y)^sobre(y,x)
Forma clausal :
9 Forma más uniforme (proceso de
demostración más eficiente)
Pérdida de información de control
Cada implicación lleva su propia
información heurística de control
A
A vv B
B vv C
C ≡≡
¬¬ A
^
¬
B
A ^ ¬ B→
→C
C
¬¬ A
A ^^ ¬¬ C
C→
→B
B
¬¬ B
^
¬
C
→
A
B^¬C→A
¬¬ A
A→
→ (B
(B vv C)
C)
¬¬ B
→
(A
v
C)
B → (A v C)
¬¬ C
C→
→ (A
(A vv B)
B)
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Sistemas Basados en Reglas
™
Base de Hechos (BH) – Información Factual
Representación
Representación de
de Hechos
Hechos del
del Dominio/Problema
Dominio/Problema
™
™ Hechos
Hechos no
no estructurados:
estructurados:
¾
¾
Listas,
Strings
Listas, Strings,
Strings,, etc.
etc.
-Valor
™
Variable
™ Conjunto
Conjunto de
de pares:
pares: VariableVariable-Valor
™
™
™ Conjunto
Conjunto de
de tuplas
tuplas Objeto
Objeto –– Atributo
Atributo –– Valor
Valor
Base de Reglas (BR) – Conocimiento Normativo
™
™ Patrones
Patrones
™
™ Otras
Otras representaciones:
representaciones:
¾
¾
™
Declarativas
), .. .. ..
frames
Declarativas (lógica),
(lógica), Estructurales
Estructurales (redes,
(redes, frames),
frames),
Control – Motor de Inferencia
3
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Sistemas Basados en Reglas
™
Base de Hechos (BH) – Información Factual
Representación
Representación de
de Hechos
Hechos del
del Dominio/Problema
Dominio/Problema
Declaración
Declaración del
del Dominio
Dominio de
de la
la BH:
BH: ONTOLOGÍA
ONTOLOGÍA
™
Base de Reglas (BR) – Conocimiento Normativo
Específico
Específico aa un
un dominio
dominio de
de problemas
problemas
Reglas
Reglas de
de Producción
Producción
™
Control – Motor de Inferencia
Representación
Representación conocimiento
conocimiento general
general de
de resolución
resolución de
de problemas
problemas
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Variable
Sistemas–Basados
2.3.2.1. Hechos:
Valor en Reglas
™
Hecho: Var. cuyo valor es una cte.
cte. o cjto.
cjto. de ctes.
ctes.
Declaración
Declaración del
del Dominio
Dominio de
de la
la BH:
BH: ONTOLOGÍA
ONTOLOGÍA
™
valores
™ Conjunto
Conjunto de
de todas
todas las
las variables,
variables, junto
junto con
con sus
sus posibles
posibles valores.
valores..
™
™ Descripción
Descripción de
de la
la información
información que
que es
es relevante
relevante en
en el
el dominio
dominio
modelado
modelado por
por el
el sistema.
sistema.
Información
Información del
del problema
problema
™
™ Conjunto
Conjunto de
de pares
pares varoable
varoable –– valor.
valor.
™
Tipos de Variables
Variables
Variables uni
uni –– valor
valor
Variables
Variables multi
multi –– valor
valor
™
™ Información
Información que
que es
es única.
única.
Sexo,
Sexo, Edad,
Edad, Temperatura,
Temperatura, ...
...
™
cjto
ctes
™ Valor
Valor puede
puede ser
ser un
un cjto.
cjto.. de
de ctes.
ctes..
Enfermedad,
Enfermedad, Síntomas,
Síntomas, ...
...
4
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Variable
Sistemas–Basados
2.3.2.1. Hechos:
Valor en Reglas
™
Declaración del Dominio de una BH: ONTOLOGÍA (I)
– Declaración de Variables: Puede ser:
• No – Tipificada: Sólo se define el nombre
• Tipificada:
– Variable mono-valor (xs) = xs : τ
– Variable multi-valor (xm) = xm : 2τ
•
τ: Tipo que denota un cjto. no vacío de ctes.
(enteros, reales, {blanco, rojo, azul})
– Declaración del Dominio de la BH
• Conjunto D de declaraciones de variables (restringe el
valor que una variable puede tomar).
D = { sexo: {mujer, hombre}, edad: int, nombre: string,
dolencia: 2 {fiebre, dolor-abdominal, dolor-cabeza},
trastorno: 2 {aneurisma-aortico, estenosis-arterial} }
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Variable
Sistemas–Basados
2.3.2.1. Hechos:
Valor en Reglas
™
Declaración del Dominio de una BH: ONTOLOGÍA (II)
– Hecho: Una variable junto con el valor(es) que adopta:
• xs = c,
c donde c ∈ t. (xs es declarada como xs:t)
m
• x = C,
C donde C ⊆ t. (xm es declarada como xm:2t)
– Conjunto de Hechos
{ x1s = c1, ......., xps = cp, x1m = C1, ......., xqm = Cq }
donde ci son constantes y Cj conjuntos de constantes.
• Una var. puede ocurrir una sola vez en un cjto. de hechos.
{{ sexo
sexo == hombre,
hombre,
edad
edad == 27,
27,
dolencia
dolencia == {{ fiebre,
fiebre, dolor
dolor –– abdominal
abdominal },
},
enfermedad
enfermedad == {{ aneurisma
aneurisma –– aórtico
aórtico }}
}}
5
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
Base
Base de
de
Reglas
Reglas
Base
Base de
de
Hechos
Hechos
Control
Control
LHS
Si ANTECEDENTE entonces CONSECUENTE
RHS
™
Representan:
™ Conocimiento de resolución de problemas de un
dominio específico (ejemplo: reglas físicas)
™ Conocimiento heurístico o reglas de experiencia
(analogías informales en la vida real).
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
Base
Base de
de
Reglas
Reglas
Base
Base de
de
Hechos
Hechos
Control
Control
LHS
Si ANTECEDENTE entonces CONSECUENTE
RHS
el paciente sufre dolor abdominal, y
un murmullo abdominal es percibido por auscultación, y
una masa pulsante es palpada en el abdomen
then el paciente padece una aneurisma aórtico
if
6
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Antecedente (LHS): Condiciones sobre la BH
– ¿xis = c?, donde c ∈ τ. (xs : τ)
(( test
test (( == ?a
?a 77 )) ))
– ¿xjm = C?, donde C ⊆ τ. (xm : 2τ)
(( test
test (( member
member ?enfermedad
?enfermedad gripe
gripe )) ))
™
Consecuente (RHS):
– Asertar o eliminar hechos:
• Añadir (xis = c | xjm = C)
(( bind
bind ?a
?a 66 )) ))
• Eliminar
(xis
(( bind
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad faringitis
faringitis )) ))
=c | xjm =C)
(( bind
bind ?a
?a 77 ))
(( bind
bind ?enfermedad
?enfermedad (( delete
delete ?enfermedad
?enfermedad faringitis
faringitis )) ))
– Acciones externas
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Sintaxis
– <name> :: = string
– <conditional-element> ::= <and-CE> | <or-CE> | <not-CE>| <test-CE>|
<ordered-pattern> | <assigned-pattern>
– <and-CE> ::= ( and <conditional-element>+ )
– <or-CE> ::= ( or <conditional-element>+ )
– <not-CE> ::= ( not <conditional-element> )
– <test-CE> ::= ( test ( <function-call> <term> <term> ) )
– <function-call> ::= = | > | >= | < | <= | <> | eq | neq | <member>
– <term> ::= <variable> | <constant>
– <variable> ::= ? <name>
– <constant> ::= <number> | <name>
(( defrule
defrule <name>
<name>
– <member> ::= member <variable> <term>
++
<conditional-element>
<conditional-element>
– <assigned-pattern> ::= <variable> <- <ordered-pattern>
=>
=>
– <ordered-pattern> ::= ( <name> <constraint>* )
<action>*
<action>*
– <constraint> ::= $ <variable> | <term>
))
7
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Sintaxis
– <action> ::= ( bind <variable> <term> ) | ( <action-multi-value> ) |
( retract <term> ) | ( assert <ordered-pattern> )
– <action-multi-value> ::=
( create | <replace> | <action-name> <variable> <term>+ )
– <action-name> ::= insert | delete
– <replace> ::= replace <variable> <term> <term>+
(( defrule
defrule <name>
<name>
<conditional-element>
<conditional-element>++
=>
=>
<action>*
<action>*
))
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Antecedente
– Predicados (se evalúan a Verdadero o Falso)
• Variables uni-valuadas
(( test
test (( == ?a
?a 77 )) ))
(( test
test (( eq
eq ?a
?a casa
casa )) ))
(( test
test (( neq
neq ?a
?a casa
casa )) )) == (( not
not (( test
test (( eq
eq ?a
?a casa
casa )) )) ))
(( or
or (( test
test (( >=
>= ?a
?a 44 )) )) (( test
test (( == ?a
?a 33 )) )) ))
(( and
and (( test
test (( >=
>= ?a
?a 77 )) )) (( test
test (( << ?a
?a 20
20 )) )) (( test
test (( == ?b
?b 99 )) )) )) ==
(( and
and (( and
and (( test
test (( >=
>= ?a
?a 77 )) )) (( test
test (( << ?a
?a 20
20 )) )) )) (( test
test (( == ?b
?b 99 )) )) ))
• Variables multi-valuadas
(member
(member <variable>
<variable> <term>)
<term>)
<variable>:
<variable>: var.
var. multivaluada
multivaluada
<term>
<term> :: elemento
elemento
(( test
test (( member
member ?lista
?lista 33 )) ))
(( and
and (( test
test (( member
member ?lista
?lista 33 )) )) (( not
not (( test
test (( member
member ?lista
?lista 77 )) )) )) ))
8
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Consecuente
– Asignación de Valores
• Variables uni-valuadas
(( bind
bind ?a
?a 33 ))
(( bind
bind ?a
?a casa
casa ))
(( bind
bind ?b
?b ?a
?a ))
?a
• Variables multi-valuadas
(( bind
create)) ))
((create)
bind ?a
?a (create
(( bind
create (( 11 22 ))
((create
bind ?a
?a (create
)) ))
(( bind
insert ?a
((insert
bind ?a
?a (insert
?a 44 55 66 77 )) ))
(( bind
insert ?a
((insert
bind ?a
?a (insert
?a casa
casa agua
agua )) ))
(( ))
(( 11 22 ))
(( 44 55 66 77 11 22 ))
(( casa
casa agua
agua 44 55 66 77 11 22 ))
(create):
(create): crea
crea una
una variable
variable multicampo
multicampo vacía.
vacía.
(insert
(insert <variable>
<variable> <term>+)
<term>+)
<variable>:
<variable>: var.
var. multicampo
multicampo donde
donde se
se quiere
quiere insertar
insertar un
un valor
valor
<term>
<term>++:: uno
uno oo más
más elementos,
elementos, pudiendo
pudiendo ser
ser éstos
éstos vars.
vars. oo ctes.
ctes.
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Consecuente
– Modificación de Valores
• Variables uni-valuadas
(( bind
bind ?a
?a 11 ))
• Variables multi-valuadas
(( bind
replace ?a
((replace
bind ?a
?a (replace
?a 44 10
10 )) ))
(( bind
?a
(replace
replace
?a
casa
(
bind ?a (replace ?a casa hotel
hotel apartamento
apartamento )) ))
?a
(( casa
casa agua
agua 10
10 55 66 77 11 22 ))
(( hotel
apartamento
hotel apartamento agua
agua 10
10 55 66 77 11 22 ))
(replace
(replace <variable>
<variable> <term>
<term> <term>+)
<term>+)
<variable>:
<variable>: var.
var. multicampo
multicampo donde
donde se
se quiere
quiere reemplazar
reemplazar un
un valor
valor
<term>:
<term>: elemento
elemento que
que se
se quiere
quiere reemplazar
reemplazar
<term>
<term>++:: elemento
elemento oo elementos
elementos por
por los
los que
que se
se va
va aa sustituir
sustituir el
el elemento
elemento aa reemplazar.
reemplazar.
9
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Consecuente
– Eliminación de Valores
• Variables uni-valuadas
(( bind
bind ?a
?a 11 ))
• Variables multi-valuadas
(( bind
delete ?a
((delete
bind ?a
?a (delete
?a 10
10 55 66 )) ))
?a
(( hotel
hotel apartamento
apartamento agua
agua 77 11 22 ))
(delete
(delete <variable>
<variable> <term>+)
<term>+)
<variable>:
<variable>: var.
var. multicampo
multicampo donde
donde se
se quiere
quiere borrar
borrar un
un valor
valor
<term>
<term>++:: se
se puede
puede borrar
borrar uno
uno oo más
más elementos
elementos de
de la
la var.
var. multicampo
multicampo (vars.
(vars. oo ctes.).
ctes.).
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Ejemplos (I):
– If el paciente sufre dolor abdominal, y
un murmullo abdominal es percibido por auscultación, y
una masa pulsante es palpada en el abdomen
then
el paciente padece una aneurisma aórtico
(( defrule
defrule aneurisma
aneurisma
(( and
-abdominal )) ))
dolor
and (( test
test (( eq
eq ?dolencia
?dolencia dolordolor-abdominal
(( test
(
eq
?auscultación
murmullo-abdominal )) ))
test ( eq ?auscultación murmullo
murmullo-abdominal
(( test
palpacion masa-pulsante )) ))
masa
test (( eq
eq ??palpacion
masa-pulsante
))
=>
=>
(( bind
bind ?enfermedad
?enfermedad
(( insert
-aórtico )) ))
aneurisma
insert ?enfermedad
?enfermedad aneurismaaneurisma-aórtico
))
10
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Ejemplos (II):
– If el paciente experimenta un dolor en la pantorrilla
cuando anda, que desaparece gradualmente en reposo
then
una estenosis de una de las arterias de la pierna,
posiblemente debido a una arteriosclerosis, es concebible
(( defrule
defrule estenosis
estenosis
(( and
-dedolor
de-pantorrilla )) ))
and (( test
test (( eq
eq ?dolencia
?dolencia dolordolor-de-pantorrilla
(( test
test (( eq
eq ?presencia
?presencia andando
andando )) ))
(( test
-reposo )) ))
en
test (( eq
eq ?ausencia
?ausencia enen-reposo
))
=>
=>
(( bind
-arterial ))
estenosis
bind ?causa
?causa estenosisestenosis-arterial
(( bind
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad arteriosclerosis
arteriosclerosis )) ))
))
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
™
Ejemplos (III):
– If la presión asistólica excede los 140 mmHg, y
la presión del pulso excede los 50 mmHg, y
es percibido un murmullo diastólico, o
es observado un corazón agrandado
then
el paciente sufre regurgitación aórtica
(( defrule
defrule regurgitación
regurgitación
(( and
-asistólica 140
?presión
and (( test
test (( >> ?presión?presión-asistólica
140 )) ))
(( test
-puslo 50
?presión
test (( >> ?presión?presión-puslo
50 )) ))
(( or
-diastólico )) ))
murmullo
or (( test
test (( eq
eq ?auscultación
?auscultación murmullomurmullo-diastólico
(( test
-agrandado )) )) ))
corazón
test (( eq
eq ?percusión
?percusión corazóncorazón-agrandado
))
=>
=>
(( bind
-aórtica )) ))
regurgitación
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad regurgitaciónregurgitación-aórtica
))
11
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
endeSistemas
Basados en Reglas
2.3.2.2. Reglas
Producción
Predicado
Predicado oo Acción
Acción
(test
(test (eq
(eq ?x
?x c))
c))
(test
(test (member
(member ?x
?x c))
c))
(test
(test (not
(not (eq
(eq ?x
?x c))
c))
(test
(test (neq
(neq ?x
?x c))
c))
(test
(not
(member
(test (not (member ?x
?x c))
c))
(test
(test (<
(< ?x
?x c))
c))
(test
(test (>
(> ?x
?x c))
c))
(bind
(bind ?x
?x c)
c)
(bind
(bind ?x
?x (insert
(insert ?x
?x c)
c)
(bind
(bind ?x
?x (delete
(delete ?x
?x c)
c)
vars.
vars. uni-valor
uni-valor
xxss == cc
----------xxss ≠≠ cc
xxss ≠≠ cc
------------xxss << cc
xxss >> cc
xxss ←
← cc
-------------------------
(bind
(bind ?x
?x (replace
(replace ?x
?x cc d))
d))
(bind
?x
(create))
(bind ?x (create))
-------------------------
vars.
vars. multi-valor
multi-valor
--------------------------------------------------cc ∈
∈ xxmm
------------------------------------------------------------------------------------------------cc ∉
∉ xxmm
----------------------------------------------------------------------------------------------------xxmm ←
← {c}
{c} ∪
∪ xxmm
m
m
si
si xx == {c}
{c}
entonces
← vacía
vacía
entonces xxmm ←
sino
sino xxmm ←
← xxmm -- {c}
{c}
xxmm ←
← (x
(xmm ∪
∪ {d})
{d}) -{c}
-{c}
xxmm ←
← vacía
vacía
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Hecho: Var. – Valor
No permite ‘relacionar’ variables entre sí.
™
™
Al modelar dominios de problemas, es frecuente
establecer vars. (atribs.) que caracterizan un
mismo objeto, y subdominios (objetos/subobjetos)
inter-relacionados.
Frecuentemente se usan objetos para agrupar las
propiedades mencionadas en las reglas heurísticas
o de experiencia.
12
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Objetos:
– Estruct.
Estruct. de inform. que modela un subdominio/concepto.
subdominio/concepto.
– Obj.: descrito por props. o atribs.
atribs. específicos de tal obj.
objeto
objeto dolor
dolor
atributos
atributos localización,
localización, carácter
carácter
– Tupla objeto – atributo – valor ( o – a – v ):
• Permite expresar hechos asociados a atribs.
atribs. de un obj.
• Par ob obj. – atributo se comporta igual que las vars.
• Atributos de tipo unimulti-valor (o.a
(o.am)
uni-valor (o.as) y multier
• Distintas tuplas cuyo 1 elemento sea el mismo obj.
denotan distintas características de un mismo obj.
• Un par obj. – atrib. indica que el atrib. pertenece al obj.
(dolor localización vientre)
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Ejemplos:
– Conocimiento
Objetos
Conceptos/características:
Conceptos/características:
Relaciones:
Relaciones:
Concepto
Concepto mesa:
mesa:
atributo
atributo // valor
valor
atributo/valor
atributo/valor
BH
Forma
Forma (rectangular,
(rectangular, circular,
circular, etc.)
etc.)
(( mesa
mesa forma
forma rectangular
rectangular ))
Tamaño
Tamaño (grande,
(grande, mediano,
mediano, etc.)
etc.)
(( mesa
mesa tamaño
tamaño grande
grande ))
Nº
Nº patas
patas (3,
(3, 4,
4, 6,
6, 12,
12, etc.)
etc.)
(( mesa
-patas 44 ))
número
mesa númeronúmero-patas
Color(blanca,
Color(blanca, negra,
negra, etc.)
etc.)
(( mesa
mesa color
color negra
negra ))
13
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Antecedente Reglas de Producción
<conditional-element>
<conditional-element> ::=
::= <and-CE>
<and-CE> || <or-CE>
<or-CE> || <not-CE>|
<not-CE>| <test-CE>
<test-CE> ||
<ordered-pattern>
<ordered-pattern> || <assigned-pattern>
<assigned-pattern>
<assigned-pattern>
<assigned-pattern> ::=
::= <variable>
<variable> << –– <ordered-pattern>
<ordered-pattern>
<ordered-pattern>
<ordered-pattern> ::=
::= (( <name>
<name> <constraint>*
<constraint>* ))
<constraint>
<constraint> ::=
::= <term>
<term>
<term>
<term> ::=
::= <constant>
<constant> || <variable>
<variable> (variable
(variable sólo
sólo en
en el
el elemento
elemento valor)
valor)
(( and
and (( mesa
mesa forma
forma rectangular
rectangular ))
(( mesa
mesa color
color rojo
rojo )) ))
(( sangre
-sistolica 140
presion
sangre presionpresion-sistolica
140 ))
?y
-pulso ?pp
presion
?y << –– (( sangre
sangre presionpresion-pulso
?pp ))
(( test
pp 50
??pp
test (( << ?pp
50 )) ))
(( or
-diastolico ))
murmullo
or (( paciente
paciente auscultacion
auscultacion murmullomurmullo-diastolico
?z
-agrandado )) )) ))
corazon
?z << –– (( paciente
paciente percusion
percusion corazoncorazon-agrandado
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Consecuente Reglas de Producción
<action>
<action> ::=
::= (bind
(bind <variable>
<variable> <term>
<term> || <action-multi-value>)
<action-multi-value>) || (retract
(retract <term>)
<term>) ||
(assert
(assert <ordered-pattern>)
<ordered-pattern>)
<constraint>
<constraint> ::=
::= <term>
<term>
<term>
<term> ::=
::= <variable>
<variable> || <constant>
<constant>
– Creación de Valores
(( bind
;;;
-valuada
vble
uni
bind ?a
?a rectangular
rectangular ))
;;; vble.
vble.. uniuni-valuada
(( assert
assert (( mesa
mesa forma
forma ?a
?a )) ))
(( bind
vble
bind ?lista
?lista (( create
create (( forma
forma rectangular
rectangular )) )) )) ;;;
;;; vble.
vble.. Multivaluada
Multivaluada
((assert
assert (mesa
(mesa ?lista))
?lista))
– Eliminación de Valores
?z
-agrandado ))
corazon
?z << –– (( paciente
paciente percusion
percusion corazoncorazon-agrandado
(( retract
retract ?z
?z ))
(( retract
retract 66 ))
(( bind
bind ?a
?a 66 ))
(( retract
retract ?a
?a ))
;;;
;;; 66 es
es el
el índice
índice del
del hecho
hecho que
que se
se quiere
quiere eliminar
eliminar
;;;
vble
;;; se
se puede
puede asignar
asignar aa una
una vble.
vble.. el
el índice
índice
14
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.2. Representación del Conocimiento
en Objeto
Sistemas
Basados– en
Reglas
2.3.2.3. Hechos:
– Atributo
Valor
™
Ejemplo:
™
Limitaciones del paradigma obj. – atrib. – valor
(( defrule
defrule estenosis
estenosis
(( paciente
-dedolor
de-pantorrilla ))
paciente dolencia
dolencia dolordolor-de-pantorrilla
(( dolor
dolor presencia
presencia andando
andando ))
(( dolor
-reposo ))
en
dolor ausencia
ausencia enen-reposo
=>
=>
(( assert
-arterial )) ))
estenosis
assert (( dolor
dolor causa
causa estenosisestenosis-arterial
(( assert
-aortica )) )) ))
regurgitación
assert (paciente
(paciente enfermedad
enfermedad regurgitaciónregurgitación-aortica
– No permite expresar relaciones explícitas entre objetos de
una forma natural (redes semánticas / frames).
paciente
paciente
– Un esquema de objs. define las interrelaciones entre objs.,
y entre objs. y sus atribs. (redes semánticas / frames)
dolencia
auscultación
percusión
lugar
dolor
dolor
presencia
ausencia
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
™
En general, las RP pueden ser traducidas a la lógica de predicados
predicados
(≈ implicaciones).
implicaciones).
™
Semántica de un SBR se describe mediante una semántica
procedural,
procedural, como un método de inferencia específico de aplicación
de las RP.
™
Esta relación permite que una BR sea desarrollada sin necesidad
de un conocim.
conocim. preciso sobre el funcionamiento de su método de
inferencia, basado en sus formas lógicas equivalentes.
™
Ventajas de un razonamiento basado en reglas:
– Base formal en el cálculo de predicados.
– Permite una BH más clara y estructurada:
• Objeto – Atributo – Valor, redes, frames
15
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
™
Relación entre predicados de RP y fbf
Pred.
Pred. oo Acción
Acción
Repr.
Repr. Lóg.
Lóg. de
de Atrib.
Atrib. UniUni-
(o
(o aa v)
v)
(o
(o aa ?x)
?x)
(test
(test (neq
(neq ?x
?x v))
v))
(not
(not (o
(o aa v))
v))
(o
(o aa ?x)
?x)
(test
(test (eq
(eq ?x
?x v))
v))
(o
a
?x)
(o a ?x)
(test
(test (<
(< ?x
?x v))
v))
(o
(o aa ?x)
?x)
(test
(test (>
(> ?x
?x v))
v))
(assert
(o
a
(assert (o a v))
v))
(retract
(retract <term>)
<term>)
Repr.
Repr. Lóg.
Lóg. de
de Atrib.
Atrib. Multi-valor
Multi-valor
a(o)
a(o) == vv
a(o,v)
a(o,v)
¬¬ a(o)
a(o) == vv
¬¬ a(o)
a(o) == vv
¬¬ a(o,v)
a(o,v)
¬¬ a(o,v)
a(o,v)
a(o)
a(o) == vv
---
(o)
(o) << vv
---
a(o)
a(o) >> vv
a(o)
a(o) == vv
---
--a(o,v)
a(o,v)
---
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
™
Relación entre predicados de RP y fbf
(defrule
(defrule nombre
nombre
c 1,2 ........
)
(or
........ cc 1,m
(or cc 1,1
1,1 c 1,2
1,m )
••
••
••
c n,2 ........
)
(or
........ cc n,p
(or cc b,1
b,1 c n,2
n,p )
=>
=>
aa11 aa22 ........
........ aaqq))
((c'
v c' 1,2 vv .....
)) ^
((c'1,1
..... vv c'
c'1,m
1,1 v c'1,2
1,m)) ^
••
••
••
v
c'
v
.....
vv c'
))
((c'
v
c'
v
.....
c' n,p
((c' n,1
n,2
n,1
n,2
n,p))
→
(a'
(a'11 ^^ a'
a'22 ^^ ...........
........... ^a'
^a'qq))
16
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
(( defrule
defrule regurgitación
regurgitación
(( sangre
-asistólica ?ps
ps ))
presión
??ps
sangre presiónpresión-asistólica
Ejemplo
™
(( test
ps 140
??ps
test (( >> ?ps
140 )) ))
(( sangre
-pulso ?pp
pp ))
presión
??pp
sangre presiónpresión-pulso
(( test
pp 50
??pp
test (( >> ?pp
50 )) ))
(( or
-diastólico ))
murmullo
or (( paciente
paciente auscultación
auscultación murmullomurmullo-diastólico
(( paciente
percusión
corazónagrandado
corazón
paciente percusión corazón-agrandado )) ))
=>
=>
(( assert
-aórtica )) )) ))
regurgitación
assert (( paciente
paciente enfermedad
enfermedad regurgitaciónregurgitación-aórtica
(( presión-asistólica( sangre
-pulso( sangre
presión
presión
presión-asistólica(
sangre )) >> 140
140 ^^ presiónpresión-pulso(
sangre )) >> 50
50 ^^
(( auscultación(
-diastólico )) vv
murmullo
auscultación( paciente,
paciente, murmullomurmullo-diastólico
percusión(
-agrandado )) )) ))
corazón
percusión( paciente,
paciente, corazóncorazón-agrandado
Æ
Æ
enfermedad(
-aórtica ))
regurgitación
enfermedad( paciente,
paciente, regurgitaciónregurgitación-aórtica
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
™
Hechos vs. fbf
– Atributos uniuni-valor
• Predicado de igualdad de la lógica de primer orden
– (o as v) es traducido en la cláusula unidad a(o) =v
– Los axiomas de igualdad garantizan la unicidad de los
atributos monovalor,
a(o) = v y a(o) = w / v ≠ w inconsistencia
– Atributos multimulti-valor
• (o am v) es traducido en un cjto. de cláusulas unidad a(o,vi):
z
Una para cada vi del cjto. de valores ctes. adoptado por el
atributo: a(o,vi)
z
Una por cada una de las restantes ctes. vi que ocurren en el tipo
de atributo (negación por ausencia): a(o,vi)
• Se asume que los valores de atributos multi-valor no
introducidos explícitamente se consideran como no
verdaderos (suposición del mundo cerrado)
a(o, v) y ¬ a(o, v) inconsistentes
17
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.3. Relación entre Reglas de Producción
y Lógica de Predicados de Primer Orden
™
Ejemplo:
-aortíca,
regurgitación
aortíca, arteriosclerosis
regurgitación-aortíca,
arteriosclerosis }},, edad
D
D == {{ enfermedad
enfermedadmm:2
:2{{ regurgitaciónedadss:: int
int }}
– Hechos
{{ enfermedad
arteriosclerosis },
}, edad
edadss == 70
70 }}
enfermedadmm == {{ arteriosclerosis
(( bind
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad arteriosclerosis
arteriosclerosis )) ))
(( bind
bind ?edad
?edad 70
70 ))
(( paciente
paciente enfermedad
enfermedad arteriosclerosis
arteriosclerosis ))
(( paciente
paciente edad
edad 70
70 ))
– Cláusulas
{{ enfermedad(
enfermedad( paciente,
paciente, arteriosclerosis
arteriosclerosis ),),
¬¬ enfermedad(
-aórtica ),),
regurgitación
enfermedad( paciente,
paciente, regurgitaciónregurgitación-aórtica
edad(
edad( paciente
paciente )) == 70
70 }}
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.4. Inferencia
en Sistemas Basados en Reglas
Base de Conocimiento
Base de Reglas
Base de Hechos
R1:
R1: C1
C1 ÆA1
ÆA1
H1
H1
R2:
R2: C2
C2 ÆA2
ÆA2
..
..
..
H2
H2
..
..
..
Encadenamiento
Inferencial
Añadir /
Eliminar
Hechos
Pattern-Matching
Selección
Selección
Reglas Aplicables
Control
Motor de
Inferencia
Resolución
Resolución de
de Conflictos
Conflictos
Regla a Aplicar
Ejecución
Ejecución
Acciones
Externas
18
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.4. Inferencia
en SistemasInferencial
Basados en Reglas
2.3.4.1. Encadenamiento
™
Inferencia dirigida por el objetivo
(backward)
backward)
OBJETIVOS
– fbf implicación usadas como BB-reglas:
• Partiendo de la fbf objetivo, se
obtienen BH objetivos parciales hasta
que se satisface la condición de
terminación (BH inicial).
– Se deduce sólo lo que es necesario en la
demostración.
– Características:
• Más parecido a la conducta humana
(eficacia).
• Obtiene respuestas a preguntas.
• Permiten preguntar al usuario.
• Necesita objetivos explícitos.
SI
SE SATISFACEN
OBJETIVOS EN BH
FIN
NO
SELECCIONAR REGLAS CUYAS
CONCLUSIONES SE IDENTIFICAN
CON OBJETIVOS
NO
HAY REGLAS
APLICABLES
PATTERN
MATCHING
PREGUNTAR A
USUARIO POR
OBJETIVOS
SI
SELECCIONAR UNA REGLA
RESOLUCION DE
CONFLICTOS
OBJETIVOS = PREMISAS REGLA SELECCIONADA
GRA
AND
EJECUCION
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.4. Inferencia
en SistemasInferencial
Basados en Reglas
2.3.4.1. Encadenamiento
™
Inferencia dirigida por los
datos (forward)
forward)
– fbf implicación usadas como FFreglas:
• Operan sobre la BH inicial
hasta satisfacer las fbf
objetivos.
– Se deduce todo lo que se puede
deducir.
– Características:
• Sistemas generativos.
• Obtiene todos los nuevos
hechos deducibles.
GRAFO
AND / OR
HECHOS INICIALES
ENCONTRAR REGLAS POSIBLES
(PREMISAS SATISFECHAS POR LA BH)
HAY
REGLAS
PATTERN
MATCHING
NO
FIN
SI
RESOLUCION
DE CONFLICTOS
SELECCIONAR UNA REGLA
MODIFICACION BH (AÑADIR/ELIMINAR)
OPERACIONES E/S
NO
PROBLEMA
RESUELTO
EJECUCION
SI
FIN
19
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.4. Inferencia
en Inferencial
Sistemas Basados en Reglas
2.3.4.2. Control
™
™
™
En amplitud
En profundidad
Control inferencial (resolución de conflictos):
–
–
–
–
–
–
Complejidad de premisas
Peso de las reglas
Combinación: peso, complejidad
Mayor frecuencia
Última utilizada
Metarreglas:
Metarreglas:
• Aprendizaje.
• Utilización de reglas.
• Exclusión de reglas.
• Asignación dinámica de pesos.
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
LHS
2.3.5. Patrones
en Sistemas Basados en Reglas
Si ANTECEDENTE entonces CONSECUENTE
RHS
P1 ^ P2 ^ . . . ^ Pm
A1 ^ A2 ^ . . . ^ Am
Elementos Patrón
Acciones
Constantes Variables Modificaciones
de la BH
™
Acciones
Externas
™
El leng.
leng. de repr.
repr. del conoc.
conoc.
descrito hasta ahora nos
permite utilizar:
–
–
–
Pares variable – valor
Tuplas obj. – atr. – valor
Reglas de Producción
Vamos a enriquecer la expresividad de dicho lenguaje,
mediante patrones, para la representación de:
– Hechos de la BH (constantes)
– Condiciones y Conclusiones de las RP (constantes y variables)
20
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas Basados en Reglas
™
Hechos como patrones
– Patrón (pattern): secuencia finita ordenada de elementos:
(e1 e2 e3............ en) donde cada elemento patrón ei (1 ≤ i ≤ n) es:
– una constante: elemento patrón constante
– una variable: elemento patrón variable.
– Variable – Valor:
Valor: puede ser representado por un patrón
constituido por dos constantes:
xx == 10
10 ≡≡ (( xx 10
10 ))
– Objeto – atributo – valor:
valor: puede ser representado por un
patrón constituido por tres constantes:
(( horno,
horno, temperatura,
temperatura, 100
100 )) ≡≡ (( horno
horno temperatura
temperatura 100
100 ))
– Hecho (extensión a patrones): secuencia finita ordenada de
elementos:
(f1 . . . fn) donde cada elemento patrón fi (1 ≤ i ≤ n) es una cte.
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas Basados en Reglas
™
Ejemplos
(( paciente
paciente nombre
nombre Juan
Juan edad
edad 18
18 enfermedad
enfermedad aneurisma
aneurisma ))
(( paciente
paciente nombre
nombre Luis
Luis edad
edad 25
25 enfermedad
enfermedad gripe
gripe arteriosclerosis
arteriosclerosis ))
(( paciente
paciente nombre
nombre Pedro
Pedro edad
edad 21
21 enfermedad
enfermedad neumonía
neumonía ))
(( médico
médico nombre
nombre Juan
Juan especialidad
especialidad cardiología
cardiología ))
(( manzana
manzana tamaño
tamaño grande
grande color
color verde
verde ))
(( lista
lista aa bb cc dd ee ))
Un patrón extiende la representación de hechos
21
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas Basados en Reglas
™
Patrones en las RP
– Las condiciones y conclusiones de las reglas pueden referir a
condiciones y conclusiones sobre patrones (con vars.
vars. y ctes.).
ctes.).
(( defrule
defrule regla-1
regla-1
(( ee11 ee22 ee33 .......
....... eenn ))
=>
=>
(( assert
......... aamm )) ))
assert (( aa11 aa22 aa33 .........
– Un elemento patrón ei puede ser:
• Constante Patrón:
Patrón: No contiene variables
(hambriento Pedro)
• Variable Patrón UniUni-Valor:
Valor: su nombre empieza con el signo?:
?x, ?sexo, ?edad, ......
• Variable Patrón MultiMulti-Valor:
Valor: su nombre empieza con $?:
$?enfermedad, $?ocupación, ...
• Variables sin enlace:
enlace: Su nombre solo consta del símbolo ? o $?.
Son vars.
vars. especiales que pueden estar ligadas a cualquier cte.
cte. o
secuencia de ctes.,
ctes., pero no preservan sus enlaces.
(paciente nombre ? edad ? enfermedad $?z)
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas Basados en Reglas
™
Distintas ocurrencias de una misma variable patrón en
una regla denotan el mismo elemento.
(( defrule
-1
regla
defrule reglaregla-1
(( paciente
paciente nombre
nombre Juan
Juan edad
edad ?y
?y enfermedad
enfermedad $?z
$?z ))
=>
=>
(( assert
assert (( paciente
paciente nombre
nombre Juan
Juan edad
edad ?y
?y enfermedad
enfermedad gripe
gripe )) )) ))
™
Mediante los patrones se generaliza la sintaxis de las RP,
permitiendo el uso de variables (+ patternpattern-matching).
matching).
22
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
enMatching
Sistemas Basados en Reglas
2.3.5.1. Pattern
™
Pattern Matching: Hacer sintácticamente iguales un
patrón de una regla de producción y un hecho asociando
variables y hechos.
LHS
Si ANTECEDENTE entonces CONSECUENTE
RHS
P1 ^ P2 ^ . . . ^ Pm
Aplicabilidad de una regla
Pattern Matching
Conjunto de
INSTANCIAS
Elementos Patrón
Constantes Variables
Base de
Hechos
Conjunto ordenado de
hechos ∈ BH que
CASAN con la LHS
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
enMatching
Sistemas Basados en Reglas
2.3.5.1. Pattern
H1: (HAMBRIENTO PEDRO)
(defrule COMER
(HAMBRIENTO ?PERSONA)
(COMESTIBLE ?ALIMENTO)
→
(assert ( Come ?PERSONA el ?ALIMENTO))
BASE DE REGLAS
(p1 ? p2 ..... ?pn)
Asumible por defecto
Match: listas con variables
instanciadas.
No match: lista vacía
( ≈ false).
not (p1 ? p2 ......? pn):
Asumible como la negación
Complementario a Igual.
H2: (HAMBRIENTO PABLO)
H3: (COMESTIBLE MANZANA)
H4: (COMESTIBLE MELOCOTON)
H5: (COMESTIBLE PERA)
BASE DE HECHOS
I1: {?PERSONA = PEDRO, ?ALIMENTO = MANZANA} {H1, H3}
I2: {?PERSONA = PEDRO, ?ALIMENTO = MELOCOTON} {H1, H4}
I3: {?PERSONA = PEDRO, ?ALIMENTO = PERA} {H1, H5}
I4: {?PERSONA = PABLO, ?ALIMENTO = MANZANA} {H2, H3}
I5: {?PERSONA = PABLO, ?ALIMENTO = MELOCOTON} {H2, H4}
I6: {?PERSONA = PABLO, ?ALIMENTO = PERA} {H2, H5}
23
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
enMatching
Sistemas Basados en Reglas
2.3.5.1. Pattern
‹ Un Enlace (binding
(binding)) de una var. es una cte.
cte. o una
secuencia de ctes.
ctes. que instancian la var.
– ?x = d : la variable monomono-valor ?x está ligada a la constante d.
– $?y = (c1 ...... cn) : la variable multimulti-valor $?y está ligada a la
secuencia de constantes (c1 ...... cn)
(?x ?y ?x a b)
(?x ?y $?z a $?z)
?x=a, ?y=d
(a d a a b)
?x=g, ?y=b, $?z=(c d)
(g b
c d
a
c d)
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
enMatching
Sistemas Basados en Reglas
2.3.5.1. Pattern
– Un patrón (P) y un hecho (F) hacen match si existe un enlace de vars.
vars.
de P tal que hace sintácticamente iguales P y F.
– Ejemplo: Enlace: ?x=Juan
?y=55 $?z=(aneurisma
?x=Juan
$?z=(aneurisma gripe)
(paciente nombre ?x edad ?y enfermedad $?z)
?x=Juan
?y=55
$?z=(aneurisma gripe)
(paciente nombre Juan edad 55 enfermedad aneurisma gripe )
– Las vars.
vars. patrón de un patrón son reemplazadas por una o más ctes.
ctes.
dependiendo del tipo (mono(mono- o multimulti-valor).
• Var. patrón monomono-valor: sólo se instancia por una única cte.
cte.
• Var. patrón multimulti-valor: se instancia por una secuencia de ctes.
ctes.
– La múltiple ocurrencia de una var. en un patrón denota un mismo
objeto.
24
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
enMatching
Sistemas Basados en Reglas
2.3.5.1. Pattern
™
Otros predicados de las Reglas de Producción:
z
z
z
= > < : se aplican a variables instanciadas.
instanciadas.
assert : añadirá 'patrón' a la base de hechos. Las variables
deben estar instanciadas.
instanciadas.
retract : elimina el hecho de la base de hechos. Las variables
deben estar instanciadas.
instanciadas.
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-1
BH= {(Persona nombre Juan edad 10)}
( defrule regla-1
regla
regla-1
( persona nombre ?x edad ?y )
( test ( > ?y 9 ))
?x
?x == Juan,
Juan, ?y
?y == 10
10
=>
( assert ( ?x etapa joven ) ) )
El hecho (Juan etapa joven) será añadido a la BH.
25
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-2
BH ={(lista a b f g h) , (elemento g)}
(( defrule
defrule R1
R1
?f
<
?f <<-- (lista
(lista ?x
?x $?y)
(elemento
(elemento ?e)
?e)
((test
test ((neq
neq ?e ?x))
=>
=>
((retract
retract ?f)
?f)
((assert
assert (lista $?y)))
(( defrule
defrule R2
R2
(lista
(lista ?x
?x $?)
$?)
(elemento
(elemento ?x)
?x)
=>
=>
((assert
assert (El
(El elemento
elemento ?x
?x pertenece
pertenece aa la
la lista))
lista))
((printout
printout t “El
elemento
“
?x
“
pertenece
“El elemento “ ?x “ pertenece aa la
la lista”))
(( defrule
defrule R3
R3
(lista)
(lista)
(elemento
(elemento ?x)
?x)
=>
=>
((assert
assert (El
(El elemento
elemento ?x
?x no
no pertenece
pertenece aa la
la lista))
lista))
((printout
printout t “El
“El elemento
elemento ““ ?x
?x ““ no
no pertenece a la lista”))
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
– 2:
BH
BH
H1: (lista a b f g h)
H3: (lista b f g h)
BH
H4: (lista f g h)
H2: (elemento g)
H2: (elemento g)
H2: (elemento g)
matching {?x=a, $?y= (b f g h),
?e=g}
ejecución
{?x=b, $?y= (f g h),
?e=g}
{?x=f, $?y= (g h),
?e=g}
R1, R2, R3
R1, R2, R3
R1, R2, R3
BR
BR
BR
BH
BH
H5: (lista g h)
H5: (lista g h)
H2: (elemento g)
H2: (elemento g)
{?x=g, $?y= (h),
?e=g}
H6: (El elemento g pertenece a la lista)
R1, R2, R3
BR
Inferencia dirigida por los datos
26
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-2
¿ (El elemento g pertenece a la lista) ?
Objetivos
O1: (El elemento g pertenece a la lista)
O2: (lista g $?)
O4: (lista ?x g $?)
O3: (elemento g)
?x ≠ g
O3: (elemento g)
{?x=g}
matching
{$?y=(g $?)}
matching
R1, R2, R3
{$?y=(?x g $?)}
R1, R2, R3
O5: (lista ?x1 ?x g $?)
O3: (elemento g)
?x1 ≠ g
R1, R2, R3
O6: (lista ?x2 ?x1 ?x g $?)
O3: (elemento g)
?x2 ≠ g
{$?y=(?x1 ?x g $?)}
se satisface objetivo
{?x2=a, ?x1=b, ?x=f, $?=(h)}
BH
R1, R2, R3
H1: (lista a b f g h)
H2: (elemento g)
Inferencia dirigida por el objetivo
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-2
BH
BH
BH
H1: (lista a b f g h)
H3: (lista b f g h)
H4: (lista f g h)
H2: (elemento g)
H2: (elemento g)
H2: (elemento g)
matching
{?x=b, $?y= (f g h)}
{?x=a, $?y=(b f g h)}
ejecución
R1, R2, R3
BR
R1, R2, R3
{?x=f, $?y=(g h)}
R1, R2, R3
BR
BR
BH
BH
H5: (lista g h)
H5: (lista g h)
H2: (elemento g)
H2: (elemento g)
H6: (El elemento g pertenece a la lista)
{ ?x=g, $?= (h)}
R1, R2, R3
..
Inferencia dirigida por el objetivo
27
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-3
BH = {(libro nombre Quijote cuesta 5000 calidad media)
(persona nombre Juan gana 2000)}
(( defrule R1
R1 “Un
“Un libro
libro que
que cuesta
cuesta más
más de
de 3000,
3000, es
es bueno”
bueno”
(libro
nombre
?x
cuesta
?y
calidad
?z)
(libro nombre ?x cuesta ?y calidad ?z)
((test
test (>
(> ?y
?y 3000))
3000))
=>
=>
((assert
assert (libro
(libro nombre
nombre ?x
?x cuesta
cuesta ?y
?y calidad
calidad ?z
?z alta)
alta)
))
))
(( defrule
defrule R2
R2 “Una persona que
que gana
gana más
más de
de 1000
1000 es
es rica”
rica”
(persona
(persona nombre
nombre ?x
?x gana
gana ?y)
?y)
((test
test (>
(> ?y
?y 1000))
1000))
=>
=>
((assert
assert (persona
(persona nombre
nombre ?x
?x status
status alto)
alto)
))
))
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
2.3.5. Patrones
en Sistemas
Basados en Reglas
2.3.5.2. Ejemplo
-3
BH = {(libro nombre Quijote cuesta 5000 calidad media)
(persona nombre Juan gana 2000)}
(( defrule
defrule R3
R3 “Una persona de status
status alto,
alto, compra
compra libros
libros buenos”
buenos”
(persona
nombre
?x
status
alto)
(persona nombre ?x status alto)
(libro
(libro nombre
nombre ?y
?y cuesta
cuesta $?
$? calidad
calidad $?z)
$?z)
((test
test ((member
member $?z
alta))
$?z alta))
=>
=>
((assert
assert (compra
(compra nombre
nombre ?x
?x libro ?y)
?y)
))
))
28
Descargar