Escuché que la interacción del lema es más poderosa que los algoritmos de Peter Wegner . La base de la idea es que una máquina de Turing (clásica) no puede manejar la interacción, es decir, la comunicación (entrada / salida) con el mundo exterior / entorno.
¿Cómo puede ser esto así? ¿Cómo puede algo ser más poderoso que una máquina de Turing? ¿Cuál es la esencia de esta historia? ¿Por qué no es más conocido?
computability
computation-models
Dave Clarke
fuente
fuente
Respuestas:
Las máquinas de Turing pueden manejar la interacción perfectamente, utilizando cintas oracle. Funciona de la siguiente manera: desde el punto de vista de una computadora que maneja la interacción, la entrada del operador es simplemente otra secuencia de bits que envía de vez en cuando a la computadora. Todos sabemos que un administrador de sistemas perezoso podría escribir una secuencia de comandos para enviar la entrada al programa cuando se solicite, de modo que el administrador de sistemas pueda interrumpir antes. La máquina de interacción no tiene forma de saber si realmente hay un operador en vivo en la consola, o si la entrada se canaliza desde otro programa.
Tener todas las entradas de interacción preparadas con anticipación es lo mismo, en términos teóricos, que tener todas las entradas en una cinta separada que es utilizada por una máquina Oracle Turing. Cada vez que la computadora normalmente solicita la interacción del operador, la máquina lee la cinta de entrada. Si la cosa leída de la cinta parece inválida de alguna manera, la máquina de Turing hace exactamente lo que la máquina de interacción haría al recibir esa entrada.
Supongo que Wagner es consciente de la capacidad de usar cintas de oráculo para codificar la entrada, por lo que debe tomar sus comentarios con un grano de sal, o debe preguntar qué quiere decir realmente. Creo que las personas que piensan en la interacción generalmente están preocupadas por dos cosas:
Las computadoras "reales" tienen interacción, pero los algoritmos definidos por Turing no. Podemos solucionar esto codificando la entrada en las cintas de oráculo, pero esto aún no coincide con la forma en que operan las computadoras reales. Puede ser bueno estudiar modelos de computación que estén más estrechamente alineados con las computadoras reales.
Los algoritmos basados en Oracle a menudo no se consideran en la informática diaria porque las computadoras normales no vienen con un "oráculo" mágico para suministrar datos. Pero podríamos ser capaces de utilizar a una persona como el oráculo. Si la persona entiende los datos que se solicitan, incluso puede ayudar al algoritmo, mejorando así su rendimiento. En otras palabras, un humano puede proporcionar una cinta oracle útil en lugar de simplemente una aleatoria, y en principio esto podría conducir a métodos informáticos más rápidos o más potentes en comparación con los que no están basados en Oracle. Algo similar sucede con la computación aleatoria, después de todo, donde la máquina recibe una secuencia de bits aleatorios como entrada adicional.
fuente
Cálculo del modelo de Turning Machines, y no tiene un concepto de interacción. En ese sentido, una máquina que admite la interacción con un sistema externo puede hacer cosas que una máquina de torneado no puede hacer. Pero el cálculo realizado entre el bit de entrada de una fuente externa obviamente siempre puede ser modelado por una máquina de Turing, por lo que incluso una "máquina de E / S" no puede hacer nada con la entrada externa que una máquina de Turing no podría hacer.
En cierto sentido, una máquina de este tipo puede "decidir" problemas que Turing Machines no puede determinar, pero solo si imagina que el sistema con el que está interactuando tiene poderes de supermáquina de Turing y es confiable (de alguna manera; confiabilidad probabilística seria suficiente).
Imagine un programa para una máquina IO como: "para cualquier entrada de cinta inicial, imprima el contenido de la cinta, luego lea un símbolo desde la entrada externa; acepte si el símbolo es 1 y rechace lo contrario". Este programa puede decidir cualquier problema. Pero solo si el sistema externo con el que puede interactuar es capaz de decidir el problema; Para mí, esa no es una forma muy interesante de decir que IO Machine es capaz de decidir problemas que Turing Machines no puede resolver.
Creo que siempre sería posible representar un cálculo interactivo imaginando una máquina que toma como entrada en su cinta una codificación de alguna configuración anterior junto con una entrada externa, y hace que la máquina se detenga con su cinta que contiene una codificación de una configuración juntos con salida Luego, el proceso de "ejecutar un programa" es ejecutar repetidamente esta máquina de Turing de forma mecánica, con la única parte "no mecánica", sin embargo, la fuente externa se obtiene. Estoy seguro de que podría probar que si un sistema de este tipo obtiene su entrada dando su salida a otra máquina de Turingconfigurado para operar de manera similar, entonces el sistema combinado tiene poderes computacionales idénticos a una sola máquina de Turing. Me parece un argumento convincente de que la computación interactiva no es más poderosa que la computación no interactiva, a menos que el sistema con el que interactúa la computación sea más poderoso que una máquina de Turing .
Sin embargo, hay un sentido no teórico en el que la interactividad puede aumentar la capacidad de una computadora para resolver problemas. Hay muchas cosas que los humanos hacen con mucha precisión que no sabemos cómo hacer que las computadoras funcionen muy bien. Pero también hay muchas cosas por las que los humanos son basura y que podemos hacer que las computadoras hagan. La combinación de estos dos puede llevar a proyectos como reCaptcha , que efectivamente digitaliza libros automáticamente al resolver los problemas de reconocer palabras a humanos en casos difíciles. El sistema resultante de computadora + trabajo humano logra un resultado que actualmente no es práctico lograr ya sea con el cómputo solo o con el trabajo humano solo.
fuente
Recientemente ACM celebró el simposio Ubiquity ' ¿Qué es la computación? 'en el que Peter Wegner publicó un artículo que refleja sus puntos de vista sobre la informática interactiva.
Aquí hay dos extractos del artículo de Peter Wegner:
Sin embargo, Fortnow, que tiene un artículo en el mismo simposio, parece estar en desacuerdo con las opiniones de Wegner y cree que la informática interactiva no ofrece ningún poder adicional sobre las máquinas de Turing.
Para agregar a la mezcla, parece que todavía estamos debatiendo y definiendo la computación. Moshe Vardi tiene un artículo, ¿Qué es un algoritmo ?, Comunicaciones de la ACM, vol. 55, N ° 3, marzo de 2012.
Vardi informa sobre dos nuevas definiciones de algoritmos. El primero es propuesto por Gurevich y el segundo por Moscovakis.
fuente
No creo que los modelos con IO sean "más potentes" que las máquinas de Turing, simplemente modelan cosas diferentes.
En teoría, podría ver IO como un oráculo (¿ruidoso?). Con un oráculo perfecto, puede computar funciones incompatibles de Turing; ¿Pero de dónde sacar el oráculo? Los humanos son la única opción "super-Turing" (si hay alguna) y se sabe que somos muy poco confiables.
Una clase de programas que se ajustan a este modelo son asistentes de prueba interactivos (por ejemplo, Isabelle / HOL , Coq ). Se ocupan de espacios de prueba indecidibles, pero (posiblemente) todas las pruebas se pueden encontrar (y comprobar) con la entrada adecuada del usuario.
fuente
Mira esto :) " Ideas y modelos de computación de Turing " https://www.cs.montana.edu/~elser/turing%20papers/Turing%27s%20Ideas%20and%20Models%20of%20Computation.pdf
fuente