Fecha de clases: 22 de julio/2014
INTRODUCCIÓN
El propósito es realizar un ejercicio en PROLOG que identifique el parentesco que tienen los integrantes de una familia y quienes tienen posibilidad de procrear. Para esto debe construir un árbol genealógico:
Base del conocimiento:
hijo(angel,hector).
hijo(victoria,hector).
hijo(jose,hector).
hijo(feliciano,hector).
hijo(salvador,hector).
hijo(miguel,angel).
hijo(angelica,angel).
hijo(nathaly,victoria).
hijo(erik,jose).
hijo(cinthia,jose).
hijo(dora,jose).
hijo(wellintong,feliciano).
hijo(andres,feliciano).
hijo(hirene,feliciano).
hijo(liana,leyo).
hijo(marisol,leyo).
hijo(robin,leyo).
hijo(frecia,leyo).
hijo(alejandro,liana).
hijo(cristhiam,liana).
hijo(diana,marisol).
hijo(kerly,robin).
hijo(adriana,robin).
hijo(erik,frecia).
hijo(cinthia,frecia).
hijo(dora,frecia).
hombre(hector).
hombre(angel).
hombre(jose).
hombre(feliciano).
hombre(salvador).
hombre(leyo).
hombre(robin).
mujer(victoria).
mujer(liana).
mujer(marisol).
mujer(frecia).
Reglas:
hermano(X,Y):-hijo(X,Z),hijo(Y,Z).
primo(X,Y):-hijo(X,Z),hijo(Y,W),hermano(Z,W).
primopaterno(X,Y):-hijo(X,Z),hijo(Y,W),hermano(Z,W),(hombre(W)).
primomaterno(X,Y):-hijo(X,Z),hijo(Y,W),hermano(Z,W),(mujer(W)).
tio(X,Y):-hijo(Y,Z),hermano(Z,X).
puedeprocrear(X,Y):-not(hermano(X,Y)),not(hijo(X,Y)),not(hijo(Y,X)),not(primo(X,Y)),not(tio(X,Y)),not(tio(Y,X)),not((hombre(X),hombre(Y));(mujer(X),mujer(Y))).
Pruebas:
Para esto, dentro del mismo PROLOG hacemos clic en File/Consult y seleccionamos ambos archivos (Base del Conocimiento y Reglas) una a la vez y escribimos:
Conclusión:
Todo depende de la correcta declaración de las reglas. El objetivo es que el programa sea eficaz en sus respuestas, para esto la base del conocimiento debe estar llena de datos específicos (esenciales); es decir, sólo los necesarios, y establecer buenas reglas para que esa base de conocimiento abastezca y genere las respuestas solicitadas.
No hay comentarios.:
Publicar un comentario