lunes, 9 de junio de 2014

EJERCICIOS DE 1.3 REGLAS (Capitulo 1)

1.3. Traduzca las siguientes sentencias a reglas Prolog.
a). Cualquiera que tiene un hijo es feliz (introduzca la relación unaria llamada 'feliz').
X es feliz, si X es progenitor
  feliz (X) :- progenitor (X,Y)
Esta pregunta de dos pasos se puede escribir en Prolog:
?- feliz(X).

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,Y):-hermana(Y,Z),progenitor(X,Y),progenitor(X,Z),mujer(Z).

1.4. Defina la relación 'nieto' usando la relación 'progenitor'.
Recomendación: Será similar a la relación abuelo.

 Ahora queremos preguntar ¿quién es el nieto de roberto?

El programa no incluye la relación 'nieto', sin embargo podemos hacer la pregunta en dos pasos:
1). De Quién es progenitor roberto, asumimos que de algún Y.
2). De Quién es progenitor este Y, asumimos que de algún X.
Esta pregunta de dos pasos se puede escribir en Prolog:
?- progenitor( roberto, Y) , progenitor( Y, X ).
X = jaime
Y = patricia
En general, ¿quién es el nieto de Z?

El programa no incluye la relación 'nieto', sin embargo podemos hacer la pregunta en dos pasos:
1). De Quién es progenitor Z, asumimos que de algún Y.
2). De Quién es progenitor este Y, asumimos que de algún X.
Esta pregunta de dos pasos se puede escribir en Prolog:
?- progenitor( Z, Y) , progenitor( Y, X ).

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.
tia(X,Z):-hermana(X,Y),progenitor(Y,Z),mujer(X),diferente(X,Y).


No hay comentarios:

Publicar un comentario