Razones históricas para la adopción de Turing Machine como modelo primario de computación.


44

Tengo entendido que el modelo de Turing se ha convertido en el "estándar" al describir el cálculo. Me interesa saber por qué este es el caso, es decir, por qué el modelo TM se ha vuelto más utilizado que otros modelos teóricamente equivalentes (que yo sepa), por ejemplo, μ-Recursion de Kleene o el cálculo Lambda (entiendo que el primero no apareció hasta más tarde y el segundo no fue diseñado originalmente específicamente como un modelo de cómputo, pero muestra que las alternativas han existido desde el principio).

Todo lo que puedo pensar es que el modelo TM representa más de cerca las computadoras que tenemos que sus alternativas. ¿Es esta la única razón?


1
Si bien no están directamente sobre el mismo tema, las preguntas cstheory.stackexchange.com/questions/625/… y cstheory.stackexchange.com/questions/1117/… exploran la relación entre TMs y el cálculo , y tienen algunos antecedentes históricos. elementos. λ
Suresh Venkat

Sí, los vi. Entiendo bastante bien las historias literales de las diversas teorías, pero estoy más interesado en los desarrollos a lo largo del tiempo que condujeron a las "preferencias" actuales en el campo, por así decirlo.
Evan

2
En realidad, hay modelos que están (posiblemente) más cerca de las computadoras reales, vea esta pregunta . En general, el mejor modelo depende de las necesidades y son diferentes de un área a otra.
Kaveh

Respuestas:


46

Esto parece ser cierto en el contexto de (algunas áreas de) la informática, pero no en general.

Una de las razones tiene que ver con la Tesis de la Iglesia. La razón principal es que algunos expertos como Godel no creían que los argumentos de que los modelos de computación anteriores / otros capturaran exactamente el concepto intuitivo de computación fueran convincentes. Hay varios argumentos, Church tenía algunos, pero no convencieron a Godel. Por otro lado, el análisis de Turing fue convincente para Godel, por lo que fue aceptado como el modelo para el cálculo efectivo. Las equivalencias entre los diferentes modelos se prueban más tarde (creo que Kleene).

λμ

μλ. También vea estos documentos de Viggo Stoltenberg-Hansen y John V. Tucker I , II .)

Algunos recursos para leer más:

Robert I. Soare tiene varios artículos sobre la historia de estos desarrollos, personalmente me gusta el del Manual de teoría de la computabilidad. puede encontrar más al consultar las referencias en ese documento.

Otro buen recurso es el artículo de computabilidad de Neil Immerman sobre SEP, ver también el artículo de Tesis de Church-Turing de B. Jack Copeland.

Las obras recopiladas de Godel contienen mucha información sobre sus puntos de vista. Especialmente las introducciones a sus artículos están extremadamente bien escritas.

" Metamathematics " de Kleene es un libro muy bonito.

Finalmente, si aún no está satisfecho, revise los archivos de la lista de correo de FOM , y si no puede encontrar una respuesta en el archivo, envíe un correo electrónico a la lista de correo.


Por favor, avíseme si tengo algo mal.
Kaveh

1
Wow, esta es una gran información. Gracias por los recursos, los revisaré (estaba planeando leer Metamatemáticas, subiré la cola).
Evan

De nada, espero que no me haya equivocado. :)
Kaveh

Hubo una charla reciente de Robert Soare en INI. Según tengo entendido, la razón principal para cambiar al modelo de Turing y la computabilidad de las funciones recursivas y la teoría de la recursión para él es la siguiente: es difícil de entender y trabajar en la teoría de la recursión hasta el punto en que nadie entendía lo que estaba sucediendo, excepto unos pocos, el cambio en la computabilidad facilitó mucho la comprensión y revivió el área.
Kaveh

19

Me gustaría debilitar la afirmación de que las TM son el modelo primario de cómputo, o al menos apuntan hacia otra dimensión de la pregunta. Claramente, los TM son dominantes en las partes más orientadas a la complejidad y al algoritmo de la informática, pero en la teoría y práctica del lenguaje de programación, no son particularmente dominantes. Hay varias razones para esto, pero quizás la más importante es que los TM o programas que se ejecutan en TM (a diferencia de, por ejemplo, cálculos lambda o cálculos de proceso) no se construyen de manera algebraica. Esto dificulta el desarrollo de teorías de tipos, que han sido el pilar de la teoría del lenguaje de programación.


2
Además, los programas TM, también conocidos como tablas de transición, no son realmente legibles para los humanos.
Raphael

13

Una de las cosas buenas de las máquinas de Turing es que trabajan en cadenas en lugar de números naturales o términos lambda, porque la entrada y la salida de muchos problemas pueden formularse naturalmente como cadenas. Sin embargo, no sé si esto cuenta como una razón "histórica".


13

Además del hecho de que las máquinas de Turing son un modelo convincente de cálculo con lápiz y papel (la "noción intuitiva de cálculo"), creo que poseen una serie de características que a menudo son útiles, especialmente cuando se prueban teoremas sobre ellas:

  • son fáciles de describir formalmente y tienen una semántica operacional simple;
  • es fácil dar una definición concreta de su complejidad de tiempo y espacio;
  • Los modelos más realistas (y complejos) de computadoras electrónicas, como las máquinas de acceso aleatorio, pueden ser simulados por TM con una sobrecarga polinómica, y viceversa.

A veces, la facilidad de la descripción parece dificultar la utilidad de los TM, ya que las descripciones pueden convertirse rápidamente en explicaciones en inglés simple si no tienes cuidado (al menos, si no tengo cuidado ... Es cierto que soy un novato).
Evan

Sus razones no excluyen máquinas registradoras, por ejemplo.
Raphael

Bueno, eso depende de la noción precisa de "máquina de registro" que considere. Por ejemplo, aquellos que solo tienen operaciones de incremento, decremento y salto no pueden simular TMs en tiempo polinomial.
Antonio E. Porreca

1
λλ

Estoy del lado de PL, pero el cálculo lambda puro no es un modelo obvio de cálculo aritmético (piense en la función predecesora). En el cálculo lambda, tiene menos en la definición, pero se necesita más esfuerzo para comprender las implicaciones de la definición.
Blaisorblade

0

Fue el primero en tener impacto y, por lo tanto, se ha establecido, especialmente en la teoría de la complejidad. Esta es una razón débil, pero la gente trabaja de esa manera. Primero trabajamos en viejos problemas abiertos en lugar de declarar nuevos.


8
"Primero trabajamos en viejos problemas abiertos en lugar de declarar nuevos". <- Creo que, en todo caso, lo contrario es cierto, especialmente en un campo donde las viejas preguntas son extremadamente difíciles. Por ejemplo, hay relativamente pocas personas trabajando en la complejidad del circuito (¡aunque quizás haya más ahora!). Las personas necesitan trabajar en problemas que pueden resolver para publicar; Esto genera un flujo constante de problemas solucionables recientemente declarados.
Aaron Sterling el

Estaba un poco apresurado en mi redacción allí. Siento que a menudo las personas prefieren seguir un modelo establecido que construir uno nuevo (y probar sus propiedades básicas) si no hay una razón abrumadora para ello. Ese sentimiento podría estar apagado, obviamente. En particular, por supuesto, hay personas que cazan modelos en primer lugar.
Raphael

Bueno, el cálculo lambda vino primero. Pero Turing demostró que las máquinas de Turing modelan con precisión los conceptos básicos de los humanos que hacen cálculos; esto solo se hizo para el cálculo lambda al probar la equivalencia. Además, esta equivalencia solo es cierta para el cómputo de primer orden: cstheory.stackexchange.com/q/1117/989 : los datos de orden superior no existen realmente en papel. Ni siquiera existe en las memorias de la computadora, pero puede simularse perfectamente.
Blaisorblade
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.