0% encontró este documento útil (0 votos)
20 vistas

Prolog 1

Este documento describe conceptos básicos de programación lógica en Prolog como hechos, reglas y variables. Explica que los hechos son relaciones entre objetos, las reglas constan de una cabeza y un cuerpo unidos por ':-', y las variables permiten expresar hechos y reglas de forma general comenzando con mayúscula. Incluye ejemplos de representar en Prolog hechos, reglas y el uso de variables.

Cargado por

Luis B
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas

Prolog 1

Este documento describe conceptos básicos de programación lógica en Prolog como hechos, reglas y variables. Explica que los hechos son relaciones entre objetos, las reglas constan de una cabeza y un cuerpo unidos por ':-', y las variables permiten expresar hechos y reglas de forma general comenzando con mayúscula. Incluye ejemplos de representar en Prolog hechos, reglas y el uso de variables.

Cargado por

Luis B
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

1-hechos.

pdf

SilvioB

Programación Declarativa: Lógica y Restricciones

3º Grado en Ingeniería Informática

Escuela Técnica Superior de Ingenieros Informáticos


Universidad Politécnica de Madrid

Reservados todos los derechos.


No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
' $

Hechos

1.2 Hechos
Un hecho, en PROLOG, es una relación entre objetos.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejemplo: La capital de Francia es Parı́s.

En Prolog se escribe capital(francia,parı́s).

En general, la sintaxis es

relacion(objeto, objeto, ...).

Reservados todos los derechos.


La relación se conoce como el predicado y los objetos como los
argumentos.

• Los nombres de todos los predicados y argumentos deben de


comenzar con una letra minúscula.
• Primero, se escribe el predicado. Los argumentos se escriben
separándolos mediante comas y encerrados entre paréntesis.
• Al final del hecho debe ir un punto.

Ejercicio 1.1 Representa los siguientes hechos en Prolog.

1. A Juan le gusta el dinero.


2. Juan es alto.
3. Juan viaja a Madrid en tren.
4. Juan vive en la calle Coso, número 12, de Zaragoza.

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Hechos

Ejemplo: Cuadrado(1,1) ∧ cuadrado(2,4) ∧ cuadrado(3,9)

cuadrado(1,1).
cuadrado(2,4).

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
cuadrado(3,9).

Ejercicio 1.2 Representa los siguientes hechos en Prolog.

1. Juan come chocolate, queso y fruta.


2. España, Francia y Alemania son paı́ses.

Reservados todos los derechos.


La mayorı́a de los programas en PDC–PROLOG están organizados
en cuatro secciones principales.

• Dominios.
• Predicados.
• Objetivos.
• Cláusulas.

/* Programa 1.1 Hechos */


predicates
le gusta a(symbol,symbol)
clauses
le gusta a(jose,pescado).
le gusta a(maria,libros).
le gusta a(jose,libros).

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Reglas

1.3 Reglas

Una regla consta de dos partes, una cabeza y un cuerpo. La

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
cabeza y el cuerpo están unidos mediante el sı́mbolo : −

cabeza :- cuerpo.

El cuerpo puede estar formado por varios hechos.

cabeza :- hecho1, hecho2, ..., hechon.

Reservados todos los derechos.


La separación : − se lee ”si”.( la cabeza es verdad si el
cuerpo es verdad.)

Ejemplo: Es divisible por dos(X) :- par(X). (Se lee X es divisible


por dos si X es par.). Esta cláusula en Prolog es equivalente a la
fórmula de primer orden (∀ X) par(X) ⇒ Es divisible por dos(X).
Por tanto, si podemos probar que X es par entonces hemos probado
que X es divisible por dos.

Nota: En la cabeza de una regla no puede haber más de un hecho.

Ejemplo: rico(juan) ⇒ feliz(juan) ∧ poderoso(juan)

No se puede expresar directamente en Prolog como

feliz(juan),poderoso(juan):-rico(juan).

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Variables

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejercicio 1.3 Representa los siguientes reglas en Prolog.

1. A Juan le gusta todas las cosas que tiene Pedro.


2. Si alguien necesita dinero, Juan se lo dejará.
3. Todo el mundo habla inglés.

1.4 Variables

Reservados todos los derechos.


Las variables se utilizan para escribir hechos y reglas generales.
Los nombres de las variables deben comenzar con letra mayúscula
o con el carácter ( ).

Ejemplos:

Mi primer nombre de variable


Persona
a123

Para Prolog, dos nombres idénticos para una variable sólo se refieren
al mismo objeto si están en la misma cláusula. Por tanto, en el
siguiente ejemplo,

feliz(X) :- tiene salud(X).


le gusta(juan,X) :- le gusta(juan,X).

La variable X de la primera cláusula no se refiere al mismo objeto


que en la segunda.

& %

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Variables

En otros lenguajes de programación una variable indica un lugar de


memoria que puede tener diferentes valores en distintos momentos
en la ejecución de un programa.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
En Prolog a una variable no se le puede reasignar un
valor.

Ejemplo

Pascal: X:=1, X:=2;

Prolog: X=1 ∧ X=2

Reservados todos los derechos.


La variable anónima o blanca ( ) se utiliza como las demás
variables, pero nunca toma ningún valor.

1.5 Conjunción y Disyunción


Una persona es feliz si es rica y famosa.

feliz(Persona):-
rica(Persona),
famosa(Persona).

Una persona es feliz si es rica o famosa.

feliz(Persona):- rica(Persona).
feliz(Persona):- famosa(Persona).

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Conjunción y disyunción

Ejercicio 1.4 Representa los siguientes reglas en Prolog.

1. Dos personas viven en la misma casa si tienen la misma dirección.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
2. Las personas que juegan al fútbol o al baloncesto son deportistas.
3. Dos hombres son hermanos si tienen los mismos padres.

Ejercicio 1.5 Escribe las siguientes proposiciones en Prolog

1. a ⇒ b
2. a ∨ b ⇒ c

Reservados todos los derechos.


3. a ∧ b ⇒ c
4. a ∧ (b ∨ c) ⇒ d
5. ¬a ∨ b

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Reglas en Prolog

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/* Programa 1.2 Reglas */

predicates
hombre(symbol)
mujer(symbol)
padres(symbol,symbol,symbol)
hermana de(symbol,symbol)

Reservados todos los derechos.


clauses
hombre(federico).
hombre(juan).
mujer(alicia).
mujer(victoria).
padres(juan, alicia, federico).
padres(victoria, alicia, federico).
hermana de(X,Y) :-
mujer(X),
padres(X,Madre,Padre),
padres(Y,Madre,Padre).

————————————————————

goal: hermana de (victoria,juan)

goal: hermana de (X,juan)

goal: hermana de(victoria,X)

& %

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444
' $

Ejercicio

Se supone que alguien ha escrito una serie de cláusulas en Prolog


que definen las siguientes relaciones
padre(X,Y) /* X es el padre de Y /*

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
madre(X,Y) /* X es la madre de Y /*
hombre(X) /* X es hombre /*
mujer(X) /* X es mujer /*
progenitor(X,Y) /* X es progenitor de Y /*

Escribir reglas en Prolog que expresen las siguientes relaciones.

Reservados todos los derechos.


es madre(X) /* X es madre /*
es padre(X) /* X es padre /*
es hijo(X) /* X es hijo /*
hermana de(X,Y) /* X es hermana de Y /*
abuelo de(X,Y) /* X es abuelo de Y /*
hermanos(X,Y) /* X e Y son hermanos /*
tia(X,Y) /* X es tı́a de Y /*

& %

Haz una prueba de inglés GRATIS en iboux.es, ¡PINCHA AQUÍ!


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427444

También podría gustarte