LI2015: 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 (conectivas, variables, cuantificadores, igualdad, constantes, relaciones y funciones).

Las transparencias de esta clase son las páginas 1 a 10 del tema 7:

I1M2015: Programa en Haskell para reconocer tautologías

En clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado cómo construir un programa para determinar si una fórmula es una tautología.

Para ello se consideran las siguientes fases:

  1. definir un tipo de dato algebraico para las fórmulas proposicionales,
  2. definir un tipo de dato para las interpretaciones,
  3. definir una función para calcular los valores de las fórmulas en las interpretaciones
  4. definir una función para generar todas las posibles interpretaciones de una fórmula y
  5. definir una función que para decidir si una fórmula es tautología (es decir, su valor es verdadero en todas sus interpretaciones).

El código correspondiente es
Read More “I1M2015: Programa en Haskell para reconocer tautologías”

LI2015: Aplicaciones de la lógica proposicional con Prover9 y Mace4

En la clase de hoy del curso Lógica Informática 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 las 4 reinas.

Las transparencias utilizadas son las del tema 6
Read More “LI2015: Aplicaciones de la lógica proposicional con Prover9 y Mace4”