Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase - 09 - Resoluci - N Refinamiento SLD NegF
Clase - 09 - Resoluci - N Refinamiento SLD NegF
Ciencias Informáticas
Procedimiento de Refutación:
Principios útiles y Refinamientos –
Resolución SLD – Negación por falla
Licenciatura en Sistemas
Dr. Carlos E. Alvez
caralv@fcad.uner.edu.ar
Adaptación de: Simari - 2006 - UNS
Resolución (repaso)
1
Procedimiento de Refutación (Repaso)
2
Procedimiento de Refutación
Principios
Útiles
3
Principio de Pureza
Pureza:
Sea S un conjunto finito de cláusulas y sea C una
cláusula que contiene un literal puro. Entonces la
cláusula C puede eliminarse de S sin afectar su
satisfabilidad. Es decir, S es satisfacible si y solo si
S – { C } es satisfacible.
7
Principio de Subsumisión
4
Principio de Reemplazo
Tautologías
5
Un Literal
Sea S un conjunto finito de cláusulas y sea L una cláusula
unitaria. Se construye S1 a partir de S de la siguiente manera:
a) Se borran todas las cláusulas de S que contienen a L, y luego
b) Se reemplaza cada cláusula C del resto de S por una cláusula
obtenida de C removiendo todas las apariciones del
complemento de L (si existiera alguna).
Entonces S1 es satisfacible si y solo si S es satisfacible.
Ejemplo:
{ q(a), q(a) p(c), q(a) p(c), r(a) p(b), q(a) s(a)
r(b), s(b) p(b), s(b) }
se transforma en
{ r(a) p(b), s(a) r(b), s(b) p(b), s(b) }
11
Separación
Sea S = {C1 A, …, Cm A, D1 A, …, Dn A, E1 , …, Ep },
un conjunto finito de cláusulas donde A es un átomo y los
Ci, Dj, Ek no contienen ni A ni a A.
Sean
S1 = { C1, …, Cm, E1 , …, Ep } y
S2 = { D1, …, Dn, E1 , …, Ep }
Entonces, S es insatisfacible si y solo si tanto S1 como S2 son
insatisfacibles.
Ejemplo:
S = {s(b), s(b) p(b) }
será insatisfacible si y solo si S1 = { }, S2 = {p(b) }
son insatisfacibles. 12
6
Ejemplo
1. S = { p(a) p(a) q(b), q(a), q(a) p(c), r(a) p(b),
q(a) s(a) r(b), s(b) p(b), s(b) }
2. {q(a), q(a) p(c), q(a) p(c), r(a) p(b),
q(a) s(a) r(b), s(b) p(b), s(b) } (tautología)
3. {r(a) p(b), s(a) r(b), s(b) p(b), s(b) } (un literal)
4. {s(a) r(b), s(b) p(b), s(b) } (literal puro)
5. {s(b) p(b), s(b) } (literal puro)
6. S1 = { } (separación)
S2 = {p(b) }
7. S1 = { } (un literal)
S2 = { }
Luego el conjunto S original es satisfacible. 13
Resolución
14
7
Refinamientos
Resolución (terminología)
Cláusulas “madre”
q(a) r(y)
16
8
Deducción por Resolución (terminología)
1. p(x,e,x) Cláusulas
Input
2. p(y, z, v) p(y,v,w) p(e,z,w)
3. p(a,f(u,v),e)
------------------------------------------------------
4. p(x, z, e) p(e,z,x) [ Cláusulas madre: 1, 2]
5. p(e, f(u, v), a) [ Cláusulas madre: 3, 4]
17
Resolución Input
9
Resolución Input
19
20
10
Resolución Unitaria
21
Resolución Unitaria
Definición: Una resolución unitaria requiere que al menos
una de las cláusulas madre en cada operación de
resolución debe ser una cláusula unitaria, o un factor
unitario de una cláusula madre.
Una derivación unitaria es una derivación por resolución
en la que cada resolución es una resolución unitaria.
Una refutación unitaria es una derivación unitaria de .
Obs: Resolución input y resolución unitaria son
equivalentes en el sentido de que existirá una refutación
input de un conjunto insatisfacible S si y solo si existe una
refutación unitaria de S. Luego resolución unitaria es
también incompleta. Es posible demostrar que ambas
son completas sobre conjuntos de cláusulas Horn.
22
11
Conjunto de Soporte
Conjunto de Soporte
24
12
Conjunto de Soporte
Conjunto de Soporte
26
13
Conjunto de Soporte
Ejemplo:
Sea S = { p(x, y) q(x),
p(x, y) q(x),
q ( a) }
y sea S1 = {p(x, y) q(x) } el conjunto de soporte.
Claramente, S es insatisfacible y S – S1 es satisfacible.
La siguiente es una resolución por conjunto de soporte.
1. p (x , y ) q (x ) en S (y S1)
2. p (x , y ) q (x ) en S
3. q (a) en S
4. p ( a, y ) 1y3
5. q(a) 2y4
6. 3y5 27
Resolución Lineal
14
Resolución Lineal
C4: 30
15
Ejemplo de Resolución Lineal
Sea S = { p(x), p(x) q(x), p(x) r(x), q(a) r(a) } y
consideremos la siguiente derivación con q(a) r(a) como
cláusula top.
C 3:
31
Resolución Lineal
32
16
Resolución Lineal
33
q pr p r s
r r s r p q s
q s
ps s p q
s p p q p p
p p
34
17
Resolución SLD
“Selección Lineal de
Programas Definidos”
Resolución SLD
“Selección Lineal de Programas Definidos”
36
18
Resolución SLD
“Selección Lineal de Programas Definidos”
Resolución SLD
“Selección Lineal de Programas Definidos”
19
Árbol SLD
39
Árbol SLD
G = q(y, b)
40
20
Árbol SLD
Definición. Rama de éxito de un árbol SLD: Rama que
conduce a una refutación.
Definición. Rama de fallo de un árbol SLD: Rama que
conduce a una cláusula objetivo cuyo literal seleccionado no
pude unificarse con ninguna cláusula del programa.
Definición. Rama infinita de un árbol SLD: Rama
correspondiente a una derivación no terminante.
Definición. Regla de búsqueda en un árbol SLD:
Procedimiento de búsqueda de una refutación en un árbol
SLD.
Definición. Procedimiento de refutación SLD: Algoritmo
de refutación SLD junto con la especificación de una regla
de computación y una regla de búsqueda.
41
Árbol SLD
42
21
Regla de Búsqueda en Prolog
Lógica y Prolog
En la lógica, un conjunto de cláusulas puede ser verdadera o
falsa independiente del orden.
22
CUT
45
CUT
46
23
CUT - Ejemplo
47
Terminología:
48
24
La negación como falla
negf(X):- X, !, fail.
negf(X).
49
Bibliografía
50
25