Está en la página 1de 8

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas e Informtica


Inteligencia Artificial
Tema: Ejercicio de PROLOG rbol Genealgico

Profesor:

Mg. Hugo Vega Huerta

Alumno:

Ramos Tanca, Jose Joel

ARBOL GENEALOGICO DE FAMILIA

TOMAS

MELCHORA

MARIAN O

PETRONILA

FABIAN

ANTONIA

KUKIN_

JOSEFINA

FLORENTINO

PAULA

NATALIA

ALEJANDRO

JOSE1

MARIO

GAVINO

MARCELINO

BERNARDINA

LUISA

RAMIRO

JOSE2

JOEL

ALEX

PATRICIA

ISMAEL

FLOR

DIDIER

CODIGO DEL PROGRAMA arbolgeneal.pl %hechos progenitor(tomas,florentino). progenitor(melchora,florentino). progenitor(marian,paula). progenitor(petronila,paula). progenitor(fabian,natalia). progenitor(antonia,natalia). progenitor(kukin,alejandro). progenitor(josefina,alejandro). progenitor(florentino,jose1). progenitor(paula,jose1). progenitor(florentino,mario).

progenitor(paula,gavino). progenitor(florentino,marcelino). progenitor(paula,marcelino).

progenitor(natalia,bernardina). progenitor(alejandro,bernardina). progenitor(natalia,luisa). progenitor(alejandro,luisa).

progenitor(marcelino,jose2). progenitor(bernardina,jose2). progenitor(marcelino,joel). progenitor(bernardina,joel).

progenitor(luisa,alex). progenitor(ramiro,alex). progenitor(luisa,ismael). progenitor(ramiro,ismael). progenitor(luisa,patricia). progenitor(ramiro,patricia).

progenitor(flor,diddier). progenitor(ismael,diddier).

varon(humberto). varon(ricardo).

varon(tomas). varon(fabian). varon(marian). varon(kukin). varon(florentino). varon(alejandro). varon(jose1). varon(mario). varon(gavino). varon(marcelino). varon(ramiro). varon(jose2). varon(joel). varon(alex). varon(ismael). varon(didier).

mujer(melchora). mujer(petronila). mujer(antonia). mujer(josefina). mujer(paula). mujer(natalia). mujer(bernardina). mujer(luisa).

mujer(patricia). mujer(flor).

%reglas

padre(X,Y) :- progenit(X,Y),varon(X). madre(X,Y) :- progenit(X,Y),mujer(X). hijo(X,Y) :- progenit(Y,X),varon(X). hija(X,Y) :- progenit(Y,X),mujer(X).

abuelo(X,Y) :- padre(X,Z),progenit(Z,Y). abuela(X,Y) :- madre(X,Z),progenit(Z,Y).

bisabuela(X,Y) :-madre(X,Z),abuelo(Z,Y). bisabuela(X,Y) :-madre(X,Z),abuela(Z,Y). bisabuelo(X,Y) :-padre(X,Z),abuelo(Z,Y). bisabuelo(X,Y) :-padre(X,Z),abuela(Z,Y).

nieto(X,Y) :- progenit(Y,Z),progenit(Z,X),varon(X).

nieto(X,Y) :- abuelo(Y,X),varon(X). nieto(X,Y) :- abuela(Y,X),varon(X). nieta(X,Y) :- abuelo(Y,X),mujer(X). nieta(X,Y) :- abuela(Y,X),mujer(X). bisnieto(X,Y) :- bisabuelo(Y,X),varon(X). bisnieto(X,Y) :- bisabuela(Y,X),varon(X).

bisnieta(X,Y) :- bisabuelo(Y,X),mujer(X). bisnieta(X,Y) :- bisabuela(Y,X),mujer(X). mismo(X,X). diferente(X,Y) :- not(mismo(X,Y)). hermanos(X,Y) :- progenit(Z,X),progenit(Z,Y),diferente(X,Y). hermanas(X,Y) :- progenit(Z,X),progenit(Z,Y),diferente(X,Y). tio(X,Y) :- hermanos(X,Z),antepasado(Z,Y),varon(X). tio(X,Y) :- primohermano(X,Z),antepasado(Z,Y),varon(X). tia(X,Y) :- hermanos(X,Z),antepasado(Z,Y),mujer(X). tia(X,Y) :- primahermana(X,Z),antepasado(Z,Y),mujer(X). tioabuelo(X,Y) :-hermanos(X,Z),abuelo(Z,Y),varon(X). tiaabuela(X,Y) :-hermanos(X,Z),abuela(Z,Y),mujer(X).

sobrino(X,Y) :- tio(Y,X),varon(X). sobrino(X,Y) :- tia(Y,X),varon(X). sobrina(X,Y) :- tio(Y,X),mujer(X). sobrina(X,Y) :- tia(Y,X),mujer(X).

primohermano(X,Y) :- padre(Z,X),tio(Z,Y),varon(X). primohermano(X,Y) :- madre(Z,X),tia(Z,Y),varon(X). primahermana(X,Y) :- padre(Z,X),tio(Z,Y),mujer(X). primahermana(X,Y) :- madre(Z,X),tia(Z,Y),mujer(X).

primo(X,Y) :-abuelo(Z,X),tioabuelo(Z,Y),varon(X). primo(X,Y) :-abuela(Z,X),tiaabuela(Z,Y),varon(X). prima(X,Y) :-abuela(Z,X),tiaabuela(Z,Y),mujer(X).

prima(X,Y) :-abuelo(Z,X),tioabuelo(Z,Y),mujer(X).

cuado(X,Y) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),hermanos(X,W),varon(X). cuado(Y,X) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),hermanos(X,W),varon(Y). cuada(X,Y) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),hermanos(X,W),mujer(X).

cuada(Y,X) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),hermanos(X,W),mujer(Y). suegro(X,Y) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),progenit(X,W),varon(X). suegra(X,Y) :- progenit(Y,Z),progenit(W,Z),diferente(Y,W),progenit(X,W),mujer(X).

yerno(X,Y) :- suegro(Y,X),varon(X). yerno(X,Y) :- suegra(Y,X),varon(X). nuera(X,Y) :- suegro(Y,X),mujer(X). nuera(X,Y) :- suegra(Y,X),mujer(X).

antepasado(X,Y) :- progenit(X,Y). antepasado(X,Y) :- progenit(X,Z),antepasado(Z,Y).

%Aumentado del ultimo laboratorio padrino(X,Y) :- varon(X),compadre(X,Z),proge(Z,Y),varon(Z). madrina(X,Y) :- mujer(X),comadre(X,Z),proge(Z,Y),mujer(Z). compadre(X,Y) :- varon(X),proge(Y,W),padrino(X,W). comadre(X,Y) :- mujer(X),proge(Y,W),padrino(X,W).

PROBANDO EL PROGRAMA

Se hizo el testeo del programa con los siguientes ejemplos: 1 ?- padre(marcelino,joel). true.

2 ?- madre(X,jose2). X = bernardina .

3 ?- hijo(X,marcelino). X = jose2 ; X = joel.

4 ?- tia(luisa,joel). true .

5 ?- bisabuela(natalia,didier). false.

6 ?- bisabuela(antonia,joel). true .

7 ?- hermanos(joel,jose2). true .

También podría gustarte