Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prolog1 PDF
Prolog1 PDF
1. Introduccin
Introduccin a la Programacin
Lgica: PROLOG 2. Hechos
3. Preguntas
4. Variables
5. Conjunciones
6. Reglas
UNIVERSIDAD DE VALLADOLID
7. Ejercicios
PROLOG:
a_le_gusta (juan, vino). Coherencia con el orden de los objetos
a_le_gusta (pepe, cerveza). A Juan le gusta el vino Al vino le gusta Juan
1
Hechos (III) Preguntas (I)
Admite predicados (relaciones) Formalmente igual que un hecho precedido
del smbolo ?
mondicos o polidicos:
En primera instancia, busca en la base de
conocimiento, si el hecho inquirido est
valioso(diamante). El diamante es valioso. almacenado.
hembra(ana). Ana es una hembra. Ejemplo:
tiene(juan, oro). Juan tiene oro.
padre(juan, maria). Juan es el padre de Mara. Base de Conocimiento Preguntas Resp.
dar(juan, libro, maria). Juan da un libro a Mara gusta(jose, maria). ?- gusta(maria, jose). No
gusta(maria, libro). ?- gusta(maria, libro). Yes
gusta(juan, coche). ?- gusta(juan, pescado). No
gusta(jose, pescado). ?- gusta(jose, pescado). Yes
qu le gusta a Jos?
Para averiguar qu le gusta a Maria, hay que ?- gusta(jose, X). X adquiere el primer valor encontrado
X = maria ;
recurrir a las variables. X = pescado ;
pulsar sucesivamente n para pasar al siguiente
?- gusta(X, maria).
2
Conjunciones (II) Conjunciones (III)
PROLOG intenta satisfacer el primer objetivo: A Hay algo que les guste a Juan y a Mara tambin?
Mara le gusta Juan? ?- gusta(maria, X), gusta(juan, X).
X=vino;
Pasos:
Si fuera as, establece una marca en la base y gusta(maria, comida). X=comida; Marca.
probar a satisfacer el segundo objetivo: A Juan le ?- gusta(juan, X=comida). No. Resatisfacer 1 obj.
gusta Mara? gusta(maria, vino). X=vino; Marca.
?- gusta(juan, X=vino). Yes. Marca. Mostrar X.
Si tambin resultase satisfactorio pone otra marca en Los objetivos se van satisfaciendo de izda. a dcha.
la base, por si hubiera que resatisfacer a
continuacin.
Supone un proceso de instanciar y desinstanciar,
satisfacer y resatisfacer objetivos: reevaluacin
Nota: cada objetivo establece sus marcas. (backtracking prximos captulos)
/* 1 */ ladron(juan).
Base de Conocimiento hermana_de(X=alicia,Y(=X)):- Comentarios igual que en C
? hermana_de(alicia, X). ?- hembra(alicia). YES /* 2 */ gusta(maria,comida).
varon(alberto).
X=eduardo; ?- padres(alicia, M, P). M=victoria P=alberto /* 3 */ gusta(maria, vino).
varon(eduardo).
hembra(alicia).
X=alicia ?- padres(Y, victoria, alberto). Y=eduardo
/* 4 */ gusta(juan,X):- gusta(X,vino). Un mismo tipo de definicin
?- padres(Y, victoria, alberto). Y=alicia
hembra(victoria). /* 5 */ puede_robar(X,Y) :- mediante tres clusulas:
padres(eduardo, victoria, alberto). ladron(X), /*2*/, /*3*/ y /*4*/
hermana_de(X,Y=eduardo):-
padres(alicia, victoria, alberto). gusta(X,Y).
?- hembra(X). X=alicia Dos hechos y una regla.
hermana_de(X,Y):- ?- padres(alicia, M, P). M=victoria P=alberto
hembra(X), ?- hermana_de(X,eduardo). ?- padres(Y, victoria, alberto). Y=eduardo, ?- puede_robar(juan,X).
X=alicia M=victoria, P=alberto
padres(X,M,P), X=maria;
padres(Y,M,P).
?- hembra(X). X=victoria
?- padres(victoria, M, P). NO
3
Ejercicios (I) Ejercicios (II)
Modificar la regla hermana_de para que una misma Constryase el rbol genealgico a base de las
persona no sea hermana de s misma. relaciones:
Para ello, tngase presente que una relacin que refleja que progenitores_de(X, Y, Z) /* X e Y son progenitores de Z*/
dos objetos son distintos recurre al operador /= matrimonio(X, Y) /* X e Y estn casados */