Está en la página 1de 18

Sistema Experto

Ejemplo

Sistemas FNI
Lucio Salgado
Sistema Experto

 Nombre: Identificación de animales


 ZOO
 Tomado de Winston 1992
Descripción

 Se supone la existencia de un robot


(Robbie), que desea pasar el día en el
zoologico.
 Robbie puede percibir las
características básicas, como color,
tamaño y si un animal tiene pelo o da
leche, pero tiene capacidad limitada
para identificar objetos mediante estas
características.
Descripción

 Puede distinguir a los animales de


otros pero no puede concluir
directamente sobre un animal que
observa.
 Entonces Robbie decide construir un
sistema experto para identificar
animales
 El zoologico solo tiene siete animales:
Una onza, un tigre, una jirafa, una
cebra, un avestruz, un pingüino y un
Reglas de clasificación

 R1:
 Si x tiene pelo entonces x es mamífero
 R2:
 Si x da leche entonces x es mamífero
 R3:
 Si x tiene plumas entonces x es ave
Reglas de clasificación

 R4:
 Si x vuela y x pone huevos entonces x es ave
 R5:
 Si x es mamífero y x come carne entonces x
es carnívoro
 R6:
 Si x es mamífero y x tiene dientes agudos y x
tiene garras y x tiene ojos que miran hacia
adelante entonces x es carnívoro
Reglas de clasificación

 R7:
 Si x es mamifero y x tiene pezuñas
entonces x es ungulado
 R8:
 Si x es mamifero y x rumia entonces x
es ungulado
Reglas de Identificación

 R9:
 Si x es carnívoro y x es color leonado y x
tiene manchas oscuras entonces x es
una onza
 R10:
 Si x es carnívoro y x es color leonado y x
tiene franjas negras entonces x es un
tigre
Reglas de Identificación

 R11:
 Si x es ungulado y x es color leonado y x
tiene cuello largo y x tiene patas largas
entonces x es una jirafa
 R12:
 Si x es ungulado y x es color blanco y x
tiene franjas negras entonces x es una
jirafa
Reglas de identificación

 R13:
 Si x es ave y x tiene patas largas y x
tiene cuello largo y x es blanca y negra
entonces x es un avestruz
 R14:
 Si x es ave y x no vuela y x nada y x es
blanca y negra entonces x es un
pingüino
Reglas de Identificación

 R15:
 Si x es ave y x vuela muy bien entonces
x es un albatros
Implementación PROLOG

 Predicado Principal
identificar :- hipotesis(Animal),
write('Pienso que el animal es: '),
write(Animal),
nl,
undo.
Hipótesis
hipotesis(onza) :- onza, !.
hipotesis(tigre) :- tigre, !.
hipotesis(jirafa) :- jirafa, !.
hipotesis(cebra) :- cebra, !.
hipotesis(avestruz) :- avestruz, !.
hipotesis(pinguino) :- pinguino, !.
hipotesis(albatros) :- albatros, !.
hipotesis(desconocido). /* sin
diagnostico */
Reglas de Identificación

onza :-
carnivoro,
verify(es_color_leonado),
verify(tiene_manchas_oscuras).
tigre :-
carnivoro,
verify(es_color_leonado),
verify(tiene_franjas_negras).
Reglas de Clasificación
mamifero :- verify(tiene_pelo), !.
mamifero :- verify(da_leche).
ave :- verify(tiene_plumas), !.
ave :- verify(vuela),
verify(pone_huevos).
carnivoro :- mamifero,verify(come_carne), !.
carnivoro :- mamifero,verify(tiene_dientes_agudos),
verify(tiene_garras),
verify(tiene_ojos_que_mira_hacia_adelante).
Para preguntar
ask(Question) :-
write('El animal tiene la siguiente caracteristica : '),
write(Question),
write('? '),
read(Response),
nl,
( (Response == yes ; Response == y)
->
assert(yes(Question)) ;
assert(no(Question)), fail).
Verificar

verify(S) :-
(yes(S)
->
true ;
(no(S)
->
fail ;
ask(S))).
Elimina afirmaciones

undo :- retract(yes(_)),fail.
undo :- retract(no(_)),fail.
undo.

También podría gustarte