You are on page 1of 50

PROGRAMACIN LGICA Y

FUNCIONAL


Profesora: Dra. Gabriela Minetti
Aux. Docentes: Ing. Alina Orellana y
Lic. Natalia Stark
LGICA CLAUSAL Y
PROGRAMAS DEFINIDOS

FORMA CLAUSAL
El objetivo que se persigue al traducir una
frmula LPPO a forma clausal, es el de lograr una
notacin uniforme para su manipulacin
automtica.

Cuando se manipulan proposiciones de forma
automtica, es deseable eliminar la redundancia
producida por LPPO.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
FORMA CLAUSAL
Los pasos a seguir son:
Paso 1: Reemplazar las implicaciones.
Paso 2: Eliminar las negaciones de las frmulas
no atmicas.
Paso 3: Mover los cuantificadores al inicio de las
frmulas (Forma Normal Prenex).
Paso 4: Eliminar los cuantificadores existenciales
(Skolemizacin).
Paso 5: Eliminar los cuantificadores universales.
Paso 6: Transformar en forma normal conjuntiva.
Paso 7: Poner la frmula resultante dentro de
clusulas.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
FORMA CLAUSAL
Paso 1: Remplazar las implicaciones.
(p q) (pvq)
(p q) ((pvq).(qvp))
Paso 2: Eliminar las negaciones de las frmulas no
atmicas.
(p) p
(pvq) (p.q)
(p.q) (pvq)
((X) p(X)) (-X)(p(X))
((-X) p(X)) (X)(p(X))
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
FORMA CLAUSAL
Paso 3: Mover los cuantificadores (QX)
al inicio de las frmulas (Forma Normal
Prenex).
(QX) f(X) v g (QX) (f(X) v g)
(QX) f(X) . g (QX) (f(X) . g)
(X) f(X) . (X) h(X) (-X) (f(X) v h(X))
(Q
1
X) f(X) v (Q
2
X) h(X) (Q
1
X) (Q
2
Z) (f(X) v h(Z))
(Q
1
X) f(X) . (Q
2
X) h(X) (Q
1
X) (Q
2
Z) (f(X) . h(Z))
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
FORMA CLAUSAL
Paso 4: Eliminar los cuantificadores
existenciales (Skolemizacin).
Sea una frmula F en Forma Normal Prenex (Q
1
X
1
)....(Q
n
X
n
) M, donde M est en
Forma Normal Conjuntiva. Supongamos que Q
r
es un cuantificador existencial
en el prefijo (Q
1
X
1
)....(Q
n
X
n
), 1 s r s n .
Si no aparecen cuantificadores universales antes de Q
r
se elige una nueva
constante C diferente de otras constantes que ocurren en M, se reemplazan
todas las X
r
que aparecen en M por C y se borra (Q
r
X
r
) del prefijo.
Si Q
a1
..... Q
am
son todos los cuantificadores universales que aparecen antes de
Q
r
, 1s a1< a2<.... am < r, se elige una nueva funcin de orden m, diferente de
otras funciones se reemplazan todas las X
r
en M por f(X
a1
,....., X
am
) y se borra
(Q
r
X
r
) del prefijo.
Nota: Una frmula M est en forma normal conjuntiva si tiene la forma
P
1
. P
2
. . P
i


. P
n
siendo n > 1 y cada P
i
es una disyuncin de literales.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
FORMA CLAUSAL
Paso 5: Eliminar los cuantificadores universales
No es necesario decir explcitamente que se habla de todo X en el
universo de discurso).
Paso 6: Transformar en forma normal conjuntiva.
(p v (q.r)) ((pv q) . (pv r))

Paso 7: Poner la frmula resultante dentro de clusulas.
Como (A . B) . (C . (D . E)) A . B . C . D . E entonces la frmula
se puede escribir as {A,B,C,D,E}
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
LGICA CLAUSAL
Una frmula traducida a forma clausal es una
coleccin de clusulas, cada una de las cuales es a su
vez una coleccin de literales.
Un literal es o bien una frmula atmica o una
frmula atmica negada.
Para poder interpretar una frmula es necesario
tener en cuenta cosas implcitas como: conjunciones,
disyunciones y cuantificadores universales.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
LGICA CLAUSAL
Escribir la fbf resultante como clusulas
definidas. Con la forma:

o su equivalente:

( n 0).

Las fbf con esta estructura se denominan
clusulas definidas o clusulas de Horn.

n
A A A . . .........
1 0
) ......... (
1 0 n
A A A v
v v
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
LGICA CLAUSAL
Clusula
Es una fbf donde cada L
i
es
una fbf atmica (un literal
positivo) o la negacin de
una fbf atmica (un literal
negativo).
Clusula
Definida
Es un clusula que contiene
exactamente un literal
positivo.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
PROGRAMA DEFINIDO
Conjunto de clusulas definidas:
Hechos: predicados atmicos A que
establecen una asercin.
Reglas: clusulas de programa de la forma
AB
1
,,B
n
(n 0).
Consultas: clusulas de la forma B. que
denotan una meta a resolver.
Respuestas: Sustitucin resultante de la
unificacin de toda variable de una consulta.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
PROGRAMA DEFINIDO
EJEMPLOS
Programa definido menor
menor(A,B,A) A=<B.
menor(A,B, B) B<A.
menor(5,3,R).
R=3
yes




Reglas
Consultas
Respuestas
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
Cdigo en SWI-prolog
menor(A,B,A):- A=<B.
menor(A,B, B):- B<A.
?- menor(5,3,R).
R=3
yes
PROGRAMA DEFINIDO
EJEMPLOS




Lgica clausal
Semntica de los programas lgicos
Bibliografa
Forma clausal
Lgica clausal
Programa definido
Programa definido numeroNatural
numeroNatural(0)

numeroNatural(s(X)) numeroNatural(X) .

numeroNatural(X).



Escribir el programa numeroNatural en SWI-prolog y realizar las siguientes consultas:
numeroNatural(X).
comprobar si el dos (s(s(0))) es un nmero natural mediante la consulta numeroNatural(s(s(0))


Regla
Consulta
Hecho
Respuestas
X = 0 ;
X = s(0) ;
X = s(s(0)) ;
X = s(s(s(0))) ;
X = s(s(s(s(0)))) ;
X = s(s(s(s(s(0))))) ;
X = s(s(s(s(s(s(0)))))) ;
X = s(s(s(s(s(s(s( ))))))) ;

Definicin de nmero natural:
El cero es un nmero natural
Si X es un nmero natural,
entonces s(X) (siguiente o
sucesor de X) tambin es un
nmero natural
SEMNTICA DE LOS
PROGRAMAS LGICOS

SEMNTICA DE LOS PROGRAMAS LGICOS
Semntica declarativa.
Teora de Herbrand
Semntica operacional (o procedural).
Unificacin
Resolucin SLD
Bsqueda y Backtracking
Semntica denotacional (o de punto fijo).
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
TEORA DE HERBRAND
Universo de Herbrand
Base de Herbrand
Interpretacin de Herbrand
Modelo de Herbrand
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
UNIVERSO DE HERBRAND
Dado un alfabeto A que al menos
contenga un smbolo cte., el Universo
de Herbrand U
A
, es el conjunto de
todos los trminos ground que pueden
formarse usando slo las ctes. y
funciones de ese alfabeto.
Trmino ground: cte. o funcin donde
todos sus parmetros son trminos
ground.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
BASE DE HERBRAND
Dado un alfabeto A que al menos contega
un smbolo cte., la Base de Herbrand B
A
,
es el conjunto de todos las frmulas
atmicas, ground que existen en dicho
alfabeto.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
INTERPRETACIN HERBRAND
Una interpretacin Herbrand de un programa
definido P es una interpretacin I tal que:
el dominio de I es U
P
;
para cada constante c, c
I
= c ;
para cada funcin n-aria f la funcin f
I
se define
como sigue:
f
I
(x
1
, ...., x
n
)=f (x
1
, ...., x
n
)
para cada smbolo de predicado n-ario p la
relacin es un p
I
subconjunto de U
p
n
(el conjunto
de todas las n-tuplas de trminos ground).

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
MODELO HERBRAND
Un modelo Herbrand de un
conjunto de frmulas es una
interpretacin Herbrand; la cual es un
modelo de cada frmula en el
conjunto.
Una interpretacin Herbrand es un
modelo de una frmula F si todas
las instancias ground de F son
verdaderos en la interpretacin.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
MODELO MNIMO
La interseccin de todos los modelos
Herbrand es tambin un modelo Herbrand
denominado modelo mnimo
El modelo mnimo es el significado
declarativo de un programa lgico
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA DECLARATIVA
EJEMPLO 1
Programa definido menor
menor(A,B,A) A=<B.
menor(A,B, B) B<A.
menor(5,3,R).
R=3
yes

Semntica declarativa (Teora de Herbrand)
U={3,5}
B={menor(3,3,3), menor(3,5,3), menor(3,5,5), menor(5,5,5), menor(5,3,5), menor(5,3,3) }
I
1
={menor(3,3,3), menor(3,5,3), menor(3,5,5), menor(5,5,5), menor(5,3,5), menor(5,3,3) }
I
2
={menor(3,3,3), menor(3,5,3), menor(3,5,5), menor(5,5,5), menor(5,3,5)}
I
3
={menor(3,3,3), menor(3,5,3), menor(5,5,5), menor(5,3,5)}
I
4
={}
...
I
n
={menor(5,3,5)}
M={menor(5,3,5)}


Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Reglas
Consultas
Respuestas
La semntica
declarativa para el
programa definido
menor es correcta?
Por qu?
SEMNTICA DECLARATIVA
EJEMPLO 2
Programa definido numeroNatural
numeroNatural(0)

numeroNatural(s(X)) numeroNatural(X) .

numeroNatural(X).



Semntica declarativa (Teora de Herbrand)
U= {0, s(0), s(s(0)), s(s(s(0))), ..., s(s(s(s(s(s(s( ))))))), ...} Conjunto infinito
B= {numeroNatural(0), numeroNatural(s(0)), numeroNatural(s(s(s(0)))), ...,
numeroNatural(s(s(s(s(s(s(s( )))))))), ...} Conjunto infinito
I
1
= {}
I
2
= {numeroNatural(0), numeroNatural(s(0))}
I
3
= {numeroNatural(s(s(s(0)))), ..., numeroNatural(s(s(s(s(s(s(s( ))))))))}
...
M
1
= {numeroNatural(0)}
M
2
= {numeroNatural(0), numeroNatural(s(0))}
...

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Regla
Consulta
Hecho
Respuestas
X = 0 ;
X = s(0) ;
X = s(s(0)) ;
X = s(s(s(0))) ;
X = s(s(s(s(0)))) ;
X = s(s(s(s(s(0))))) ;
X = s(s(s(s(s(s(0)))))) ;
X = s(s(s(s(s(s(s( ))))))) ;

Definicin de nmero natural:
El cero es un nmero natural
Si X es un nmero natural, entonces s(X)
(siguiente o sucesor de X) tambin es un
nmero natural
SEMNTICA DECLARATIVA
EJERCICIOS
Escribir la semntica declarativa para el programa definido sumaNaturales e
identificar las partes del programa.
sumaNaturales(0,X,X) .
sumaNaturales((s(X),Y,s(Z))) :- sumaNaturales(X,Y,Z) .
?- sumaNaturales(s(s(0)),s(s(0)),X).
X = s(s(s(s(0)))).

Escribir el programa sumaNaturales en SWI-prolog y realizar las siguientes
consultas:
?- sumaNaturales(s(s(0)),s(s (0)),X).
?- sumaNaturales (s(s(0)),X,s(s(s(s (0))))).
?- sumaNaturales(X,Y,s(s(s(s(0))))).
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Definicin de la suma de 2
nmeros naturales:
0+X=X
S i X+Y=Z, entonces s(X)+ Y=s(Z)
SEMNTICA OPERACIONAL
Unificacin
Resolucin SLD (Linear resolution with
Selection function for Definite clauses).
Bsqueda y Backtracking
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
UNIFICACIN
Una sustitucin que hace que dos clusulas se
puedan resolver se conoce como unificador.
El proceso de hallar tales sustituciones se
denomina unificacin.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Definicin de Unificador. Sean s y t trminos. Una
substitucin tal que s y t sean idnticos (s = t) es
llamada unificador de s y t.
unifica(conoce(juan,X), conoce(juan,maria)) = {X/maria}
unifica(conoce(juan,X), conoce(Y,Z)) = {Y/juan,X/Z}


S T

SEMNTICA OPERACIONAL
UNIFICACIN
Definicin de Generalidad entre
substituciones
Una substitucin es ms general que una substitucin
, si y slo si existe una substitucin tal que = .
Definicin de MGU
Un unificador es el unificador ms general (MGU) de
dos trminos, si y slo si es ms general que cualquier
otro unificador entre esos trminos.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMANTICA OPERACIONAL
UNIFICACIN
Definicin de Forma resuelta
Un conjunto de ecuaciones {X
1
= t
1
,...,X
n
= t
n
} se dice estar en
forma resuelta si y slo si X
1
,...,X
n
son variables distintas que
no ocurren en t
1
,...,t
n
.
MGU idempotente
Si existe un conjunto {X
1
=t
1
,.. ,X
n
=t
n
} de ecuaciones en forma
resuelta, entonces {X
1
/t
1
,...,X
n
/t
n
} es un MGU idempotente de la
forma resuelta.
Definicin de Equivalencia entre conjuntos de
ecuaciones
Dos conjuntos de ecuaciones E1 y E2 se dicen equivalentes si
tienen el mismo conjunto de unificadores.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
UNIFICACIN
El conjunto: {f(X, g(Y )) = f(g(Z),Z)}

{X = g(Z), g(Y) = Z}
{X = g(Z), Z = g(Y )}
{X= g(g(Y)), Z=g(Y )}

tiene una forma resuelta.

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Un conjunto de ecuaciones {X
1
=
t
1
,...,X
n
= t
n
} se dice estar en
forma resuelta si y slo si
X
1
,...,X
n
son variables distintas
que no ocurren en t
1
,...,t
n

SEMNTICA OPERACIONAL
UNIFICACIN
El conjunto: {f(X,g(X),b)= f(a, g(Z),Z)}

{X=a,g(X)=g(Z), b=Z}
{X=a, g(a)= g(Z), b=Z}
{X = a, a = Z, b = Z}
{X = a,Z = a, b = Z}
{X = a,Z = a, b = a} falla

no tiene forma resuelta.

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Un conjunto de ecuaciones {X
1
=
t
1
,...,X
n
= t
n
} se dice estar en
forma resuelta si y slo si
X
1
,...,X
n
son variables distintas
que no ocurren en t
1
,...,t
n

SEMNTICA OPERACIONAL
UNIFICACIN
El conjunto: {f (X;g(X)) = f (Z;Z)}

{X = Z, g(X) = Z}
{X = Z, g(Z) = Z}
{X = Z,Z = g(Z)}
falla

no tiene forma resuelta.

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Un conjunto de ecuaciones {X
1
=
t
1
,...,X
n
= t
n
} se dice estar en
forma resuelta si y slo si
X
1
,...,X
n
son variables distintas
que no ocurren en t
1
,...,t
n

SEMNTICA OPRACIONAL
RESOLUCIN SLD (LINEAR RESOLUTION WITH SELECTION
FUNCTION FOR DEFINITE CLAUSES)
Mecanismo de inferencia de los sistemas de programacin
lgica, es un caso especial del principio de resolucin
introducido por J. A. Robinson (60).
Denominado principio de resolucin SLD, y definido
originalmente por Kowalski.

Es el procedimiento por el cual, a partir:
de la negacin de la consulta,
los hechos y
Las reglas del programa,
intenta llegar a un absurdo para demostrar que la
consulta es cierta.

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 1
Programa definido
menor:
menor(A,B,A):-
A=<B.
menor(A,B,B):-
B<A.
?- menor(2,3,R).
R = 2.
Resolucin SLD:
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 2
Programa definido
menor1:
menor(A,B,A):-
A=<B.
menor(A,B,B):-
B<A.
?- menor(2,3,R).
R = 2;
false.
Resolucin SLD:
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 3
Programa definido
menor2:
menor(A,B,A):-
A=<B.
menor(A,B,B):-
B<A.
?- menor(7,6,R).
R = 6.
Resolucin SLD:
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 4

Programa definido escritores:
escritoPor(tomSawyer, markTwain).
escritoPor(oliverTwist, charlesDickens).
escritoPor(ricardoIII, williamShakespeare).
tipo(tomSawyer,novela).
tipo(oliverTwist,novela).
tipo(ricardoIII,drama).
escribeNovela(X):-
tipo(L,novela),
escritoPor(L,X).
?-escribeNovela(williamShakespeare).
false.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 5

Programa definido escritores1:
escritoPor(tomSawyer, markTwain).
escritoPor(oliverTwist, charlesDickens).
escritoPor(ricardoIII, williamShakespeare).
tipo(tomSawyer,novela).
tipo(oliverTwist,novela).
tipo(ricardoIII,drama).
escribeNovela(X):-
escritoPor(L,X),
tipo(L,novela).
?-escribeNovela(williamShakespeare).
false.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 6
Programa definido escritores2:
escritoPor(tomSawyer, markTwain).
escritoPor(oliverTwist, charlesDickens).
escritoPor(ricardoIII, williamShakespeare).
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
tipo(tomSawyer,novela).
tipo(oliverTwist,novela).
tipo(ricardoIII,drama).
escribeNovela(X):-tipo(L,novela),escritoPor(L,X).
?-escribeNovela(Z).
Z=markTwain;
Z=charlesDickens.
SEMNTICA OPERACIONAL
RESOLUCIN SLD: EJEMPLO 7
Programa definido escritores3:
escritoPor(tomSawyer, markTwain).
escritoPor(oliverTwist, charlesDickens).
escritoPor(ricardoIII, williamShakespeare).
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
tipo(tomSawyer,novela).
tipo(oliverTwist,novela).
tipo(ricardoIII,drama).
escribeNovela(X):-escritoPor(L,X),tipo(L,novela).
?-escribeNovela(Z).
Z=markTwain;
Z=charlesDickens;
false.
SEMNTICA OPERACIONAL
RESOLUCIN SLD
La aplicacin de este principio comienza con
una meta definida G
0
:
A
1
, . . . ,A
m
(m 0).
Una submeta A
i
es seleccionada,
preferentemente por una funcin de seleccin.
Una nueva meta G
1
se construye al
seleccionar una clusula del programa
B
0
B
1
,...,B
n
(n 0) cuya cabeza B
0
unifica con
Ai:, resultando en
1
:
(A
1
, . . . ,A
i1
,B
1
, . . . ,B
n
, . . . ,A
m
)
1
.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD
Se aplica sucesivamente el principio de
resolucin a G
i
para obtener G
i+1
.
El proceso puede terminar o no.
Hay dos situaciones donde no es posible
obtener G
i+1
a partir de G
i
:
1. Cuando la submeta seleccionada no puede
ser resuelta (no es unificable con la cabeza
de una clusula del programa).
2. Cuando G
i
=
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD
Definicin de Derivacin SLD. Sea G
0
una
meta definida, P un programa definido y R una
funcin de seleccin. Una derivacin SLD de G
0

(usando P y R) es una secuencia finita o infinita
de metas:

n
C
1 - n 1
C
0
G .G . . G G
bz1 0

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
RESOLUCIN SLD
Definicin de Refutacin SLD. Una
derivacin SLD finita:


donde G
n
= , se llama refutacin SLD de G0.
Definicin de Derivacin fallida. Una
derivacin de la meta definida G
0
cuyo ltimo
elemento no es la meta vaca y no puede
resolverse con ninguna clusula del programa, es
llamada derivacin fallida.


n
C
1 - n 1
C
0
G .G . . G G
bz1 0

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
BSQUEDA Y BACKTRACKING
El espacio de bsqueda para refutaciones SLD
est dado por una estructura de rbol SLD.
Definicin de rbol-SLD. Sea P un
programa definido, G0 una meta definida, y R
una funcin de seleccin. El rbol-SLD de G0
cumple las siguientes condiciones:
1. La raz del rbol est etiquetada por G
0
.
2. Si el rbol contiene un nodo etiquetado como G
i
y
existe una clusula renombrada C
i
P tal que G
i+1
es
derivada de G
i
y C
i
va R, entonces el nodo etiquetado
como G
i
tiene un hijo etiquetado G
i+1
. El arco que
conecta ambos nodos est etiquetado como C
i
.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
BSQUEDA Y BACKTRACKING
Bactracking
Mecanismo que utiliza prolog en una situacin de
fallo, consiste en retroceder por el camino
considerado hasta encontrar un nodo con una rama a
la derecha.
Si se encuentra tal nodo, se reintenta por esta rama
tomando siempre el camino ms a la izquierda.
Prolog realiza backtracking hasta encontrar un
camino con xito, si lo hay.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
SEMNTICA OPERACIONAL
EJERCICIOS
Sea el programa P1:

(1) p(b)
(2) p(a)
(3) q(X) r(X)
(4) r(b)

y el objetivo p(X), q(X).
Sea el programa P2:

(1) p(a)
(2) p(b)
(3) q(X) r(X)
(4) r(b)

y el objetivo p(X), q(X).

Lgica clausal
Semntica de los programas lgicos
Bibliografa
Semntica de los programas lgicos
Semntica declarativa
Semntica operacional
Graficar el rbol de resolucin SLD correspondiente.
BIBLIOGRAFA
Nilsson U., Maluszynski J. Logic, Programming
and Prolog (2ED). John Wiley & Sons Ltd.,2000.
(Captulos 1, 2 y 3).
Sterling L., Shapiro E., The Art of Prolog:
advanced Programming Techniques (2ED). The
MIT Press. 1994.
Lgica clausal
Semntica de los programas lgicos
Bibliografa
FORMULAR EN LPPO, PASAR A CLAUSAL Y
DEMOSTRAR POR REFUTACIN
Las mangostas pueden matar a las cobras.
Montgomery no puede matar a Charlie. Por lo
tanto, si Charlie es una cobra entonces
Montgomery no es una mangosta.

FORMULAR EN LPPO, PASAR A CLAUSAL Y
DEMOSTRAR POR REFUTACIN
Todos los miembros del comit viven en esta
ciudad. El presidente de la sociedad es un
miembro del comit. La Srta. Lpez es la
presidente de la sociedad. Por lo tanto, la Srta.
Lpez vive en esta ciudad.

You might also like