Documente Academic
Documente Profesional
Documente Cultură
Trabajo de investigacin como parte del curso de Programacin Lgica presentan los
alumnos:
AGOSTO 2017
RESOLUCIN LSD: Operacin de derivacin y
rbol SLD
1. Introduccin
El nombre "SLD resolution" fue dado por Maarten van Emden para la regla de inferencia
sin nombre introducida por Robert Kowalski. Su nombre deriva de la resolucin de SL,
que es a la vez sonido y refutacin completa de la forma clausal sin restricciones de la
lgica. "SLD"significa "SL resolution with Definite clauses".
En ambos, SL y SLD, "L" representa el hecho de que una prueba de resolucin se puede
restringir a una secuencia lineal de clusulas:
C1 C2 C3 .. . Cn1 Cl
Donde la "clusula superior" C1 , es una clusula de entrada, y cada otra clusula Ci +1 es una
solucin de cuyos padres es la clusula anterior Ci . La prueba es una refutacin si la ltima
clusula Cl , es la clusula vaca.
En SLD, todas las clusulas son una secuencia clusulas objetivo y el otro padre es una
clusula de entrada. En la resolucin SL, el otro padre es una clusula de entrada o una
clusula ancestral anterior en la secuencia.
Tanto en SL como en SLD, "S" representa el nico literal resuelto en cualquier clusula Ci ,
es aquel que es seleccionado nicamente por una regla de seleccin o funcin de seleccin.
En la resolucin SL, el literal seleccionado est restringido a uno que ha sido introducido
recientemente en la clusula.
En el caso ms simple, tal funcin de seleccin de ltimo en entrar primero en salir puede
especificarse por el orden en el que se escriben los literales, como en Prolog. Sin embargo,
la funcin de seleccin en la resolucin SLD es ms general que en la resolucin SL y en
Prolog. No hay ninguna restriccin sobre el literal que se puede seleccionar.
2. Resolucin SLD
2.1 Definicin :
Sea S un conjunto de clusulas de Horn .
2.1.1 La sucesin ( C0 , Cl , . . . , Cn ) es una resolucin SLD a partir de S si se cumplen las
siguientes condiciones:
2.1.2 La clusula C es deducible por resolucin SLD a partir de S, S-sld C, si existe una
deduccin por resolucin SLD a partir de S, ( C0 , Cl , . . . , Cn ), tal que Cn = C .
El nombre de SLD viene de Linear resolution with Selection function for Definite
clauses.
Ejemplo Sea
S = {{ p3 }, { p4 }, { p1 , p2 },
{ p3 , p4 , p1 }, { p3 , p2 },
{ p1 , p2 }}.
Entonces
({ p1 , p2 }, { p3 , p4 , p2 }, { p4 , p2 }, { p2 }, { p3 }, })
( A 1 , . . . , A n ) en lugar de ( A 1 ), . . . , ( A n )
3.1 Definicin
Sea P un programa lgico, C = A B 1 , . . . , B k una clusula de P y G = A 1 , . . . , A n un
objetivo. Se dice que G0 es una resolvente de G y C con umg (unificador ms general) si
se verifican las siguientes condiciones:
2. Gd = ( A 1 , . . . , A i1 , B 1 , . . . , B k , A i+1 , . . . , A n ).
4. Derivacin SLD
4.1 Definicin Sea P un programa y G un objetivo. Se dice que
( G0 , G1 , G2 . . . ; C1 , C2 , . . . ; 1 , 2 , . . .)
1. G0 = G
2. C1 es una variante de una clusula de P separada de G0
3. G1 es una resolvente de G0 y C1 con umg 1
4. para todo i 2.
Ejemplo
Sea P el programa
p(x, 0, x)
p(x, s(y), s(z)) p(x, y, z)
y G es objetivo p(x, s(0), s(s(s(0)))). En la siguiente figura se muestra una derivacin
para P {G}.
Las derivaciones pueden ser finitas o infinitas. Las finitas pueden terminar con xito (si su
ltimo objetivo es ) o con fallo (en caso contrario).
( G 0 , G 1 , G 2 . . . , G n ; C 1 , C 2 , . . . , C n ; 1 , 2 , . . . , n )
de P {G} y = ( n . . . 1 ) | var( G ).
4.6 Ejemplo 1.
Sea el siguiente programa:
hombre(marcos).
hombre(juan).
es_papa(juan,marcos).
es_papa(juan,rosa).
es_mama(maria,marcos).
es_mama(maria,rosa).
es_hermano(X,Y) tienen_mismos_padres(X,Y), hombre(X).
tienen_mismos_padres(X,Y) mismo_papa(X,Y), misma_mama(X,Y).
mismo_papa(X,Y) es_papa(A,X) , es_papa(A,Y).
misma_mama(X,Y) es_mama(B,X) , es_mama(B,Y).
p( x , z )q ( x , y ), p ( y , z )
p( x , x )
p(b , c )
y G el objetivo p ( x , c ) .
Ntese que aunque el primer rbol es finito y el segundo es infinito, en ambos se obtiene
las mismas respuestas.
Teorema: si P{G} es un inconsistente, entonces el rbol SLD de P{G} va R tiene una
rama de xito.
Teorema: Si es una respuesta correcta de P{G} , entonces el rbol SLD de P{G} via R
existe una rama de xito tal que la respuesta computada por la refutacin que representa
dicha rama, ' , es ms general que (i.e. ' ).
1. P |= A
2. A M p
3. A T P
4. A E p
5. Todo rbol SLD para P{ A} tiene una rama de xito.
Ejemplo 01:
Sea el siguiente programa:
infectado(X,Z)
contagiado(X,Y), infectado(Y,Z).
infectado(X,X).
contagiado(a,b).
y G el objetivo infectado(X,b).
Hallar el rbol LSD, si R es la regla de computacin por la izquierda:
Ejemplo 02 :
Sea el siguiente programa:
tiene_asma(X,Z) sintomas_similares(X,Y), tiene_asma(Y,Z).
tiene_asma(X,X).
sintomas_similares(a,b).
y G el objetivo tiene_asma(X,b).
Hallar el rbol LSD, si R es la regla de computacin por la derecha :
BIBLIOGRAFIA