Professional Documents
Culture Documents
Resolucion SLD
1 / 114
Refinando la resolucion
La resolucion general es un mecanismo muy potente de
demostracion...
pero tiene un alto grado de indeterminismo:
en la seleccion de las clausulas con las que hacer resoluci
on
y en la seleccion de los literales a utilizar en la resoluci
on
Clausulas de Horn
Una clausula de Horn es una secuencia de literales que contiene a
lo sumo un literal positivo. Al escribirla en notaci
on de Kowalski
tendra una de estas cuatro formas:
1
2
Hecho: p
Regla: p q1 , . . . , qn
|{z}
| {z }
cabeza
3
4
cuerpo
Objetivo: q1 , . . . , qn
Exito:
4 / 114
q1 (. . .), . . . , qm (. . .)
r1 (. . .), . . . , rk (. . .)
Un ejemplo
arco(a, b)
arco(a, c)
arco(b, d)
arco(c, d)
arco(c, e)
arco(d, e)
6 / 114
Ejemplo (cont.)
La relacion de conexion entre nodos (caminos) puede expresarse
mediante reglas:
camino(X , Y ) X = Y
camino(X , Y ) arco(X , Z ), camino(Z , Y )
(la primera regla, tambien se podra haber escrito como un hecho:
camino(X , X ) )
La lectura de estas dos resglas es:
hay un camino de un nodo a otro, si son el mismo
hay un camino de un nodo X a otro Y si existe un nodo Z tal
que hay arco entre X y Z , y hay camino entre Z e Y
7 / 114
Ejemplo (cont.)
Ahora, se podra plantear un objetivo, i.e., entendiendo los hechos
y las reglas que hemos escrito como premisas podramos plantear
una conclusion y tratar de mostrar la validez de la argumentaci
on.
Por ejemplo, podemos plantear los objetivos (o preguntas):
arco(b, d)
camino(a, d)
camino(a, X )
camino(e, Y )
camino(X , Y )
camino(X , b), camino(X , d)
los dos primeros son objetivos cerrados porque no contienen
variables, mientras que los restantes son objetivos abiertos.
... que deberamos obtener (por resoluci
on) en cada caso?
8 / 114
implcitamente tenemos:
X .Y .Z .(camino(X , Y ) arco(X , Z ), camino(Z , Y ))
Otro ejemplo
Podemos definir la suma de naturales (representados como c y s)
mediante un hecho y una regla:
suma(c, X , X )
10 / 114
SLD-Resolucion
11 / 114
SLD-resolucion (cont.)
Formalmente:
Sea un programa logico P, un par de objetivos G y G 0 , y una
funcion de seleccion fs . Una derivaci
on de G a G 0 con
SLD-resolucion (P {G } `SLD G 0 ) es una secuencia de
objetivos G0 , G1 , . . . , Gk tal que:
G0 = G
Gk = G 0
para todo i {0, ..., k 1}, Gi+1 de obtiene a partir de Gi
resolviendo (en el sentido de la resoluci
on general) el literal
L = fs (Gi ) con una variante de una regla de P.
12 / 114
Ejemplo
Supongamos el programa (c representa cero y s sucesor):
suma(c, Y , Y )
suma(c, Y2 , Y2 )
2 = [Y2 /s(c)]
13 / 114
Respuestas correctas
Dado un programa P y un objetivo G q1 , . . . , qn , diremos que
una sustitucion es una respuesta correcta para P {G } si
u
nicamente act
ua sobre las variables de G y
P |= X1 . . . . .Xm (q1 . . . qn ), siendo {X1 , . . . , Xn } el
conjunto de variables de G (notaci
on: P |= [(q1 . . . qn )] )
Por ejemplo, consideremos la siguiente refutaci
on:
G suma(c, s(A), B)
suma(c, Y1 , Y1 )
1 = [Y1 /s(A), B/s(A)]
La sustituci
on obtenida, 1 , restringida a las variables del objetivo original G es
1 |var (G ) = [B/s(A)] (la variable Y1 no aparece en en G ).
= [B/s(A)] es una respuesta correcta para G ... por qu
e?
14 / 114
Ejemplo
17 / 114
Ejemplo (cont.)
Una posible refutacion (tomando como funci
on de selecci
on la que
toma el primer literal por la izquierda):
camino(X , e)
1 = [X1 /X , Y1 /e]
arco(X , Z1 ), camino(Z1 , e)
arco(a, c)
2 = [X /a, Z1 /c]
camino(c, e)
18 / 114
Ejemplo (cont.)
camino(c, e)
arco(c, Z3 ), camino(Z3 , e)
4 = [Z3 /e]
camino(X4 , X4 )
camino(e, e)
5 = [X4 /e]
19 / 114
Ejemplo (cont.)
La composicion de sustituciones obtenidas es:
= 1 . . . 5 = [X /a, X1 /a, Y1 /e, Z1 /c, X3 /c, Y3 /e, Z3 /e, X4 /e]
Si consideramos la restricci
on a las variables del objetivo original,
es decir, a X tenemos:
0 = |{X } = [X /a]
Por el teorema de correcci
on 0 = [X /a] es una respuesta
correcta para el objetivo original.
Por el teorema de completitud, este mecanismo debe ser
capaz de encontrar ademas otras respuestas. Intuitivamente es
facil ver que seran [X /b], [X /c], [X /d], [X /e]... c
omo se
construiran las SLD-refutaciones para encontrar estas
respuestas?
20 / 114
Hacia Prolog
La resolucion SLD esta mucho mas pr
oxima a una
implementacion realista de la programaci
on l
ogica porque ha
acotado notablemente el indeterminismo con respecto a la
resolucion general.
Las cla
usulas de Horn son lo suficientemente expresivas para
utilizarlas como lenguaje de programaci
on.
Quedan dos cuestiones por resolver:
Que funcion de selecci
on utilizamos? (esto, seg
un hemos visto
no afecta a la correcci
on y la completitud).
Que criterio seguimos para seleccionar una de las reglas
aplicables para resolver un objetivo? (esto, esta relacionado
con la completitud).
En el u
ltimo ejemplo, utilizando uno u otro criterio se obtienen
distintas respuestas.
21 / 114