I1M2018: Programación dinámica en Haskell

En la clase hoy de Informática de 1º del Grado en Matemáticas se ha explicado cómo transformar definiciones recursivas en otras con programación dinámica y la mejora en eficiencia obtenida con la transformación.

Para la explicación se han elegido 6 ejemplos:

  • Los números de Fibonacci
  • Coeficientes binomiales
  • Longitud de la subsecuencia común máxima
  • Subsecuencia común máxima
  • Distancia de Levenshtein

El estudio de cada uno de los ejemplos ha consistido en

  • Enunciar el problema
  • Definir una solución por recursión.
  • Transformar la definición recursiva en otra con programación dinámica.
  • Comparar experimentalmente la eficencia de las dos definiciones.

Los apuntes correspondientes a la clase son

LMF2018: Deducción natural proposicional (1)

En la segunda parte de la clase de hoy del curso Lógica matemática y fundamentos se ha estudiado la deducción natural en la lógica proposicional. Se han estudiado las siguientes reglas:

  • Reglas de la conjunción
  • Reglas de la doble negación
  • Regla de eliminación del condicional
  • Regla derivada de modus tollens (MT)
  • Regla de introducción del condicional
  • Reglas de la disyunción

Las transparencias de esta clase son las 1-12 del tema 2.

Finalmente, se han propuesto la resolución de los ejercicios 2.5.1 a 2.5.36 del Libro de ejercicios

LMF2018: Sintaxis y semántica de la lógica proposicional (2)

En la primera parte de la clase de hoy del curso Lógica matemática y fundamentos se ha continuado el estudio de la semántica de la lógica proposicional.

En primir lugar, se ha extendido las definiciones semáticas de
fórmulas a conjuntos de fórmulas estudiando los conceptos de modelos de conjuntos de fórmulas, conjuntos consistentes e inconsistentes y consecuencia lógica.

Se ha demostrado la equivalencia de los siguientes problemas

  1. decidir si una fórmula es consecuencia lógica de un conjunto finito de fórmulas,
  2. decidir si una fórmula es una tautología,
  3. decidir si una fórmula es insatisfacible y
  4. decidir si un conjunto de fórmulas es inconsistente.

Como aplicación se ha visto la decisión de la corrección de un argumento y la resolución de rompecabezas lógicos.

Las transparencias de esta clase son las páginas 27-34 del tema 1.

I1M2018: Las librerías de vectores y matrices en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado cómo se puede trabajar eh Haskell con vectores y matrices usando las librerías Data.Vector y Data.Matrix.

Para instalarla con Cabal hay que ejecutar las siguientes órdenes

Los correspondientes manuales, con ejemplos de las funciones, se encuentran en