jueves, 7 de marzo de 2013

ejercicio 1.6

1.6. Considere la siguiente definición alternativa de predecesor:
predecesor( X, Z) :- progenitor( X, Z).
predecesor( X, Z) :- progenitor( Y, Z) , predecesor( X, Y).
¿es apropiada esta definición? Si
 ¿puede usted dibujar un diagrama que corresponda con
esta definición? 
 
 
 
   
Diagrama.-
 

imagenes de los ejercicios 1.3,1.4 y 1.5






Ejercicios

Ejercicios
1.3. Traduzca las siguientes sentencias a reglas Prolog.
a). Cualquiera que tiene un hijo es feliz (introduzca la relación unaria llamada 'feliz'). 
 feliz(X):- padre (X,Y).
1 ?- feliz(X).
X = pamela ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = patricia.

b). Para todo X, si X tiene un hijo que tiene una hermana, entonces X tiene dos hijos
(introduzca la relación tiene-dos-hijos). 
 
tiene_dos_hijos(X):- padre(X,Y), padre(Y,Z).
2 ?- tiene_dos_hijos(X).
X = pamela ;
X = tomas ;
X = tomas ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = roberto ;
X = roberto ;
X = patricia.
 
 1.4. Defina la relación 'nieto' usando la relación 'progenitor'.
Recomendación: Será similar a la relación abuelo. 
 
es_nieto(X):- padre(Y,Z), padre(Z,X).
3?- es_nieto(X).
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
X = jaime ;
 
1.5. Defina la relación tia( X, Y) en términos de las relaciones 'progenitor' y
'hermana'. Dibuje primero un diagrama para ésta relación.
mujer(pamela).
mujer(elizabeth).
mujer(ana).
mujer(patricia).
es_hermana(X):- padre(Z,Y), padre(Z,X), mujer(X).
4 ?- es_hermana(X).
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
es_tia(X):- es_hermana(X), padre(Z,Y), padre(Z,X), mujer(X).
 5 ?- es_tia(X).
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = ana ;
X = patricia ;
X = patricia ;
X = ana ;
X = ana ;
X = patricia;