190 likes | 612 Views
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.
E N D
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 albatros. Solo con el afán de simplificar.
Reglas de clasificación • R1: • Six tiene peloentoncesx es mamífero • R2: • Six da lecheentoncesx es mamífero • R3: • Six tiene plumasentoncesx es ave
Reglas de clasificación • R4: • Six vuela y x pone huevos entoncesx es ave • R5: • Six es mamífero y x come carne entoncesx es carnívoro • R6: • Six es mamífero y x tiene dientes agudos y x tiene garras y x tiene ojos que miran hacia adelante entoncesx es carnívoro
Reglas de clasificación • R7: • Six es mamifero y x tiene pezuñas entoncesx es ungulado • R8: • Six es mamifero y x rumia entoncesx es ungulado
Reglas de Identificación • R9: • Six es carnívoro y x es color leonado y x tiene manchas oscuras entoncesx es una onza • R10: • Six es carnívoro y x es color leonado y x tiene franjas negras entoncesx es un tigre
Reglas de Identificación • R11: • Six es ungulado y x es color leonado y x tiene cuello largo y x tiene patas largas entoncesx es una jirafa • R12: • Six es ungulado y x es color blanco y x tiene franjas negras entoncesx es una jirafa
Reglas de identificación • R13: • Six es ave y x tiene patas largas y x tiene cuello largo y x es blanca y negra entoncesx es un avestruz • R14: • Six es ave y x no vuela y x nada y x es blanca y negra entoncesx es un pingüino
Reglas de Identificación • R15: • Six es ave y x vuela muy bien entoncesx 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.