Você está na página 1de 9

PROLOG...

MI RBOL GENEALGICO CAPITULO 1

EN ESTE PROGRAMA DE PROLOG SE


ARAN CONSULTAS REFERENTE A MI
RBOL GENEALGICO

MI RBOL EN PROLOG

MI FAMILIA:
ABUELOS PATERNOS:
NAARCISO (LO PONGO CON DOBLE A PARA QUE SE VEA LA DIFERENCIA YA QUE MI
HERMANO SE LLAMA IGUAL)
MARA
ABUELOS MATERNOS:
JUAN
ANA
TOS PATERNOS:
ARTURO

PAULA
TOS MATERNOS:
JOSE
FIDENCIO
MIS PAPAS:
AMADOR
VICTORIA
HERMANOS:
NARCISO
RENE
YO MERO:
JESS
1.-PRIMERA CONSULTA.. MOSTRAR LOS PROGENITORES DE CADA UNO.

AQU LAS CONSULTAS QUE SE HACEN SON LAS SIGUIENTES:

2.- PREGUNTO QUIENES SON MIS HERMANOS


hermano(Y,jesus).
3.- PREGUNTO QUIENES SON MIS PAPAS
progenitor(X,jesus).
4.- PREGUNTO SI NARCISO ES MI HERMANO
hermano(narciso,jesus).
5.- PREGUNTO SI RENE ES MI HERMANO
hermano(rene,jesus).
6.- PREGUNTO QUIENES SON MIS ABUELOS
abuelo(X,jesus).
7.- PREGUNTO QUIENES SON MIS ABUELAS
abuela(X,jesus).
8.- PREGUNTO QUIENES SON LAS MUJERES DE LA FAMILIA
mujer(X).
9.- PREGUNTO QUIENES SON LOS HOMBRES DE LA FAMILIA
hombre(X).
10.- PREGUNTO SI NAARCISO(MI ABUELO), ES MI HERMANO
progenitor(naarciso,jesus).

ESTA ES MI PEQUEA APORTACIN EN PROLOG... ESPERO Y LES AYUDE O SIRVA A


USTEDES.

Los Bouvier, los Simpson y Prolog


Una de las familias ms famosas del mundo es sin duda alguna la
de Homero Simpson, serie animada creada por Matt Groening para Fox
Broadcasting Company, se trata de una familia disfuncional de clase
media que vive en un pueblo ficticio llamado
Springfield. Groening nombr a los personajes de esta serie en honor a
los miembros de su propia familia, sustituyendo su propio nombre por
el de Bart. Pero.. qu tiene que ver esta serie animada con
la inteligencia artificial, especficamente con la programacin
en Prolog?. La respuesta a esta pregunta es muy simple, una de las
primeras prcticas que se hacen en este lenguaje de programacin

consiste en representar el rbol genealgico de una familia


(comnmente la propia). Dado que muy pocos conocen a los
miembros de mi familia, decid hacer uso de una de la que muchos
conocen para facilitar las explicaciones :D. Para esto es necesario
explicar un poco la relacin entre Los Bouvier y Los Simpson.
y Clancy Bouvier son padres de Marge Paty y Selma por tanto es
la abuela de Bart Lisa y Maggie, todas la Bouvier usan un collar de
perlas, como los que utilizaba Jacqueline Kennedy Onassis, pues el
personaje de la abuela materna est inspirado precisamente en
esta persona. Abraham Simpson es el padre de Homero y Herbert, este
ultimo es medio hermano de Homero queAbraham tuvo con una
prostituta de un circo. La madre de Homero (Mona), es una activista
pacifista, hippie y prfuga de la justicia. Patty una de las hermanas
mayores de Marge (Selma es dos minutos menor que Patty) es una
fumadora compulsiva que odia a Homero aunque, desde que adopt
a Ling lo trata con ms respeto. Homero y Marge son los padres de
tres hijos alegres, traviesos ocurrentes e hiperactivos (nos porque
me acord de los propios ). Bien dado a conocer brevemente las
relaciones que existen entre ellos, es momento de codificar su rbol
genealgico.
Jacqueline

[Hechos]

esMadre(mona, homero).

esMadre(jacqueline, march).

esMadre(jacqueline, patty).

5
6
7
8
9
10

esMadre(jacqueline, selma).
esMadre(march, bart).
esMadre(march, lisa).
esMadre(march, maggie).
esMadre(selma, ling).
esPadre(abraham, herbert).
esPadre(abraham, homero).

11
12
13
14
15
16

esPadre(clancy, march).
esPadre(abraham, patty).
esPadre(abraham, selma).
esPadre(homero, bart).
esPadre(homero, lisa).

17

esPadre(homero, maggie).

18

% [Reglas] utilizadas para obtener otras relaciones.

19

esAbuela(A,B) :- esMadre(A, C), esMadre(C, B).

20

esAbuela(A,B) :- esMadre(A, C), esPadre(C, B).

21

esAbuelo(A,B) :- esPadre(A, C), esPadre(C, B).

22

esAbuelo(A,B) :- esPadre(A, C), esMadre(C, B).

23

esNieto(A,B) :- esAbuela(B,A).

24
25
26
27
28
29

esNieto(A,B) :- esAbuelo(B,A).
esNieta(A,B) :- esAbuela(B,A).
esNieta(A,B) :- esAbuelo(B,A).
esHermano(A,B) :- esMadre(N,A), esMadre(N,B), not(A=B).
esHermano(A,B) :- esPadre(N,A), esPadre(N,B), not(A=B).
esHermana(A,B) :- esMadre(N,A), esMadre(N,B), not(A=B).
esHermana(A,B) :- esPadre(N,A), esPadre(N,B), not(A=B).

30

esSobrino(A,B) :- esPadre(N,A), esHermano(N,B).

31

esSobrino(A,B) :- esMadre(N,A), esHermana(N,B).

32

esSobrina(A,B) :- esPadre(N,A), esHermano(N,B).

33

esSobrina(A,B) :- esMadre(N,A), esHermana(N,B).

34

esTio(A,B) :- esSobrino(B,A).

35

esTio(A,B) :- esSobrina(B,A).

36

esTia(A,B) :- esSobrino(B,A).

37
38
39
40
41
42

esTia(A,B) :- esSobrina(B,A).
esPrimo(A,B) :- esSobrino(A,C), esMadre(C,B), not(A=B).
esPrimo(A,B) :- esSobrino(A,C), esPadre(C,B), not(A=B).
esPrima(A,B) :- esSobrina(A,C), esMadre(C,B), not(A=B).
esPrima(A,B) :- esSobrina(A,C), esPadre(C,B), not(A=B).

Como se puede observar, a partir de las relaciones de paternidad que se codifican


en los hechosesMadre(X,Y) y EsPadre(X,Y), es posible deducir,
mediante reglas, las dems relaciones de parentesco que hay entre ellos
como abuelo, primo, to, nieto, hermano entre otros. Cul sera la regla para
establecer la relacin entre Homero y Herbert?

El siguiente trabajo es un arbol genealgico hecho en el programa Prolog.


El Prolog (o PROLOG), proveniente del francs PROgrammation en LOGique,es
un lenguaje de programacin lgico e interpretado, bastante conocido en el medio
de investigacin en Inteligencia Artificial.

Cdigo del Arbol Genealgico


hombre('Carlos').
hombre('Juan').
hombre('Pedro').
hombre('Pablo').
hombre('Mateo').
hombre('Andres').
hombre('Edwin').
mujer('Maria').
mujer('Paula').
mujer('Carla').
mujer('Lorena').

padre('Carlos','Juan').
padre('Carlos','Carla').
padre('Maria','Juan').
padre('Maria','Carla').
padre('Juan','Pablo').
padre('Juan','Mateo').
padre('Paula','Pablo').
padre('Paula','Mateo').
padre('Pedro','Andres').
padre('Carla','Andres').
padre('Andres','Edwin').
padre('Lorena','Edwin').
esposos('Maria','Carlos').
esposos('Juan','Paula').

esposos('Pedro','Carla').
esposos('Andres','Lorena').
esposos('Carlos','Maria').
esposos('Paula','Juan').
esposos('Carla','Pedro').
esposos('Lorena','Andres').

diferente(X,Y):- X \== Y.
hijo(A,B):-padre(B,A),hombre(A).
hija(A,B):-padre(B,A),mujer(A).
nieto(A,B):-padre(B,C),padre(C,A),hombre(A).%solo es nieto hombre
hermano(A,B):-padre(C,A),padre(C,B),diferente(A,B).
primo(A,B):-padre(C,A),padre(D,B),hermano(C,D),diferente(D,C).
tio(A,B):-padre(C,B),hermano(C,A),hombre(A).
abuelo(A,B):-nieto(B,A).
cuado(A,B):-esposos(B,C),hermano(A,C).
tia(A,B):-padre(C,B),hermano(C,A),mujer(A).
sobrino(A,B):-hijo(A,C),hermano(C,B),hombre(A).
sobrina(A,B):-hija(A,C),hermano(C,B),mujer(A).
suegro(A,B):-hijo(C,A);hija(C,A),esposos(C,B).

Você também pode gostar