Consultas en Prolog
-
Upload
fher-gallegos-aguilar -
Category
Documents
-
view
550 -
download
8
Transcript of Consultas en Prolog
![Page 1: Consultas en Prolog](https://reader037.fdocuments.ec/reader037/viewer/2022102905/55cf9d33550346d033aca5cf/html5/thumbnails/1.jpg)
Consultas en prologEjercicio 1
¿Eduardo y Alicia son hermanos?Consulta en prolog: hermano (eduardo, alicia).Resultado: true
¿Quiénes son los padres de Beatriz?Consulta en Prolog: padres (beatriz,X,Y).Resultados: X = alicia, Y = mario.
¿Eduardo es hijo de Mario?Consulta en Prolog: hijo (eduardo,mario).Resultados: false
¿Luis es hijo de Verónica?Consulta en Prolog: hijo(luis, veronica).Resultados: true
¿De quién es hija Beatriz?Consulta en Prolog: padres (beatriz, X, Y).Resultados: X = alicia, Y = mario.
Define reglas para las relaciones nieto y nieta.Regla para nieto:
nieta(Ella, X) :- mujer(Ella),padres(Ella, P, _),padres(P,X,_).nieta(Ella, X) :- mujer(Ella),padres(Ella, _, M),padres(M,_,X).
Regla para nieta:nieto(El, X) :- varon(El),padres(El, P, _),padres(P,X,_).nieto(El, X) :- varon(El),padres(El, _, M),padres(M,_,X).
Defina reglas para la relación abuelo y abuelaRegla para abuelo:
abuelo(El,X):- varon(El),padres(El,_,M),hijo(M,X).abuelo(El,X):- varon(El),padres(El,P,_),hija(P,X).abuelo(Ella,X):- mujer(Ella),padres(Ella,_,M),hijo(M,X).abuelo(Ella,X):- mujer(Ella),padres(Ella,P,_),hija(P,X).
Regla para abuela:abuela(Ella,X):- mujer(Ella),padres(Ella,_,M),hija(M,X).abuela(Ella,X):- mujer(Ella),padres(Ella,P,_),hija(P,X).abuela(El,X):- varon(El),padres(El,_,M),hija(M,X).abuela(El,X):- varon(El),padres(El,P,_),hija(P,X).
Edita el archivo familares.pl para agregar las reglas definidas en los pasos anteriores, guarda el archivo, cárgalo nuevamente en el intérprete de Prolog y realiza las siguientes consultas:
![Page 2: Consultas en Prolog](https://reader037.fdocuments.ec/reader037/viewer/2022102905/55cf9d33550346d033aca5cf/html5/thumbnails/2.jpg)
¿Eduardo es abuelo?Consulta en Prolog: abuelo(X,eduardo).Resultados: False
¿Victoria es abuela?Consulta en Prolog: abuela(X,victoria).Resultados: X=beatriz
¿De quién es nieto Luis?Consulta en Prolog: nieto (luis,X).Resultados: X=francisco
¿Francisco es abuelo de Beatriz?Consulta en Prolog: abuelo(beatriz,francisco).Resultados: true
Define al menos 2 de las siguientes relaciones: sobrino, sobrina, cuñado o cuñada. Codifícala en Prolog, modifica el archivo familares.pl y prueba que la relación está bien definida por medio de varias preguntas.
Relación: sobrina (beatriz,X).Codificación:
sobrino(El,X) :- varon(El),padres(El,M,_),hermana(M,X).sobrino(El,X) :- varon(El),padres(El,_,P),hermano(P,X).
sobrina(Ella,X):- mujer(Ella),padres(Ella,M,_),hermana(M,X).sobrina(Ella,X):- mujer(Ella),padres(Ella,_,P),hermano(P,X).
Ejercicio 2
¿Aprueba el examen Juan?Consulta en Prolog: aprueba_examen(juan).Resultados: true
¿Está Susana preparada para el examen?Consulta en Prolog: preparado_para_examen(susana).Resultados: true
¿Quién es el sabio del grupo?Consulta en Prolog: sabe_todo(X).Resultados: X=tomas
¿Quiénes aprueban el examen?Consulta en Prolog: aprueba_examen(X).Resultados: X=tomas, X=JuanDada la siguiente información:
Si X está encima de Y, entonces Y soporta a X. Si X está arriba de Y y se tocan una y otra, entonces X está encima de Y.
![Page 3: Consultas en Prolog](https://reader037.fdocuments.ec/reader037/viewer/2022102905/55cf9d33550346d033aca5cf/html5/thumbnails/3.jpg)
La taza está arriba del libro. La taza toca al libro
Escribe un programa en Prolog que use esta base de conocimiento y muestre que SOPORTA (libro, taza) es verdadero.
Programa en Prolog:
arriba(taza,libro).toca(libro,taza).
soporta(taza,libro).
encima(Y,X):- soporta(X,Y).encima(Y,X):- arriba(X,Y),toca(X,Y).
SOPORTA (libro, taza) V
Convierte a Prolog la pregunta: ¿Qué soporta a la taza?Pregunta en Prolog: soporta(taza, X).Respuesta: X = libro.
Convierte a Prolog la pregunta: ¿Qué está encima del libro?Pregunta en Prolog: encima (libro, X).Respuesta: X = taza
Comentarios y conclusiones