Vous êtes sur la page 1sur 5

El Curso Lgica Computacional y Demostracin Automtica

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.

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

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

Lo que hacemos hoy

Consulta Popular: Que saben de lgica? Lgica Proposicional


Una aplicacion simple Aplicaciones ms interesantes Mtodos completos El mtodo David-Putnam (DP) Mtodos incompletos El Algoritmo Greedy El Algoritmo GSAT

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Que sabe usted de lgica?

Lgica Computacional = Logica + Computadoras

, , ,
Frmula Satisfacible, Frmula Vlida (Tautologa) Tablas de verdad, Mtodo de Tableaux, Mtodo de Resolucin, Mtodo de David-Putnam

La Lgica naci como parte de la losoa:


en sus orgenes (all por la Grecia clsica) la lgica era usada para modelar el proceso de razonamiento humano y para ayudar a derivar inferencias correctas

x , x
Unicacin

Las cosas cambiaron con la llegada de la computadora


En realidad, la lgica jug un papel fundamental en el desarrollo de las computadoras tanto en lo terico (e.g., nociones de computabilidad) como en lo prctico (e.g., circuitos lgicos) En este curso, vamos a estudiar como la Ciencia de la

2, 3

@i , x . R .,
, ,

Computacin contribuye directamente al rea de Lgica

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Por que los lgicos necesitamos computadoras?

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

Dada una asignacin

es falsa o

son verdaderas

de valores de verdad (verdadero o

falso) para todos los smbolos propocisionales podemos determinar el valor de verdad de de cualquier formula respecto de

V.

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Un problema del corazn


Al lgico cordobs Ceferino le preguntaron: sals con Ana, con Beatriz o con Celeste? l pens: Salgo al menos con alguna de las tres. Si salgo con Beatriz pero no con Ana, entonces salgo con Celeste. O salgo con Ana y con Celeste, o no salgo con Beatriz. Si salgo con Ana, entonces tambin salgo con Beatriz. Con quin sale Ceferino?

Formalizando el Problema
Tres simbolos proposicionales

A B C

salgo con Ana salgo con Beatriz salgo con Celeste

A B C

no salgo con Ana no salgo con Beatriz no salgo con Celeste

Salgo al menos con alguna de las tres.

(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?

O salgo con Ana y con Celeste, o no salgo con Beatriz.

(A B ) (C B )

Si salgo con Ana, entonces tambin salgo con Beatriz.

AB

(A B )

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

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.

Como podemos computar esta solucion? Podemos usar tablas de verdad

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

A = verdadero B = verdadero C A = falso B = falso C


: Lgica Computacional y Demostracin Automtica

= verdadero = verdadero

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Algunas tcnicas para resolver SAT

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

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Aplicacin: Coloreo de Grafos


El problema: Dados un grafo conjunto de nodos y jo de colores nodos de

E es un conjunto de ejes, y un nmero k . Decidir si podemos asignar colores a los


(i , j ) N ,
el color de

N, E

donde

Aplicacin: Coloreo de Grafos


es un Una codicacin simple del problema de con

tal que:

n nodos usa n k
i n,
1

k -coloreo de un grafo

smbolos proposicionales (una

Todos los nodos estan coloreados con uno de los Para cada eje

k colores. i es diferente del color de j .

codicacin ms compacta usa slo proposicionales) Para 1 nodo

n log2 (k ) smbolos pij


para decir que `el

Ejemplo

j k,

tiene color

j'

escribimos

Cada nodo tiene un color: para 1 para

i n

pi 1 . . . pik ,
l k pil pjl , pil pim ,

Nodos vecinos tienen colores diferentes:

iyj

nodos vecinos, y 1 y 1

Cada nodo no tiene mas de un color: para 1

i n,

l <mk

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Aplicaciones: Coloreo de Grafos 2


Resultados:
Los algoritmos de GSAT y WalkSAT son competitivos en comparacin con algoritmos especifcos de coloreo de grafos

Y problemas

realmente importantes?

Una aplicacin en lgebra:


problemas relacionados con quasi-grupos pueden verse como casos particulares de coloreo de grafos. algunos problemas abiertos en la teora de quasi-grupos fueron codicados de esta forma y resueltos en forma automtica mediante demostradores de teoremas para LP-SAT. E.g., existe un quasi-grupo que satisfaga las siguientes equaciones?

Siga este link

http://www.sudokusolver.co.uk/.

a.(a a) = a a, b .((b a) b ) b = a

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Mtodos de Desicin

Transformando una formula en forma clausal


Forma clausal. Escribimos

en forma normal conjuntiva

(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

(l ,m) , donde (l ,m) ; ; ; ; ; ;

es un literal (i.e.,

p o p).

Usando las siguientes equivalencias:

Los mtodos completos ms conocidos son


tablas de verdad axiomatizaciones, calculo de Gentzen, deduccion natural resolucion, tableaux Davis-Putnam

(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

El conjunto de clusulas asociado a

(l11 . . . l1n1 )(l21 . . . l2n2 ). . . (lk 1 . . . lknk ) {{l11 , . . . , l1n1 } , {l21 , . . . , l2n2 } , . . . , {lk 1 , . . . , lknk }}

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Ejemplo 1

Ejemplo 2

1. 2. 3. 4. 5. 6. 7. 8.

((p q ) (q (p q ))) ((p q ) (q (p q ))) ((p q ) (q (p q )))

((p q ) (q (p q ))) ((p q ) (q (p q ))) ((p q ) (q (p q )))

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

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Mtodos Completos: Davis-Putnam


El mtodo de Davis-Putnam es quizas el mas usado para demostracion automatica de LP-SAT A pesar de que ya tiene muchos aos, es aun uno de los mas populares y exitosos entre los Mtodos completos. Sea

Mtodos Completos: Davis-Putnam 2


DP no es el desarrollado por Davis & Putnam, sino el mtodo perfeccionado de Davis, Logemann & Loveland
el algoritmo original propuesto por Davis & Putnam usaba una regla de resolucion en vez de la regla de splitting, lo que podria llevar a un uso exponencial de espacio

el conjunto de clusulas asociado a la frmula

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

Reglas Adicionales: // (SAT) // (UNSAT) // (Unit Pr.)


un literal puro (pure literal) es un literal que aparece siempre en forma positiva o siempre en forma negativa en el conjunto de clausulas; podemos asignar a ese literal el valor verdadero (si aparece positivo) o falso (si aparece negativo) y eliminarlo.

(Pure) if Sigma has pure literal l then DP(Sigma {l=true})


Tautology Deletion

// (Split)

(Taut) if Sigma contains C {p,p} then DP(Sigma\ C {p,p})

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Davis-Putnam: Las Reglas

Ejemplos de DP

La regla

(Pure)

usualmente no es implementada, ya que el

costo de su evaluacion puede ser mas alto que los benecios que produce Lo mismo vale para la regla

((p q ) (q (p q ))) {{p , q }, {q }, {p }} (p q ) r {{p , q , r }, {q , p , r }}

(Taut):

las tautologies solo

aparecen al comienzo de la busqueda La regla

(Unit)

no es esencial y su efecto puede obtenerse

mediante una combinacion de las reglas Pero

(Split)

(Empty)
por si

(Unit)

es crucial para el buen comportamiento

computacional del mtodo. Por ejemplo, la regla misma es completa sobre clausulas Horn.

(Unit)

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Davis-Putnam: La regla
La regla

(Split)

(Split)

Mtodos Incompletos (o de Aproximacion): Motivacion

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 |

E.g., encontrar un plan

encontrar un modelo, y podemos no

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.

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Revoleando Monedas: El Algoritmo Greedy


El algoritmo fue propuesto por Koutsopias y Papadimitriou
Idea principal: cambiamos el valor de una variable hasta que no podemos incrementar el numero de clausulas satisfechas.

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)

n variables proposicionales y O (n2 )

clausulas (lamentablemente, muy pocos problemas son de este

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

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

GSAT: Evaluacion

GSAT: Pasos al costado

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

DP depth 11 19 27    time 1.4s 2.8m 4.7h   

Hay alguna diferencia?

3 6

type random random 30-queens

formulas vars clauses 50 215 100 430 900 43240

M-FLIPS 1000 100000 100000

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

  

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Logica Proposicional: Conclusiones


Los Mtodos completos garantizan solucionar el problema LP-SAT (y en muchos casos, e.g. DP, permiten encontrar todas las soluciones posibles) Los Mtodos de aproximacion garantizan correctitud pero no completitud (i.e., si encuentran una solucion, es correcta, pero pueden terminar diciendo `No se'). El mtodo de DP es muy usado, pero notemos que DP es en realidad un esquema general para una familia de algoritmos. Como vimos, se pueden tomar decisiones diferentes hacerca de como implementarlo (como elegimos literales, como hacemos backtracking, etc.) Aun por ejemplos simples en en logica proposicional las cosas puden ponerse diciles si no usamos optimizaciones inteligentes.

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.

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

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.

: Lgica Computacional y Demostracin Automtica

INRIA Nancy Grand Est

Vous aimerez peut-être aussi