Rango Finito

fotoscódigoobservatorioshermanocerdo temas plots

matemáticas

La educación de un programador

En este artículo de (creo) 1978, E. W. Dijkstra habla de la relación íntima entre programación y matemática y de paso explica las razones por las que un programador competente debe tener bases matemáticas sólidas y amplias.

In reaction to the recognition that we did not know how to program well enough, people began to ask themselves how a really competent programmer would look like. What would we have to teach if we wanted to educate a next generation of really competent programmers? This became the central question of the study that later would become known as “programming methodology”. A careful analysis of the programmer’s task was made, and programming emerged as a task with a strong mathematical flavour. As I have once put it “Programming is one of the hardest branches of applied mathematics because it is also one of the hardest branches of engineering, and vice versa”. Why the programming task has such a strong mathematical flavour is something I shall indicate later.

A lower bound for what the adequate education of a really competent programmer should comprise was very convincingly established, but it was not an easy message to sell, because it demonstrated by necessity the total inadequacy of the education of what is known as “the average programmer”. The world today has about a million “average programmers”, and it is frightening to be forced to conclude that most of them are the victims of an earlier underestimation of the intrinsic difficulty of the programmer’s task and now find themselves lured into a profession beyond their intellectual capabilities. It is a horrible conclusion to draw, but I am afraid that it is unavoidable.

Creo que Dijkstra sobreestima el papel de los formalismos incluso dentro de la matemática. Buena parte de la labor de los matemáticos se funda sobre exploraciones erráticas no particularmente asentadas en la lógica (este asentamiento (sin duda necesario) hace parte de una etapa posterior del juego para blindar y presentar los resultados). De todas maneras es evidente que un cierto nivel de cultura matemática general (y comodidad para aplicarla) fortalece la capacidad de un programador para resolver problemas intrínsecos de su trabajo.

Mecánica cuántica para matemáticos

Peter Woit, el autor del famoso blog Not Even Wrong, está dictando un curso de mecánica cuántica para matemáticos este semestre en la universidad de Columbia. Hasta donde he podido ver, las notas son bastante claras (si uno tiene buenas bases de análisis funcional o algo así). Es impresionante todo el juego que puede dar en física un espacio de Hilbert sobre los complejos armado con operadores lineales bien seleccionados. Por cierto: el premio Nobel de física de este año le cayó a Serge Haroche y David J. Wineland por sus contribuciones al diseño de juguetitos finos para controlar fenómenos cuánticos y armar gatos de Shrödinger de la vida real. Podría decirse que son los padres (¿o bisabuelos?) de la (todavía gestante) computación cuántica práctica (la teórica ya lleva años de desarrollo gracias al poder de la imaginación y la capacidad ilimitada de los físicos para capitalizarla a punta de promesas vagas). Aquí hay una explicación técnica de sus aportes.

Hay otros mundos

Diez diferencias entre los terroristas blancos y los otros ¶ Cromatoforas (?) de calamar al ritmo de Cypress Hill ¶ Los cambios recientes en twitter ilustran bien el problema principal de las “redes sociales” centralizadas ¶ Un catálogo de técnicas para atrapar en imágenes estáticas (o casi estáticas) el paso del tiempo ¶ Es lindo el diario ilustrado de Gemma Correll ¶ Las vacas de Narayana se reproducen musicalmente (aquí un artículo al respecto (en alcanforado postscript) escrito por el compositor (Tom Johnson) y su amigo matemático) ¶ En tiempo de caudillos la política de ideas colapsaSiete problemas (pdf) que tal vez nunca oyó correctamente (con soluciones) ¶ Y un graficador tipográfico de flujos o algo así.

Contiene errores

convergencia
Una estrategia para calcular $\sum_{n=0}^\infty n x^n$ con las uñas. Tiza en tablero, 2012. (Y aquí el contexto.)

Complete Solutions Manual

La disponibilidad de soluciones pulidas (comercializadas por las mismas empresas que publican los libros de texto) libera al estudiante del riesgo de la (inofensiva) frustración reiterada (modulada con pistas, conversaciones y sugerencias eventuales) que conduce a la comprensión sólida de los conceptos y técnicas. Asimismo contribuye a la consolidación de la fe perversa en la solución única, que despoja a la matemática de su faceta creativa y la reduce a la repetición irreflexiva.

El argumento inverso

Un problema frecuente entre los estudiantes que apenas se inician en sus cursos de matemática avanzada es el vicio del argumento inverso para demostrar cosas. Si quieren demostrar que una expresión es cierta, entonces inician la prueba con la expresión a demostrar y la desarrollan/transforman hasta que llegan a una expresión que conocen y saben verdadera. Luego cantan victoria.

Muchas veces el argumento inverso oculta una demostración genuina (y en ese sentido es útil), pero siempre existe el riesgo de que la cadena de implicaciones no sea bidireccional, en cuyo caso sólo se demuestra que una expresión conocida es una consecuencia formal de la expresión a demostrar. Si además se toma en cuenta que una afirmación falsa implica cualquier cosa, incluyendo afirmaciones verdaderas, entonces el argumento inverso puede terminar fácilmente validando expresiones falsas.

Mi impresión es que este vicio no es producto de dificultades lógicas arraigadas (casi todos los estudiantes entienden rápidamente cuál es el problema una vez alguien lo señala) sino de malas prácticas al escribir matemática promovidas por cursos enfocados en la mecanización de técnicas sin reflexión alguna sobre los procesos subyacentes. Si la escritura de matemáticas no se presenta/promueve como una explicación para alguien más (que debe entender el proceso sin contar con la presencia del autor) entonces la redacción predominante es la misma de las hojas de borrador, donde el argumento inverso es sin duda alguna una herramienta válida de exploración preliminar.

En presente permanente

La matemática tiene una relación conflictiva con su pasado. A diferencia de lo que pasa en filosofía, en matemática la literatura clásica sobre un tema activo es usualmente prescindible. Por lo general hay reformulaciones modernas que son más útiles y claras. Una consecuencia de esta relación particular con la historia de la disciplina es que las motivaciones iniciales (los problemas) que dieron nacimiento a muchos conceptos se pierden en la digestión. El drama humano sobrevive si acaso como nota al margen entre simpática y curiosa. Una introducción moderna a la teoría de conjuntos pocas veces parte de las reflexiones analíticas que forzaron a Cantor a definir el concepto de ordinal transfinito. Los esquemas de Grothendieck no se introducen como respuesta a las conjeturas de Weil. En ambos casos hoy prefieren caminos semiaxiomatizados menos escarpados. Todo se decanta constantemente en aproximaciones cada vez más simples y sistemáticas. En la práctica, un estudiante no requiere esas historias para acceder a sus productos/conclusiones. Las presentaciones actualizadas proponen sus propias intuiciones y rutas de aprendizaje (que reflejan más que nada la percepción íntima del autor). Maravillosamente, los conceptos matemáticos se sostienen casi imperturbados bajo estos juegos de versiones en renovación constante. A siglos de distancia, asimilamos las contribuciones fundamentales de Gauss, Riemann y Galois sin haberlos leído jamás.

Gauss muerto
Gauss muerto.

Máquina

El juego autoimpuesto era hacer una copia virtual sencilla del Drawing Apparatus de Robert Howsare usando Processing para jugar con las especificaciones.

En esta versión (burda) se pueden cambiar los colores del trazo con los primeros cuatro sliders. Con los dos siguientes se puede modificar la razón entre las velocidades de rotación y la razón entre los radios de los discos. El último slider controla el grosor del trazo (aparentemente, la calidad del trazo cambia dependiendo de la definición de la pantalla.) El botón de pausa detiene y desaparece la máquina para apreciar el dibujo. No he logrado encontrar una manera elegante de hacer una función para reiniciar, así que por lo pronto lo mejor es recargar la página. (Adenda (25/03): ahora la posición inicial del segundo disco es aleatoria. Así no siempre arranca con un círculo.)

Desgraciadamente, los computadores no conciben los números irracionales, así que (creo que) todas las trayectorias son periódicas (Ejercicio: demostrar).

Búsqueda y destrucción

Un hombre recibe una misión: encontrar a una persona con un tatuaje del Pato Donald estampado en el culo. Es un problema aparentemente difícil de resolver. En general puede tomar mucho tiempo y esfuerzo encontrar a alguien así pero, en contraposición, corroborar que el hombre cumplió su misión es sencillo: basta bajarle los pantalones al candidato.

Soldados buscan
Soldados buscan cartas entre los restos carbonizados de una oficina de correo en Dublin, 1922.

Muchos problemas de búsqueda tienen la particularidad de que, aunque parezca difícil (en términos de tiempo) encontrar lo que se desea, verificar la validez de una solución es relativamente rápido. La pregunta es si de verdad son tan difíciles de resolver como aparentan ser. No es claro. De pronto siempre existe al fondo una manera rápida de buscar.

Por ejemplo, determinar si un número es primo parece un problema de este tipo. Requiere constatar la existencia (o no) de un divisor. Encontrar un divisor, al menos siguiendo la estrategia más obvia, tarda demasiado, pero verificar que es un divisor sólo requiere dividir y revisar el residuo (esta operación puede tomar tiempo, pero no demasiado en relación a la longitud de los números involucrados). Por muchos años se sospechó que el problema de decidir si un número era primo o no debería ser rápido de resolver, pero sólo hasta hace diez fue descubierto un procedimiento que lo hace de manera rápida, concluyente y sin condiciones en los números a evaluar.

Detrás del juego de dibujar esta versión de la Mona Lisa en un sólo trazo (uniendo con líneas rectas unos puntos elegidos de antemano) se oculta el famoso problema del agente viajero, otro de esos que parecen (y probablemente sean) difíciles de resolver aunque verificar una solución sea sencillo.

Otros problemas no han tenido la misma suerte pero tampoco han tenido la suerte opuesta: no se ha podido demostrar que no existe una solución rápida. En otras palabras, no se sabe si existen problemas de búsqueda con verificación de solución rápida que sean esencialmente difíciles. A los problemas con verificación de solución rápida los llaman NP. A los problemas con solución rápida los llaman P. Otra manera de plantear la pregunta es sí todo problema NP es en realidad P o si definitivamente existen problemas NP que no son P.

Muchos algoritmos de encriptación de uso diario basan su solidez en problemas de búsqueda con verificación rápida de solución que por lo pronto parecen ser esencialmente difíciles de resolver, como la factorización de números enteros (en el caso del algoritmo RSA). Si se demostrara que todo problema NP es P, la seguridad de estos sistemas se derrumbaría (y probablemente con ella la civilización como la conocemos). La conjetura más popular, por ende, es que P≠NP. Ese es el verdadero sacramento de nuestra fe.

La ilusión de que NP no sea lo mismo que P nos protege.

Contar

Se propone un conteo o varios que se ejecutarán de forma regular para detectar cambios y progreso. Cada una de los conteos arroja una cifra que mide un aspecto particular y simplificado del fenómeno o problema que se estudia. El proceso es generalmente recursivo: un conteo se ejecuta sobre otro conteo que a su vez se ejecuta sobre otro más por varios niveles de profundidad. Algunos conteos son instántaneos (e.g., la cantidad de plata que tiene alguien (una cifra producto de un conteo) es una abstracción que alguna vez pretendió medir y ahora simplemente es (casi) equivalente a la capacidad de acceso a bienes y servicios de esa persona (y hasta a su dignidad, si uno se deja llevar por el cinismo)). Otros requieren trabajo adicional para garantizar que el conteo es suficientemente confiable. Ahí entra la estadística. Cada nivel de conteo aporta un grado de abstracción. La abstracción nos libera y distancia de las peculiaridades del fenómeno. A eso se le llama ganar objetividad y se supone que facilita el análisis neutral. En ocasiones, las cifras que se obtienen son combinadas en nuevas cifras mediante procedimientos aritméticos que pretenden evidenciar la manera como estas, es decir, sus supuestos referentes concretos al final del proceso recursivo de abstracciones anidadas, se interrelacionan. Nótese que todo está inevitablemente plagado de decisiones relacionadas con la percepción, preferencias y propósitos de quien cuenta. Debido a esto, el resultado del conteo de conteos es una descripción, no del fenómeno que se estudia, sino de la imagen cuantitativa del fenómeno dentro del (limitado) esquema mental/cultural de los contadores. Un estudio reverso del proceso, si fuera posible, dejaría a la luz sus prioridades y caprichos. Que luego el juego de poderes convierta estos conteos en parámetros que son prácticamente equiparables al fenómeno concreto y que por ende (si describe entonces predice y controla) deben ser optimizados a como dé lugar mediante decisiones políticas y similares evidencia la perversión salvaje que se anida en el trasfondo del sistema tecnocrático reinante. Nos metieron el cuento de que si esos números se movían en la dirección correcta entonces todos éramos mejores de alguna manera. No siempre es así. Casi nunca es así.

Chiste

A raíz del relato de DeWitt, Jaime me hizo caer en cuenta de lo siguiente: en tanto que el Test de Turing es relativo a la inteligencia del ser humano promedio (o sus capacidades cognitivas, o lo que sea), si esta medida se reduce lo suficiente puede llegar un momento cuando el Test de Turing se torne trivial. ¿Qué nos garantiza que la inteligencia humana es más o menos estable en el tiempo o por lo menos no decreciente?

Alan Turing cuando era feliz.

Otra posibilidad, más aterradora: es posible que aunque la inteligencia humana no decrezca sustancialmente, la civilización avance en una dirección en la que los protocolos sociales se normaticen tanto como para que sea sencillo programarlos en máquinas.

Al principio pensé que era un chiste pero ya no estoy tan seguro de que sea un chiste. Si es un chiste es uno bien-bien oscuro. Seguro que Turing se pondría triste. Yo también me pongo triste a veces por cosas así.

Inconsistencia

Edward Nelson dice que la aritmética de Peano es inconsistente. La aritmética de Peano es nuestro intento más popular (en pie desde 1889) de listar de manera comprimida las leyes formales que regulan los números naturales. El teorema de incompletitud de Gödel implica que todo (¡todo!) intento de este tipo está destinado al fracaso de una de dos maneras posibles: la primera opción (la buena) es que nuestra colección sea incompleta y existan afirmaciones que no sean verdaderas ni falsas de acuerdo a los axiomas (i.e. que no se desprendan de ellos ni los contradigan). La segunda opción (la mala) es que la colección de reglas engendre una contradicción. Por supuesto, se esperaba que los axiomas propuestos por Peano fuesen simplemente incompletos, pero ahora Nelson asegura, como si fuera cualquier cosa, como si anunciara que su nieto necesita gafas, que implican una contradicción. En un documento disponible en su página web, Nelson describe su argumento a grandes rasgos. A continuación cito un párrafo:

If this were normal science, the proof that P is inconsistent could be written up rather quickly. But since this work calls for a paradigm shift in mathematics, it is essential that all details be developed fully. At present, I have written just over 100 pages beginning this. The current version is posted as a work in progress at http://www.math.princeton.edu/ ̃nelson/books.html, and the book will be updated from time to time. The proofs are automatically checked by a program I devised called qea (for quod est absurdum, since all the proofs are indirect). Most proof checkers require one to trust that the program is correct, something that is notoriously difficult to verify. But qea, from a very concise input, prints out full proofs that a mathematician can quickly check simply by inspection. To date there are 733 axioms, definitions, and theorems, and qea checked the work in 93 seconds of user time, writing to files 23 megabytes of full proofs that are available from hyperlinks in the book.

Muy probablemente la demostracion de Nelson es incorrecta (de no serlo implicaría un cambio radical de paradigma en la base misma de la matemática), pero sus motivaciones y metodologías bien valen la atención.

Miércoles

Terminé de leer The Pale King esta mañana. Tal vez luego diga algo al respecto. Por lo pronto transcribo las notas rápidas que tomaba al cierre de cada capítulo para no perderme. Soñé que Pedro Poitevin escribía una novela y me la enviaba para leerla. Me daba mucha envidia porque tenía “peleas de verdad”. No desayuné. El plan es empatar lo que estamos haciendo con el trabajo de Anand en el contexto diferencial o algo así. Almorcé una milanesa de cerdo con ensalada. Hablé con Laura y Carolina por la tarde. Preparé una sopa de miso con honguitos largos blancos (siempre olvido el nombre) y tofu por la noche. Me gusta, siempre me ha gustado, licuar zanahora en jugo de naranja. Unas niñas secuestradas gritan y lloran en la televisión. El secuestrador (y asesino serial en desarrollo) les dice que son unas malagradecidas. También vimos Modern Family. Simpático.

Algunas lecturas: Íñigo reseña Inside Job, Shantha lee poesía, Lola reseña los libros que lee, Nanda comparte secretos matrimoniales, Vega se burla de quienes escribimos diarios, los mexicanos invaden Wondermark, Henry Sánchez “El Forrest Gump Colombiano” llega a México (aquí entrevista extensa (altamente recomendada)), y Constatación brutal del presente, la novela de Javier Avilés, se podrá comprar en Colombia.

Martes

Desmonto la oficina. No hay mucho que desmontar, la verdad. Nunca me preocupé mucho por apropiarme de este espacio. Apenas colgué un par de postales. También limpio los cajones y estanterías de basura. En un ataque paranoico salvo de la basura a último minuto cuarenta páginas dispersas de lo que parecen cálculos. Cuido los cálculos porque me cuestan. Una vez me convenzo de que algo es cierto olvido los trucos y más tarde soy incapaz de reproducirlos. Además soy desordenado, así que nunca sé dónde dejé la versión depurada y limpia y cuáles son apenas intentos infructuosos que podría desechar. Cuarenta páginas que debo filtrar. Tengo un sueño recurrente en el que debo calcular algo, algo sencillo, algo concreto que por pura inseguridad he hecho al menos quince veces con mucho cuidado, y soy incapaz. Sé que es verdad, sé lo que quiero evidenciar, pero no encuentro el camino. Odio eso. Me levanto de muy mal genio. Tengo el vicio, adquirido cuando era niño y, por ende, omnipotente, de depender demasiado de mi memoria. Eso es algo que debo cambiar. Hoy escribí en dos páginas un resumen al vuelo pero organizado del trabajo del semestre. Todavía no hay resultados muy serios pero luce promisorio. El jueves tendremos una nueva reunión. Tal vez sea la última en un buen rato.

Viernes (Examen)

Algunas ideas y preguntas sueltas: (1) A medida que la cobertura educativa aumenta, la educación (en especial la pública) se ve forzada, por simple falta de recursos (siempre serán pocos), a implementar procesos de industrialización de la labor didáctica. No me parece que haya nada malo en eso en principio pero: (2) ¿Cuál es el papel del maestro en este nuevo contexto donde el contacto directo con el estudiante es incidental y escaso? (3) ¿Cómo garantizar que la educación no pierda calidad en un sistema donde la proporción estudiantes/maestros es cada vez mayor? (4) Por lo pronto, la logística de la educación ha sido un problema lateral, algo que se deja (casi que) a discreción del maestro y en pocas ocasiones se explora con cuidado como comunidad. La idea burda es que una persona que dicta un curso para treinta personas debe ser capaz de adaptar su curso a un auditorio con doscientas. Se exige escalabilidad instantánea. ¿No sería conveniente, en aras de mantener niveles de enseñanza dignos, someter la logística de la enseñanza (y en particular el problema de escala) a un análisis cuidadoso en lugar de persistir en la improvisación? (Si hay investigación al respecto, no ha encontrado la manera de llegar a las aulas.) (5) ¿Cuál es el propósito de la educación universitaria? ¿Cuál es el aporte de la educación universitaria a la sociedad en pleno? ¿O es sólo un lujo? ¿Qué es lo que esperamos que un estudiante gane en las aulas? ¿Prestigio? ¿Disciplina? ¿Conocimiento? ¿Lenguaje? ¿Habilidades? ¿Sabiduría? ¿Resistencia? ¿Tolerancia? ¿Conciencia? ¿Responsabilidad? ¿Contactos? ¿Oficio? ¿Estatus? (6) ¿Qué es lo que realmente enseñamos (si es que enseñamos algo)? (7) No sobra preguntarse cuál es el sentido de ampliar ilimitadamente la cobertura universitaria. En sociedades como la colombiana una persona sin educación universitaria es indigna y está condenada al subempleo. La educación universitaria es un símbolo de casta. Es la diferencia, seamos crudos, entre ser esclavo o ser esclavista. Algunos promueven la idea de que, para generar movilidad social, la cobertura universitaria debe ser universal. Creo que esa es una solución falsa. Más importante que expandir la cobertura universitaria es expandir el número de opciones de acceder a un empleo y reducir, al tiempo, la estructura esclavista (¿cómo?). (8) Me preocupa el desprecio por la educación básica y la tendencia a creer que sus fallas se pueden reparar durante la etapa siguiente (si acaso). (9) La educación y la investigación deberían ser asuntos que se trataran aparte. El modelo de educadores/investigadores funciona y produce resultados en sociedades industrializadas o en una etapa alta del proceso de industrialización. Pero incluso en sociedades industrializadas este modelo pervierte el sistema. Es evidente que hay conexiones entre una labor y la otra, pero la pretensión de que son la misma cosa ha convertido los centros de enseñanza en lugares repletos de maestros que tienen a la educación como última prioridad aunque sea su misión principal. (10) Asisto al examen final de mis estudiantes en el coliseo de la universidad. Dos exámenes transcurren simultáneamente. El coliseo es dividido en zonas. Nos corresponden cinco de las diez. Somos ocho. El coordinador comanda el dispositivo cuyo objetivo principal es reducir la probabilidad de trampa. Somos nosotros contra ellos. Al final siempre se trató de esto. Setecientos estudiantes tomaron este curso. Ciento veinte asistieron a mi clase. Apenas sé el nombre de veinte o treinta. Reconozco a algunos más de cara, pero es difícil encontrarlos entre la multitud. Los veo entrar. Me gustaría saludarlos. Al cierre, mientras recibo los exámenes, un par se acercan y me dan las gracias por mi trabajo. Otro me dice que disfrutó mucho mi clase. No sé su nombre. Me pregunto, mientras los veo resolver las preguntas, qué aprendieron en este curso y cuál era su objetivo a largo plazo si es que había alguno. También me gustaría saber en qué consistió mi labor o, mejor, si lo que hice tendrá un impacto en su futuro o si perdieron su tiempo conmigo y esto hace parte de una farsa elaborada para otorgar un título (nobiliario) después de unos años. No creo que haya sido así. Espero que no sea así. Me esfuerzo por que no sea así, por que quede algo más. Por eso me cuesta entender que mi trabajo, todo mi trabajo, en últimas se reduzca a prepararlos (desde la distancia de mis lecciones masivas) para un examen de dos horas y media (el sesenta por ciento de su nota final) donde les pedirán, entre otras cosas, que deriven de dos maneras distintas el volumen de un mismo sólido de revolución. Eso sería una estafa. Eso no sería justo con ellos, sus aspiraciones y su dedicación. Eso no puede ser lo que está en juego aquí.