PDF de programación - Tema 1. Introducción al PROLOG

Imágen de pdf Tema 1. Introducción al PROLOG

Tema 1. Introducción al PROLOGgráfica de visualizaciones

Actualizado el 9 de Mayo del 2021 (Publicado el 7 de Mayo del 2021)
142 visualizaciones desde el 7 de Mayo del 2021
98,3 KB
22 paginas
Creado hace 14a (09/11/2006)
Tema 1. Introduccióón al PROLOG
n al PROLOG
Tema 1. Introducci

1. 1. ¿¿QuQuéé es el PROLOG?
es el PROLOG?
2. Los elementos de PROLOG
2. Los elementos de PROLOG
3. Un programa de ejemplo
3. Un programa de ejemplo
4. Ejercicios propuestos
4. Ejercicios propuestos

1. 1. ¿¿QuQuéé es el PROLOG?
es el PROLOG?

1.1. Un poco de historia
1.1. Un poco de historia

(cid:132)(cid:132) PROgramming

PROgramming in in LOGic
LOGic

(cid:132)(cid:132) Desarrollado en Europa en la d

Desarrollado en Europa en la déécada de los a
70 (Edimburgo y Marsella)
70 (Edimburgo y Marsella)
Aplicaciones IA
(cid:132)(cid:132) Aplicaciones IA
En EEUU LISP
(cid:132)(cid:132) En EEUU LISP

cada de los añños os

(cid:132)(cid:132) Base del proyecto 5

Base del proyecto 5ªª Generaci
(cid:132)(cid:132) PROLOG hubiese sido su lenguaje m

Generacióón en Jap
PROLOG hubiese sido su lenguaje mááquina
quina

n en Japóónn

(cid:132)(cid:132) EstEstáándar ISO desde 1996: bas

ndar ISO desde 1996: basáándose en la
ndose en la

sintaxis de Edimburgo
sintaxis de Edimburgo

Prácticas de IA-I

Tema 1. Introducción al Prolog

1.2. PROLOG y la programacióón ln lóógicagica
1.2. PROLOG y la programaci

(cid:132)(cid:132) Paradigmas de programaci

Paradigmas de programacióón: imperativa,
n: imperativa,
orientacióón a objetos, funcional y
orientaci

n a objetos, funcional y declarativa
declarativa

(cid:132)(cid:132) Programaci

Programacióón declarativa frente a imperativa
n declarativa frente a imperativa
(cid:132)(cid:132) Orientada a objetivos
(cid:132)(cid:132) Enfoque
(cid:132)(cid:132) SSóólo se especifican las propiedades del problema,
lo se especifican las propiedades del problema,

Orientada a objetivos vsvs orientada a datos
orientada a datos
Enfoque whatwhat--toto--dodofrente a

frente a howhow--toto--dodo

no como alcanzar la solucióónn
no como alcanzar la soluci

(cid:132)(cid:132) Programaci

Programacióón ln lóógicagica
(cid:132)(cid:132) Conjunto de f

Conjunto de fóórmula + motor de inferencias
rmula + motor de inferencias

Prácticas de IA-I

Tema 1. Introducción al Prolog

1.2. PROLOG y la programacióón ln lóógicagica
1.2. PROLOG y la programaci

PROLOG
(cid:132)(cid:132) PROLOG
(cid:132)(cid:132) Programa

Programa Prolog

Prolog: conjunto de cl

: conjunto de clááusulas

usulas HornHorn

(cid:132)(cid:132) Ejecuci

Ejecucióón: inferencias l

n: inferencias lóógicas (b

gicas (búúsqueda)
squeda)

(cid:132)(cid:132) Puede que no se encuentre la soluci

Puede que no se encuentre la solucióón n óóptima o de
ptima o de
la forma máás eficiente
s eficiente
la forma m

(cid:132)(cid:132) Influye el orden de las cl

Influye el orden de las clááusulas
usulas

(cid:132)(cid:132) AdemAdemáás, tiene cl

s, tiene clááusulas ejecutables
usulas ejecutables

Prácticas de IA-I

Tema 1. Introducción al Prolog

1.2. PROLOG y la programacióón ln lóógicagica
1.2. PROLOG y la programaci

(cid:132)(cid:132) Resoluci

juan, libro
, libro
(cid:132)(cid:132) Los hechos describir

Resolucióón de problemas planteados en base a
n de problemas planteados en base a
objetos y las relaciones entre ellos
objetos y las relaciones entre ellos
(cid:132)(cid:132) Objetos:
Los hechos describiráán propiedades de los objetos
n propiedades de los objetos
(cid:132)(cid:132) tiene(juan
Las reglas describiráán relaciones entre objetos
n relaciones entre objetos
Dos personas son hermanas si ambas son mujeres y
(cid:132)(cid:132) Dos personas son hermanas si ambas son mujeres y
tienen los mismos padres
tienen los mismos padres

Objetos: juan

tiene(juan, libro)
, libro)

(cid:132)(cid:132) Las reglas describir

Programa en PROLOG
(cid:132)(cid:132) Programa en PROLOG
Declarar hechos sobre objetos (tuplas
(cid:132)(cid:132) Declarar hechos sobre objetos (
Definir reglas (describir relaciones)
(cid:132)(cid:132) Definir reglas (describir relaciones)
Hacer consultas sobre objetos o relaciones en la Base de
(cid:132)(cid:132) Hacer consultas sobre objetos o relaciones en la Base de
Conocimiento
Conocimiento

tuplas de relaciones)
de relaciones)

Prácticas de IA-I

Tema 1. Introducción al Prolog

1.3. SWI--PROLOG
PROLOG
1.3. SWI

(cid:132)(cid:132) Software de libre disposici
www.swi--prolog.org
prolog.org/ /

Software de libre disposicióónn
(cid:132)(cid:132) httphttp://://www.swi

Basado en la sintaxis de Edimburgo
(cid:132)(cid:132) Basado en la sintaxis de Edimburgo

Tradicionalmente interpretado, ahora
(cid:132)(cid:132) Tradicionalmente interpretado, ahora
compilado
compilado

Disponible manual de referencia
(cid:132)(cid:132) Disponible manual de referencia

Prácticas de IA-I

Tema 1. Introducción al Prolog

2. Elementos de Prolog
Prolog
2. Elementos de

Hechos
1.1. Hechos
Consultas
2.2. Consultas
Variables
3.3. Variables
Conjunciones
4.4. Conjunciones
Reglas
5.5. Reglas

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.1. Hechos
2.1. Hechos

(cid:132)(cid:132)

Un hecho describe una propiedad de un objeto
Un hecho describe una propiedad de un objeto

(cid:132)(cid:132)

(cid:132)(cid:132)

Ejemplo: el diamante es valioso
Ejemplo: el diamante es valioso
Hecho:
Hecho:
valioso(diamante).).
valioso(diamante

(cid:132)(cid:132)

El programador debe definir la interpretacióón de los
n de los
El programador debe definir la interpretaci
objetos y las relaciones entre ellos:
objetos y las relaciones entre ellos:

(cid:132)(cid:132)

(cid:132)(cid:132)

juan, libro
, libro

Objetos: juan
Objetos:
Relacióón:n:
Relaci
tiene(juan, libro).
, libro).
tiene(juan

(cid:132)(cid:132)

El orden de la relacióón es importante
n es importante
El orden de la relaci

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.1. Hechos
2.1. Hechos

Ejemplo:
(cid:132)(cid:132) Ejemplo:
Objetos: Juan, Maria, Cocido, Vino.
(cid:132)(cid:132) Objetos: Juan, Maria, Cocido, Vino.
Relaciones: A <Objeto> le gusta <Objeto>
(cid:132)(cid:132) Relaciones: A <Objeto> le gusta <Objeto>
Hechos:
(cid:132)(cid:132) Hechos:
A Juan le gusta el cocido
(cid:132)(cid:132) A Juan le gusta el cocido
A Juan le gusta el vino
(cid:132)(cid:132) A Juan le gusta el vino
A Maria le gusta el vino
(cid:132)(cid:132) A Maria le gusta el vino
PROLOG:
PROLOG:

(cid:132)(cid:132)

(cid:132)(cid:132)

(cid:132)(cid:132)

(cid:132)(cid:132)

le_gusta_a(juan, cocido).
, cocido).
le_gusta_a(juan
le_gusta_a(juan, vino).
, vino).
le_gusta_a(juan
le_gusta_a(maria, vino).
, vino).
le_gusta_a(maria

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.1. Hechos
2.1. Hechos

El nombre de los objetos y relaciones
(cid:132)(cid:132) El nombre de los objetos y relaciones
empiezan por minúúscula
scula
empiezan por min

(cid:132)(cid:132) Primero se escribe la relaci

Primero se escribe la relacióón y despu
objetos a modo de argumento
objetos a modo de argumento

n y despuéés los
s los

(cid:132)(cid:132) Se permite

Se permite ““__”” para separar caracteres
para separar caracteres

Al final debe aparecer un punto
(cid:132)(cid:132) Al final debe aparecer un punto

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.1. Hechos
2.1. Hechos

(cid:132)(cid:132)

Los predicados pueden ser:
Los predicados pueden ser:
(cid:132)(cid:132) MonMonáádicos
dicos

valioso(diamante).).
valioso(diamante
mujer(ana).).
mujer(ana

El diamante es valioso
El diamante es valioso
Ana es una mujer.
Ana es una mujer.

(cid:132)(cid:132)

PoliPoliáádicos
dicos
tiene(juan, libro).
, libro).
tiene(juan
da(juan, libro,
da(juan

, libro, mariamaria).).

Juan tiene el libro.
Juan tiene el libro.
Juan da el libro a Maríía.a.
Juan da el libro a Mar

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.2. Consultas
2.2. Consultas

(cid:132)(cid:132)

(cid:132)(cid:132)

(cid:132)(cid:132)

Comienzan por:
Comienzan por:
??--

Equivale a preguntar: ““la consulta se deduce de la
la consulta se deduce de la
Equivale a preguntar:
base de conocimiento (hechos + reglas).””
base de conocimiento (hechos + reglas).

Ante una consulta, PROLOG intenta hacer un
Ante una consulta, PROLOG intenta hacer un
matchingmatchingsobre la base de conocimiento:
sobre la base de conocimiento:
Mismo predicado
(cid:132)(cid:132) Mismo predicado
Mismo núúmero de argumentos
mero de argumentos
(cid:132)(cid:132) Mismo n
Mismos argumentos: téérminos / variables (
(cid:132)(cid:132) Mismos argumentos: t

rminos / variables (instanciadas
instanciadas))

Prácticas de IA-I

Tema 1. Introducción al Prolog

2.2. Consultas
2.2. Consultas

(cid:132)(cid:132)

Las respuestas a una consulta pueden ser:
Las respuestas a una consulta pueden ser:

(cid:132)(cid:132)

(cid:132)(cid:132)

YesYes
NoNo

(cid:198)(cid:198)SeSededuce de la BC
deduce de la BC
(cid:198)(cid:198)NoNose deduce; no es lo mismo que falso
se deduce; no es lo mismo que falso

(cid:132)(cid:132)

¿¿QuQuéé responder a una consulta?
responder a una consulta?

(cid:132)(cid:132)

(cid:132)(cid:132)

[ENTER]
[ENTER]
;;

Termina
(cid:198)(cid:198) Termina
(cid:198)(cid:198) ¿¿Hay mHay máás respuestas?
s respuestas?

Base de conocimiento
Base de conocimiento
le_gusta_a(jose, , mariamaria).).
le_gusta_a(jose
le_gusta_a(maria, libro).
, libro).
le_gusta_a(maria
le_gusta_a(juan, coche).
, coche).
le_gusta_a(juan
le_gusta_a(jose, pescado).
, pescado).
le_gusta_a(jose

Prácticas de IA-I

Consultas
Consultas
??-- le_gusta_a(maria,jose
??-- le_gusta_a(maria
??-- le_gusta_a(juan
??-- le_gusta_a(jose

le_gusta_a(maria,jose).).
le_gusta_a(maria, libro).
, libro).
le_gusta_a(juan, pescado).
, pescado).
le_gusta_a(jose, pescado).
, pescado).

Respuestas
Respuestas
NoNo
YesYes
NoNo
YesYes

Tema 1. Introducción al Prolog

2.2. Consultas
2.2. Consultas

/* Los comentarios como en C */
/* Los comentarios como en C */

/* Hechos: le_gusta_a(A,B
/* Hechos:

le_gusta_a(A,B) ) ----> a A

> a A le_gusta

le_gusta B */B */

le_gusta_a(juan, , mariamaria).).
le_gusta_a(juan
le_gusta_a(pedro, coche).
, coche).
le_gusta_a(pedro
le_gusta_a(maria, libro).
, libro).
le_gusta_a(maria
juan).).
le_gusta_a(maria, , juan
le_gusta_a(maria
le_g
  • Links de descarga
http://lwp-l.com/pdf19167

Comentarios de: Tema 1. Introducción al PROLOG (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad