Problemas filosóficos y errores matemáticos

He estado leyendo este fin de semana el libro 101 problemas de filosofía.

En el libro se presentan de forma amenas problemas filosóficos que tratan sobre la verdad, la relación entre la materia y el espíritu, la relación entre el espacio y el tiempo, la causalidad y el libre albedrío.

Aparte de los problemas filosóficos en el libro aparecen errores matemáticos como los dos que cito a continuación. El primero es relativo al teorema de incompletitud de Gödel, del que dice en la página 210,

Incluso Kurt Gödel, al proseguir los infructuosos intentos de Bertrand Russell por edificar la aritmética sobre cimientos firmes, fue incapaz de probarlo todo y, en su lugar, estableció la “Teoría de la incompletitud”, que demuestra que no se puede demostrar todo.

el segundo error es sobre los números complejos, de los que dice en la página 254

Los matemáticos creen que dos ejemplos contradictorios hacen precisamente esto. Creen que un número negativo multiplicado por otro número negativo producirá un número positivo. De hecho creen que esto es verdad por definición. Pero, al mismo tiempo, permiten que los números negativos tengan raíces cuadradas, lo que significa, esencialmente, que otro negativo se multiplique por sí mismo y que siga siendo negativo.

A pesar se dus errores matemáticos, os recomiendo la lectura del libro de los 101 problemas de filosofía.

El tipo abstracto de datos de los polinomios en Haskell

Como comenté en la entrada anterior, estoy elaborando los apuntes de los temas del curso Informática del Grado en Matemáticas (2010-11) no incluidos aún en el libro Temas de programación funcional (2010-11).

Uno de los temas en los que he estado trabajando últimamente es en el de los tipos abstractos de datos (TAD). Además de los habituales (pilas, colas, colas de prioridad, conjuntos, tablas, árboles binarios de búsqueda, montículos y árboles AVL), un TAD especialmente adecuado para los estudiantes de matemáticas es el de polinomios. A continuación muestro la implementación que estoy diseñando en Haskell para incluirla en el tema.

Del código deseo resaltar las siguientes características:

  • Independización de los resultados de las implementaciones mediante las funciones de escritura.
  • Comprobación de las implementaciones con QuickCheck mediante las funciones generadoras de polinomios.

A continuación muestro los ficheros con los códigos desarrollados.
Read More “El tipo abstracto de datos de los polinomios en Haskell”

Curso de Informática (del Grado en Matemáticas)

Como he comentado en otras entradas, uno de los objetivos de este blog es servir de diario de las publicaciones docentes que realizo en mi página personal.

Esta semana he publicado el curso Informática del Grado en Matemáticas (2010-11) que se impartirá desde el 4 de Octubre al 10 de Junio de 2011.

El material del curso publicado hasta ahora está englobado en los siguientes libros:

A lo largo del curso se irán ampliando con los ejercicios, los exámenes y los apuntes de los temas restantes.

Extending Clause Learning of SAT Solvers with Boolean Gröbner Bases

Se ha publicado recientemente el artículo Extending Clause Learning of SAT Solvers with Boolean Gröbner Bases.

En el artículo se presenta una forma de combinar sistemas SAT (basados en el algoritmo DPLL) y bases de Gröbner de forma que cuando se encuentran conflictos, el aprendizaje de las nuevas cláusulas se realice mediante bases de Gröbner en lugar de hacerlo por resolución.

Para experimentar la propuesta, han creado el sistema MiniSat+GB en el que integran el sistema MiniSat con la librería para el cálculo de bases de Gröbner del sistema de cálculo simbólico Reduce.

En los resultados de los experimentos se observa cómo MiniSat+GB supera en eficiencia a MiniSat en los casos en los que se requiere más tiempo de cómputo.

Los autores del artículo son Christoph Zengler y Wolfgang Küchlin que son miembros del Grupo de cálculo simbólico de la Universidad de Tubinga (Tübingen en alemán), Alemania.

El artículo se ha publicado en el LNCS 6244: Computer Algebra in Scientific Computing. (12th International Workshop, CASC 2010)