Ingeniera en Informtica y Sistemas Computacionales
Nombre: Luis Guillermo Cayo Tigasi Ciclo: Noveno Materia: Inteligencia Artificial Docente: Ing. Edison Aimacania Tema: rbol genealgico
Desarrollo En esta entrada trataremos sobre la representacin de un rbol genealgico en prolog mediante un ejemplo del rbol de la familia Francisco. Luego, codificaremos los hechos en Prolog, especificando quien es padre de quien, los hermanos, los hijos, to, sobrino, etc., segn se representa en el rbol genealgico y a partir de estas relaciones podremos codificar factores que expresen las dems relaciones de parentesco en la familia.
Base de conocimiento en texto %francisco==W esProgenitor(francisco,agustin). %agustin==X esProgenitor(francisco,juan). %juan==Y esProgenitor(francisco,carlos). %humberto==Z
%Pregunta esHermano(Y,X):-esProgenitor(W,Y),esProgenitor(W,X),esProgenitor(W,Z),X\==Z. esHijo(A,B):-esProgenitor(B,A). es_Tio(X,C):-esProgenitor(W,X),esProgenitor(W,Y),esProgenitor(Y,C),X\==Y. esNieto(A,W):-esProgenitor(W,X),esProgenitor(X,A),A\==X. esAbuelo(W,A):-esProgenitor(W,X),esProgenitor(X,A). esPrimo(A,C):-esProgenitor(Y,A),esProgenitor(X,C),X\==Y. esPadre(W,X):-esProgenitor(W,X). esSobrino(A,Y):-esProgenitor(W,Y),esProgenitor(W,X),esProgenitor(X,A),X\==Y. Base de conocimiento en captura de pantalla
rbol genealgico
Francisco Juan Agustn Carlos Mara Fabiola Luis Jorge Mirian Fabin Consultas de Hermano
Consulta de Hijos
Consulta de To
Consulta de Nieto
Consulta de Abuelo
Consulta de Primo
Consulta de Padre
Consulta de Sobrino
Conclusin Como se puede observar, a partir de los hechos obtenidos del rbol genealgico (relaciones de paternidad "esPadre" y los dems, podemos inferir todas las dems relaciones de parentesco como abuelo, primo, to, nieto, hermano entre otros. En manejo de variables se debe tener mucho cuidado, ya que al asignar una variable diferente a la que se est calculando nos puede presentar error y es muy complicado darse cuenta rpidamente. Es muy importante hacer un anlisis rpido en papel y posteriormente pasar a programa prolog, ya que el mnimo error que se cometa nos pueda producir error en la consulta, es decir nos mostrar otros datos que de pronto no nos sirva.