Actualizado el 9 de Mayo del 2021 (Publicado el 7 de Mayo del 2021)
384 visualizaciones desde el 7 de Mayo del 2021
98,3 KB
22 paginas
Creado hace 17a (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
Comentarios de: Tema 1. Introducción al PROLOG (0)
No hay comentarios