Académique Documents
Professionnel Documents
Culture Documents
En el curso vamos a estudiar varios lenguajes lgicos (lgica proposicional, lgicas hbridas, lgicas para la descripcin, lgica de predicados) pero desde un punto de vista computacional.
Carlos Areces
Nos interesa en particular estudiar distintos mtodos para determinar cuando una frmula es satisfacible (i.e., cuando existe un modelo para una frmula dada). Aunque tambin discutiremos otras tareas de inferencia (e.g., model checking).
areces@loria.fr http://www.loria.fr/~areces
INRIA Nancy Grand Est, France
Tambin nos interesa saber cuan complejos son estos problemas (NP, PSPACE, indecidible).
Diciembre 2008
Requisitos: Aunque la mayor parte del curso es autocontenida (i.e., voy a dar todas las deniciones necesarias para entender que estamos haciendo), asumo conocimientos bsicos de lgica, algoritmos y complejidad.
El Curso
Mircoles: Lgica Proposicional + Mtodo de David-Putnam + Mtodos Incompletos + zcha y walksat Jueves: Lgicas Hbridas + Model Checking + mcheck Viernes: Lgicas para la Descripcin + Mtodo de Tableaux + racer Sbado: Lgica de Predicados + Mtodo de Resolucin + spass
, , ,
Frmula Satisfacible, Frmula Vlida (Tautologa) Tablas de verdad, Mtodo de Tableaux, Mtodo de Resolucin, Mtodo de David-Putnam
x , x
Unicacin
2, 3
@i , x . R .,
, ,
Lgica Proposicional
Bueno, por empezar, somo humanos y por lo tanto vagos. Para que hacer el trabajo si alguien ms puede hacerlo por nosotros? Pero an aquellos raros ejemplares de lgicos energticos necesitan ayuda: algunos de los problemas que queremos resolver son simplemente demasiado complejos para hacer sin una computadora A veces es necesario chequear millones de posibilidades para vericar que un sistema satisface una determinada propiedad. Vamos a ver que, aun usando computadoras, tenemos que utiliar buenos algoritmos o todo el tiempo del mundo no nos alcanzara.
Como todos sabemos la lgica proposicional es fcil: Algunos simbolos proposicionales: Dos smbolos lgicos: Dos smbolos sintcticos: Tambin la semntica es simple:
p1 , p2 , p3 , . . .
, (, )
es verdadera es verdadera
sii sii
es falsa o
son verdaderas
falso) para todos los smbolos propocisionales podemos determinar el valor de verdad de de cualquier formula respecto de
V.
Formalizando el Problema
Tres simbolos proposicionales
A B C
A B C
(A B C )
Si salgo con Beatriz pero no con Ana, entonces salgo con Celeste.
(B A) C (A C ) B
= =
(B A C )
Podemos modelar el problema usando Logica Proposicional? Que ganamos si lo hacemos? Que tipo de preguntas podemos hacerle a nuestro modelo?
(A B ) (C B )
AB
(A B )
Resolviendo el Problema
Que podemos deducir?
Resolviendo el Problema
(A B C ) (A B ) B C
Una consequencia de lo que nos dijo Ceferino es que sale al menos con Beatriz o con Celeste. Pero sale Ceferino con alguien?!!!En realidad hay dos situaciones que son consistentes con lo que dijo Ceferino.
T T T T F F F F
T T F F T T F F
T F T F T F T F
(A B C )
T T T T T T T F
(B A C )
T T T T T F T T
(A B )
T T T T F F T T
(C B )
T F T T T F T T
(A B )
T T F F T T T T
T F F F F F T F
Pero este mtodo no es muy eciente. (Cul es la complejidad de SAT para LP?)
= verdadero = verdadero
Codicando Problemas
Mtodos Completos
Resolucion Tableaux Davis-Putman Mapeo en ecuaciones lineares
Acabamos de ver como usar LP en un ejemplo muy simple. Pero el poder expresivo de PL es suciente para hacer cosas mucho ms interesantes:
coloreo de grafos constraint satisfaction problems (CSP) vericacion de hardware planning scheduling
Mtodos de Aproximacin
Cambiar el valor de una variable en una frmula insatisfecha Algoritmos gneticos Hill-climbing
N, E
donde
tal que:
n nodos usa n k
i n,
1
k -coloreo de un grafo
Todos los nodos estan coloreados con uno de los Para cada eje
Ejemplo
j k,
tiene color
j'
escribimos
i n
pi 1 . . . pik ,
l k pil pjl , pil pim ,
iyj
nodos vecinos, y 1 y 1
i n,
l <mk
Y problemas
realmente importantes?
http://www.sudokusolver.co.uk/.
a.(a a) = a a, b .((b a) b ) b = a
Mtodos de Desicin
(conjunctive normal form, CNF) Los mtodo de desicin para resolver SAT debe:
Siempren responden SAT o UNSAT En un tiempo nito correctamente
=
l L mM
es un literal (i.e.,
p o p).
(p q ) (p q ) ((p q )) ((p q )) (p ) (p (q r ))
(p q ) (p q ) (q p ) (p q ) (p q )
((p q ) (p r ))
es
(l11 . . . l1n1 )(l21 . . . l2n2 ). . . (lk 1 . . . lknk ) {{l11 , . . . , l1n1 } , {l21 , . . . , l2n2 } , . . . , {lk 1 , . . . , lknk }}
Ejemplo 1
Ejemplo 2
1. 2. 3. 4. 5. 6. 7. 8.
1. 2. 3. 4. 5.
(p q ) r
((p q ) (q p )) r
((p q ) (q p )) r {{p , q , r }, {q , p , r }}
(((p q ) r ) ((q p ) r ))
{{p , q }, {q }, {p }}
((p q ) (q (p q )))
procedure DP() if ={} then return SAT if {} then return UNSAT if has unit clause {l} then DP([{l=true}]) Choose literal l and if DP([{l=true}]) return SAT then return SAT else return DP([{l=false}]) : Lgica Computacional y Demostracin Automtica
// (Split)
Ejemplos de DP
La regla
(Pure)
costo de su evaluacion puede ser mas alto que los benecios que produce Lo mismo vale para la regla
(Taut):
(Unit)
(Split)
(Empty)
por si
(Unit)
computacional del mtodo. Por ejemplo, la regla misma es completa sobre clausulas Horn.
(Unit)
Davis-Putnam: La regla
La regla
(Split)
(Split)
es no-deterministica: Que literal elegimos? DP puede resolver en tiempo razonable problemas con 500 variables proposicionales. . . . . . pero los problemas que surgen habitualmente en la practica tienen 1000s de variables! Dependiendo de la aplicacion, Mtodos de semi-decision pueden ser utiles: encontrar una solucion en algunos casos
2
Heuristica MOM: elegir el literal que ocurre `most often in the minimal size clauses' (con empates resueltos en forma aleatoria o siguiendo un orden predeterminado). Este mtodo es uno de los mejores en terminos de resultados, velocidad y simplicidad. Heuristica de Jeroslow-Wang: estimamos la contribucion que cada literal podria hacer a la satisabilidad del conjunto de clausulas y elegimos el coeciente mas alto
score(l ) =
c & l c
|c |
estar interesados en los casos en los que no existe un plan Ademas, podemos estar interesados en anytime answers que dan best guess en cualquier momento que querramos detener el algoritmo
SATZ, uno de los mejores implementaciones actuales de DP, usa una heuristica que intenta maximizar el uso de unit propagation: genera todos los posibles branchings con distintos literales y aplica inmediatamente unit propagation sobre el resultado, para continuar la ejecucion con el conjunto de clausulas mas pequeo.
El procedimiento GSAT
El algoritmo fue propuesto por Selman, Levesque y Mitchell
Agrega restarts al algoritmo greedy, y permite pasos al costado (i.e., que no incrementan la funcion de costo)
procedure greedy(Sigma) T := random(Sigma) ; random assignment repeat until no improvement possible T := T with variable flipped that increases the number of satisfied clauses
end El algoritmo encuentra un modelo para casi todos los problemas satisfacibles con tipo)
procedure GSAT(Sigma) for i := 1 to MAX-TRIES ; estos son los restarts T := random(Sigma) ; asignacion al azar for j := 1 to MAX-FLIPS ; asegura terminacion if T satisfies Sigma then return T else T := T with variable flipped to maximize number of satisfied clauses ; No importa si el # de clausulas satisfechas ; no se incrementan. Estos son los side steps end end
GSAT: Evaluacion
El procedimiento GSAT ha sido muy inuencial GSAT es excelente en algunos tipos de problemas (random 3-SAT,
formulas var 50 100 140 150 300 500 clauses 215 430 602 645 1275 2150 M-FLIPS 250 500 700 1500 6000 10000
n-queens, etc.)
Recordemos: la diferencia mas importante entre el algoritmo greedy y GSAT es la posibilidad de pasos al costado
GSAT restarts 6.4 42.5 52.6 100.5 231.8 995.8 time 0.4s 6s 14s 45s 12m 1.6h choices 77 84 x 10 2.2 x 10
3 6
no sideways moves %-solved restarts time 69% 537 10s 39% 63382 15m 100% 50000 30h
all moves %-solved tries time 100% 6 1.4s 100% 81 2.8m 100% 1 2.5s
Zcha
Un demostrador muy optimizaco implementando una version de DP (conocida como el algoritmo 'cha '). Site:
http://www.princeton.edu/~chaff/zchaff.html
Tambien conocido como el `Princeton Prover'. zCha se hizo famoso al resolver problemas con mas de un millon de variables y mas de 10 millones de clausulas. Es usado en otros systems como el planner BlackBox, el Model Checker NuSMV, el demostrador GrAnDe, etc.
WalkSat
Walksat esla implementacion de un algoritmo de busqueda local para resolver SAT para PL (es una mejora de GSAT). Site:
http://www.cs.rochester.edu/u/kautz/walksat
Ha resultado particularmente exitoso en resolver problemas resultantes de la conversion a SAT de problemas de planning.