Red de conocimiento del abogados - Ley de patentes - ¿Qué es una máquina de Turing?

¿Qué es una máquina de Turing?

En realidad, el origen de la máquina de Turing es bastante sencillo. Había una vez un hombre ocioso llamado Turing que tenía una gallinita que no tenía nada que hacer. Turing estaba ocupado corriendo maratones todo el día y era demasiado vago para ocuparse de ello, por lo que instaló una cinta transportadora con longitudes infinitas desde la perspectiva de un pollo para entregar comida y agua con regularidad. Pero cuando la gallina se aburre, se pasea y se pone cosas en el cinturón para divertirse. Cuando te sientas deprimido, pon una rama en la cuadrícula. Cuando estés emocionado, pon un huevo en una cuadrícula determinada. Recordé que también podía sustituir los huevos por ramas, o las ramas por huevos. Me molesté y tiré una piedra a la cinta transportadora, por lo que la cinta transportadora se atascó. Un día, la gallinita se tragó accidentalmente una planta de marihuana silvestre como si fuera hierba de huesos de pollo. Se drogó tanto que se volvió loca por la cinta transportadora:

Puso una rama y un huevo en el lado izquierdo de la cinta transportadora. cinta transportadora: 10

Coloca dos ramas en el lado derecho de la cinta transportadora: 11

Vuelve a la izquierda, recoge las ramas y reemplaza los huevos con ramas: 1

Vuelve a la derecha, reemplaza las dos ramas con una rama y dos huevos: 100

Vuelve a la izquierda, recoge la rama

Vuelve a la derecha, reemplaza el huevo de la derecha con Ramas: 101

Ahora las ramas y los huevos de la izquierda han desaparecido. La gallinita no estaba interesada y, furiosa, arrojó una piedra para bloquear la máquina.

Turing, que acababa de recoger una bolsa de manzanas del supermercado, pasó por allí y fue testigo de todo esto. Se produjo un repentino destello de inspiración: ¿No es esto 2 3 = 5? ¡Resulta que la suma se puede jugar así! No hay necesidad de preocuparse por liquidar cuentas en el futuro. Pero el interés de Turing no era ajustar cuentas, sino jugar al tres en raya. El problema es que las pollitas tienen una inteligencia limitada. Que ella entienda que cosas como el tres en raya son peores que dejar que los toros trepen a los árboles y los conejos pongan huevos. Afortunadamente, Turing era una persona trabajadora a la que le gustaba pensar profundamente. Cuando no tenía nada que hacer, le gustaba leer artículos de un alemán llamado Kurt Godel. Y Gödel admira a un tipo llamado David Hilbert. Cuando Hilbert buscaba ganarse la vida en Göttingen, Alemania, le gustaba la fantasía y accidentalmente hizo 23 preguntas a principios de siglo. De hecho, atrajo la atención de innumerables holgazanes durante los siguientes 100 años. A Gödel le fascinó la pregunta 10. Después de varios años de investigación, escribí un post para resumir mi experiencia. Por cierto, me gustaría decirte que Hilbert a veces adivina mal. La respuesta a la pregunta 10 es que no podemos confiar en métodos formales para encontrar soluciones a todas las ecuaciones de Diofanto. El corolario es que no tenemos que esperar establecer unos pocos hechos (los holgazanes los llaman axiomas) y luego utilizar un conjunto de reglas para deducir todas las verdades. "Debemos saber, debemos saber" es mucho más difícil de lo que Hilbert esperaba. Esta vez, el corazón de Hilbert estaba completamente roto. Pero estoy divagando. El artículo de Gödel dedicó mucho espacio a describir cómo usar números para representar cosas más complejas además de los números naturales (llamado codificación en negro). Turing debería haber leído este artículo. Pronto descubrió que el tres en raya se podía simular utilizando ramas y huevos. Por ejemplo, cuatro huevos representan un círculo en la esquina superior izquierda. Tres huevos y una rama, 0001, significa dibujar una X en la esquina superior izquierda. Y demostró que incluso si la gallinita tomara la píldora Dali y pudiera usar símbolos más complejos para describir el tres en raya en la cinta transportadora, solo necesitaría 4log(|∑|) veces menos que cuando usó ramas y huevos. |∑| aquí representa cuántos de los llamados símbolos complejos hay en un ***. Entonces Turing escribió una publicación para presentar su pollo. Las generaciones posteriores llamaron a este pollo Pollo de Turing. Y la gente se sorprende al descubrir que, aunque las máquinas que fabrican son cada vez más sofisticadas, jugar al ajedrez puede hacer que Kasparov, el lobo de cola grande, se sienta desconsolado y frustrado, pero es solo una máquina ultrarrápida que puede colocar ramas y huevos. solo un pollo de Turing, y no hay ninguna diferencia esencial con el auténtico pollo de Turing en Zuigu. Para conmemorar este fenómeno, acuñamos un término especial: equivalencia de Turing. La gente también observó que algunos problemas requerían un pollo de Turing, por lo que acuñaron el término: Turing completo. Hoy en día, a muchos jefes les gusta mezclar la integridad de Turing y la equivalencia de Turing. Esto es como decir que la proposición es verdadera, por lo que la proposición inversa es verdadera, lo cual no es confiable la mayor parte del tiempo. Pero este tema merece su propio post, así que os lo dejo más adelante.

Turing no estaba satisfecho con el simple 2+3=5 y el tres en raya, por lo que se dio cuenta de otro desafío importante: si cada pollo solo puede hacer un cálculo, debe ¿Cuántas gallinas tienes? ¿Necesita montar para montar cintas transportadoras para ajustar cuentas? Por no hablar de jugar al ajedrez. Turing, la computadora humana, es un maestro en simplificar lo complejo. Este difícil problema lo resolvió con facilidad: primero, demostró que cualquier máquina de Turing se puede expresar en ramas y huevos. Luego crió un pollo más inteligente (Turing pasó N años estudiando fisiología matemática y morfogénesis. ¿Sabes por qué?). Esta gallina come melatonina y bebe Nongfu Spring. No hace nada, no canta ni pone huevos, pero puede reconocer y comprender otras máquinas de Turing descritas con ramas y huevos, y simular su funcionamiento sobre la cinta transportadora. Para resumir en la jerga de la gente ociosa, para cualquier problema x, y, siempre hay una gallina U tal que. Aquí hay un pollo de Turing representado por una larga columna de ramas y huevos. Un pollo así vale diez mil. A partir de entonces, Turing ya no necesitó criar tantas gallinas. Sólo necesitó usar ramas y huevos para descubrir el método de cálculo y proporcionar datos, y la gallina pudo calcular los resultados. Al pensar en esto, Turing se sintió lleno de energía y no pudo evitar gritar al cielo: Hago bien el pollo. Desde entonces, esta nueva raza de pollo se llama Universal Turing Chicken (Máquina Universal de Turing). Universal, mi gallina está lista para matar cien gallinas. El Pollo Yuan Turing es de gran importancia y representa los dos pilares de la informática (el otro es la autorreferencia): universalidad y dualidad. Acabamos de hablar de Universalidad. La dualidad significa que los datos y los programas son dos mechas entrelazadas frente al trono de Buda. Por ejemplo, el Pollo de Turing representado por ramas y huevos, ¿dirías que es un programa o un dato? Martin Davis, un veterano del campo teórico, incluso dijo en su libro que el concepto revolucionario de las computadoras con programa almacenado se originó a partir de este pollo meta-Turing. Por cierto, hubo pioneros como Turing en el Reino Unido que construyeron la primera computadora de propósito general del mundo. ¿Por qué al final los estadounidenses dominaron la historia de la informática? También es una historia lamentable. En una palabra, los pollos enjaulados no son tan buenos como los pollos criados al aire libre, y los pollos criados al aire libre no son tan buenos como los faisanes. Aquellos que estén interesados ​​pueden leer Cómo llegamos aquí de Andy Kessler. La viveza del lenguaje, el humor de los pasajes, los giros y vueltas de la historia y los interesantes materiales históricos de este libro son realmente raros. Y es gratis. No puedo recomendarlo lo suficiente.

Por supuesto, un pollo no es suficiente. Turing escribió un programa de ajedrez en 1952, pero ninguna máquina podía ejecutarlo en ese momento. Pronto la gente empezó a acudir en masa al nuevo campo de investigación de la complejidad computacional. 4. Hace 50 años, fue el Período de los Reinos Combatientes, donde las guerras abundaban y había historias legendarias de héroes legendarios por todas partes. Parece que hay descubrimientos impactantes en todos los campos. En 1964, Alan Cobham y Jack Edmonds publicaron en ACM BBS, diciendo que si un pollo de Turing puede resolver un problema usando pasos finitos, y el número de pasos a resolver es un polinomio de la longitud del problema, entonces la complejidad del problema es P . P es la abreviatura de Polinomio. Desafortunadamente, algunos algoritmos de problemas son mucho más complejos que P, como encontrar la mejor estrategia para una partida de ajedrez. Sin embargo, pronto alguien señaló que, aunque algunos problemas parecen complicados, la complejidad requerida para verificar si los algoritmos para estos problemas son correctos es P. Por ejemplo, determine si hay varios números enteros en una pila de números enteros cuya suma es exactamente 0. Verificar una posible respuesta es demasiado simple: simplemente sume los números de la respuesta y el tiempo empleado será como máximo igual al número de números enteros de la pila. Entonces algunos expertos pensaron: Esto es fácil de manejar. Si hay N respuestas alternativas a una pregunta, entonces criamos N pollos y dejamos que cada pollo verifique una respuesta. Si la complejidad de verificación de cada respuesta es P, ¿no es también P la complejidad final? Desafortunadamente, antes de obtener los resultados de la verificación, no sabemos qué respuesta del candidato es definitivamente correcta, ni podemos estar seguros de qué pollo obtuvo la respuesta primero, al igual que no sabemos qué trabajadora encontró el boleto dorado para Wonka's Chocolate. Primero de fábrica.

Para distinguirlos de los pollos Turing comunes, los holgazanes llaman a este tipo de grupo de pollos que luchan contra los pollos Turing no deterministas. Debido a que este tipo de pollo de Turing puede encontrar la respuesta en tiempo polinómico, llamamos a esta complejidad NP, que es la abreviatura de Polinomio no determinista. Sigue siendo muy intuitivo, ¿verdad? Obviamente, P pertenece a NP, porque como podemos encontrar la respuesta en P, naturalmente podemos verificar la respuesta en P. Entonces, ¿hay algo que pertenezca a NP pero no a P? No sé. Si lo hubiera sabido, habría demostrado que P=NP o P!= NP, habría recibido un bono de 1 millón de dólares del Instituto Cray y habría ido a la playa de Bora Bora a beber piña colada.

El hecho de no poder demostrar si P es igual a NP no frena el entusiasmo de los holgazanes. No saber si es igual es mejor que saber que no es igual ¿no? Así que las grandes personas siguen explorando una tras otra. Entonces NP-Hard fue criado por diversión. El concepto de NP-duro también es intuitivo: no sé qué tan complejo eres específicamente, pero sé que eres al menos tan complejo como el problema NP. ¿Qué significa ser igualmente complicado? Entonces, algunas personas talentosas sugirieron que, de todos modos, un polinomio más un polinomio sigue siendo un polinomio. Entonces se puede juzgar que si conocemos el algoritmo de un problema H y cada problema que pertenece a NP puede resolverse jugando con H en tiempo polinómico, entonces H es NP-difícil. Es decir, si existe una función (o algoritmo) f tal que f(H) = el conjunto de todos los problemas NP, y el costo de calcular f(H) es P, entonces H es NP-difícil. Por supuesto, todavía podemos dejar que un pollo de Turing ejecute esta función, por lo que la existencia de una función f se llama polinomio reducible de Turing (tiempo polinómico reducible de Turing). Si H también pertenece a NP, entonces H es NP-Completo. Podemos demostrar con relativa facilidad que si hay un problema, aunque sea un solo problema, que pertenece tanto a NP como a P, entonces todo P y NP colapsan, P = NP. Los jefes interesados ​​pueden demostrarlo ellos mismos. En este punto, la investigación sobre la complejidad parece haber quedado bloqueada. Para determinar si un problema es NP-Difícil, debe demostrar que se puede reducir polinomialmente a todos los problemas NP. Es simplemente una misión imposible. En este momento de supervivencia, el abuelo Cook, que nació en Buffalo y se estableció en Toronto, explotó en su pequeño universo y demostró en 1971 que el problema SAT (es decir, determinar qué tipo de conjunto puede hacer que una fórmula booleana sea igual a 1) pertenece a NP-Completo. Durante un tiempo, todos los seres quedaron patas arriba. Con SAT en la parte inferior, no tenemos que lidiar con todos los problemas NP, solo debemos lidiar con el problema relativamente simple de reducir a SAT. Hasta ahora, no sólo hay 1000 sino también 500 problemas NP-Complete, ¿verdad? También se han descubierto otras clases complejas. Aquí se enumeran casi todas las clases complejas, con un total de 462 tipos.