Вы находитесь на странице: 1из 28

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". Addison-
Addison-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", Addison-
Addison-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”, Addison-
Addison-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 extra-
extra-lógica o heurística implícita sobre cómo usar
dicho conocimiento de forma optima.
™ Razonamiento humano:
– No es en base a 'cláusulas', sino en base a 'reglas’.
™ Ejemplo:
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(dep-
en(dep-ventas,x) ^ Edad(x,y) ^ >(y,30)]
→ casado(x)
∀x [cilindro(x) ^ rojo(x)] → ∃y
∃y cubo(y)^sobre(y,x)
™ Forma clausal : AA vv B C ≡≡
B vv C
9 Forma más uniforme (proceso de A ^ ¬ B→
¬¬ A ^ ¬ B →C C
demostración más eficiente) ¬¬ A C→
A ^^ ¬¬ C →BB
Pérdida de información de control ¬¬ B ^ ¬ C → A
B^¬C→A
A→
¬¬ A → (B
(B vv C)
C)
Cada implicación lleva su propia ¬¬ B → (A v C)
B → (A v C)
información heurística de control 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,
Listas, Strings,
Strings,, etc.
Strings etc.

™ Conjunto
™ Conjunto de
de pares:
pares: Variable-
Variable-Valor
Variable-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
Declarativas (lógica),
(lógica), Estructurales
Estructurales (redes,
(redes, frames),
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
2.3.2.1. Hechos: Sistemas–Basados
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
™ Conjunto
™ Conjunto de
de todas
todas las
las variables,
variables, junto
junto con
con sus
sus posibles
posibles valores.
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
™ Información
™ Información que
que es
es única.
única.
Variables
Variables uni
uni –– valor
valor
Sexo,
Sexo, Edad,
Edad, Temperatura,
Temperatura, ...
...

™ Valor
™ Valor puede
puede ser
ser un
un cjto.
cjto.. de
cjto de ctes.
ctes..
ctes
Variables
Variables multi
multi –– valor
valor
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
2.3.2.1. Hechos: Sistemas–Basados
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
2.3.2.1. Hechos: Sistemas–Basados
Valor en Reglas
™ Declaración del Dominio de una BH: ONTOLOGÍA (II)
– Hecho: Una variable junto con el valor(es) que adopta:
c donde c ∈ t. (xs es declarada como xs:t)
• xs = c,
C donde C ⊆ t. (xm es declarada como xm:2t)
• x = C,
m

– 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
2.3.2.2. Reglas Basados en Reglas
Producción
Base
Base de
de Base
Base de
de
Reglas
Reglas 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
2.3.2.2. Reglas Basados en Reglas
Producción
Base
Base de
de Base
Base de
de
Reglas
Reglas Hechos
Hechos

Control
Control

LHS
Si ANTECEDENTE entonces CONSECUENTE
RHS
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

6
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.2. Representación del Conocimiento


endeSistemas
2.3.2.2. Reglas Basados en 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 )) )) (( bind
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad faringitis
faringitis )) ))
• Eliminar (xis =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
2.3.2.2. Reglas Basados en 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>* ) =>
=>
– <constraint> ::= $ <variable> | <term> <action>*
<action>*
))

7
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.2. Representación del Conocimiento


endeSistemas
2.3.2.2. Reglas Basados en 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
2.3.2.2. Reglas Basados en 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>) (( test
test (( member
member ?lista
?lista 33 )) ))
<variable>:
<variable>: var.
var. multivaluada
multivaluada (( and
and (( test
test (( member
member ?lista
?lista 33 )) )) (( not
not (( test
test (( member
member ?lista
?lista 77 )) )) )) ))
<term>
<term> :: elemento
elemento

8
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.2. Representación del Conocimiento


endeSistemas
2.3.2.2. Reglas Basados en 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 ))
• Variables multi-valuadas ?a
(( bind
bind ?a
?a (create
create)) ))
((create) (( ))
(( bind
bind ?a
?a (create
create (( 11 22 ))
((create )) )) (( 11 22 ))
(( bind
bind ?a
?a (insert
insert ?a
((insert ?a 44 55 66 77 )) )) (( 44 55 66 77 11 22 ))
(( bind
bind ?a
?a (insert
insert ?a
((insert ?a casa
casa aguaagua )) )) (( 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>++:: uno
<term> 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
2.3.2.2. Reglas Basados en Reglas
Producción
™ Consecuente
– Modificación de Valores
• Variables uni-valuadas
(( bind
bind ?a
?a 11 ))

• Variables multi-valuadas
?a
(( bind
bind ?a
?a (replace
replace ?a
((replace ?a 44 10
10 )) )) (( casa
casa agua
agua 10
10 55 66 77 11 22 ))
(( bind
bind ?a (replace ?a casa hotel
?a (replace
( replace ?a casa hotel apartamento
apartamento )) )) (( hotel
hotel apartamento agua
apartamento 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>++:: elemento
<term> 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
2.3.2.2. Reglas Basados en Reglas
Producción
™ Consecuente
– Eliminación de Valores
• Variables uni-valuadas
(( bind
bind ?a
?a 11 ))

• Variables multi-valuadas
?a
(( bind
bind ?a
?a (delete
delete ?a
((delete ?a 10
10 55 66 )) )) (( 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>++:: se
<term> 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
2.3.2.2. Reglas Basados en 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
and (( test
test (( eq
eq ?dolencia
?dolencia dolor-
dolor-abdominal )) ))
dolor-abdominal
(( test ( eq ?auscultación murmullo-
test ( eq ?auscultación murmullo -abdominal )) ))
murmullo-abdominal
(( test
test (( eq
eq ??palpacion
palpacion masa-
masa-pulsante )) ))
masa-pulsante
))
=>
=>
(( bind
bind ?enfermedad
?enfermedad
(( insert
insert ?enfermedad
?enfermedad aneurisma-
aneurisma-aórtico )) ))
aneurisma-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
2.3.2.2. Reglas Basados en 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
and (( test
test (( eq
eq ?dolencia
?dolencia dolor-
dolor-de-
de-pantorrilla )) ))
dolor-de-pantorrilla
(( test
test (( eq
eq ?presencia
?presencia andando
andando )) ))
(( test
test (( eq
eq ?ausencia
?ausencia en-
en-reposo )) ))
en-reposo
))
=>
=>
(( bind
bind ?causa
?causa estenosis-
estenosis-arterial ))
estenosis-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
2.3.2.2. Reglas Basados en 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
and (( test
test (( >> ?presión-
?presión-asistólica 140
?presión-asistólica 140 )) ))
(( test
test (( >> ?presión-
?presión -puslo 50
?presión-puslo 50 )) ))
(( or
or (( test
test (( eq
eq ?auscultación
?auscultación murmullo-
murmullo -diastólico )) ))
murmullo-diastólico
(( test
test (( eq
eq ?percusión
?percusión corazón-
corazón-agrandado )) )) ))
corazón-agrandado
))
=>
=>
(( bind
bind ?enfermedad
?enfermedad (( insert
insert ?enfermedad
?enfermedad regurgitación-
regurgitación-aórtica )) ))
regurgitació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
2.3.2.2. Reglas Basados en Reglas
Producción
Predicado
Predicado oo Acción
Acción vars.
vars. uni-valor
uni-valor vars.
vars. multi-valor
multi-valor
(test
(test (eq
(eq ?x
?x c))
c)) xxss == cc --------------------------
--------------------------
(test
(test (member
(member ?x ?x c))
c)) ------
------ cc ∈
∈ xxmm
(test
(test (not
(not (eq
(eq ?x?x c))
c)) xxss ≠≠ cc --------------------------
--------------------------
(test
(test (neq
(neq ?x?x c))
c)) xxss ≠≠ cc ------------------------
------------------------
(test
(test (not (member ?x
(not (member ?x c))
c)) -------
------- cc ∉
∉ xxmm
(test
(test (<
(< ?x
?x c))
c)) xxss << cc --------------------------
--------------------------
(test
(test (>
(> ?x
?x c))
c)) xxss >> cc --------------------------
--------------------------
(bind
(bind ?x?x c)
c) xxss ←← cc
(bind
(bind ?x?x (insert
(insert ?x?x c)
c) -------
------- xxmm ← {c} ∪
← {c} ∪ xxmm
(bind m
(bind ?x?x (delete
(delete ?x?x c)
c) -------
------- si
si xx == {c}
m {c}
entonces xxmm ←
entonces ← vacía
vacía
sino xxmm ←
sino ← xxmm -- {c}
{c}
(bind
(bind ?x
?x (replace
(replace ?x
?x cc d))
d)) -------
------- xxmm ← (xmm ∪
← (x ∪ {d})
{d}) -{c}
-{c}
(bind ?x (create))
(bind ?x (create)) -------
------- 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
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
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
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
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.
uni-valor (o.as) y multi-
• Atributos de tipo uni- multi-valor (o.a
(o.am)
• Distintas tuplas cuyo 1 elemento sea el mismo obj.
er

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
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
Valor
™ Ejemplos:
– Conocimiento Objetos
Conceptos/características:
Conceptos/características: atributo
atributo // valor
valor
Relaciones:
Relaciones: atributo/valor
atributo/valor

Concepto
Concepto mesa:
mesa:
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º patas
patas (3,
(3, 4,
4, 6,
6, 12,
12, etc.)
etc.) (( mesa
mesa número-
número-patas 44 ))
nú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
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
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
sangre presion-
presion-sistolica 140
presion-sistolica 140 ))
?y
?y << –– (( sangre
sangre presion-
presion-pulso ?pp
presion-pulso ?pp ))
(( test
test (( << ?pp
pp 50
??pp 50 )) ))
(( or
or (( paciente
paciente auscultacion
auscultacion murmullo-
murmullo-diastolico ))
murmullo-diastolico
?z
?z << –– (( paciente
paciente percusion
percusion corazon-
corazon-agrandado )) )) ))
corazon-agrandado

Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.2. Representación del Conocimiento


en Objeto
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
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
bind ?a
?a rectangular
rectangular )) ;;;
;;; vble.
vble.. uni-
vble uni-valuada
uni-valuada
(( assert
assert (( mesa
mesa forma
forma ?a ?a )) ))
(( bind
bind ?lista
?lista (( create
create (( forma
forma rectangular
rectangular )) )) )) ;;;
;;; vble.
vble.. Multivaluada
vble Multivaluada
((assert
assert (mesa
(mesa ?lista))
?lista))
– Eliminación de Valores
?z
?z << –– (( paciente
paciente percusion
percusion corazon-
corazon-agrandado ))
corazon-agrandado
(( retract
retract ?z
?z ))
(( retract
retract 66 )) ;;;
;;; 66 es
es el
el índice
índice del
del hecho
hecho que
que sese quiere
quiere eliminar
eliminar
(( bind
bind ?a
?a 66 )) ;;;
;;; se
se puede
puede asignar
asignar aa una
una vble.
vble.. el
vble el índice
índice
(( retract
retract ?a
?a ))

14
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.2. Representación del Conocimiento


en Objeto
2.3.2.3. Hechos: Sistemas Basados– en
– Atributo Reglas
Valor
™ Ejemplo: (( defrule
defrule estenosis
estenosis
(( paciente
paciente dolencia
dolencia dolor-
dolor-de-
de-pantorrilla ))
dolor-de-pantorrilla
(( dolor
dolor presencia
presencia andando
andando ))
(( dolor
dolor ausencia
ausencia en-
en -reposo ))
en-reposo
=>
=>
(( assert
assert (( dolor
dolor causa
causa estenosis-
estenosis-arterial )) ))
estenosis-arterial
(( assert
assert (paciente
(paciente enfermedad
enfermedad regurgitación-
regurgitación -aortica )) )) ))
regurgitación-aortica

™ Limitaciones del paradigma obj. – atrib. – valor


– No permite expresar relaciones explícitas entre objetos de dolencia
una forma natural (redes semánticas / frames).
paciente
paciente auscultación
– Un esquema de objs. define las interrelaciones entre objs.,
percusión
y entre objs. y sus atribs. (redes semánticas / frames)
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. Uni-
Uni- Repr.
Repr. Lóg.
Lóg. de
de Atrib.
Atrib. Multi-valor
Multi-valor
(o
(o aa v)
v) a(o)
a(o) == vv a(o,v)
a(o,v)
(o
(o aa ?x)
?x)
(test
(test (neq
(neq ?x
?x v))
v)) ¬¬ a(o)
a(o) == vv ¬¬ a(o,v)
a(o,v)
(not
(not (o
(o aa v))
v)) ¬¬ a(o)
a(o) == vv ¬¬ a(o,v)
a(o,v)
(o
(o aa ?x)
?x)
(test
(test (eq
(eq ?x
?x v))
v)) a(o)
a(o) == vv --
--
(o a ?x)
(o a ?x)
(test
(test (<
(< ?x
?x v))
v)) (o)
(o) << vv --
--
(o
(o aa ?x)
?x)
(test
(test (>
(> ?x
?x v))
v)) a(o)
a(o) >> vv --
--
(assert
(assert (o a v))
(o a v)) a(o)
a(o) == vv a(o,v)
a(o,v)
(retract
(retract <term>)
<term>) --
-- --
--

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
(or
(or cc 1,1 c 1,2 ........
1,1 c 1,2 ........ cc 1,m )
1,m )
••
••
••
(or
(or cc b,1 c n,2 ........
b,1 c n,2 ........ cc n,p )
n,p )

=>
=>
aa11 aa22 ........
........ aaqq))
((c'
((c'1,1 v c' 1,2 vv .....
1,1 v c'1,2 ..... vv c'
c'1,m )) ^
1,m)) ^
••
••
••
((c'
((c' n,1
n,1
v
v c'
c' n,2
n,2
vv .....
..... vv c'
c' n,p ))
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
™ Ejemplo (( sangre
sangre presión-
presión-asistólica ?ps
presión-asistólica ps ))
??ps
(( test
test (( >> ?ps
ps 140
??ps 140 )) ))
(( sangre
sangre presión-
presión -pulso ?pp
presión-pulso pp ))
??pp
(( test
test (( >> ?pp
pp 50
??pp 50 )) ))
(( or
or (( paciente
paciente auscultación
auscultación murmullo-
murmullo -diastólico ))
murmullo-diastólico
(( paciente
paciente percusión corazón-agrandado )) ))
percusión corazón-
corazón-agrandado
=>
=>
(( assert
assert (( paciente
paciente enfermedad
enfermedad regurgitación-
regurgitación-aórtica )) )) ))
regurgitación-aórtica

(( presión-
presión-asistólica( sangre
presión-asistólica( sangre )) >> 140
140 ^^ presión-
presión-pulso( sangre
presión-pulso( sangre )) >> 50
50 ^^
(( auscultación(
auscultación( paciente,
paciente, murmullo-
murmullo -diastólico )) vv
murmullo-diastólico
percusión(
percusión( paciente,
paciente, corazón-
corazón -agrandado )) )) ))
corazón-agrandado
ÆÆ
enfermedad(
enfermedad( paciente,
paciente, regurgitación-
regurgitación -aórtica ))
regurgitació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 uni-
uni-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 multi-
multi-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)
a(o, v) y ¬ a(o, v) inconsistentes
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)

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: D enfermedadmm:2
D == {{ enfermedad :2{{ regurgitación-
regurgitación-aortíca,
aortíca, arteriosclerosis
regurgitación-aortíca, arteriosclerosis }},, edad
edadss:: int
int }}
– Hechos
enfermedadmm == {{ arteriosclerosis
{{ enfermedad arteriosclerosis }, edadss == 70
}, edad 70 }}

(( 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(
enfermedad( paciente,
paciente, regurgitación-
regurgitación -aórtica ),),
regurgitació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: C1 ÆA1
R1: C1 ÆA1 H1
H1 Añadir /
Eliminar
R2: C2 ÆA2
R2: C2 ÆA2 H2
H2 Hechos
.. ..
.. ..
.. ..

Pattern-Matching
Encadenamiento
Inferencial
Selección
Selección
Reglas Aplicables
Control Resolución
Resolución de
de Conflictos
Conflictos
Motor de Regla a Aplicar
Inferencia Ejecución Acciones
Ejecución
Externas

18
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.4. Inferencia
en SistemasInferencial
2.3.4.1. Encadenamiento Basados en Reglas
™ Inferencia dirigida por el objetivo OBJETIVOS

(backward)
backward)
– fbf implicación usadas como B- B-reglas: SE SATISFACEN
OBJETIVOS EN BH
SI
FIN

• Partiendo de la fbf objetivo, se NO


obtienen BH objetivos parciales hasta SELECCIONAR REGLAS CUYAS
PATTERN
que se satisface la condición de CONCLUSIONES SE IDENTIFICAN
CON OBJETIVOS
MATCHING

terminación (BH inicial).


– Se deduce sólo lo que es necesario en la HAY REGLAS NO PREGUNTAR A

demostración. APLICABLES USUARIO POR


OBJETIVOS

– Características: SI

• Más parecido a la conducta humana SELECCIONAR UNA REGLA


RESOLUCION DE
CONFLICTOS

(eficacia).
• Obtiene respuestas a preguntas. OBJETIVOS = PREMISAS REGLA SELECCIONADA
GRA
AND

• Permiten preguntar al usuario. EJECUCION

• Necesita objetivos explícitos.

Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.4. Inferencia
en SistemasInferencial
2.3.4.1. Encadenamiento Basados en Reglas
™ Inferencia dirigida por los HECHOS INICIALES
GRAFO
AND / OR

datos (forward)
forward)
– fbf implicación usadas como F-F- ENCONTRAR REGLAS POSIBLES
(PREMISAS SATISFECHAS POR LA BH)
PATTERN
MATCHING
reglas:
• Operan sobre la BH inicial HAY
NO
FIN
hasta satisfacer las fbf REGLAS

objetivos. SI

– Se deduce todo lo que se puede SELECCIONAR UNA REGLA


RESOLUCION

deducir.
DE CONFLICTOS

– Características: MODIFICACION BH (AÑADIR/ELIMINAR)


OPERACIONES E/S
EJECUCION

• Sistemas generativos.
• Obtiene todos los nuevos NO SI
PROBLEMA
hechos deducibles. RESUELTO
FIN

19
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.4. Inferencia
en Inferencial
2.3.4.2. Control Sistemas Basados en Reglas
™ 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

2.3.5. Patrones
en Sistemas Basados en Reglas
LHS
Si ANTECEDENTE entonces CONSECUENTE
RHS ™ El leng.
leng. de repr.
repr. del conoc.
conoc.
P1 ^ P2 ^ . . . ^ Pm A1 ^ A2 ^ . . . ^ Am
descrito hasta ahora nos
permite utilizar:
– Pares variable – valor
Elementos Patrón Acciones
– Tuplas obj. – atr. – valor
– Reglas de Producción
Constantes Variables Modificaciones Acciones
de la BH Externas

™ 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:
10 ≡≡ (( xx 10
xx == 10 10 ))
– Objeto – atributo – valor:
valor: puede ser representado por un
patrón constituido por tres constantes:
(( horno,
horno, temperatura, 100 )) ≡≡ (( horno
temperatura, 100 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 ))
=>
=>
– Un elemento patrón ei puede ser: assert (( aa11 aa22 aa33 .........
(( assert ......... aamm )) ))
• Constante Patrón:
Patrón: No contiene variables
(hambriento Pedro)
• Variable Patrón Uni-
Uni-Valor:
Valor: su nombre empieza con el signo?:
?x, ?sexo, ?edad, ......
• Variable Patrón Multi-
Multi-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
defrule regla-
regla -1
regla-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 (+ pattern-
pattern-matching).
matching).

22
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.5. Patrones
enMatching
2.3.5.1. Pattern Sistemas Basados en Reglas
™ 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 Aplicabilidad de una regla
P1 ^ P2 ^ . . . ^ Pm
Pattern Matching

Elementos Patrón Conjunto de


INSTANCIAS Base de
Constantes Variables 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
2.3.5.1. Pattern Sistemas Basados en Reglas
H1: (HAMBRIENTO PEDRO)
(defrule COMER
H2: (HAMBRIENTO PABLO)
(HAMBRIENTO ?PERSONA)
H3: (COMESTIBLE MANZANA)
(COMESTIBLE ?ALIMENTO)
→ H4: (COMESTIBLE MELOCOTON)
(assert ( Come ?PERSONA el ?ALIMENTO))
H5: (COMESTIBLE PERA)

BASE DE REGLAS BASE DE HECHOS


(p1 ? p2 ..... ?pn)
Asumible por defecto
I1: {?PERSONA = PEDRO, ?ALIMENTO = MANZANA} {H1, H3}
Match: listas con variables I2: {?PERSONA = PEDRO, ?ALIMENTO = MELOCOTON} {H1, H4}
instanciadas. I3: {?PERSONA = PEDRO, ?ALIMENTO = PERA} {H1, H5}
I4: {?PERSONA = PABLO, ?ALIMENTO = MANZANA} {H2, H3}
No match: lista vacía I5: {?PERSONA = PABLO, ?ALIMENTO = MELOCOTON} {H2, H4}
I6: {?PERSONA = PABLO, ?ALIMENTO = PERA} {H2, H5}
( ≈ false).
not (p1 ? p2 ......? pn):
Asumible como la negación
Complementario a Igual.

23
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas

2.3.5. Patrones
enMatching
2.3.5.1. Pattern Sistemas Basados en Reglas
‹ 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 mono-
mono-valor ?x está ligada a la constante d.
– $?y = (c1 ...... cn) : la variable multi-
multi-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 ?x=g, ?y=b, $?z=(c d)

(a d a a b) (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
2.3.5.1. Pattern Sistemas Basados en Reglas
– 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
?x=Juan ?y=55 $?z=(aneurisma
$?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 multi-
multi-valor).
• Var. patrón mono-
mono-valor: sólo se instancia por una única cte.
cte.
• Var. patrón multi-
multi-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
2.3.5.1. Pattern Sistemas Basados en Reglas
™ Otros predicados de las Reglas de Producción:
z = > < : se aplican a variables instanciadas.
instanciadas.

z assert : añadirá 'patrón' a la base de hechos. Las variables


deben estar instanciadas.
instanciadas.

z 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
2.3.5.2. Ejemplo -1 Basados en Reglas

BH= {(Persona nombre Juan edad 10)}

( defrule regla-
regla -1
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
2.3.5.2. Ejemplo -2 Basados en Reglas
BH ={(lista a b f g h) , (elemento g)}
(( defrule
defrule R1 R1 (( defrule
defrule R2R2
?f
?f <-
<-- (lista
< (lista ?x
?x $?y) (lista
(lista ?x
?x $?)
$?)
(elemento
(elemento ?e) ?e) (elemento
(elemento ?x)
?x)
((test
test ((neq
neq ?e ?x))
=>
=>
=>
=> ((assert
assert (El
(El elemento
elemento ?x
?x pertenece
pertenece aa la
la lista))
lista))
((retract
retract ?f)
?f) ((printout
printout t “El
“El elemento “ ?x “ pertenece aa la
elemento “ ?x “ pertenece la lista”))
((assert
assert (lista $?y)))

(( defrule
defrule R3R3
(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
2.3.5.2. Ejemplo – 2: Basados en Reglas
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=a, $?y= (b f g h), {?x=b, $?y= (f g h), {?x=f, $?y= (g h),
?e=g} ?e=g} ?e=g}
ejecución
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)

H6: (El elemento g pertenece a la lista)


{?x=g, $?y= (h),
?e=g}

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
2.3.5.2. Ejemplo -2 Basados en Reglas
¿ (El elemento g pertenece a la lista) ?

Objetivos
O2: (lista g $?) O4: (lista ?x g $?)
O1: (El elemento g pertenece a la lista)
O3: (elemento g)
O3: (elemento g) ?x ≠ g

matching {?x=g} matching {$?y=(g $?)} {$?y=(?x g $?)}

R1, R2, R3 R1, R2, R3 R1, R2, R3

O5: (lista ?x1 ?x g $?) O6: (lista ?x2 ?x1 ?x g $?)


O3: (elemento g) O3: (elemento g)
?x1 ≠ g ?x2 ≠ g

{$?y=(?x1 ?x g $?)} se satisface objetivo


{?x2=a, ?x1=b, ?x=f, $?=(h)}
R1, R2, R3 BH
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
2.3.5.2. Ejemplo -2 Basados en Reglas
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=f, $?y=(g h)}


{?x=a, $?y=(b f g h)}

ejecución
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)

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
2.3.5.2. Ejemplo -3 Basados en Reglas
BH = {(libro nombre Quijote cuesta 5000 calidad media)
(persona nombre Juan gana 2000)}
(( defrule R1R1 “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
(libro nombre ?x cuesta ?y calidad ?z) ?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 R2R2 “Una persona que
que gana
gana más
más dede 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
2.3.5.2. Ejemplo -3 Basados en Reglas
BH = {(libro nombre Quijote cuesta 5000 calidad media)
(persona nombre Juan gana 2000)}

(( defrule
defrule R3R3 “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

Вам также может понравиться