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