Sunteți pe pagina 1din 13

UNIVERSIDAD NACIONAL DE TRUJILLO

RESOLUCIN SLD: OPERACIN DE


DERIVACIN Y RBOL SLD

Trabajo de investigacin como parte del curso de Programacin Lgica presentan los
alumnos:

- ALVARADO ALVARADO, Hecir.

- ALVARADO VENTURA, Ronald.

- CASTILLO QUISPE, Samuel.

- CUNIA ROMERO, Athina.

- LARA ARANA, Jean Pierre.

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:

(a) C0 S es una clusula negativa;


(b) para todo i {1, . . . , n}, existe una clusula no negativa B S tal que
Ci Res( Ci1 , B).

La clusula C0 se llama clusula base, las Ci se llaman clusulas centrales y las B se


llaman clusulas laterales.

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 }, })

es una resolucin SLD partir de S. Puede ilustrarse mediante el siguiente diagrama.


3. Proceso de Computacin: Resolucin SLD
Sea una sustitucin y A 1 , . . . , A n un objetivo. Escribiremos

( 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:

1. Existe un i {1, . . . , n} tal que es un unificador de mxima generalidad de A i y A .

2. Gd = ( A 1 , . . . , A i1 , B 1 , . . . , B k , A i+1 , . . . , A n ).

En este caso, se dice que A i es el tomo seleccionado.

4. Derivacin SLD
4.1 Definicin Sea P un programa y G un objetivo. Se dice que

( G0 , G1 , G2 . . . ; C1 , C2 , . . . ; 1 , 2 , . . .)

es una derivacin SLD (o, simplemente, derivacin) de P {G} si

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.

(a) Ci es una variante de una clusula de P.


(b) Ci no tiene variables comunes con G0 , . . . , Gi1 , C1 , . . . , Ci1 .
(c) Gi es una resolvente de Gi1 y Ci com umg 1 .

Las clusulas Ci se llaman clusulas de entrada.

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).

4.2 Definicin :Una refutacin de P {G} es una derivacin finita de P {G} ( G0 , G1 , G2 . . .


, Gn ; C1 , C2 , . . . , Cn ; 1 , 2 , . . . , n ) tal que Gn = . Se dice que n es la longitud de la
refutacin.

4.3 Definicin :Sea una sustitucin y V V un conjunto de variables. La restriccin de a


V es la sustitucin definida por

La restriccin de a V se representa por V 0 .


4.4 Definicin Sea P un programa y G un objetivo. La sustitucin es una respuesta
computada para P {G} si existe una refutacin

( 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 ).

Ejemplo La sustitucin = {(x, s(s(0)))} es una respuesta computada para el ejemplo


anterior.

4.5 Definicion El conjunto de exitos de un programa P, E p , es el conjunto de los A B(P)


tales que P { A} tiene una refutacin.

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).

Supongamos que el USR quiere averiguar


Quien es hermano de marcos?
Ejemplo 2.
Sea el siguiente programa:
1. fiebre( carlos ).
2. dolor_de_cuerpo( carlos ).
3. Se_hizo_analisis( carlos).
4. Se_diagnostico(carlos, dengue).
5. padece( X , Y ) tiene_sintomas (X) , tiene_enfermedad ( X , Y ).
6. tiene_sintomas( X ) fiebre ( X ) , dolor_de_cuerpo( X ).
7. tiene_enfermedad(X,Y) se_diagnostico(X,Y), se_hizo_anlisis (X)

Supongamos que el USR quiere averiguar que padece carlos?


padece(carlos, Z).
5. rbol SLD
Un rbol de derivacin SLD representa un proceso de bsqueda, en el cual los nodos de un
rbol vendran a representar los objetivos pendientes (tomos por deducir).
Presenta dos tipos de nodos, los cuales son los nodos raz y los nodos finales. Los nodo
raz vienen a ser representados por el objetivo inicial, de donde se partir para la
derivacin del rbol, y los nodos Finales son aquellos de los que no se puede seguir
derivando; dentro de estos nodos finales tenemos lo nodos de fallo que son obtenidos
cuando su primer tomo no es unificable con la cabeza de ninguna regla o hecho y los
nodos de xito es aquel que no tiene objetivos pendientes.
Por ltimo tenemos a las ramas de xito son aquellas que terminan en nodo de xito, cada
rama de xito construye una sustitucin(respuesta ) que se va concretando mediante los
sucesivos pasos de unificacin.

Definicin: Sea P un programa, G un objetivo y R una regla de computacin. Un rbol


SLD de P {G} va R es un rbol verificando las siguiente condiciones:

1. Cada nodo del rbol es un objetivo.


2. El nodo raz es G.
3. Los nodos que son la clusula vaca no tienen hijos. Dichos nodos se llaman nodos de
xito. Las ramas de la raz a los nodos de xito se llaman ramas de xito.
4. Sea G = A 1 ,. .. , A n ( n1 ) un nodo del rbol y A i = R(G). Entonces para cada
clusula de P, C =A B1 , . .. , B k , tal que A y A m son unificables el nodo tiene un hijo
( A1 ,. . . Ai 1 , B ' 1 , .. . , B ' k , Ai+ 1 , .. . , A n )
donde A ' B' 1 ,. .. , B ' k Es una variante de C separada de los antecesores de G y
es un unificador de mxima generalidad de A y A i . Si el nodo G, no tiene
descendientes, se llama un nodo fallo, y las ramas de la raz G se llaman ramas de
fallo.
Nota: cada rama del rbol representa una derivacin de P{G} via R.

Ejemplo: Sea el programa

p( x , z )q ( x , y ), p ( y , z )
p( x , x )
p(b , c )
y G el objetivo p ( x , c ) .

Si R es la regla de computacin por la izquierda (i.e., R ( A1 , , A n= A1 ) entonces el


rbol SLD para P{G} via R es:
Si R es la regla de computacin por la derecha (i.e., R ( A1 , , A n= An ) ) entonces el
rbol SLD para P{G} via R es:

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. ' ).

Teorema: Si P es un programa y A es un tomo bsico, son equivalentes:

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

[1] Cuena, J., Lgica informtica. Alianza, 1985


[2] Kowalski, R., Lgica, programacin e inteligencia artificial. Daz de Santos, 1986.
[3] Quine, W.V., Los mtodos de la lgica. Ariel, 1981.
[4] Russel, S. y Norvig, P. Inteligencia Artificial: Un enfoque Moderno (2nd edition) (Prentice-
Hall, 2003)

S-ar putea să vă placă și