Tema 8. Introduccion Al Lenguaje Prolog
Tema 8. Introduccion Al Lenguaje Prolog
Tema 8. Introduccion Al Lenguaje Prolog
LENGUAJES
DE INTELIGENCIA ARTIFICIAL
INGENIGERA TCNICA EN INFORMTICA DE GESTIN
INGENIERA TCNICA EN INFORMTICA DE SISTEMAS
SEGUNDO CURSO
PRIMER CUATRIMESTRE
PROGRAMA
Primera
parte:
Scheme
PROGRAMA
Programacin declarativa
Programacin lgica
Programacin declarativa
o Su prioridad es responder a la siguiente pregunta
Qu problema hay que resolver?
o No se preocupa de
Cmo hay que resolver el problema?
o Programacin funcional:
Basada en los conceptos de funcin y expresin
matemtica.
o Programacin Lgica:
Basada en los fundamentos tericos de la lgica
matemtica.
7
Programacin declarativa
Programacin lgica
Programacin lgica
o Programa = Lgica + Control
Lgica:
Control:
Programacin Lgica
o Hecho: cosa que sucede.
o Regla: relacin entre hechos.
10
Programacin declarativa
Programacin lgica
11
12
Programacin declarativa
Programacin lgica
13
14
Lgica proposicional
Lgica de predicados
Clusulas de Horn
Principio de resolucin (Robinson, 1965)
15
Clusulas de Horn:
o
16
Clusulas de Horn:
o Interpretacin
p1 p2 pn q
(aplicando la Ley de Morgan)
(p1 p2 pn ) q
(aplicando la equivalencia de la conectiva )
p1 p2 pn q
significa que
Si se verifican p1, p2, y pn entonces se verifica q
17
Clusulas de Horn
o q se verifica si se verifican p1, p2, y pn
p1
o Interpretacin modular: q
p2
o Prolog: regla
pn
q :- p1, p2,, pn
18
Clusulas de Horn
o Prolog: regla
q :- p1, p2,, pn .
Cabeza
Cuerpo
19
Clusulas de Horn:
o
Ejemplo 1
Si la figura posee cuatro lados iguales y cuatro ngulos
iguales entonces la figura es un cuadrado
Variables proposicionales
p1 = la figura posee cuatro lados iguales
p2 = la figura posee cuatro ngulos iguales
q = la figura es un cuadrado
Lgica proposicional: p1 p2 q
20
Clusulas de Horn:
o
Ejemplo 1 (continuacin)
Significado
q se verifica si se verifican p1 y p2
Lgica proposicional:
p1 p2 q (p1 p2 ) q p1 p2 q
Clusula de Horn: p1 p2 q
Clusulas de Horn:
o
Ejemplo 2
Todos los hombres son mortales
Predicados
p (x) = hombre(x)= x es un hombre
q (x) = mortal (x) = x es mortal
x (hombre(x) mortal (x))
22
Clusulas de Horn:
o
Ejemplo 2 (continuacin)
Significado
Lgica de predicados
Modus Ponens:
Principio de resolucin
pq
p q
_____
_____
24
25
Proposiciones
p: es un cuadrado
q: es un polgono
Modus Ponens
Principio de resolucin
pq
p q
_____
_____
26
p1 p2 pn q
p1 p2 pn q
p1
p1
___________________
______________________
p2 pn q
p2 pn q
27
Modus Ponens
Principio de resolucin
p(x) q(x)
p(x) q(x)
p(a)
p(a)
___________
___________
q(a)
q(a)
28
29
Modus Ponens
Principio de resolucin
hombre(x) mortal(x)
hombre(x) mortal(x)
hombre(Scrates)
hombre(Scrates)
__________________
____________________
mortal(Scrates)
mortal(Scrates)
30
p1(x) p2 (x)
pn (x) q(x)
Principio de resolucin
p1(a)
__________________________
p1(a)
p2 (a)
pn (a) q(a)
_______________________________
p2 (a) pn (a)
q (a)
31
32
Precursores
Kowalski (Universidad de Edimburgo): 1972
Demostracin experimental
Precursores
Alain Colmerauer (Universidad de Marsella)
34
35
Difusin histrica
Prolog-10 (Warren, aos setenta)
Desdn inicial:
Programacin declarativa
Programacin lgica
37
38
39
En caso contrario, el objetivo no se consigue.
x (hombre(x) mortal(x))
hombre(x) mortal(x)
hombre(socrates)
hombre(socrates)
mortal(socrates)
mortal(socrates)
41
Principio de resolucin
hombre(x) mortal(x)
mortal(X) :- hombre(X).
hombre(socrates)
hombre(socrates).
mortal(socrates)
? mortal(socrates).
yes
42
5. Respuesta: s
43
Ejemplo: si se consulta
?mortal(platon)
la respuesta ser no
44
45
46
47
48
49
2. Hechos
Ejemplos
o
Hechos:
hombre(socrates).
sexo(socrates, masculino).
padre_de(juan, luis).
tiene(antonio, bicicleta).
da(laura,libro,maria).
o
2. Hechos
Ejemplos
o
Hechos:
Juan est enamorado de Mara
Mara est enamorada de Juan
Laura est enamorada de Luis
Hechos en Prolog:
enamorado_de(juan, maria).
enamorado_de(maria,juan).
enamorado_de(laura, luis).
51
2. Hechos
Ejemplo
o
punto
Hecho en Prolog:
enamorado_de(juan, maria).
predicado
argumentos
52
2. Hechos
Semntica
o
El predicado
argumentos.
establece
una
relacin
entre
los
53
2. Hechos
Sintaxis
o
54
55
3. Preguntas
? tiene(maria,libro).
56
3. Preguntas
Ejemplo
o
Hechos
tiene(maria, libro).
tiene(maria, cuaderno).
tiene(juan, cuaderno).
tiene(juan, bicicleta).
Preguntas
?tiene(maria,libro).
yes
?tiene(juan, libro).
no
57
3. Preguntas
Ejemplo
o
Pregunta
?tiene(maria, bicicleta).
no
59
4. Variables
letra mayscula
Subrayado _
Ejemplos
o
?tiene(juan,Cosa).
Cosa = cuaderno
Cosa = bicicleta
no
60
4. Variables
Ejemplos
o
Punto y coma:
nueva solucin
;
Enter
Fin de la bsqueda
61
4. Variables
Enter
62
4. Variables
Hechos
camino(baena,luque).
camino(luque,zuheros).
camino(baena, baena).
4. Variables
;
Enter
4. Variables
Observacin:
o
Cada aparicin
independiente.
de
una
variable
annima
es
65
66
67
Conjuncin lgica
o
Ejemplos
o
? tiene(maria,libro) , tiene(juan,cuaderno).
yes
? tiene(maria,bicicleta) , tiene(juan,cuaderno).
no
68
Conjuncin lgica
o
Conjuncin lgica
o
70
Conjuncin lgica
o
Hechos:
enamorado_de(juan, maria).
enamorado_de(maria,juan).
enamorado_de(laura, luis).
Etc.
71
Disyuncin lgica
o
Ejemplos
o
? tiene(maria,libro) ; tiene(juan,cuaderno).
yes
? tiene(maria,bicicleta) ; tiene(juan,cuaderno).
yes
72
Ejemplos
o
;
;
;
;
no
73
Negacin lgica
o
Ejemplos
o
?not(tiene(juan,cuaderno))
no
?not(tiene(juan,tijeras)).
yes
74
Ejemplos
?tiene(juan,cuaderno);tiene(maria,rotulador), not(tiene(juan,bicicleta)).
Yes
?(tiene(juan,cuaderno);tiene(maria,rotulador)),not(tiene(juan,bicicleta)).
no
75
76
6. Reglas
punto
mortal(X) :- hombre(X).
Cabeza
Cuerpo
77
6. Reglas
mortal(X) :- hombre(X)
buen_estudiante(Persona):asiste_a_clase(Persona),
estudia(Persona).
78
6. Reglas
Reglas recursivas
79
6. Reglas
Reglas recursivas
80
6. Reglas
6. Reglas
Silvia
Laura
Luis
Ana
Alicia
6. Reglas
83
6. Reglas
84
6. Reglas
85
6. Reglas
86
UNIVERSDAD DE CRDOBA
ESCUELA POLITCNICA SUPERIOR
DEPARTAMENTO DE
INFORMTICA Y ANLISIS NUMRICO
LENGUAJES
DE INTELIGENCIA ARTIFICIAL
INGENIGERA TCNICA EN INFORMTICA DE GESTIN
INGENIERA TCNICA EN INFORMTICA DE SISTEMAS
SEGUNDO CURSO
PRIMER CUATRIMESTRE