Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos...

Post on 27-Sep-2018

221 views 0 download

Transcript of Lógica modal computacional Algoritmos efectivos · De modal a proposicional, ida y vuelta Usamos...

Lógica modal computacional

Algoritmos efectivos

Daniel Gorín y Sergio Mera

1er cuatrimestre de 2010

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

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”!

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

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

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.)

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 ∨ χ)

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

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.

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

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.

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

¿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:ϕ.

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.

Ejemplo

Ejercicio

Decidir si ϕ = p1 ∧3p2 ∧32−12(¬p2 ∨2−1¬p1) es satisfacible.

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 |= ψ

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.

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)

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

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.

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!