Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos...
Transcript of Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos...
![Page 1: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/1.jpg)
Lógica modal computacional
Algoritmos efectivos
Daniel Gorín y Sergio Mera
1er cuatrimestre de 2010
![Page 2: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/2.jpg)
Repaso
Estuvimos viendo. . .Complejidad de distintas lógicas modalesEn particular, algoritmos óptimos, pero imprácticos!
Hoy vamos a verAlgoritmos con peor complejidadPero buen comportamiento empírico en casos promedio
![Page 3: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/3.jpg)
Satisfacibilidad proposicionalCuestión de((((hhhhadivinar buscar modelos
Algoritmo NP para satisfacibilidad proposicionalDada una fórmula ϕ:
1 Adivinar una valuación v para las variables de ϕ2 Devolver 1 sii v |= ϕ
Obviamente, no sirve como algoritmo efectivo
Algoritmo DPLL (Davis-Putnam-Logemann-Loveland)Dada una fórmula ϕ en clause normal form
1 Buscar (“backtracking”) una valuación que satisfaga ϕ2 Devolver 1 sii se encuentra tal valuación
Es la base de todos los SAT Solvers modernosPero éstos agregan mucha “inteligencia”!
![Page 4: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/4.jpg)
DPLL en más detalle
Clause Normal Form(CNF)Conjunción de disyunciones de literales (cláusulas)Ej. (p1 ∨ ¬p2 ∨ p3) ∧ (p2 ∨ p3 ∨ ¬p4) ∧ (¬p1 ∨ ¬p3)
Reglas de DPLL
Splitv‖S
v[p7→>]‖S | v[p7→⊥]‖S p indefinido en v
Unit>v‖S∧(C∨p)v[p7→>]‖S p indefinido en v y v 6|= C
Unit⊥v‖S∧(C∨¬p)
v[p7→⊥]‖S p indefinido en v y v 6|= C
Failv‖S∧C× v 6|= C
![Page 5: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/5.jpg)
Ejemplo
EjercicioDecidir si ϕ = C1 ∧ C2 ∧ C3 ∧ C4 ∧ C5 ∧ C6 es sat., donde:
C1 = ¬p1 ∨ p2 ∨ p3
C2 = p1
C3 = ¬p2 ∨ p3
C4 = p2 ∨ ¬p3
C5 = p2 ∨ p3
C6 = ¬p2 ∨ ¬p3
![Page 6: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/6.jpg)
Del dicho al hecho. . .
Detalles que hacen la diferencia al implementar DPLLSplit corresponde al backtracking, aplicarla poco!Tener buenas heurísticas sobre qué p elegir en cada SplitImplementar:
Conflict analysis: qué está forzando el backtracking?Learning: agregar cláusulas con estas nuevas restriccionesBackjumping: basado en esto, poder volver más de un paso
Usar estructuras de datos especialesImplementar otras heurísticas (restarting, etc.)
![Page 7: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/7.jpg)
Transformaciones a CNF
Toda fórmula tiene una equivalente en CNFPor ejemplo, usar la siguiente reescritura:
¬¬ϕ ; ϕ¬(ϕ ∧ ψ) ; (¬ϕ ∨ ¬ψ)¬(ϕ ∨ ψ) ; (¬ϕ ∧ ¬ψ)
ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)
Pero tenemos este. . . TeoremaNingún polinomio acota el tamaño de una equivalente en CNF.
Existen transformaciones a CNF que. . .Devuelven una fórmula no equivalente, pero equisatisfacibleSon polinomiales!Se basan en introducir nuevos símbolos; por ejemplo:
ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ p) ∧ (¬p ∨ ψ) ∧ (¬p ∨ χ)
![Page 8: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/8.jpg)
Satisfacibilidad de K via DPLL
Algoritmo NPSPACE para K-satisfacibilidadDada una fórmula ϕ
1 Adivinar un Hintikka set H que contenga a ϕ2 Devolver 1 sólamente si:
para cada 3ψ ∈ H, {ψ} ∪ {χ | 2χ ∈ H} es satisfacible
DPLL modalDada una fórmula ϕ en modal clause normal form (mCNF)
1 Obtener (via DPLL) un Hintikka set H que contenga a ϕ2 Si para cada 3ϕ ∈ H, {ϕ} ∪ {χ | 2χ ∈ H} es satisfacible
Devolver 13 Si no (i.e. si cierto {ϕ} ∪ {χ | 2χ ∈ H} no es satisfacible)
Obtener (via DPLL) una extensión de H que contenga a¬3ϕ ∨
_{¬2χ | 2χ ∈ H}
Volver al punto 2.4 Devolver 0 siempre que una búsqueda por DPLL falle
![Page 9: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/9.jpg)
DPLL modalDetalles de implementación
Modal Clause Normal Form (mCNF)mCNF: Conjunción de cláusulas modalesCláusula modal: disyunción de literales modalesLiterales modales: p, ¬p, 2χ, ¬2χ (con χ cláusula modal)Valen las mismas observaciones hechas para CNF!
De modal a proposicional, ida y vueltaUsamos dos mappings ;p y ;m
pi ;p qpi qpi ;m pi
2χ ;p q2χ q2χ ;m 2χ
Dada ϕ, usamos ;p para obtener una fórmula prop. αDada una v |= α, v induce un único Hintikka set sobre ϕCon ;m recuperamos los literales modales elegidos por v.
![Page 10: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/10.jpg)
Ejemplo
EjercicioDecidir si ϕ = C1 ∧ C2 ∧ C3 ∧ C4 ∧ C5 es sat., donde:
C1 = p1
C2 = ¬p1 ∨ ¬2(p1 ∨ p2)C3 = ¬p1 ∨ p2
C4 = ¬p2 ∨2p1
C5 = ¬p1 ∨2p2
![Page 11: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/11.jpg)
DPLL modalOptimizaciones
No recomenzar de cero cada vezHay SAT solvers que dejan agregar cláusulas y continuarLuego, si obtuvimos una valuación v tal que:
Exige que {¬2χ,2ψ1, . . .2ψn} sea satisfaciblesPero probamos que {χ, ψ1, . . . ψn} no lo es
Debemos agregar la cláusula 2χ ∨ ¬2χ1 ∨ · · · ∨ ¬2χn
Y recontinuamos (salvando el “esfuerzo” en obtener v)
Caching1 Si vimos que {¬2χ,2ψ1, . . .2ψn} es satisfacible, recordarlo2 Si luego queremos ver si H = {¬2ϕ,2ϕ1, . . .2ϕk} es sat,
y sabemos que un H′ es sat., con H′ ⊇ H, entonces H es sat.
![Page 12: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/12.jpg)
Satisfacibilidad modal ((((((((hhhhhhhhadivinando buscando modelosTableaux modales
Algoritmo NTIME(f ) para lógicas con modelos f -acotadosDada una fórmula ϕ:
1 Adivinar un modeloM de tamaño a lo sumo f (|ϕ|)2 Adivinar un w en el dominio deM3 Devolver 1 siiM,w |= ϕ
Obviamente, no sirve como algoritmo efectivo
Algoritmo de TableauxDada una fórmula ϕ
1 Buscar (“backtracking”) sistemáticamente un modelo de ϕ2 Devolver 1 sii se encuentra tal modelo
Es la base de muchos razonadores para lógicas modalesVarios tipos de tableaux, vamos a ver sólo tableauxetiquetados
![Page 13: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/13.jpg)
¿Qué es un algoritmo de tableau (etiquetado)?
Reglas de tableaux: definen un árbol de posibilidades.Los nodos de un árbol son, en general:
Fórmulas “etiquetadas” w:ψ, donde w es una etiqueta.“Relaciones” Rwv donde w y v son etiquetas.
Cada rama del árbol codifica de alguna manera un modelo.Las reglas nos dicen:
1 Cómo detectar que una rama no nos sirve (reglas de clash).2 Cómo expandir una rama sin clash.
Algoritmo: Dada ϕ, explorar (backtracking) el árbol de w:ϕ.
![Page 14: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/14.jpg)
Ejemplo de tableaux etiquetadoLógica modal con pasado
Reglas de expansión
∧ w:ϕ∧ψw:ϕ,w:ψ ∨ w:ϕ∨ψ
w:ϕ | w:ψ
3w:3ϕ
Rwv,v:ϕ (nuevo v) 3−1 w:3−1ϕRvw,v:ϕ (nuevo v)
2w:2ϕ,Rwv
v:ϕ 2−1 w:2−1ϕ,Rvwv:ϕ
Reglas de clash
clashw:p,w:¬p⊥
Asumimos fórmulas en negation normal form.Las reglas 3 y 3−1 se usan sólo si no existe tal v en la rama.
![Page 15: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/15.jpg)
Ejemplo
Ejercicio
Decidir si ϕ = p1 ∧3p2 ∧32−12(¬p2 ∨2−1¬p1) es satisfacible.
![Page 16: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/16.jpg)
Tableau etiquetado para la lógica modal con pasadoCompletitud
Teorema (Completitud)Si Γ es una rama abierta y saturada para ϕ, ϕ es satisfacible.
DemostraciónExtraemos un modelo de Γ. SeaMΓ = 〈WΓ,RΓ,VΓ〉 donde
WΓ = {w | w:ϕ ∈ Γ}RΓ = {(w, v) | Rwv ∈ Γ}
VΓ(p) = {w | w:p ∈ Γ}Sea ψ la mínima fórmula tal que w:ψ ∈ Γ yMΓ,w 6|= ψ.
ψ 6= p (porque en ese caso w ∈ V(p)) y ψ 6= ¬p (habría clash)ψ 6= ψ1 ∨ ψ2 porque tendríamos w:ψi ∈ Γ y no sería mínimaψ 6= ψ1 ∧ ψ2 por razones análogasψ 6= 3χ porque tendríamos Rwv,w:χ ∈ Γ y no sería mínimaψ 6= 2χ, ψ 6= 2−1χ y ψ 6= 3−1χ por razones análogas.
Luego, no existe tal fórmula; w:ψ ∈ Γ implicaM,w |= ψ
![Page 17: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/17.jpg)
Tableau etiquetado para la lógica modal con pasadoTerminación
TeoremaToda rama saturada de un tableaux para ϕ es finita.
DemostraciónSea Γ una rama saturada y LABEL(w) = {ψ | w:ψ ∈ Γ}.
1 LABEL(w) es finito porque son todas subfórmulas de ϕ.2 Luego, {v | Rwv ∈ Γ} es finito (ver nota sobre 3 y 3−1).3 Entonces, Γ es infinito sii existe una cadena w1,w2, . . . tal
que wi generó a wi+1 usando la regla 3 ó la regla 3−1.4 Pero si w genera a v, d(LABEL(w)) > d(LABEL(v)) (sale por
inducción en la derivación de Γ, d es profundidad modal).5 Por lo tanto, para algún j, d(LABEL(wj)) = 0, absurdo.
![Page 18: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/18.jpg)
Detalles de implementación
¿Importa el orden en que aplicamos las reglas?No afecta la terminación del algoritmo.Sí afecta el tamaño del árbol generado!
Considerar: (p1 ∨ p2) ∧ ((p3 ∨ p4) ∧ ((p5 ∨ p6) ∧ (p ∧ ¬p)))¿Qué sucede si siempre preferimos aplicar ∧ antes que ∨?¿Qué sucede si siempre preferimos aplicar ∨ antes que ∧?
Heurísticas básicasUsar reglas sin branching (e.g., ∧) antes que aquellas conbranching (como ∨)Usar reglas proposicionales (e.g., ∧ y ∨) antes que reglasmodales (como 3 y 2)
![Page 19: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/19.jpg)
Optimizaciones
Las reglas ∧, ∨ y clash son un tableaux proposicionalPero es preferible DPLL para razonamiento proposicionalLos demostradores basados en tableaux incorporanelementos de DPLL:
Branching semántico (una forma de splitting)BackjumpingCaching
![Page 20: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/20.jpg)
Terminación en casos más complejosUn tableaux para K sobre la clase de modelos transitivos (K4)
∧ w:ϕ∧ψw:ϕ,w:ψ ∨ w:ϕ∨ψ
w:ϕ | w:ψ clashw:p,w:¬p⊥
3w:3ϕ
Rwv,v:ϕ (nuevo v) 24w:2ϕ,Rwvv:ϕ,v:2ϕ
TeoremaEste tableaux es completo para K4.
DemostraciónDada Γ (abierta y saturada) armamosMΓ con
RΓ = {(w, v) | Rwv ∈ Γ}+
Sup. 2ϕ es la mínima tal que w:2ψ ∈ Γ yMΓ,w 6|= 2ψ.Luego, existe {Rwv1,Rv1v2, . . .Rv2vk} ⊂ Γ yM,w 6|= ϕ.Γ está saturada por 24, entonces {vi:ϕ, vi:2ϕ} ⊂ Γ (∀i ≤ k)
Luego vk:ϕ ∈ Γ y 2ϕ no sería mínima. El resto queda igual.
![Page 21: Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos dos mappings ;p y ;m p i;p qp i qp i;m p i 2˜;p q 2 ...](https://reader030.fdocument.pub/reader030/viewer/2022021805/5bac414209d3f24b638d6773/html5/thumbnails/21.jpg)
Terminación en casos más complejosBlocking
¿Podemos repetir el argumento de terminación?¿Qué sucede al ejecutar este tableaux sobre w:(3p ∧23p)?Conclusión: una rama abierta saturada puede no ser finita!
Técnicas de blockingSe usan para garantizar terminación en implementacionesIdea:
Algunas w:ϕ pueden “bloquearse” o “desbloquearse”Algunas reglas no se aplican sobre fórmulas bloqueadas
Muchos tipos de blockingsubset blockingdynamic blocking. . .
En cada caso se debe probar terminación. . . y completitud!