Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin a la Programacin
Lgica: PROLOG
1. Introduccin
2. Hechos
3. Preguntas
4. Variables
5. Conjunciones
6. Reglas
UNIVERSIDAD DE VALLADOLID
Introduccin (I)
7. Ejercicios
Introduccin (II)
valioso(diamante).
Programacin en PROLOG:
tiene(juan, libro).
Hechos (I)
Hechos (II)
Ejemplo:
Hechos:
PROLOG:
a_le_gusta (juan, vino).
a_le_gusta (pepe, cerveza).
Hechos (III)
Preguntas (I)
valioso(diamante).
hembra(ana).
tiene(juan, oro).
padre(juan, maria).
dar(juan, libro, maria).
El diamante es valioso.
Ana es una hembra.
Juan tiene oro.
Juan es el padre de Mara.
Juan da un libro a Mara
Preguntas (II)
Preguntas
?- gusta(maria, jose).
gusta(maria, libro).
?- gusta(maria, libro).
gusta(juan, coche).
?- gusta(juan, pescado).
No
gusta(jose, pescado).
?- gusta(jose, pescado).
Yes
Ejemplo:
qu le gusta a Juan?
?- gusta(juan, X).
X = coche ;
X est no instanciada
X est instanciada con valor coche
qu le gusta a Jos?
?- gusta(jose, X).
X = maria ;
X = pescado ;
?- gusta(X, maria).
No
Yes
Variables (I)
Variables (II)
Resp.
Base de Conocimiento
gusta(jose, maria).
Conjunciones (I)
Ejemplo:
Base de Conocimiento
gusta(maria, comida).
gusta(maria, vino).
gusta(juan, vino).
gusta(juan, maria).
Conjunciones (II)
Conjunciones (III)
Ejemplo:
X es un pjaro si:
Ejemplo:
Base de Conocimiento
Preguntas
varon(alberto).
?- hermana_de(alberto, eduardo).
No
varon(eduardo).
X es un animal, y
X tiene plumas.
?- hermana_de(alicia, victoria)
No
hembra(alicia).
hembra(victoria).
<Cabeza> :- <cuerpo>
<cuerpo> = hechos con conjunciones y variables
?- hermana_de(X,eduardo).
X=alicia
padres(Y,M,P).
Reglas (III)
Reglas (IV)
varon(alberto).
varon(eduardo).
hembra(alicia).
? hermana_de(alicia, X).
X=eduardo;
X=alicia
hembra(victoria).
padres(eduardo, victoria, alberto).
padres(alicia, victoria, alberto).
hermana_de(X,Y):hembra(X),
padres(X,M,P),
padres(Y,M,P).
Base de Conocimiento
?- hermana_de(X,eduardo).
X=alicia
?- hermana_de(alicia, eduardo).
Yes
? hermana_de(alicia, X).
X=eduardo;
X=alicia
hermana_de(X,Y):-
Ejemplo:
Juan es amigo de los amantes del ftbol
Juan es amigo de X, si a X le gusta el ftbol
X=comida; Marca.
No. Resatisfacer 1 obj.
X=vino; Marca.
Yes. Marca. Mostrar X.
Reglas (II)
Pasos:
gusta(maria, comida).
?- gusta(juan, X=comida).
gusta(maria, vino).
?- gusta(juan, X=vino).
Reglas (I)
/*
/*
/*
/*
/*
1
2
3
4
5
*/
*/
*/
*/
*/
ladron(juan).
gusta(maria,comida).
gusta(maria, vino).
gusta(juan,X):- gusta(X,vino).
puede_robar(X,Y) :ladron(X),
gusta(X,Y).
?- puede_robar(juan,X).
X=maria;
?- hembra(X). X=victoria
?- padres(victoria, M, P). NO
Ejercicios (I)
Ejercicios (II)
hijo_de(X, Y) / hija_de(X, Y)
hermano_de(X, Y) / hermana_de(X, Y)
tio_de(X, Y) / tia_de(X, Y)
sobrino_de(X, Y) / sobrina_de (X, Y)
primo_de(X, Y) / prima_de(X, Y)
cunhado_de(X, Y) / cunhada_de(X, Y)
abuelo_de(X, Y) / abuela_de(X, Y)
/* X es padre/madre de Y */
/* X es hijo/a de Y */
/* X es hermano/a de Y */
/* X es to/a de Y */
/* X es sobrino/a de Y */
/* X es primo/a de Y */
/* X es cuado/a de Y */
/*X es abuelo/a de Y*/