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