RA2019: Reducción de SAT a Clique en Haskell

En la segunda parte de la clase de hoy del curso de Razonamiento automático se ha estudiado una implementación de la reducción del problema SAT al problema Clique.

En primer lugar se ha estudiado una implementación del problema del Clique en la que se ha definido los grafos no ordenados (como pares de nodos), los cliques y cómo calcular los clique de un tamaño dado.

A continuación se ha estudiado cómo asociar a una fórmula en forma normal conjuntiva un grafo tal que la fórmula es satisfacible si, y sólo si, el grafo tiene un clique cuyo tamaño sea el número de cláusulas de la fórmula

Los códigos usados en la presentación son los siguientes:

Código del prolblema del Clique

Código de la reducción de SAT a Clique

RA2019: El algoritmo de Davis-Putnam en Haskell

En la primera parte de la clase de hoy del curso de Razonamiento automático se ha estudiado una implementación del algoritmo de Davis-Putnam en Haskell y comprobado su corrección con QuickCheck.

En primer lugar se ha estudiado una implementación de la lógica clausal en Haskell en la que se han definido los átomos, literales, cláusulas, fórmulas en forma normal conjuntiva (FNC), interpretaciones, modelos y la clasificación de FNC en satisfacibles, insatisfacibles y válidas.

A continuación se ha estudiado una implementación del algoritmo de Davis-Putnam en Haskell.

Los códigos y las transparencias usados en la presentación son los siguientes:

Código de SAT en Haskell

Presentación del algoritmo de Davis-Putnam

La presentación se ha basado en las 12 primeras páginas del siguiente tema

Descargar (PDF, 283KB)

Código del algoritmo de Davis-Putnam en Haskell