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

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

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.

Una forma de simplificar las codificaiones es mediante el uso de 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.

Finalmente, como tutor para la representación del conocimiento, se ha presentado el APLI2 (APLIcación de Ayuda Para Lógica Informática).

Las transparencias de esta clase son las páginas 1 a 10 del tema 6.

Como tarea se propone la resolución de los ejercicios de primer orden del APLI2.

I1M2011: División y factorización de polinomios mediante la regla de Ruffini en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la 25ª relación, cuyos objetivo es implementar la regla de Ruffini y sus aplicaciones utilizando las implementaciones del TAD de polinomio estudiadas en el tema 21.

En los ejercicios se usan las siguientes librerías:

  • PolRepTDA: Implementación de los polinomios mediante tipos de datos algebraicos.
  • PolRepDispersa: Implementación de los polinomios mediante listas dispersas.
  • PolRepDensa: Implementación de los polinomios mediante listas densas.
  • PolOperaciones: Operaciones con el TAD de los polinomios.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2011: División y factorización de polinomios mediante la regla de Ruffini en Haskell”

LMF2012: Tableros semánticos en Haskell

En la clase de hoy del curso de Lógica matemática y fundamentos (de 3º de Grado en Matemáticas) se ha comentado las soluciones de los ejercicios sobre la implementación en Haskell de los tableros semánticos.

Las soluciones de los ejercicios se muestran a continuación. En los ejercicios se usa el módulo SintaxisSemantica desarrollado en la clase del día 13 de marzo.
Read More “LMF2012: Tableros semánticos en Haskell”