Demostraciones por resolución

Transcripción

Demostraciones por resolución
Demostraciones por resolución
• A lo largo del curso, hemos prometido insistentemente que hay métodos para
mecanizar demostraciones.
• En particular, queremos un método, dado una base de conocimiento Σ y una
fórmula ϕ nos permita verificar que
Σ |= ϕ
.
• El método que veremos se denomina resolución.
• Resolución es un método de refutación, es decir, sirve para demostrar que una
base de conocimiento es inconsistente.
• Diremos que
Σ `r ϕ
si existe una demostración por resolución para la fórmula ϕ a partir de la base de
conocimiento Σ.
Jorge Baier Aranda, PUC
<< Atrás
42
• Esperamos de nuestro procedimiento dos importantes propiedades:
• Que sea correcto, es decir,
Σ `r ϕ entonces Σ |= ϕ
Esto es lo mı́nimo que podemos exigir. Queremos que nuestro método con conduzca a
conclusiones que no se deriven de la base de conocimiento.
• Que sea completo, es decir,
Σ |= ϕ entonces Σ `r ϕ
Es lo ideal a lo que podemos aspirar. Esto significa que nuestro método puede demostrar
todo lo que se deduce la base de conocimiento.
• La resolución consiste en una aplicación mecánica de pasos que “preservan la
verdad”.
• Supongamos que tenemos las siguiente fórmula en FNC:
(p ∨ q ∨ ¬r) ∧ (¬q ∨ s ∨ ¬v)
y que σ es una valuación que la hace verdadera.
Jorge Baier Aranda, PUC
<< Atrás
43
Luego, si σ |= q, podemos concluir inmediatamente que
σ |= s ∨ ¬v
es verdadero, porque la primera disyunción se hace trivialmente verdadera.
Por otro lado si σ 6|= q, la segunda disyunción se hace trivialmente verdadera en
σ y por lo tanto
σ |= (p ∨ q ∨ ¬r)
Juntando ambos casos tenemos que siempre que σ |= (p ∨ q ∨ ¬r) ∧ (¬q ∨ s ∨ ¬v),
se da que
σ |= (p ∨ ¬r ∨ s ∨ ¬v)
• ¿Qué hemos generado?
• Una nueva cláusula que es consecuencia de las dos originales, pero que tiene una
variable menos.
Jorge Baier Aranda, PUC
<< Atrás
44
• Siempre podremos hacer esto cuando tenemos cláusulas que contienen una
variable común que aparece negada en una y no negada en la otra.
0
• En general, si l1 ∨ . . . ∨ ln y l10 ∨ . . . lm
son cláusulas y se cumple que existe j
(1 ≤ j ≤ n) y k (1 ≤ k ≤ m) tal que lj = ¬lk entonces podemos generar la
cláusula:
_
i∈{1,...,n}−{j}
li ∨
_
li0
i∈{1,...,m}−{k}
Esto se conoce como la regla de resolución de cláusulas. Esta regla será aplicable
siempre que existan dos cláusulas que tengan un literales complementarios.
Jorge Baier Aranda, PUC
<< Atrás
45
Ejemplos de la regla de resolución
• Veamos algunos ejemplos:
p ∨ r ∨ ¬q
s ∨ ¬p ∨ u
r ∨ ¬q ∨ s ∨ u
p ∨ r ∨ ¬q
¬r
p ∨ ¬q
p
¬p
En este último ejemplo hemos llegado a una cláusula vacı́a (o ) que es siempre
falsa porque es equivalente a p ∧ ¬p, una contradicción.
• Este último ejemplo nos motiva la idea principal de la resolución, las
demostraciones por refutación.
Jorge Baier Aranda, PUC
<< Atrás
46
• Si tenemos una base de conocimiento inconsistente, siempre llegaremos a obtener
una cláusula vacı́a.
Jorge Baier Aranda, PUC
<< Atrás
47
El método de demostración por resolución
• Está basado en la reducción entre consistencia y consecuencia lógica:
Σ |= ϕ si y sólo si Σ ∪ {¬ϕ} es inconsistente
• Suponga que quiere demostrar que ϕ es consecuencia lógica de Σ. El método es
el siguiente:
• Transforme el conjunto Σ ∪ {¬ϕ} en un conjunto de cláusulas C = {C1, . . . , Cn} (esto
se puede hacer con el método de traducción a FNC).
• Mientras 6∈ C y existen Ci, Cj ∈ C , tales que la regla de resolución es aplicable:
– Aplique la regla de resolución a Ci y Cj generando C 0 y haga
0
C := C ∪ {C }
• Si ∈ C, decimos que es posible demostrar por resolución, a partir de Σ la
fórmula ϕ.
• En forma simbólica diremos que
Σ `r ϕ.
Jorge Baier Aranda, PUC
<< Atrás
48
• De otra forma, podemos decir que, dado un conjunto inicial de cláusulas S, una
refutación por resolución es una secuencia finita C1, C2, . . . , Cn de cláusulas tal
que cada Ci pertenece a S o es obtenida a partir de la aplicación de la regla de
resolución de dos cláusulas precedentes Cj y Ck (j < k < n).
Jorge Baier Aranda, PUC
<< Atrás
49
Ejemplos de Resolución
• Demuestre que {¬q, p → q} `r ¬p
El conjunto de cláusulas que se genera es {¬q, ¬p ∨ q, p}.
¬q
¬p ∨ q
p
.....
..
.....
....
.....
.....
.....
.....
.....
....
.
.
.....
.
..
.....
.....
.....
.....
.....
.....
.....
.....
....
.
.
.
.....
...
.....
....
.....
.....
.....
.....
.....
....
.....
.
.
.
.....
...
.....
....
.....
.....
.....
.....
.....
....
.
.
.....
.
.......
. ....
.............. ..................
.. ..
¬p
.
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.....
.
..
.....
...
.....
...
.....
..
.....
.....
...
.
.
.....
..
.....
...
.....
...
.....
...
.....
...
.....
.
.
.....
..
.....
...
.....
...
.....
...
.....
...
.....
.
.
.....
..
.....
...
.....
...
.....
...
.....
...
.....
.
.
........ ..........
.......... .......
.....
Jorge Baier Aranda, PUC
<< Atrás
50
• Demuestre que {p, q → (p → r)} `r {q → r}.
El conjunto de cláusulas inicial es el siguiente:
{p, ¬q ∨ ¬p ∨ r, q, ¬r}
p
¬q ∨ ¬p ∨ r
.....
..
.....
....
.....
.....
.....
.....
.....
....
.
.....
.
.
.
.....
.....
.....
.....
.....
.....
.....
.....
....
.
.
.
.
.....
...
.....
....
.....
.....
.....
.....
.....
....
.....
.
.
.
.....
...
.....
....
.....
.....
.....
....
.....
.....
.
.
.....
.
.......
. ....
............ ...............
.... ...
q
.
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.
..
...
...
...
...
.
.....
.
.
.....
...
.....
...
.....
.....
...
.....
...
.
.
.....
..
.....
...
.....
...
.....
...
.....
.....
...
.
.
.....
..
.....
...
.....
...
.....
...
.....
...
.....
.
.
.....
..
.....
...
.....
...
.....
...
.....
...
.....
.
.
........ ........
.......... ........
.....
¬q ∨ r
r
¬r
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
...
...
..
.
...
.......
...
.......
.......
..
.......
..
.
.
.......
.......
...
.......
...
.......
..
.......
..
.......
.
.
.......
.......
...
.......
...
.......
..
.......
..
.......
.
.
.......
..
.......
..
.......
.......... ...........
.......................
Jorge Baier Aranda, PUC
<< Atrás
51
Propiedades de Resolución
• Por construcción, resolución es correcta, es decir,
Si Σ `r ϕ entonces Σ |= ϕ.
En efecto, el proceso de resolución agrega cláusulas que son consecuencia lógica
de un conjunto Σ al mismo conjunto. Si una valuación σ es tal que σ |= Σ y
Σ |= ϕ, entonces σ |= Σ ∪ {ϕ}. Esto quiere decir que todos los conjuntos que se
generan son equiconsistentes.
• Es posible obtener un resultado aún más deseable...
• Resolución es también completa, esto significa que
Si Σ |= ϕ entonces Σ `r ϕ.
Es decir, cualquier fórmula que sea consecuencia lógica de un conjunto de
fórmulas es demostrable a través de resolución.
Jorge Baier Aranda, PUC
<< Atrás
52
Implementando Resolución
• El algoritmo de resolución que hemos visto es no determinı́stico.
• Para poder implementarla necesitamos un algoritmo determinı́stico.
• ¿Cómo lo hacemos?
Jorge Baier Aranda, PUC
<< Atrás
53
Implementando Resolución: por Saturación de Niveles
• La idea de este método es asignar las cláusulas a niveles.
• El conjunto inicial de cláusulas S está asignado al nivel 0.
• Todas las cláusulas que se pueden formar a partir de cláusulas del nivel 0,
pertenecerán al nivel 1.
• Y ası́ sucesivamente...
• Formalmente, los niveles se definen de la siguiente manera:
S0 = S
S n = {cláusulas obtenidas de C1, C2 | C1 ∈
n−1
[
S i y C2 ∈ S n−1}
i=0
• Si a partir de S es posible encontrar una refutación, entonces la cláusula vacı́a
aparecerá en alguno de estos conjuntos.
Jorge Baier Aranda, PUC
<< Atrás
54
• Veamos cómo funciona.
Jorge Baier Aranda, PUC
<< Atrás
55
• Use resolución para demostrar que el conjunto {p ∨ q ∨ r, ¬p ∨ q, ¬q, ¬r} es
insatisfacible.
S 0:
1. p ∨ q ∨ r
2. ¬p ∨ q
3. ¬q
4. ¬r
S 2:
• 9. q ∨ r, de 1 y 8
10. q ∨ r, de 2 y 6
11. q, de 2 y 7
12. r, de 3 y 5
13. p, de 3 y 7
14. q, de 4 y 5
15. p, de 4 y 6
S 1:
5. q ∨ r, de 1 y 2
6. p ∨ r, de 1 y 3
7. p ∨ q, de 1 y 4
8. ¬p, de 2 y 3
S 3:
16. de 3 y 11.
...
• ¿Cómo podemos optimizar esto?
Jorge Baier Aranda, PUC
<< Atrás
56
• Eliminación de tautologı́as, cláusulas repetidas y subsumidas (deletion).
• Formalmente, una cláusula D es subsumida por una cláusula C si todos los
literales que aparecen en C también aparecen en D.
Por ejemplo: p ∨ ¬q ∨ r es subsumida por p ∨ ¬q, p ∨ r, ¬q ∨ r, p, ¬q y r.
• El algoritmo de deletion agrega una cláusula al nivel S n ssi esta cláusula no es
subsumida por ninguna cláusula que ya se encuentre en algún nivel (incluyendo a
S n).
• Usando la técnica de deletion, se obtiene la siguiente derivación en nuestro
ejemplo:
Jorge Baier Aranda, PUC
<< Atrás
57
S 0:
1. p ∨ q ∨ r
2. ¬p ∨ q
3. ¬q
4. ¬r
S 1:
5. q ∨ r, de 1 y 2
6. p ∨ r, de 1 y 3
7. p ∨ q, de 1 y 4
8. ¬p, de 2 y 3
•
S 2:
9. q, de 2 y 7
10. r, de 3 y 5
11. p, de 3 y 7
S 3:
12. de 3 y 9.
...
• Para este caso, no hemos logrado grandes optimizaciones.
• Es posible demostrar que este nuevo algoritmo es completo y correcto.
Jorge Baier Aranda, PUC
<< Atrás
58
Resolución Semántica
• Uno de los mayores avances en mejorar la implementación de resolución está
dado por los métodos que se derivan de resolución semántica.
• La idea es bastante simple y viene de la observación de los siguientes hechos:
• Generalmente aplicamos resolución a un conjunto inconsistente de fórmulas Σ.
• Esto significa que ninguna valuación hace verdadero al conjunto de fórmulas.
• Supongamos que elegimos una valuación arbitraria σ .
• Necesariamente esta valuación divide al conjunto de cláusulas en dos conjuntos no vacı́os.
¿por qué?
• Sea Σ1 el conjunto que es hecho verdadero por σ y Σ2 el conjunto hecho falso por σ
(Σ1 ∪ Σ2 = Σ).
• Bajo este esquema, para producir una contradicción no tiene sentido hacer resolución
entre cláusulas de Σ1 o cláusulas de Σ2.
• Sólo podremos producir una contradicción al hacer resolución entre cláusulas de distintos
conjuntos.
• También es posible demostrar que esta resolución es correcta y completa.
Jorge Baier Aranda, PUC
<< Atrás
59
• Un caso particular de resolución semántica es hiper-resolución.
• Existen dos variantes, hiper-resolución positiva e hiper-resolución negativa.
Definición 12. [Hiper-resolución positiva] Una hiper-resolución positiva es
un caso especial de resolución semántica, en la cual la interpretación σ escogida
hace falso a todas las variables del conjunto de fórmulas.
• Hiper-resolución negativa se define en forma análoga.
• La ventaja de hiper-resolución es que la pertenencia de cualquier fórmula a los
conjuntos Σ1 o Σ2 puede ser determinada sintácticamente.
• En efecto, las cláusulas que son hechas falsas por la valuación σ son todas
aquéllas que contienen sólo literales positivos.
• Por otro lado, las cláusulas que contienen al menos un literal negativo son hechas
verdaderas.
Jorge Baier Aranda, PUC
<< Atrás
60
• En cada paso de la hiper-resolución positiva, se escogen n cláusulas (llamadas
satélites) que sólo contengan literales positivos y una cláusula que contenga, al
menos, un literal negativo (llamada núcleo).
• Veamos cómo se ve en la práctica este tipo de resolución.
Jorge Baier Aranda, PUC
<< Atrás
61
Ejemplo de Hiper-resolución Positiva
• Demuestre que el conjunto {¬p ∨ ¬q ∨ r, p ∨ r, q ∨ r, ¬r} es insatisfacible
S0
S1
1. ¬p ∨ ¬q ∨ r
2. ¬r
5. ¬q ∨ r , de 1 y 3
6. ¬p ∨ r , de 1 y 4
3. p ∨ r
4. q ∨ r
7. p de 2 y 3
8. q de 2 y 4
S2
2
S3
11. de 2 y 9.
9. r de 3 y 6
–
• Hiper-resolución puede ser mejorada si se fuerza un ordenamiento total entre las
variables proposicionales.
• De esta forma podemos decir que las variables se ordenan de la siguiente manera:
p > q > r.
2
En la primera fila se ubican los núcleos y en la segunda los satélites
Jorge Baier Aranda, PUC
<< Atrás
62
• La regla de resolución se modifica de la siguiente manera: “Sólo aplicar la regla
de resolución con una cláusula satélite C si el literal resuelto en la cláusula3 es el
mayor (dado un orden fijo cualquiera) que aparece en C.
• Usando esta regla, la resolución se reduce de la siguiente manera:
S0
S1
1. ¬p ∨ ¬q ∨ r
2. ¬r
5. ¬q ∨ r , de 1 y 3
6. ¬p ∨ r , de 1 y 4
3. p ∨ r
4. q ∨ r
–
S2
S3
8. de 2 y 7.
7. r de 3 y 6
–
• Es posible demostrar que este tipo de resolución también es correcta y completa.
3
Este es literal que no aparece en la cláusula resultante de la resolución
Jorge Baier Aranda, PUC
<< Atrás
63
La estrategia Set of Support (SOS)
• Generalmente, cuando se busca una demostración mecánica, se intenta concluir
una fórmula ϕ a partir de un conjunto de fórmulas Σ que es generalmente
consistente.
• Debido a esto, es posible evitar el uso de resolución entre cláusulas de Σ.
• Un subconjunto T de un conjunto S de cláusulas se dice conjunto de soporte
(set of support) si S − T es satisfacible.
• La regla de resolución SOS es la misma de resolución estándar, pero sólo es
aplicable entre dos clausulas C1 y C2 si no se da que ambas pertenecen a S − T .
• Esta estrategia es una de las bases del demostrador mecánico Otter.
Jorge Baier Aranda, PUC
<< Atrás
64

Documentos relacionados