Consultas en Prolog

3
Consultas en prolog Ejercicio 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 abuela Regla 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).

Transcript of Consultas en Prolog

Page 1: Consultas en Prolog

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

¿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

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