20 nov 2009

Out of their Minds, Dijkstra

Nació en 1930. Hijo de cientificos (químico su padre y matemático su madre) , se destacó en la ciencias desde que era un niño por lo que asistió a una escuela de elite hasta que llegó la segunda guerra mundial y tuvo que abandonar su pais y a sus padres. Una ves terminada ésta decidió que quería estudiar leyes (SI LEYES) pero su padre lo persuadió a que estudiara otra cosa. Escogió Física.


Se dió cuenta que en física se requería hacer muchos cálculos de manera eficiente, por lo que decidió aprender a programar. En aquellos tiempos no existía una carrera como programador que fue lo que Dijkstra se sentía mas cercano ser. El cuenta que cuando solicitó una licencia para casarse los burocratas que se encargaban de hacer el papeleo correspondiente no tenían idea de lo que era un programador así que el se vio forzado a decir que era fisico teorico.


Para una conferencia internacional de matemáticas se le pidió a Dijkstra que buscara un problema con el cual presumiera del poder de cómputo de la ARMAC (una computadora de aquellas épocas que tenían donde trabajaba Dijkstra) y entonces fue que diseñó el algoritmo famosisimo para la ruta más corta entre dos puntos. Dikstra comenta acerca de este problema:


“This was the first graph problem I ever posed myself and solved. The amazing thing was that I didn't publish it. It was not amazing at the time, algorithms were hardly considerd a scientific topic.

The mathematic culture of the day was very much identified with continuum and infinity. Could a finite discrete problem be of any interest? Obviously the number of paths from here to there on a finite graph is finite. Each path is of finite length. You must search for the minimum of a finite set. Any finite set has a minimum-- next problem, please. It was not considered mathematically respectable...”


Chale quien diría que este sencillo algoritmo no respetable se usaría tiempo después en la construcción de caminos, ruteo en redes, y en la planeación de vuelos en las aerolineas.


Pero el trabajo de Dijsktra no se quedó solamente en ese algoritmo que todo computólogo aprende en primer semestre. Dijkstra tambien incursionó en la coordinación de procesos, un problema importante que surgió cuando empezaron aparecer computadoras más poderosas con más procesadores etc. Él planteó el famoso problema de los 5 filosofos (aunque fue Hoare quien le dio ese nombre) como ejercicio para sus estudiantes. Dijkstra cuenta que a pesar de que el planteó este problema con años de anticipación a la creación de uno de los sistemas computacionales más importantes de la época (MULTIX diseñado en el M.I.T) no se considerara los deadlocks. Al respecto él comenta


“you can hardly blame M.I.T for not taking notice of an obscure computer scientist in a small town in the Netherlands”


Pasó el tiempo y Dijsktra se mudó a los Estados Unidos y cuando sus hijos crecieron él y su esposa se dedicaron a viajar en un Volkswagen camper (una combi larga) a la cual apodaron: La Máquina de Turing (chale ya ven no soy el único que le pone nombre a sus cosas!!). Se le otorgó a Dijkstra el premio Alan Turing en 1972 Por sus contribución a la "ciencia y arte" de los lenguajes de programación.


Finalmente él recomendaba los siguientes consejos a los jovenes investigadores:


  • Never compete with your colleagues
  • Try the most difficult thing you can do
  • Choose what is scientifically healthy and relevant. Don' t compromise on scientific integrity.


“I asked my mother (a mathematician) whether mathematics was difficult topic. She said to be sure to learn all the formulas and be sure you know them. The second thing to remember is if you need more than five lines to prove something, then you're on the wrong track.”

Dijkstra

No hay comentarios:

ga