Carlos Areces - cs.famaf.unc.edu.arcareces/cordoba08/cordoba08-1.pdf · Lógica Computacional =...
Transcript of Carlos Areces - cs.famaf.unc.edu.arcareces/cordoba08/cordoba08-1.pdf · Lógica Computacional =...
Lógica Computacional y Demostración Automática
Carlos [email protected]
http://www.loria.fr/~areces
INRIA Nancy Grand Est, France
Diciembre 2008
El Curso
I En el curso vamos a estudiar varios lenguajes lógicos (lógicaproposicional, lógicas híbridas, lógicas para la descripción,lógica de predicados) pero desde un punto de vistacomputacional.
I Nos interesa en particular estudiar distintos métodos paradeterminar cuando una fórmula es satisfacible (i.e., cuandoexiste un modelo para una fórmula dada). Aunque tambiéndiscutiremos otras tareas de inferencia (e.g., model checking).
I También nos interesa saber cuan complejos son estosproblemas (NP, PSPACE, indecidible).
I Requisitos: Aunque la mayor parte del curso es autocontenida(i.e., voy a dar todas las de�niciones necesarias para entenderque estamos haciendo), asumo conocimientos básicos delógica, algoritmos y complejidad.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I En el curso vamos a estudiar varios lenguajes lógicos (lógicaproposicional, lógicas híbridas, lógicas para la descripción,lógica de predicados) pero desde un punto de vistacomputacional.
I Nos interesa en particular estudiar distintos métodos paradeterminar cuando una fórmula es satisfacible (i.e., cuandoexiste un modelo para una fórmula dada). Aunque tambiéndiscutiremos otras tareas de inferencia (e.g., model checking).
I También nos interesa saber cuan complejos son estosproblemas (NP, PSPACE, indecidible).
I Requisitos: Aunque la mayor parte del curso es autocontenida(i.e., voy a dar todas las de�niciones necesarias para entenderque estamos haciendo), asumo conocimientos básicos delógica, algoritmos y complejidad.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I En el curso vamos a estudiar varios lenguajes lógicos (lógicaproposicional, lógicas híbridas, lógicas para la descripción,lógica de predicados) pero desde un punto de vistacomputacional.
I Nos interesa en particular estudiar distintos métodos paradeterminar cuando una fórmula es satisfacible (i.e., cuandoexiste un modelo para una fórmula dada). Aunque tambiéndiscutiremos otras tareas de inferencia (e.g., model checking).
I También nos interesa saber cuan complejos son estosproblemas (NP, PSPACE, indecidible).
I Requisitos: Aunque la mayor parte del curso es autocontenida(i.e., voy a dar todas las de�niciones necesarias para entenderque estamos haciendo), asumo conocimientos básicos delógica, algoritmos y complejidad.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I En el curso vamos a estudiar varios lenguajes lógicos (lógicaproposicional, lógicas híbridas, lógicas para la descripción,lógica de predicados) pero desde un punto de vistacomputacional.
I Nos interesa en particular estudiar distintos métodos paradeterminar cuando una fórmula es satisfacible (i.e., cuandoexiste un modelo para una fórmula dada). Aunque tambiéndiscutiremos otras tareas de inferencia (e.g., model checking).
I También nos interesa saber cuan complejos son estosproblemas (NP, PSPACE, indecidible).
I Requisitos: Aunque la mayor parte del curso es autocontenida(i.e., voy a dar todas las de�niciones necesarias para entenderque estamos haciendo), asumo conocimientos básicos delógica, algoritmos y complejidad.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I En el curso vamos a estudiar varios lenguajes lógicos (lógicaproposicional, lógicas híbridas, lógicas para la descripción,lógica de predicados) pero desde un punto de vistacomputacional.
I Nos interesa en particular estudiar distintos métodos paradeterminar cuando una fórmula es satisfacible (i.e., cuandoexiste un modelo para una fórmula dada). Aunque tambiéndiscutiremos otras tareas de inferencia (e.g., model checking).
I También nos interesa saber cuan complejos son estosproblemas (NP, PSPACE, indecidible).
I Requisitos: Aunque la mayor parte del curso es autocontenida(i.e., voy a dar todas las de�niciones necesarias para entenderque estamos haciendo), asumo conocimientos básicos delógica, algoritmos y complejidad.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I Miércoles: Lógica Proposicional+ Método de David-Putnam+ Métodos Incompletos+ zcha� y walksat
I Jueves: Lógicas Híbridas+ Model Checking+ mcheck
I Viernes: Lógicas para la Descripción+ Método de Tableaux+ racer
I Sábado: Lógica de Predicados+ Método de Resolución+ spass
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I Miércoles: Lógica Proposicional+ Método de David-Putnam+ Métodos Incompletos+ zcha� y walksat
I Jueves: Lógicas Híbridas+ Model Checking+ mcheck
I Viernes: Lógicas para la Descripción+ Método de Tableaux+ racer
I Sábado: Lógica de Predicados+ Método de Resolución+ spass
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I Miércoles: Lógica Proposicional+ Método de David-Putnam+ Métodos Incompletos+ zcha� y walksat
I Jueves: Lógicas Híbridas+ Model Checking+ mcheck
I Viernes: Lógicas para la Descripción+ Método de Tableaux+ racer
I Sábado: Lógica de Predicados+ Método de Resolución+ spass
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I Miércoles: Lógica Proposicional+ Método de David-Putnam+ Métodos Incompletos+ zcha� y walksat
I Jueves: Lógicas Híbridas+ Model Checking+ mcheck
I Viernes: Lógicas para la Descripción+ Método de Tableaux+ racer
I Sábado: Lógica de Predicados+ Método de Resolución+ spass
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El Curso
I Miércoles: Lógica Proposicional+ Método de David-Putnam+ Métodos Incompletos+ zcha� y walksat
I Jueves: Lógicas Híbridas+ Model Checking+ mcheck
I Viernes: Lógicas para la Descripción+ Método de Tableaux+ racer
I Sábado: Lógica de Predicados+ Método de Resolución+ spass
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?
I Lógica ProposicionalI Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simple
I Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantes
I Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completos
I El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)
I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletos
I El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo Greedy
I El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lo que hacemos hoy
I Consulta Popular: Que saben de lógica?I Lógica Proposicional
I Una aplicacion simpleI Aplicaciones más interesantesI Métodos completosI El método David-Putnam (DP)I Métodos incompletosI El Algoritmo GreedyI El Algoritmo GSAT
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→
I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)
I Tablas de verdad, Método de Tableaux, Método deResolución, Método de David-Putnam
I ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad,
Método de Tableaux, Método deResolución, Método de David-Putnam
I ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux,
Método deResolución, Método de David-Putnam
I ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución,
Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-Putnam
I ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃x
I Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�cación
I 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕ
I ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Que sabe usted de lógica?
I ∨,∧,¬,→I Fórmula Satisfacible, Fórmula Válida (Tautología)I Tablas de verdad, Método de Tableaux, Método de
Resolución, Método de David-PutnamI ∀x ,∃xI Uni�caciónI 2,3
I @iϕ, ↓x .ϕI ∀R.ϕ, u, t, v
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Computacional = Logica + Computadoras
I La Lógica nació como parte de la �losoía:I en sus orígenes (allá por la Grecia clásica) la lógica era usada
para modelar el proceso de razonamiento humanoI y para ayudar a derivar inferencias correctas
I Las cosas cambiaron con la llegada de la computadora
I En realidad, la lógica jugó un papel fundamental en eldesarrollo de las computadoras tanto en lo teórico (e.g.,nociones de computabilidad) como en lo práctico (e.g.,circuitos lógicos)
I En este curso, vamos a estudiar como la Ciencia de laComputación contribuye directamente al área de Lógica
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Computacional = Logica + Computadoras
I La Lógica nació como parte de la �losoía:I en sus orígenes (allá por la Grecia clásica) la lógica era usada
para modelar el proceso de razonamiento humanoI y para ayudar a derivar inferencias correctas
I Las cosas cambiaron con la llegada de la computadora
I En realidad, la lógica jugó un papel fundamental en eldesarrollo de las computadoras tanto en lo teórico (e.g.,nociones de computabilidad) como en lo práctico (e.g.,circuitos lógicos)
I En este curso, vamos a estudiar como la Ciencia de laComputación contribuye directamente al área de Lógica
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Computacional = Logica + Computadoras
I La Lógica nació como parte de la �losoía:I en sus orígenes (allá por la Grecia clásica) la lógica era usada
para modelar el proceso de razonamiento humanoI y para ayudar a derivar inferencias correctas
I Las cosas cambiaron con la llegada de la computadora
I En realidad, la lógica jugó un papel fundamental en eldesarrollo de las computadoras tanto en lo teórico (e.g.,nociones de computabilidad) como en lo práctico (e.g.,circuitos lógicos)
I En este curso, vamos a estudiar como la Ciencia de laComputación contribuye directamente al área de Lógica
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Computacional = Logica + Computadoras
I La Lógica nació como parte de la �losoía:I en sus orígenes (allá por la Grecia clásica) la lógica era usada
para modelar el proceso de razonamiento humanoI y para ayudar a derivar inferencias correctas
I Las cosas cambiaron con la llegada de la computadora
I En realidad, la lógica jugó un papel fundamental en eldesarrollo de las computadoras tanto en lo teórico (e.g.,nociones de computabilidad) como en lo práctico (e.g.,circuitos lógicos)
I En este curso, vamos a estudiar como la Ciencia de laComputación contribuye directamente al área de Lógica
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Computacional = Logica + Computadoras
I La Lógica nació como parte de la �losoía:I en sus orígenes (allá por la Grecia clásica) la lógica era usada
para modelar el proceso de razonamiento humanoI y para ayudar a derivar inferencias correctas
I Las cosas cambiaron con la llegada de la computadora
I En realidad, la lógica jugó un papel fundamental en eldesarrollo de las computadoras tanto en lo teórico (e.g.,nociones de computabilidad) como en lo práctico (e.g.,circuitos lógicos)
I En este curso, vamos a estudiar como la Ciencia de laComputación contribuye directamente al área de Lógica
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Por que los lógicos necesitamos computadoras?
I Bueno, por empezar, somo humanos y por lo tanto vagos. Paraque hacer el trabajo si alguien más puede hacerlo por nosotros?
I Pero aún aquellos raros ejemplares de lógicos energéticosnecesitan ayuda: algunos de los problemas que queremosresolver son simplemente demasiado complejos para hacer sinuna computadora
I A veces es necesario chequear millones de posibilidades paraveri�car que un sistema satisface una determinada propiedad.
I Vamos a ver que, aun usando computadoras, tenemos queutiliar buenos algoritmos o todo el tiempo del mundo no nosalcanzaría.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Por que los lógicos necesitamos computadoras?
I Bueno, por empezar, somo humanos y por lo tanto vagos. Paraque hacer el trabajo si alguien más puede hacerlo por nosotros?
I Pero aún aquellos raros ejemplares de lógicos energéticosnecesitan ayuda: algunos de los problemas que queremosresolver son simplemente demasiado complejos para hacer sinuna computadora
I A veces es necesario chequear millones de posibilidades paraveri�car que un sistema satisface una determinada propiedad.
I Vamos a ver que, aun usando computadoras, tenemos queutiliar buenos algoritmos o todo el tiempo del mundo no nosalcanzaría.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Por que los lógicos necesitamos computadoras?
I Bueno, por empezar, somo humanos y por lo tanto vagos. Paraque hacer el trabajo si alguien más puede hacerlo por nosotros?
I Pero aún aquellos raros ejemplares de lógicos energéticosnecesitan ayuda: algunos de los problemas que queremosresolver son simplemente demasiado complejos para hacer sinuna computadora
I A veces es necesario chequear millones de posibilidades paraveri�car que un sistema satisface una determinada propiedad.
I Vamos a ver que, aun usando computadoras, tenemos queutiliar buenos algoritmos o todo el tiempo del mundo no nosalcanzaría.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Por que los lógicos necesitamos computadoras?
I Bueno, por empezar, somo humanos y por lo tanto vagos. Paraque hacer el trabajo si alguien más puede hacerlo por nosotros?
I Pero aún aquellos raros ejemplares de lógicos energéticosnecesitan ayuda: algunos de los problemas que queremosresolver son simplemente demasiado complejos para hacer sinuna computadora
I A veces es necesario chequear millones de posibilidades paraveri�car que un sistema satisface una determinada propiedad.
I Vamos a ver que, aun usando computadoras, tenemos queutiliar buenos algoritmos o todo el tiempo del mundo no nosalcanzaría.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Por que los lógicos necesitamos computadoras?
I Bueno, por empezar, somo humanos y por lo tanto vagos. Paraque hacer el trabajo si alguien más puede hacerlo por nosotros?
I Pero aún aquellos raros ejemplares de lógicos energéticosnecesitan ayuda: algunos de los problemas que queremosresolver son simplemente demasiado complejos para hacer sinuna computadora
I A veces es necesario chequear millones de posibilidades paraveri�car que un sistema satisface una determinada propiedad.
I Vamos a ver que, aun usando computadoras, tenemos queutiliar buenos algoritmos o todo el tiempo del mundo no nosalcanzaría.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Proposicional
I Como todos sabemos la lógica proposicional es fácil:Algunos simbolos proposicionales: p1, p2, p3, . . .Dos símbolos lógicos: ¬, ∨Dos símbolos sintácticos: (, )
I También la semántica es simple:
¬ϕ es verdadera sii ϕ es falsaϕ ∨ ψ es verdadera sii ϕ o ψ son verdaderas
I Dada una asignación V de valores de verdad (verdadero ofalso) para todos los símbolos propocisionales podemosdeterminar el valor de verdad de de cualquier formula respectode V .
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Proposicional
I Como todos sabemos la lógica proposicional es fácil:Algunos simbolos proposicionales: p1, p2, p3, . . .Dos símbolos lógicos: ¬, ∨Dos símbolos sintácticos: (, )
I También la semántica es simple:
¬ϕ es verdadera sii ϕ es falsaϕ ∨ ψ es verdadera sii ϕ o ψ son verdaderas
I Dada una asignación V de valores de verdad (verdadero ofalso) para todos los símbolos propocisionales podemosdeterminar el valor de verdad de de cualquier formula respectode V .
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Proposicional
I Como todos sabemos la lógica proposicional es fácil:Algunos simbolos proposicionales: p1, p2, p3, . . .Dos símbolos lógicos: ¬, ∨Dos símbolos sintácticos: (, )
I También la semántica es simple:
¬ϕ es verdadera sii ϕ es falsaϕ ∨ ψ es verdadera sii ϕ o ψ son verdaderas
I Dada una asignación V de valores de verdad (verdadero ofalso) para todos los símbolos propocisionales podemosdeterminar el valor de verdad de de cualquier formula respectode V .
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Lógica Proposicional
I Como todos sabemos la lógica proposicional es fácil:Algunos simbolos proposicionales: p1, p2, p3, . . .Dos símbolos lógicos: ¬, ∨Dos símbolos sintácticos: (, )
I También la semántica es simple:
¬ϕ es verdadera sii ϕ es falsaϕ ∨ ψ es verdadera sii ϕ o ψ son verdaderas
I Dada una asignación V de valores de verdad (verdadero ofalso) para todos los símbolos propocisionales podemosdeterminar el valor de verdad de de cualquier formula respectode V .
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Un problema del corazón
Al lógico cordobés Ceferino le preguntaron: salís con Ana,con Beatriz o con Celeste? Él pensó:Salgo al menos con alguna de las tres. Si salgo conBeatriz pero no con Ana, entonces salgo con Celeste. Osalgo con Ana y con Celeste, o no salgo con Beatriz. Sisalgo con Ana, entonces también salgo con Beatriz.Con quién sale Ceferino?
I Podemos modelar el problema usando Logica Proposicional?I Que ganamos si lo hacemos?I Que tipo de preguntas podemos hacerle a nuestro modelo?
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Un problema del corazón
Al lógico cordobés Ceferino le preguntaron: salís con Ana,con Beatriz o con Celeste? Él pensó:Salgo al menos con alguna de las tres. Si salgo conBeatriz pero no con Ana, entonces salgo con Celeste. Osalgo con Ana y con Celeste, o no salgo con Beatriz. Sisalgo con Ana, entonces también salgo con Beatriz.Con quién sale Ceferino?
I Podemos modelar el problema usando Logica Proposicional?I Que ganamos si lo hacemos?I Que tipo de preguntas podemos hacerle a nuestro modelo?
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Un problema del corazón
Al lógico cordobés Ceferino le preguntaron: salís con Ana,con Beatriz o con Celeste? Él pensó:Salgo al menos con alguna de las tres. Si salgo conBeatriz pero no con Ana, entonces salgo con Celeste. Osalgo con Ana y con Celeste, o no salgo con Beatriz. Sisalgo con Ana, entonces también salgo con Beatriz.Con quién sale Ceferino?
I Podemos modelar el problema usando Logica Proposicional?
I Que ganamos si lo hacemos?I Que tipo de preguntas podemos hacerle a nuestro modelo?
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Un problema del corazón
Al lógico cordobés Ceferino le preguntaron: salís con Ana,con Beatriz o con Celeste? Él pensó:Salgo al menos con alguna de las tres. Si salgo conBeatriz pero no con Ana, entonces salgo con Celeste. Osalgo con Ana y con Celeste, o no salgo con Beatriz. Sisalgo con Ana, entonces también salgo con Beatriz.Con quién sale Ceferino?
I Podemos modelar el problema usando Logica Proposicional?I Que ganamos si lo hacemos?
I Que tipo de preguntas podemos hacerle a nuestro modelo?
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Un problema del corazón
Al lógico cordobés Ceferino le preguntaron: salís con Ana,con Beatriz o con Celeste? Él pensó:Salgo al menos con alguna de las tres. Si salgo conBeatriz pero no con Ana, entonces salgo con Celeste. Osalgo con Ana y con Celeste, o no salgo con Beatriz. Sisalgo con Ana, entonces también salgo con Beatriz.Con quién sale Ceferino?
I Podemos modelar el problema usando Logica Proposicional?I Que ganamos si lo hacemos?I Que tipo de preguntas podemos hacerle a nuestro modelo?
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Formalizando el Problema
Tres simbolos proposicionales
A ≡ salgo con Ana ¬A ≡ no salgo con AnaB ≡ salgo con Beatriz ¬B ≡ no salgo con BeatrizC ≡ salgo con Celeste ¬C ≡ 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 = (¬B ∨ A ∨ C )
• O salgo con Ana y con Celeste, o no salgo con Beatriz.(A ∧ C ) ∨ ¬B = (A ∨ ¬B) ∧ (C ∨ ¬B)
• Si salgo con Ana, entonces también salgo con Beatriz.A→ B = (¬A ∨ B)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Que podemos deducir?
(A ∨ B ∨ C ) (¬A ∨ B)
B ∨ C
I Una consequencia de lo que nos dijo Ceferino es que sale almenos con Beatriz o con Celeste.
I Pero sale Ceferino con alguien?!!!En realidad hay dossituaciones que son consistentes con lo que dijo Ceferino.
A = verdadero B = verdadero C = verdaderoA = falso B = falso C = verdadero
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Que podemos deducir?
(A ∨ B ∨ C ) (¬A ∨ B)
B ∨ C
I Una consequencia de lo que nos dijo Ceferino es que sale almenos con Beatriz o con Celeste.
I Pero sale Ceferino con alguien?!!!En realidad hay dossituaciones que son consistentes con lo que dijo Ceferino.
A = verdadero B = verdadero C = verdaderoA = falso B = falso C = verdadero
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Que podemos deducir?
(A ∨ B ∨ C ) (¬A ∨ B)
B ∨ C
I Una consequencia de lo que nos dijo Ceferino es que sale almenos con Beatriz o con Celeste.
I Pero sale Ceferino con alguien?!!!En realidad hay dossituaciones que son consistentes con lo que dijo Ceferino.
A = verdadero B = verdadero C = verdaderoA = falso B = falso C = verdadero
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Que podemos deducir?
(A ∨ B ∨ C ) (¬A ∨ B)
B ∨ C
I Una consequencia de lo que nos dijo Ceferino es que sale almenos con Beatriz o con Celeste.
I Pero sale Ceferino con alguien?!!!
En realidad hay dossituaciones que son consistentes con lo que dijo Ceferino.
A = verdadero B = verdadero C = verdaderoA = falso B = falso C = verdadero
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Que podemos deducir?
(A ∨ B ∨ C ) (¬A ∨ B)
B ∨ C
I Una consequencia de lo que nos dijo Ceferino es que sale almenos con Beatriz o con Celeste.
I Pero sale Ceferino con alguien?!!!En realidad hay dossituaciones que son consistentes con lo que dijo Ceferino.
A = verdadero B = verdadero C = verdaderoA = falso B = falso C = verdadero
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?
I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)
T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente.
(Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Resolviendo el Problema
I Como podemos computar esta solucion?I Podemos usar tablas de verdad
A B C (A ∨ B ∨ C) (¬B ∨ A ∨ C) (A ∨ ¬B) (C ∨ ¬B) (¬A ∨ B)T T T T T T T T TT T F T T T F T FT F T T T T T F FT F F T T T T F FF T T T T F T T FF T F T F F F T FF F T T T T T T TF F F F T T T T F
I Pero este método no es muy e�ciente. (Cuál es la complejidadde SAT para LP?)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Algunas técnicas para resolver SAT
I Métodos Completos
I ResolucionI TableauxI Davis-PutmanI Mapeo en ecuaciones lineares
I Métodos de AproximaciónI Cambiar el valor de una variable en una fórmula insatisfechaI Algoritmos géneticosI Hill-climbing
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Algunas técnicas para resolver SAT
I Métodos Completos
I ResolucionI TableauxI Davis-PutmanI Mapeo en ecuaciones lineares
I Métodos de AproximaciónI Cambiar el valor de una variable en una fórmula insatisfechaI Algoritmos géneticosI Hill-climbing
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)I veri�cacion de hardwareI planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.
I Pero el poder expresivo de PL es su�ciente para hacer cosasmucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)I veri�cacion de hardwareI planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafos
I constraint satisfaction problems (CSP)I veri�cacion de hardwareI planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)
I veri�cacion de hardwareI planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)I veri�cacion de hardware
I planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)I veri�cacion de hardwareI planning
I scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Codi�cando Problemas
I Acabamos de ver como usar LP en un ejemplo muy simple.I Pero el poder expresivo de PL es su�ciente para hacer cosas
mucho más interesantes:
I coloreo de grafosI constraint satisfaction problems (CSP)I veri�cacion de hardwareI planningI scheduling
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I El problema: Dados un grafo G = 〈N,E 〉 donde N es unconjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.
I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de GrafosI El problema: Dados un grafo G = 〈N,E 〉 donde N es un
conjunto de nodos y E es un conjunto de ejes, y un número�jo de colores k . Decidir si podemos asignar colores a losnodos de N tal que:
I Todos los nodos estan coloreados con uno de los k colores.I Para cada eje (i , j) ∈ N, el color de i es diferente del color de j .
I Ejemplo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicación: Coloreo de Grafos
I Una codi�cación simple del problema de k-coloreo de un grafocon n nodos usa n · k símbolos proposicionales (unacodi�cación más compacta usa sólo n log2(k) símbolosproposicionales)
I Para 1 ≤ i ≤ n, 1 ≤ j ≤ k , escribimos pij para decir que `elnodo i tiene color j '
Cada nodo tiene un color: pi1 ∨ . . . ∨ pik ,para 1 ≤ i ≤ n
Nodos vecinos tienen colores diferentes: ¬pil ∨ ¬pjl ,para i y j nodos vecinos, y 1 ≤ l ≤ k
Cada nodo no tiene mas de un color: ¬pil ∨ ¬pim,para 1 ≤ i ≤ n, y 1 ≤ l < m ≤ k
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicaciones: Coloreo de Grafos 2
I Resultados:
I Los algoritmos de GSAT y WalkSAT son competitivos encomparación con algoritmos especifícos de coloreo de grafos
I Una aplicación en álgebra:I problemas relacionados con quasi-grupos pueden verse como
casos particulares de coloreo de grafos.I algunos problemas abiertos en la teoría de quasi-grupos fueron
codi�cados de esta forma y resueltos en forma automáticamediante demostradores de teoremas para LP-SAT.E.g., existe un quasi-grupo que satisfaga las siguientesequaciones?
∀a.(a · a) = a
∀a, b.((b · a) · b) · b = a
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicaciones: Coloreo de Grafos 2
I Resultados:
I Los algoritmos de GSAT y WalkSAT son competitivos encomparación con algoritmos especifícos de coloreo de grafos
I Una aplicación en álgebra:I problemas relacionados con quasi-grupos pueden verse como
casos particulares de coloreo de grafos.I algunos problemas abiertos en la teoría de quasi-grupos fueron
codi�cados de esta forma y resueltos en forma automáticamediante demostradores de teoremas para LP-SAT.E.g., existe un quasi-grupo que satisfaga las siguientesequaciones?
∀a.(a · a) = a
∀a, b.((b · a) · b) · b = a
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicaciones: Coloreo de Grafos 2
I Resultados:
I Los algoritmos de GSAT y WalkSAT son competitivos encomparación con algoritmos especifícos de coloreo de grafos
I Una aplicación en álgebra:I problemas relacionados con quasi-grupos pueden verse como
casos particulares de coloreo de grafos.
I algunos problemas abiertos en la teoría de quasi-grupos fueroncodi�cados de esta forma y resueltos en forma automáticamediante demostradores de teoremas para LP-SAT.E.g., existe un quasi-grupo que satisfaga las siguientesequaciones?
∀a.(a · a) = a
∀a, b.((b · a) · b) · b = a
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicaciones: Coloreo de Grafos 2
I Resultados:
I Los algoritmos de GSAT y WalkSAT son competitivos encomparación con algoritmos especifícos de coloreo de grafos
I Una aplicación en álgebra:I problemas relacionados con quasi-grupos pueden verse como
casos particulares de coloreo de grafos.I algunos problemas abiertos en la teoría de quasi-grupos fueron
codi�cados de esta forma y resueltos en forma automáticamediante demostradores de teoremas para LP-SAT.
E.g., existe un quasi-grupo que satisfaga las siguientesequaciones?
∀a.(a · a) = a
∀a, b.((b · a) · b) · b = a
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Aplicaciones: Coloreo de Grafos 2
I Resultados:
I Los algoritmos de GSAT y WalkSAT son competitivos encomparación con algoritmos especifícos de coloreo de grafos
I Una aplicación en álgebra:I problemas relacionados con quasi-grupos pueden verse como
casos particulares de coloreo de grafos.I algunos problemas abiertos en la teoría de quasi-grupos fueron
codi�cados de esta forma y resueltos en forma automáticamediante demostradores de teoremas para LP-SAT.E.g., existe un quasi-grupo que satisfaga las siguientesequaciones?
∀a.(a · a) = a
∀a, b.((b · a) · b) · b = a
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Y problemas realmente importantes?
I Siga este link http://www.sudokusolver.co.uk/.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Y problemas realmente importantes?
I Siga este link http://www.sudokusolver.co.uk/.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos de Desición
I Los método de desición para resolver SAT debe:I Siempren responden SAT o UNSATI En un tiempo �nitoI correctamente
I Los métodos completos más conocidos sonI tablas de verdadI axiomatizaciones, calculo de Gentzen, deduccion naturalI resolucion, tableauxI Davis-Putnam
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos de Desición
I Los método de desición para resolver SAT debe:I Siempren responden SAT o UNSAT
I En un tiempo �nitoI correctamente
I Los métodos completos más conocidos sonI tablas de verdadI axiomatizaciones, calculo de Gentzen, deduccion naturalI resolucion, tableauxI Davis-Putnam
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos de Desición
I Los método de desición para resolver SAT debe:I Siempren responden SAT o UNSATI En un tiempo �nito
I correctamente
I Los métodos completos más conocidos sonI tablas de verdadI axiomatizaciones, calculo de Gentzen, deduccion naturalI resolucion, tableauxI Davis-Putnam
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos de Desición
I Los método de desición para resolver SAT debe:I Siempren responden SAT o UNSATI En un tiempo �nitoI correctamente
I Los métodos completos más conocidos sonI tablas de verdadI axiomatizaciones, calculo de Gentzen, deduccion naturalI resolucion, tableauxI Davis-Putnam
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Transformando una formula en forma clausal
I Forma clausal. Escribimos ϕ en forma normal conjuntiva(conjunctive normal form, CNF)
ϕ =∧l∈L
∨m∈M
ψ(l ,m), donde ψ(l ,m) es un literal (i.e., p o ¬p).
I Usando las siguientes equivalencias:(p → q) ; (¬p ∨ q)(p ↔ q) ; (p → q) ∧ (q → p)
(¬(p ∨ q)) ; (¬p ∧ ¬q)(¬(p ∧ q)) ; (¬p ∨ ¬q)
(¬¬p) ; p
(p ∨ (q ∧ r)) ; ((p ∨ q) ∧ (p ∨ r))
El conjunto de cláusulas asociado a
(l11 ∨ . . . ∨ l1n1)∧(l21 ∨ . . . ∨ l2n2)∧. . .∧(lk1 ∨ . . . ∨ lknk ) es{{l11, . . . , l1n1} , {l21, . . . , l2n2} , . . . , {lk1, . . . , lknk}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Transformando una formula en forma clausalI Forma clausal. Escribimos ϕ en forma normal conjuntiva
(conjunctive normal form, CNF)
ϕ =∧l∈L
∨m∈M
ψ(l ,m), donde ψ(l ,m) es un literal (i.e., p o ¬p).
I Usando las siguientes equivalencias:(p → q) ; (¬p ∨ q)(p ↔ q) ; (p → q) ∧ (q → p)
(¬(p ∨ q)) ; (¬p ∧ ¬q)(¬(p ∧ q)) ; (¬p ∨ ¬q)
(¬¬p) ; p
(p ∨ (q ∧ r)) ; ((p ∨ q) ∧ (p ∨ r))
El conjunto de cláusulas asociado a
(l11 ∨ . . . ∨ l1n1)∧(l21 ∨ . . . ∨ l2n2)∧. . .∧(lk1 ∨ . . . ∨ lknk ) es{{l11, . . . , l1n1} , {l21, . . . , l2n2} , . . . , {lk1, . . . , lknk}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Transformando una formula en forma clausalI Forma clausal. Escribimos ϕ en forma normal conjuntiva
(conjunctive normal form, CNF)
ϕ =∧l∈L
∨m∈M
ψ(l ,m), donde ψ(l ,m) es un literal (i.e., p o ¬p).
I Usando las siguientes equivalencias:(p → q) ; (¬p ∨ q)(p ↔ q) ; (p → q) ∧ (q → p)
(¬(p ∨ q)) ; (¬p ∧ ¬q)(¬(p ∧ q)) ; (¬p ∨ ¬q)
(¬¬p) ; p
(p ∨ (q ∧ r)) ; ((p ∨ q) ∧ (p ∨ r))
El conjunto de cláusulas asociado a
(l11 ∨ . . . ∨ l1n1)∧(l21 ∨ . . . ∨ l2n2)∧. . .∧(lk1 ∨ . . . ∨ lknk ) es
{{l11, . . . , l1n1} , {l21, . . . , l2n2} , . . . , {lk1, . . . , lknk}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Transformando una formula en forma clausalI Forma clausal. Escribimos ϕ en forma normal conjuntiva
(conjunctive normal form, CNF)
ϕ =∧l∈L
∨m∈M
ψ(l ,m), donde ψ(l ,m) es un literal (i.e., p o ¬p).
I Usando las siguientes equivalencias:(p → q) ; (¬p ∨ q)(p ↔ q) ; (p → q) ∧ (q → p)
(¬(p ∨ q)) ; (¬p ∧ ¬q)(¬(p ∧ q)) ; (¬p ∨ ¬q)
(¬¬p) ; p
(p ∨ (q ∧ r)) ; ((p ∨ q) ∧ (p ∨ r))
El conjunto de cláusulas asociado a
(l11 ∨ . . . ∨ l1n1)∧(l21 ∨ . . . ∨ l2n2)∧. . .∧(lk1 ∨ . . . ∨ lknk ) es{{l11, . . . , l1n1} , {l21, . . . , l2n2} , . . . , {lk1, . . . , lknk}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 1
1. ¬((p ∨ q)→ (¬q → (p ∨ q)))
2. ¬(¬(p ∨ q) ∨ (¬¬q ∨ (p ∨ q)))
3. ¬(¬(p ∨ q) ∨ (q ∨ (p ∨ q)))
4. (¬¬(p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
5. ((p ∨ q) ∧ ¬(q ∨ (p ∨ q)))
6. ((p ∨ q) ∧ (¬q ∧ ¬(p ∨ q)))
7. ((p ∨ q) ∧ (¬q ∧ (¬p ∧ ¬q)))
8. {{p, q}, {¬q}, {¬p}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r2. ((p → q) ∧ (q → p)) ∨ r3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r
2. ((p → q) ∧ (q → p)) ∨ r3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r2. ((p → q) ∧ (q → p)) ∨ r
3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r2. ((p → q) ∧ (q → p)) ∨ r3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r
4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r2. ((p → q) ∧ (q → p)) ∨ r3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplo 2
1. (p ↔ q) ∨ r2. ((p → q) ∧ (q → p)) ∨ r3. ((¬p ∨ q) ∧ (¬q ∨ p)) ∨ r4. (((¬p ∨ q) ∨ r) ∧ ((¬q ∨ p) ∨ r))
5. {{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam
I El método de Davis-Putnam es quizas el mas usado parademostracion automatica de LP-SAT
I A pesar de que ya tiene muchos años, es aun uno de los maspopulares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SAT
I A pesar de que ya tiene muchos años, es aun uno de los maspopulares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)
if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)
if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)
Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-PutnamI El método de Davis-Putnam es quizas el mas usado para
demostracion automatica de LP-SATI A pesar de que ya tiene muchos años, es aun uno de los mas
populares y exitosos entre los Métodos completos.
Sea Σ el conjunto de cláusulas asociado a la fórmula ϕ
procedure DP(Σ)
if Σ={} then return SAT // (SAT)if {} ∈ Σ then return UNSAT // (UNSAT)if Σ has unit clause {l}
then DP(Σ[{l=true}]) // (Unit Pr.)Choose literal l and
if DP(Σ[{l=true}]) return SAT
then return SAT
else return DP(Σ[{l=false}]) // (Split): Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam 2
I DP no es el desarrollado por Davis & Putnam, sino el métodoperfeccionado de Davis, Logemann & Loveland
I el algoritmo original propuesto por Davis & Putnam usaba unaregla de resolucion en vez de la regla de splitting, lo que podriallevar a un uso exponencial de espacio
I Reglas Adicionales:I un literal puro (pure literal) es un literal que aparece siempre
en forma positiva o siempre en forma negativa en el conjuntode 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})
I Tautology Deletion
(Taut) if Sigma contains C ∪ {p,¬p} then DP(Sigma\ C ∪ {p,¬p})
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam 2
I DP no es el desarrollado por Davis & Putnam, sino el métodoperfeccionado de Davis, Logemann & Loveland
I el algoritmo original propuesto por Davis & Putnam usaba unaregla de resolucion en vez de la regla de splitting, lo que podriallevar a un uso exponencial de espacio
I Reglas Adicionales:I un literal puro (pure literal) es un literal que aparece siempre
en forma positiva o siempre en forma negativa en el conjuntode 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})
I Tautology Deletion
(Taut) if Sigma contains C ∪ {p,¬p} then DP(Sigma\ C ∪ {p,¬p})
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam 2
I DP no es el desarrollado por Davis & Putnam, sino el métodoperfeccionado de Davis, Logemann & Loveland
I el algoritmo original propuesto por Davis & Putnam usaba unaregla de resolucion en vez de la regla de splitting, lo que podriallevar a un uso exponencial de espacio
I Reglas Adicionales:I un literal puro (pure literal) es un literal que aparece siempre
en forma positiva o siempre en forma negativa en el conjuntode 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})
I Tautology Deletion
(Taut) if Sigma contains C ∪ {p,¬p} then DP(Sigma\ C ∪ {p,¬p})
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam 2
I DP no es el desarrollado por Davis & Putnam, sino el métodoperfeccionado de Davis, Logemann & Loveland
I el algoritmo original propuesto por Davis & Putnam usaba unaregla de resolucion en vez de la regla de splitting, lo que podriallevar a un uso exponencial de espacio
I Reglas Adicionales:I un literal puro (pure literal) es un literal que aparece siempre
en forma positiva o siempre en forma negativa en el conjuntode 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})
I Tautology Deletion
(Taut) if Sigma contains C ∪ {p,¬p} then DP(Sigma\ C ∪ {p,¬p})
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Completos: Davis-Putnam 2
I DP no es el desarrollado por Davis & Putnam, sino el métodoperfeccionado de Davis, Logemann & Loveland
I el algoritmo original propuesto por Davis & Putnam usaba unaregla de resolucion en vez de la regla de splitting, lo que podriallevar a un uso exponencial de espacio
I Reglas Adicionales:I un literal puro (pure literal) es un literal que aparece siempre
en forma positiva o siempre en forma negativa en el conjuntode 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})
I Tautology Deletion
(Taut) if Sigma contains C ∪ {p,¬p} then DP(Sigma\ C ∪ {p,¬p})
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: Las Reglas
I La regla (Pure) usualmente no es implementada, ya que elcosto de su evaluacion puede ser mas alto que los bene�ciosque produce
I Lo mismo vale para la regla (Taut): las tautologies soloaparecen al comienzo de la busqueda
I La regla (Unit) no es esencial y su efecto puede obtenersemediante una combinacion de las reglas (Split) y (Empty)
I Pero (Unit) es crucial para el buen comportamientocomputacional del método. Por ejemplo, la regla (Unit) por simisma es completa sobre clausulas Horn.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: Las Reglas
I La regla (Pure) usualmente no es implementada, ya que elcosto de su evaluacion puede ser mas alto que los bene�ciosque produce
I Lo mismo vale para la regla (Taut): las tautologies soloaparecen al comienzo de la busqueda
I La regla (Unit) no es esencial y su efecto puede obtenersemediante una combinacion de las reglas (Split) y (Empty)
I Pero (Unit) es crucial para el buen comportamientocomputacional del método. Por ejemplo, la regla (Unit) por simisma es completa sobre clausulas Horn.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: Las Reglas
I La regla (Pure) usualmente no es implementada, ya que elcosto de su evaluacion puede ser mas alto que los bene�ciosque produce
I Lo mismo vale para la regla (Taut): las tautologies soloaparecen al comienzo de la busqueda
I La regla (Unit) no es esencial y su efecto puede obtenersemediante una combinacion de las reglas (Split) y (Empty)
I Pero (Unit) es crucial para el buen comportamientocomputacional del método. Por ejemplo, la regla (Unit) por simisma es completa sobre clausulas Horn.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: Las Reglas
I La regla (Pure) usualmente no es implementada, ya que elcosto de su evaluacion puede ser mas alto que los bene�ciosque produce
I Lo mismo vale para la regla (Taut): las tautologies soloaparecen al comienzo de la busqueda
I La regla (Unit) no es esencial y su efecto puede obtenersemediante una combinacion de las reglas (Split) y (Empty)
I Pero (Unit) es crucial para el buen comportamientocomputacional del método. Por ejemplo, la regla (Unit) por simisma es completa sobre clausulas Horn.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: Las Reglas
I La regla (Pure) usualmente no es implementada, ya que elcosto de su evaluacion puede ser mas alto que los bene�ciosque produce
I Lo mismo vale para la regla (Taut): las tautologies soloaparecen al comienzo de la busqueda
I La regla (Unit) no es esencial y su efecto puede obtenersemediante una combinacion de las reglas (Split) y (Empty)
I Pero (Unit) es crucial para el buen comportamientocomputacional del método. Por ejemplo, la regla (Unit) por simisma es completa sobre clausulas Horn.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplos de DP
I ¬((p ∨ q)→ (¬q → (p ∨ q)))
{{p, q}, {¬q}, {¬p}}
I (p ↔ q) ∨ r
{{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplos de DP
I ¬((p ∨ q)→ (¬q → (p ∨ q)))
{{p, q}, {¬q}, {¬p}}
I (p ↔ q) ∨ r
{{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplos de DP
I ¬((p ∨ q)→ (¬q → (p ∨ q)))
{{p, q}, {¬q}, {¬p}}
I (p ↔ q) ∨ r
{{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Ejemplos de DP
I ¬((p ∨ q)→ (¬q → (p ∨ q)))
{{p, q}, {¬q}, {¬p}}
I (p ↔ q) ∨ r
{{¬p, q, r}, {¬q, p, r}}
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: La regla (Split)
La regla (Split) es no-deterministica: Que literal elegimos?I Heuristica MOM: elegir el literal que ocurre `most often in the
minimal size clauses' (con empates resueltos en forma aleatoria osiguiendo un orden predeterminado). Este método es uno de losmejores en terminos de resultados, velocidad y simplicidad.
I Heuristica de Jeroslow-Wang: estimamos la contribucion que cadaliteral podria hacer a la satis�abilidad del conjunto de clausulas yelegimos el coe�ciente mas alto
score(l) =∑
c∈Σ & l∈c
2−|c|
I SATZ, uno de los mejores implementaciones actuales de DP, usauna heuristica que intenta maximizar el uso de unit propagation:genera todos los posibles branchings con distintos literales y aplicainmediatamente unit propagation sobre el resultado, para continuarla ejecucion con el conjunto de clausulas mas pequeño.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: La regla (Split)La regla (Split) es no-deterministica: Que literal elegimos?
I Heuristica MOM: elegir el literal que ocurre `most often in theminimal size clauses' (con empates resueltos en forma aleatoria osiguiendo un orden predeterminado). Este método es uno de losmejores en terminos de resultados, velocidad y simplicidad.
I Heuristica de Jeroslow-Wang: estimamos la contribucion que cadaliteral podria hacer a la satis�abilidad del conjunto de clausulas yelegimos el coe�ciente mas alto
score(l) =∑
c∈Σ & l∈c
2−|c|
I SATZ, uno de los mejores implementaciones actuales de DP, usauna heuristica que intenta maximizar el uso de unit propagation:genera todos los posibles branchings con distintos literales y aplicainmediatamente unit propagation sobre el resultado, para continuarla ejecucion con el conjunto de clausulas mas pequeño.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: La regla (Split)La regla (Split) es no-deterministica: Que literal elegimos?
I Heuristica MOM: elegir el literal que ocurre `most often in theminimal size clauses' (con empates resueltos en forma aleatoria osiguiendo un orden predeterminado). Este método es uno de losmejores en terminos de resultados, velocidad y simplicidad.
I Heuristica de Jeroslow-Wang: estimamos la contribucion que cadaliteral podria hacer a la satis�abilidad del conjunto de clausulas yelegimos el coe�ciente mas alto
score(l) =∑
c∈Σ & l∈c
2−|c|
I SATZ, uno de los mejores implementaciones actuales de DP, usauna heuristica que intenta maximizar el uso de unit propagation:genera todos los posibles branchings con distintos literales y aplicainmediatamente unit propagation sobre el resultado, para continuarla ejecucion con el conjunto de clausulas mas pequeño.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: La regla (Split)La regla (Split) es no-deterministica: Que literal elegimos?
I Heuristica MOM: elegir el literal que ocurre `most often in theminimal size clauses' (con empates resueltos en forma aleatoria osiguiendo un orden predeterminado). Este método es uno de losmejores en terminos de resultados, velocidad y simplicidad.
I Heuristica de Jeroslow-Wang: estimamos la contribucion que cadaliteral podria hacer a la satis�abilidad del conjunto de clausulas yelegimos el coe�ciente mas alto
score(l) =∑
c∈Σ & l∈c
2−|c|
I SATZ, uno de los mejores implementaciones actuales de DP, usauna heuristica que intenta maximizar el uso de unit propagation:genera todos los posibles branchings con distintos literales y aplicainmediatamente unit propagation sobre el resultado, para continuarla ejecucion con el conjunto de clausulas mas pequeño.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Davis-Putnam: La regla (Split)La regla (Split) es no-deterministica: Que literal elegimos?
I Heuristica MOM: elegir el literal que ocurre `most often in theminimal size clauses' (con empates resueltos en forma aleatoria osiguiendo un orden predeterminado). Este método es uno de losmejores en terminos de resultados, velocidad y simplicidad.
I Heuristica de Jeroslow-Wang: estimamos la contribucion que cadaliteral podria hacer a la satis�abilidad del conjunto de clausulas yelegimos el coe�ciente mas alto
score(l) =∑
c∈Σ & l∈c
2−|c|
I SATZ, uno de los mejores implementaciones actuales de DP, usauna heuristica que intenta maximizar el uso de unit propagation:genera todos los posibles branchings con distintos literales y aplicainmediatamente unit propagation sobre el resultado, para continuarla ejecucion con el conjunto de clausulas mas pequeño.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Métodos Incompletos (o de Aproximacion): Motivacion
I DP puede resolver en tiempo razonable problemas con 500variables proposicionales. . .
I . . . pero los problemas que surgen habitualmente en lapractica tienen 1000s de variables!
I Dependiendo de la aplicacion, Métodos de semi-decisionpueden ser utiles: encontrar una solucion en algunos casos
I E.g., encontrar un plan ≡ encontrar un modelo, y podemos noestar interesados en los casos en los que no existe un plan
I Ademas, podemos estar interesados en �anytime answers� quedan �best guess� en cualquier momento que querramos detenerel algoritmo
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Revoleando Monedas: El Algoritmo �Greedy�
I El algoritmo fue propuesto por Koutsopias y PapadimitriouI Idea principal: cambiamos el valor de una variable hasta que no
podemos incrementar el numero de clausulas satisfechas.
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
I El algoritmo encuentra un modelo para casi todos losproblemas satisfacibles con n variables proposicionales y O(n2)clausulas (lamentablemente, muy pocos problemas son de estetipo)
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
El procedimiento GSAT
I El algoritmo fue propuesto por Selman, Levesque y MitchellI Agrega restarts al algoritmo greedy, y permite �pasos al
costado� (i.e., que no incrementan la funcion de costo)
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
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencialI GSAT es excelente en algunos tipos de problemas (random
3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencial
I GSAT es excelente en algunos tipos de problemas (random3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencialI GSAT es excelente en algunos tipos de problemas (random
3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencialI GSAT es excelente en algunos tipos de problemas (random
3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencialI GSAT es excelente en algunos tipos de problemas (random
3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Evaluacion
I El procedimiento GSAT ha sido muy in�uencialI GSAT es excelente en algunos tipos de problemas (random
3-SAT, n-queens, etc.)
formulas
var clauses
50 215100 430140 602150 645300 1275500 2150
GSAT
M-FLIPS restarts time
250 6.4 0.4s500 42.5 6s700 52.6 14s
1500 100.5 45s6000 231.8 12m
10000 995.8 1.6h
DP
choices depth time
77 11 1.4s84 x 103 19 2.8m2.2 x 106 27 4.7h
� � �� � �� � �
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
GSAT: Pasos al costado
I Recordemos: la diferencia mas importante entre el algoritmogreedy y GSAT es la posibilidad de pasos al costado
I Hay alguna diferencia?
type
randomrandom30-queens
formulasvars clauses
50 215100 430900 43240
M-FLIPS
1000100000100000
no sideways moves%-solved restarts time
69% 537 10s39% 63382 15m100% 50000 30h
all moves%-solved tries time
100% 6 1.4s100% 81 2.8m100% 1 2.5s
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Logica Proposicional: Conclusiones
I Los Métodos completos garantizan solucionar el problemaLP-SAT (y en muchos casos, e.g. DP, permiten encontrartodas las soluciones posibles)
I Los Métodos de aproximacion garantizan correctitud pero nocompletitud (i.e., si encuentran una solucion, es correcta, peropueden terminar diciendo `No se').
I El método de DP es muy usado, pero notemos que DP es enrealidad un esquema general para una familia de algoritmos.Como vimos, se pueden tomar decisiones diferentes hacerca decomo implementarlo (como elegimos literales, como hacemosbacktracking, etc.)
I Aun por ejemplos �simples� en en logica proposicional las cosaspuden ponerse di�ciles si no usamos optimizacionesinteligentes.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Logica Proposicional: Conclusiones
I Los Métodos completos garantizan solucionar el problemaLP-SAT (y en muchos casos, e.g. DP, permiten encontrartodas las soluciones posibles)
I Los Métodos de aproximacion garantizan correctitud pero nocompletitud (i.e., si encuentran una solucion, es correcta, peropueden terminar diciendo `No se').
I El método de DP es muy usado, pero notemos que DP es enrealidad un esquema general para una familia de algoritmos.Como vimos, se pueden tomar decisiones diferentes hacerca decomo implementarlo (como elegimos literales, como hacemosbacktracking, etc.)
I Aun por ejemplos �simples� en en logica proposicional las cosaspuden ponerse di�ciles si no usamos optimizacionesinteligentes.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Logica Proposicional: Conclusiones
I Los Métodos completos garantizan solucionar el problemaLP-SAT (y en muchos casos, e.g. DP, permiten encontrartodas las soluciones posibles)
I Los Métodos de aproximacion garantizan correctitud pero nocompletitud (i.e., si encuentran una solucion, es correcta, peropueden terminar diciendo `No se').
I El método de DP es muy usado, pero notemos que DP es enrealidad un esquema general para una familia de algoritmos.Como vimos, se pueden tomar decisiones diferentes hacerca decomo implementarlo (como elegimos literales, como hacemosbacktracking, etc.)
I Aun por ejemplos �simples� en en logica proposicional las cosaspuden ponerse di�ciles si no usamos optimizacionesinteligentes.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Logica Proposicional: Conclusiones
I Los Métodos completos garantizan solucionar el problemaLP-SAT (y en muchos casos, e.g. DP, permiten encontrartodas las soluciones posibles)
I Los Métodos de aproximacion garantizan correctitud pero nocompletitud (i.e., si encuentran una solucion, es correcta, peropueden terminar diciendo `No se').
I El método de DP es muy usado, pero notemos que DP es enrealidad un esquema general para una familia de algoritmos.Como vimos, se pueden tomar decisiones diferentes hacerca decomo implementarlo (como elegimos literales, como hacemosbacktracking, etc.)
I Aun por ejemplos �simples� en en logica proposicional las cosaspuden ponerse di�ciles si no usamos optimizacionesinteligentes.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Logica Proposicional: Conclusiones
I Los Métodos completos garantizan solucionar el problemaLP-SAT (y en muchos casos, e.g. DP, permiten encontrartodas las soluciones posibles)
I Los Métodos de aproximacion garantizan correctitud pero nocompletitud (i.e., si encuentran una solucion, es correcta, peropueden terminar diciendo `No se').
I El método de DP es muy usado, pero notemos que DP es enrealidad un esquema general para una familia de algoritmos.Como vimos, se pueden tomar decisiones diferentes hacerca decomo implementarlo (como elegimos literales, como hacemosbacktracking, etc.)
I Aun por ejemplos �simples� en en logica proposicional las cosaspuden ponerse di�ciles si no usamos optimizacionesinteligentes.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Zcha�
I Un demostrador muy optimizaco implementando una versionde DP (conocida como el algoritmo 'cha�').
I Site: http://www.princeton.edu/~chaff/zchaff.htmlI Tambien conocido como el `Princeton Prover'.I zCha� se hizo famoso al resolver problemas con mas de un
millon de variables y mas de 10 millones de clausulas.I Es usado en otros systems como el planner BlackBox, el Model
Checker NuSMV, el demostrador GrAnDe, etc.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
Zcha�
I Un demostrador muy optimizaco implementando una versionde DP (conocida como el algoritmo 'cha�').
I Site: http://www.princeton.edu/~chaff/zchaff.htmlI Tambien conocido como el `Princeton Prover'.I zCha� se hizo famoso al resolver problemas con mas de un
millon de variables y mas de 10 millones de clausulas.I Es usado en otros systems como el planner BlackBox, el Model
Checker NuSMV, el demostrador GrAnDe, etc.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
WalkSat
I Walksat esla implementacion de un algoritmo de busquedalocal para resolver SAT para PL (es una mejora de GSAT).
I Site: http://www.cs.rochester.edu/u/kautz/walksatI Ha resultado particularmente exitoso en resolver problemas
resultantes de la conversion a SAT de problemas de planning.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est
WalkSat
I Walksat esla implementacion de un algoritmo de busquedalocal para resolver SAT para PL (es una mejora de GSAT).
I Site: http://www.cs.rochester.edu/u/kautz/walksatI Ha resultado particularmente exitoso en resolver problemas
resultantes de la conversion a SAT de problemas de planning.
: Lógica Computacional y Demostración Automática INRIA Nancy Grand Est