viernes, 6 de julio de 2007

Meta Math

Termine de leer el libro Meta Math de Gregory Chaitin
Chaitin es un matemático argentino que terminó estudiando en USA y trabajando en IBM.
Su trabajo se basa en la teoría de la complejidad algoritmica, pero a diferencia utilizar el tiempo como medida de complejidad utiliza el "tamaño" de los programas.
El libro está interesante porque se utiliza su teoría para demostrar el teorema de incompletitud de Gödel y el Halting Problem de Turing aunque se torna un poco pesado todas las "self references" que realiza a su trabajo y persona.
Algunas cosas que aprendí de este libro es la importancia de Leibniz como matemático y filósofo (Leibniz creé el concepto de Monad, tan de moda ahora en lenguajes funcionales como Haskell). Algo que nombra Chaitin es que Leibniz fue más prolifero que Newton y mejor persoan, pero bue, habría que constatarlo un poco mejor.
Algunas conclusiones del libro:
1) Las FAS (Formal Axiomatic System) son un fracazo. No alcanzan para explicar todo, son limitadas, imconpletas o inconsistentes (algo que ya sabiamos por Gödel yTuring)
2) Cree que "Experimentation is the only way to prove that software is correct", algo con lo que estoy de acuerdo.
3) No cree en las demostraciones formales de software, con lo que también concuerdo
4) Que la matemática y la física en definitiva no son tan distintas puesto que la matemática necesita datos empíricos y creatividad, puesto que está demostrado que no se puede hacer matemática formalmente. Siempre algo de "incertidumbre" existe y el ser humano debe tomar una posición.
5) "Even though software is pure mind-sutff, not physical, programmers behave like physicists, not mathematicians, when it comes to debuggin", lo cual concuerda completamente con mi manera de ver el desarrollo de software como una ciencia más empírica que formal
6) Una frase interesante sobre diseño: "In my opinion, what it counts most in design is conceptual integrity, beingfaithful to an idea, not confusing the issue!". Cuanta razón tiene!!! pero que tan difícil es lograrlo en un grupo de desarrolladores!!, por eso es tan importante la cultura de desarrollo de un grupo y no sirve, desde el punto de vista técnico, cambiar la gente que trabaja en los proyectos, cada vez que alguien se va, se pierde "integridad conceptual"

En fin, este libro reatifica algo que venía pensando hace tiempo... hasta la matemática es subjetiva! jaja, una afirmación un poco loca no?

4 comentarios:

Anónimo dijo...

Un pequeño comentario: el concepto de mónadas que utiliza Leibniz es completamente distinto al concepto de mónadas usado en Haskell y Teoría de Categorías.

En Leibniz las mónadas son un concepto filosófico, mientras que en Haskell las mónadas son una bonita forma de estructurar los programas.

Hernan Wilkinson dijo...

Gracias por la aclaración. No soy experto en estas cosas, pero recuerdo haber leido esto en la Wikipedia. Recien estuve revisando y vi que de la página de Leibniz está el link a la de Monad... quizá por eso mi confusión.
Gracias de vuelta.

Gaboto dijo...

Hay algo con lo que no estoy de acuerdo. Es cierto que Gödel demostró la incompletitud de ciertos formalismos matemáticos que utilizan la lógica de primer orden para su definición mediante la axiomatización. Según este teorema no se podría tener una definición completa de lo que son los números naturales (porque seria inconsistente).
Pero de ahí a decir que la matemática es subjetiva hay un gran paso.
No se puede decir que en una teoría de primer hay subjetividad, porque los teoremas son teoremas, hay formulas independientes y no se puede decir más al respecto.
Lo que si es cierto es que en realidad cuando se define una teoría de primer orden, alguien esta queriendo modelar algo que no se sabe bien que es, ni siquiera la persona o grupo de personas que lo hacen (O acaso alguien puede decirme que son los números naturales?). Es en este punto en donde hay subjetividad, pero creo que este es un nivel meta, y la matemática no esta en este nivel.
La discusión en estos casos quizá esta en saber si se esta modelando lo que se quiere o no.
Por ejemplo, si tenemos un formalismo para definir la geometría Euclidea y no permite demostrar que las paralelas no se cruzan, o peor aún, se puede demostrar que si se cruzan. Lo que debería plantearse es la pregunta: ¿es este un modelo de lo que todos imaginamos como geometría Euclidea?.
Quizá estoy diciendo pavadas y es lo más probable.
Pero bueno, me quedé con esa inquietud.
Saludos.

Hernan Wilkinson dijo...

Que tal Gabriel,
la realidad es que no todos coinciden en el alcance de la demostración de Gödel. Algunos lo limitan a los números, otros a cualquier modelo axiomático formal, como Chaitin.
Por supuesto que usar la palabra subjetiva es un "poco mucho" y tiende a ser más exitista que exacta, pero en definitiva lo que trata de indicar es que en todo sistema formal la elección de los axiomas básicos depende de aquel que los elija. Por lo tanto, todo lo que se deduce a partir de esos axiomas dependerán de la elección hecha...