La importancia duradera de Turing

Cuando Alan Turing nació hace 100 años, el 23 de junio de 1912, una computadora no era una cosa, era una persona. Se contrataron computadoras, la mayoría de las cuales eran mujeres, para realizar cálculos repetitivos durante horas y horas. La práctica se remonta a la década de 1750, cuando Alexis-Claude Clairaut reclutó a dos compañeros astrónomos para que lo ayudaran a trazar la órbita del cometa Halley. El enfoque de Clairaut fue dividir el tiempo en segmentos y, utilizando las leyes de Newton, calcular los cambios en la posición del cometa cuando pasaba por Júpiter y Saturno. El equipo trabajó durante cinco meses, repitiendo el proceso una y otra vez mientras trazaban lentamente el curso de los cuerpos celestes.





Hoy llamamos a este proceso simulación dinámica; Los contemporáneos de Clairaut lo llamaron abominación. Deseaban una ciencia de leyes fundamentales y hermosas ecuaciones, no tablas y tablas de números. Aún así, su equipo hizo una predicción cercana del perihelio del cometa Halley. Durante el siglo y medio siguiente, los métodos computacionales llegaron a dominar la astronomía y la ingeniería.

Empresas disruptivas: 2012

Esta historia fue parte de nuestro número de marzo de 2012

  • Ver el resto del número
  • Suscribir

Cuando Turing ingresó en King's College en 1931, las computadoras humanas se habían empleado para una amplia variedad de propósitos y, a menudo, estaban asistidas por máquinas de calcular. Las tarjetas perforadas se utilizaron para controlar los telares y tabular los resultados del censo estadounidense. Las llamadas telefónicas se cambiaron utilizando números marcados en un timbre e interpretados por una serie de relés de 10 pasos. Las cajas registradoras eran omnipresentes. Un millonario no era solo una persona muy rica, también era una calculadora mecánica que podía multiplicar y dividir a una velocidad asombrosa.



Todas estas máquinas eran fundamentalmente limitadas. No solo eran más lentos, menos confiables y dramáticamente más pobres en memoria que las computadoras de hoy. Fundamentalmente, las máquinas calculadoras y de conmutación de la década de 1930, y las que se introducirían durante muchos años, se construyeron cada una para un propósito específico. Algunas de las máquinas podían realizar manipulaciones con matemáticas, algunas incluso podían seguir una secuencia variable de instrucciones, pero cada máquina tenía un repertorio finito de operaciones útiles. Las máquinas no eran de uso general. Ellos no eran programable.

Cosas revisadas

  • Catedral de Turing: los orígenes del universo digital

    George Dyson
    Libros del Panteón, 2012

  • Cuando las computadoras eran humanas

    David Alan Grier
    Prensa de la Universidad de Princeton, 2005



  • Alan Turing: El enigma

    Andrew Hodges
    Simon y Schuster, 1983

Mientras tanto, las matemáticas estaban en problemas.

A principios de la década de 1920, el gran matemático alemán David Hilbert había propuesto formalizar todas las matemáticas en términos de un pequeño número de axiomas y un conjunto de pruebas consistentes. Hilbert imaginó una técnica que podría usarse para validar enunciados matemáticos arbitrarios: tomar un enunciado como x + y = 3 y x - y = 3 y determinar si era verdadero o falso. Esta técnica no se basaría en el conocimiento o la inspiración por parte del matemático; tenía que ser repetible, enseñable y lo suficientemente sencillo como para ser seguido por una computadora (en el sentido de Hilbert de la palabra). Un sistema de prueba de enunciados de este tipo sería realmente poderoso, ya que muchos aspectos del mundo físico pueden describirse fácilmente como un conjunto de ecuaciones. Si uno pudiera aplicar un procedimiento repetible para averiguar si un enunciado matemático es verdadero o falso, entonces las verdades fundamentales sobre la física, la química, la biología, incluso la sociedad humana, serían descubiertas no a través de experimentos en el laboratorio sino por matemáticos en una pizarra. .



Pero en 1931, un lógico austríaco llamado Kurt Gödel presentó su devastador teorema de incompletitud. Demostró que para cualquier sistema matemático útil, es posible crear afirmaciones que son verdaderas pero que no se pueden probar. Luego vino Turing, quien impulsó la apuesta final a través del proyecto de Hilbert y, al hacerlo, estableció el camino para el futuro de la informática.

Como mostró Turing, el problema no es solo que algunos enunciados matemáticos no puedan demostrarse; de hecho, no se puede idear ningún método que pueda determinar en todos los casos si un enunciado dado es demostrable o no. Es decir, cualquier afirmación en la pizarra puede ser verdadera, puede ser falsa, puede no ser demostrable ... y con frecuencia es imposible determinar cuál. Las matemáticas estaban fundamentalmente limitadas, no por la mente humana sino por la naturaleza de las matemáticas en sí.

Lo brillante y asombroso fue la forma en que Turing realizó su prueba. Inventó un formalismo lógico que describía cómo una computadora humana, enseñada a seguir un conjunto complejo de operaciones matemáticas, las llevaría a cabo. Turing no entendía cómo funcionaba la memoria humana, por lo que la modeló como una cinta larga que podía moverse de un lado a otro y en la que se podían escribir, borrar y leer símbolos. No sabía cómo funcionaba el aprendizaje humano, por lo que lo modeló como un conjunto de reglas que el ser humano seguiría dependiendo del símbolo que tenga actualmente ante ella y de algún tipo de estado mental interno. Turing describió el proceso con tal detalle que, en última instancia, ni siquiera se necesitó una computadora humana para ejecutarlo; en su lugar, una máquina podría hacerlo. Turing llamó a esta entidad teórica la máquina automática o una máquina; hoy lo llamamos máquina de Turing.



En un artículo de 1936, Turing demostró que la máquina a podía resolver cualquier problema informático que pudiera describirse como una secuencia de pasos matemáticos. Es más, demostró que una máquina a podía simular otra máquina a. Lo que le dio a la máquina a este poder fue que su cinta podía almacenar tanto datos como instrucciones. En palabras del historiador de la ciencia George Dyson, la cinta contenía ambos números que significar cosas y números que hacer cosas.

El trabajo de Turing fue transformador. Dejó en claro a los diseñadores de las primeras computadoras electrónicas que las máquinas de calcular no necesitaban un gran inventario de instrucciones u operaciones sofisticadas; todo lo que necesitaban eran unos pocos registros que siempre estuvieran disponibles (el estado de ánimo) y un almacenamiento de memoria que pudiera contener tanto datos como código. Los diseñadores pudieron proceder con la certeza matemática de que las máquinas que estaban construyendo serían capaces de resolver cualquier problema que pudieran programar los humanos.

Estos conocimientos proporcionaron la formulación matemática para las computadoras digitales actuales, aunque fue John von Neumann quien tomó las ideas de Turing y se le atribuye el diseño de las máquinas. El diseño de Von Neumann tenía un núcleo central que recuperaba tanto las instrucciones como los datos de la memoria, realizaba operaciones matemáticas, almacenaba los resultados y luego los repetía. La máquina también podría consultar el contenido de varias ubicaciones en la memoria según sea necesario. Lo que ahora llamamos la arquitectura de von Neumann está en el corazón de cada microprocesador y mainframe del planeta. Es dramáticamente más eficiente que la máquina a, pero matemáticamente es lo mismo.

Por cierto, esta característica esencial de las computadoras ayuda a explicar por qué la ciberseguridad es uno de los problemas más preocupantes de la era moderna. Por un lado, Turing demostró que todas las máquinas a son equivalentes entre sí, que es lo que hace posible que un atacante se apodere de una computadora objetivo y haga que ejecute un programa elegido por el atacante. Además, debido a que no siempre es posible discernir qué se puede probar, una máquina de Turing no puede, sin importar cuánta memoria, velocidad o tiempo tenga, evaluar el diseño de otra máquina de Turing y determinar de manera confiable si la segunda máquina, al recibirla alguna entrada, alguna vez terminará sus cálculos. Esto hace que la detección perfecta de virus sea imposible. Es imposible que un programa evalúe un software nunca antes visto y determine si es malicioso sin ejecutarlo. El programa puede ser benigno. O puede funcionar durante años antes de borrar los archivos del usuario. No hay forma de saberlo con certeza sin ejecutar el programa.

En 1938, Turing comenzó a trabajar con el gobierno británico y finalmente ayudó a diseñar una serie de máquinas para descifrar los códigos utilizados por los alemanes en la Segunda Guerra Mundial. La mejor fuente para esa historia es la biografía de Andrew Hodges. Alan Turing: El enigma. Desafortunadamente, algunos detalles sobre el trabajo de Turing en tiempos de guerra no fueron desclasificados hasta 2000, 17 años después del libro de Hodges (y casi 50 años después de que Turing se suicidara). Como resultado, sus contribuciones completas no han sido bien contadas.

Muchas historias de la informática dan la impresión de que se trataba de un conjunto sencillo de decisiones de ingeniería para utilizar tarjetas perforadas, luego relés, luego tubos y finalmente transistores para construir máquinas informáticas. Pero no fue así. Las máquinas de uso general requerían el conocimiento fundamental de Turing de que los datos y el código se pueden representar de la misma manera. Y tenga en cuenta que todas las computadoras actuales se desarrollaron con la ayuda de computadoras más lentas, que a su vez fueron diseñadas con computadoras aún más lentas. Si Turing no hubiera hecho su descubrimiento cuando lo hizo, la revolución informática podría haberse retrasado décadas.

NIÑOS el editor colaborador Simson L. Garfinkel es profesor asociado de Ciencias de la Computación en la Escuela de Posgrado Naval. Sus opiniones no representan la política oficial del gobierno de Estados Unidos o del Departamento de Defensa.

esconder