Академический Документы
Профессиональный Документы
Культура Документы
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.
2
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
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
Declaración
Declaración del
del Dominio
Dominio de
de la
la BH:
BH: ONTOLOGÍA
ONTOLOGÍA
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
– Conjunto de Hechos
{ x1s = c1, ......., xps = cp, x1m = C1, ......., xqm = Cq }
donde ci son constantes y Cj conjuntos de constantes.
5
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
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).
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
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
7
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
(( defrule
defrule <name>
<name>
<conditional-element>
<conditional-element>++
=>
=>
<action>*
<action>*
))
8
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
• 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
• 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.).
10
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
(( 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 )) ))
))
11
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
12
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
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º
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
14
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
dolor
dolor presencia
ausencia
15
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
=>
=>
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
(( 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
17
Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas
(( 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 }}
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
– Características: SI
(eficacia).
• Obtiene respuestas a preguntas. OBJETIVOS = PREMISAS REGLA SELECCIONADA
GRA
AND
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
deducir.
DE CONFLICTOS
• 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.
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
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.
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 ))
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)
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 )) )) ))
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
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)
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)
(a d a a b) (g b c d a c d)
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)
– 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.
2.3.5. Patrones
en Sistemas
2.3.5.2. Ejemplo -1 Basados en Reglas
( 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 ) ) )
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”))
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)
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)
R1, R2, R3
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
H2: (elemento g)
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)
ejecución
R1, R2, R3 R1, R2, R3 R1, R2, R3
BR BR BR
BH BH
R1, R2, R3 ..
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)
))
))
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