Está en la página 1de 10

Sistemas Basados en Reglas SBR

Motor de Inferencia

Experto Módulo Usuario


de Interface
Adquisición Base Módulo de de
del de Base de Explicación Usuario
Conocimiento Datos Conocimientos
(Hechos) (Reglas)

Matilde Césari 1
Sistemas Basados en Reglas

Matilde Césari 2
Inferencia en Sistemas de Reglas

Observación

R1: “ Si temperatura
ambiente > 20ºC Y
humedad relativa >65%
Entonces es probable que
haya tormentas”

Misma conclusión con


pérdida de información
(hace calor, atmósfera
húmeda) que puede ser
útil a la hora de deducir
nuevo conocimiento

Matilde Césari 3
El Proceso de Razonamiento

Parte de hechos para cumplir antecedentes y ejecutar consecuentes

Parte de los estados meta y trata de cumplir los


antecedentes necesarios para llegar a ellos

Cuando usamos cada uno?

Matilde Césari 4
Control del razonamiento

Factores que determinan la importancia del orden

Contenido de la información
• Las reglas más específicas y las que tratan con excepciones deben
aplicarse antes que las generales

Eficiencia

Diálogo
• El sistema no debe preguntar lo que puede deducir
• El orden de las preguntas debe seguir una línea de razonamiento
clara

Añadir nuevas premisas para controlar las reglas a aplicar en cada punto de la inferencia

Matilde Césari 5
•Aumenta la expresividad de las reglas
Reglas con variables •También la complejidad de su gestión
•Facilita la modificación de reglas

Matilde Césari 6
Campos de Aplicación

Matilde Césari 7
GUIA PARA LA CONSTRUCCIÓN DE SBR
Paso 1: Construya la base de conocimiento en Prolog, utilizando lógica de predicados

Reglas Hechos predicado(argum).

predicado(argumentos) :- predicado(argum), … , predicado(argum).

animal('LEON') :- clase(mamifero) , alimentacion(carnivoro) .


Quiere decir: Un animal es un tigre si es mamífero y carnívoro.

Paso2: Construya las preguntas en donde solicitará al usuario las características del
animal que desea clasificar y donde se explique por qué se hace cada pregunta:
pregunta :-
Preguntas write(' Titulo con la conulta que hace SBR:'),nl,nl,
write('1. opcion A.'),nl,
Una clçausula por cada write('2. opcion B.'),nl,
pregunta, donde la cabeza es write('3. opcion C.'),nl,
una propocicion y el cuerpo write('4. Por qué se hace esta pregunta?'),nl,
contiene los predicados que
muestran el menu y leen la read(N),
respuesta. clasificar(N) .

Hechos clasificar1(1):-assert(predicado(argum)),!.
Nuevos hechos que se incorporan a
clasificar1(2):-assert(predicado(argum)),!.
la memoria de trabajo con el clasificar1(3):-assert(predicado(argum)),!.
predicado assert clasificar1(4):-write(‘Explicacion sobre la pregunta'),nl,nl,pregunta1,!.
Cabeza: predicado con un clasificar1(_):-pregunta1,!.
argumento, que es el numero de
pregunta y en el cuerpo ingreso el
hecho a la Base Conocimiento.
Matilde Césari 8
GUIA PARA LA CONSTRUCCIÓN DE SBR

Paso 3: Defina un predicado que determine la clasificación de acuerdo con las


respuestas del usuario y explique la razón por la cual se llegó a esa conclusión:

clasificar:-
Una clçausula donde la cabeza animal(M),
es una propocicion y el cuerpo write('El animal puede ser : '),nl,
contiene los predicados que write(' '),write(M),nl,
muestran la respuesta e inician
el proceso de resolucion.
write('porque es el único animal que cumple la
condición de ser '),clase(X),nl,
write(X),write(' y '), alimentacion(Y),write(Y),nl.

Paso 4: Defina el predicado que permita ejecutar todo el programa:

Una clçausula donde la cabeza empezar:-


es una propocicion y el cuerpo pregunta1,
contiene los predicados que
permiten consultar las
pregunta2,
preguntas para generar los clasificar,!.
hechos y clasificar

Matilde Césari 9
GUIA PARA LA CONSTRUCCIÓN DE SBR
Ahora, qué hacer si usted quiere proveer al usuario la posibilidad de hacer otra consulta:

1.Limpie todas las acciones del predicado assert limpiar:-retract(clase(_)),


retract(alimentacion(_)),!.

continue('s'):-empezar,!.
2. Defina un predicado que permita
continue('S'):-empezar,!.
continuar si el usuario responde continue('n'):-continue('N').
adecuadamente: continue('N'):-write(' NOS AGRADÓ AYUDARTE '),nl,
write('............HASTA PRONTO............').

3. Defina el predicado que pregunte pregunta:-nl,nl,


al usuario si desea continuar. write('Desea continuar s/n : '), read(X), continue(X).

clasificar:-
4 Redefina el predicado animal(M),
consultar para que responda la write('El animal puede ser : '),nl,
write(' '),write(M),nl,
clasificación y pregunte al write('porque es …'),clase(X),nl,
usuario si desea continuar: write(X),write(' y '), alimentacion(Y),write(Y),nl,

limpiar, pregunta.

Matilde Césari 10

También podría gustarte