Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Sistemas
basados
en
el
conocimiento
1 Introduccin
Un
sistema
basado
en
el
conocimiento
(SBC)
es
un
sistema
informtico
capaz
de
emular
las
prestaciones
de
un
experto
humano
en
un
rea
concreta
de
conocimiento
especializado.
Ms
concretamente,
el
sistema
experto
debe
ser
capaz
de
llevar
a
cabo
las
siguientes
tareas:
Figura
1.
Arquitectura
de
un
sistema
experto
<izq>
<der>
SI
<izq>
ENTONCES
<der>
Las
palabras
NO,
Y,
O
se
emplean
a
menudo
para
agrupar
los
hechos
del
antecedente
o
del
consecuente.
No
deben
confundirse,
sin
embargo,
con
las
correspondientes
conectivas
lgicas.
Cada
lenguaje
o
sistema
define
un
significado
diferente
para
estas
palabras,
implementando
de
esta
forma
diversas
versiones
del
razonamiento
por
defecto,
razonamiento
no
montono,
etc.
En
los
casos
ms
sencillos,
una
base
de
conocimientos
formada
por
hechos
y
reglas
puede
visualizarse
como
un
hipergrafo
llamado
red
de
inferencias.
Los
nodos
raz
corresponden
a
respuestas
o
hiptesis
finales.
Los
nodos
hoja
corresponden
a
hechos
primitivos
que
se
consideran
datos
o
evidencias
y
deben
estar
presentes
en
la
memoria
de
trabajo
o
irse
preguntando
a
lo
largo
de
la
sesin
de
consulta.
Los
restantes
nodos
corresponden
a
hechos
o
hiptesis
intermedias
que
van
siendo
generadas
por
el
sistema.
Cada
regla
corresponde
a
un
conector
del
hipergrafo,
cuya
origen
es
<der>
y
cuyos
hijos
son
los
hechos
de
<izq>.
Por
ejemplo,
consideremos
una
base
de
conocimiento
con:
a,
b
c
c
e
b,
f
g
a
c
b
g
f
Figura
2.
Red
de
inferencias
Inicializar(memoria-trabajo);
Mientras
no
configuracin-final(memoria-trabajo)
conjunto-reglas
aplicables(memoria-trabajo);
R
resolver-conflictos(conjunto-reglas);
memoria-trabajo
aplicar(R,
memoria-trabajo)
fin-mientras;
memoria-trabajo
aplicar(R,
memoria-trabajo)
Algoritmo
1.
Motor
de
inferencias
fin-mientras;
La
descripcin
anterior
es
muy
general.
Para
disear
un
motor
de
inferencias,
es
necesario
especificar
cundo
una
regla
es
aplicable
a
la
memoria
de
trabajo
(rule
triggering),
cul
es
el
criterio
de
seleccin
en
caso
de
varias
posibilidades
(resolucin
de
conflictos)
y
en
qu
consiste
la
ejecucin
de
una
regla
(rule
firing).
Segn
se
haga
esto,
tendremos
dos
grandes
clases
de
motores:
Mem-trabajo
hechos-iniciales;
Mientras
no
configuracin-final(mem-trabajo)
conjunto-reglas match(mem-trabajo,antecedentes);
R resolver-conflictos(conjunto-reglas);
C consecuente(R);
fin-mientras;
obj seleccionar(mem-trabajo);
R resolver-conflictos(conjunto-reglas);
A antecedente(R);
fin-mientras;
Hay
gasolina?
Supongamos
que
la
respuesta
es
que
s.
El
motor
de
inferencia
aadira
al
conjunto
de
datos
del
caso,
como
hecho
ya
probado,
que
hay
gasolina,
de
forma
que
esta
pregunta
no
vuelva
a
plantearse
de
nuevo.
Una
vez
comprobado
este
objetivo,
el
conjunto
de
objetivos
a
probar
es
OBJ={motor
enciende?}.
Dado
que
no
es
consecuente
de
ninguna
regla,
el
sistema
preguntar
al
usuario:
Enciende
el
motor?
Supongamos
que
la
respuesta
es
que
no.
Tenemos
entonces
que
el
antecedente
de
la
regla
1
se
satisface,
y
por
tanto
se
considera
probado
que
el
coche
tiene
un
problema
de
batera.
Algunos
sistema
puede
que
paren
en
ese
momento,
otros
continuarn
razonando.
Supongamos
que
hemos
definido
que
la
configuracin
final
de
la
memoria
de
trabajo
se
alcanza
cuando
la
agenda
est
vaca.
En
ese
caso,
intentaramos
probar
la
siguiente
hiptesis,
problemas
con
la
batera,
que
es
el
consecuente
de
la
regla
2.
Sus
antecedentes
se
convierten
en
los
nuevos
objetivos.
Como
en
los
datos
del
caso
figura
que
el
motor
no
enciende,
el
objetivo
ahora
es
probar
si
las
luces
encienden
o
no.
Se
preguntara
al
usuario:
Encienden
las
luces?
Supongamos
que
la
respuesta
es
s.
Se
aade
a
los
datos
del
caso,
y
se
considera
que
no
se
ha
podido
demostrar
si
hay
un
problema
de
batera
o
no.
El
sistema
intentara
ahora
comprobar
si
hay
problemas
con
el
arranque,
pero
dados
los
datos
del
caso
(el
motor
no
funciona
y
las
luces
no
encienden),
el
sistema
no
puede
inferir
nada
acerca
del
sistema
de
arranque.
La
interaccin
completa
con
este
sistema
tan
simple
sera:
Sistema
Hay
gasolina?
Usuario.
S.
Sistema
Enciende
el
motor?
Usuario.
No.
Sistema
Encienden
las
luces?.
Usuario.
S
Sistema.
Creo
que
el
problema
es
de
las
bujas.
Ntese
que,
en
general,
resolver
problemas
utilizando
el
encadenamiento
hacia
atrs
conlleva
un
proceso
de
bsqueda
en
el
espacio
de
las
posibles
formas
de
resolver
un
problema,
comprobndolas
todas
sistemticamente.
Otro
enfoque
consiste
en
utilizar
el
encadenamiento
hacia
delante.
Se
trabaja
a
partir
de
los
datos
iniciales
del
caso.
Supongamos
en
nuestro
ejemplo
que
los
datos
iniciales
son:
{hay
gasolina,
no
enciende
el
motor,
no
encienden
las
luces}.
Se
intenta
ver
qu
reglas
tienen
estos
hechos
en
sus
antecedentes.
En
principio,
la
nica
regla
aplicable
es
la
regla
4,
ya
que
es
la
nica
cuyo
antecedente
est
en
el
conjunto
de
datos
iniciales.
Tras
la
aplicacin
de
la
regla
Mnima
espera.
Tienen
prioridad
las
reglas
que
llevan
menos
tiempo
en
el
conjunto
de
reglas
aplicables.
Mxima
espera.
Tienen
prioridad
las
reglas
que
llevan
ms
tiempo
en
el
conjunto
de
reglas
aplicables.
Ejercicios
1. Supongamos
un
sistema
con
las
siguientes
reglas:
R1:
SI
el
motor
no
se
enciende
y
el
motor
recibe
gasolina,
ENTONCES
el
problema
es
de
las
bujas
R2:
SI
el
motor
no
enciende
y
las
luces
no
se
encienden,
ENTONCES
el
problema
es
de
la
batera
R3:
SI
el
motor
no
se
enciende
y
las
luces
encienden,
ENTONCES
el
problema
es
del
arranque
R4:
SI
hay
gasolina
,
ENTONCES
el
motor
recibe
gasolina
Supongamos
que
los
datos
del
caso
son
{hay
gasolina,
motor
no
enciende,
luces
encienden}.
Describe
el
funcionamiento
del
motor
de
inferencias
bajo
los
siguientes
supuestos:
10
11