LI2014: Representación del conocimiento mediante lógica de primer orden

En la clase de hoy del curso Lógica Informática se ha presentado la lógica de primer orden como sistema de representación del conocimiento.

La clase ha comenzado recordando la ecuación que resumen el curso: LI=RC+AR, donde LI = Lógica informática, RC = Representación del conocimiento y AR = Automatización del razonamiento.

Ya hemos estudiado el sistema básico de representación del conocimiento (la lógica proposicional) y tres sistemas deductivos (deducción natural, tableros semánticos y resolución). Además, hemos usado Prover9 y Mace4 para resolver problemas que se pueden codificar mediante la lógica proposicional, como el de las 4 reinas. Un inconveniente de las codificaciones es la cantidad y el tamaño de las fórmulas resultantes. En la clase vamos a ver una forma de reducir el tamaño de las codificaciones: la lógica de primer orden. Este sistema permite representar de forma más compacta conocimiento representable en lógica proposicional y también representar conocimiento que no se puede representar en lógica proposicional.

Como ejemplos de representación hemos visto cómo representar conocimiento geográfico, del mundo de los bloques y conocimiento astronómico. En los distintos ejemplos hemos resaltado los tipos de símbolos lógicos utilizados.

Las transparencias de esta clase son las páginas 1 a 10 del tema 7:
Read More “LI2014: Representación del conocimiento mediante lógica de primer orden”

LI2014: Tipos de problemas y su implementación en Haskell

En la primera parte de la clase de hoy del curso [Lógica Informática]http://www.cs.us.es/~jalonso/cursos/li-14) hemos comentado los tipos de problemas que se pueden resolver en los temas de lógica proposicional que hemos estudiado. En concreto,

  1. Sintaxis y semántica de la lógica proposicional.
  2. Deducción natural proposicional.
  3. Tableros semánticos proposicionales.
  4. Formas normales.
  5. Resolución proposicional.

En la segunda parte, hemos visto cómo se pueden definir en Haskell la funciones correspondientes a las soluciones de algunos de dichos problemas. En concreto, hemos comentado las definiciones correspondientes a las 20 primeras páginas del libro Lógica en Haskell.

LI2014: Algoritmo DPLL (Davis, Putnam, Logemann y Loveland) y aplicaciones proposicionales

En la primera parte de la clase de hoy del curso Lógica Informática hemos estudiado el algoritmo DPLL (Davis, Putnam, Logemann y Loveland) para decidir la consistencia de conjuntos de cláusulas.

En la segunda parte, hemos visto cómo resolver lógicamente problemas representándolos en la lógica proposicional y usando Prover9/Mace4 para su solución.

Los problemas que se han visto son

  • El problema de los veraces y los mentirosos.
  • El problema de los animales.
  • El problema del coloreado del pentágono.
  • El problema del palomar.
  • El problema de los rectángulos.
  • El problema de las 4 reinas.
  • El problema de Ramsey.

Las transparencias utilizadas son las del tema 6
Read More “LI2014: Algoritmo DPLL (Davis, Putnam, Logemann y Loveland) y aplicaciones proposicionales”