fbpx
Wikipedia

Máquina de Turing

Sistema combinacionalAutómata finitoAutómata con pilaMáquina de TuringTeoría de autómatas


Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de cinta de acuerdo con una tabla de reglas. A pesar de su simplicidad, una máquina de Turing puede ser adaptada para simular la lógica de cualquier algoritmo de computador y es particularmente útil en la explicación de las funciones de una CPU dentro de un computador.

Originalmente fue definida por el matemático inglés Alan Turing como una «máquina automática» en 1936 en la revista Proceedings of the London Mathematical Society[nota 1]​. La máquina de Turing no está diseñada como una tecnología de computación práctica, sino como un dispositivo hipotético que representa una máquina de computación. Las máquinas de Turing ayudan a los científicos a entender los límites del cálculo mecánico[3][4]

Turing dio una definición sucinta del experimento en su ensayo de 1948, «Máquinas inteligentes». Refiriéndose a su publicación de 1936, Turing escribió que la máquina de Turing, aquí llamada una máquina de computación lógica, consistía en:

... una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con cuadrados, en cada uno de los cuales podría imprimirse un símbolo. En cualquier momento hay un símbolo en la máquina; llamado el símbolo leído. La máquina puede alterar el símbolo leído y su comportamiento está en parte determinado por ese símbolo, pero los símbolos en otros lugares de la cinta no afectan el comportamiento de la máquina. Sin embargo, la cinta se puede mover hacia adelante y hacia atrás a través de la máquina, siendo esto una de las operaciones elementales de la máquina. Por lo tanto cualquier símbolo en la cinta puede tener finalmente una oportunidad.[5]

Una máquina de Turing que es capaz de simular cualquier otra máquina de Turing es llamada una máquina universal de Turing (UTM, o simplemente una máquina universal). Una definición más matemáticamente orientada, con una similar naturaleza "universal", fue presentada por Alonzo Church, cuyo trabajo sobre el cálculo lambda se entrelaza con el de Turing en una teoría formal de la computación conocida como la tesis de Church-Turing. La tesis señala que las máquinas de Turing capturan, de hecho, la noción informal de un método eficaz en la lógica y las matemáticas y proporcionan una definición precisa de un algoritmo o 'procedimiento mecánico'.

La importancia de la máquina de Turing en la historia de la computación es doble: primero, la máquina de Turing fue uno de los primeros (si no el primero) modelos teóricos para las computadoras, viendo la luz en 1936. Segundo, estudiando sus propiedades abstractas, la máquina de Turing ha servido de base para mucho desarrollo teórico en las ciencias de la computación y en la teoría de la complejidad. Una razón para esto es que las máquinas de Turing son simples, y por tanto amenas al análisis. Dicho esto, cabe aclarar que las máquinas de Turing no son un modelo práctico para la computación en máquinas reales, las cuales precisan modelos más rápidos como los basados en RAM.

Historia

 
Estatua de Alan Turing con un retrato de fondo.
 
Representación artística de una máquina de Turing.

Alan Turing introdujo el concepto de máquina de Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemática de Londres en 1936, en el que se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing ideó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver.[6]

Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar.[7]​)

Mediante este modelo teórico y el análisis de la complejidad de los algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones pueden encontrarse en tiempo polinómico por máquinas de Turing deterministas y no deterministas, respectivamente.

Precisamente, la tesis de Church-Turing formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX caracteriza la noción informal de computabilidad con la computación mediante una máquina de Turing.[8]

La idea subyacente es el concepto de que una máquina de Turing puede verse como un autómata ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es accesible.

Descripción informal

 
Aquí se muestra el estado interno (q1) dentro del cabezal, y la ilustración describe la cinta como siendo infinita y llenada previamente con '0', el símbolo sirviendo como blanco. El estado completo del sistema (su configuración) consiste del estado interno, el contenido de las casillas sombreadas incluyendo el blanco leído el cabezal ("11B") y la posición del cabezal.[9]​.
 
Animación de la máquina de Turing

La máquina de Turing modela matemáticamente a una máquina que opera mecánicamente sobre una cinta. En esta cinta hay símbolos que la máquina puede leer y escribir, uno a la vez, usando un cabezal lector/escritor de cinta. La operación está completamente determinada por un conjunto finito de instrucciones elementales como "en el estado 42, si el símbolo visto es 0, escribe un 1; Si el símbolo visto es 1, cambia al estado 17; en el estado 17, si el símbolo visto es 0, escribe un 1 y cambia al estado 6; etc". En el artículo original ("Sobre números computables con una aplicación al Entscheidungsproblem"), Turing no imagina un mecanismo, sino una persona a la que él llama la "computadora", quien ejecuta servilmente estas reglas mecánicas deterministas (o como Turing pone, "de una manera desganada").

Más precisamente, una máquina de Turing consta de:

  1. Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un símbolo de algún alfabeto finito. El alfabeto contiene un símbolo especial llamado blanco (aquí escrito como 'B') y uno o más símbolos adicionales. La cinta se supone que es arbitrariamente extensible hacia la izquierda y hacia la derecha, es decir, la máquina de Turing siempre es provista con tanta cinta como necesite para su computación. Las celdas que no se hayan escrito previamente se asumen que están rellenas con el símbolo blanco. En algunos modelos la cinta tiene un extremo izquierdo marcado con un símbolo especial; la cinta se extiende o es indefinidamente extensible hacia la derecha.
  2. Un cabezal que puede leer y escribir símbolos en la cinta y mover la cinta a la izquierda y a la derecha una (y sólo una) celda a la vez. En algunos modelos el cabezal se mueve y la cinta es estacionaria.
  3. Un registro de estado que almacena el estado de la máquina de Turing, uno de los estados finitos. Hay un estado inicial especial con el que el registro de estado se inicia. Turing escribe que estos estados reemplazan el "estado de la mente" en que ordinariamente estaría una persona realizando cálculos.
  4. Una tabla finita de instrucciones (llamada ocasionalmente como tabla de acción o función de transición). Las instrucciones son usualmente 5-tuplas: qiaj→qi1aj1dk, (a veces 4-tuplas), que, dado el estado (qi) en que la máquina se encuentra actualmente y el símbolo (aj) que se está leyendo en la cinta (el símbolo actualmente debajo del cabezal) le indica a la máquina hacer lo siguiente en secuencia (para los modelos de 5-tupla):
    • Borra o escribe un símbolo (reemplazando aj con aj1), y entonces
    • Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un paso a la izquierda, o 'R' para un paso a la derecha, o 'N' para permanecer en el mismo lugar) y luego
    • Asume el mismo o un nuevo estado como prescrito (ve al estado qi1).
En los modelos de 4-tupla, son especificadas como instrucciones separadas: borrar o escribir un símbolo (aj1) y mover el cabezal a la izquierda o la derecha (dk). Específicamente, la tabla indica a la máquina: (ia) borrar o escribir un símbolo o (ib) mover el cabezal a la izquierda o a la derecha, y luego (ii) asumir el mismo o un nuevo estado, pero no las dos acciones (ia) y (ib) en la misma instrucción. En algunos modelos, si no hay ninguna entrada en la tabla para la actual combinación de símbolo y estado, la máquina se detendrá; otros modelos requieren que estén llenas todas las entradas.

Note que cada parte de la máquina — su estado y colecciones de símbolos — y sus acciones — imprimir, borrar, movimiento de la cinta — es finito, discreto y distinguible; es la cantidad potencialmente ilimitada de cinta lo que le da una cantidad ilimitada de espacio de almacenamiento.

Definición formal

Una máquina de Turing[10]​es un modelo computacional que realiza una lectura/escritura de manera automática sobre una entrada llamada cinta, generando una salida en esta misma.

Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo especial llamado blanco (normalmente b,   o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al alfabeto de entrada. La máquina va leyendo una celda de la cinta en cada paso, borrando el símbolo en el que se encuentra posicionado su cabezal y escribiendo un nuevo símbolo perteneciente al alfabeto de salida, para luego desplazar el cabezal a la izquierda o a la derecha (solo una celda a la vez). Esto se repite según se indique en la función de transición, para finalmente detenerse en un estado final o de aceptación, representando así la salida.

Una máquina de Turing con una sola cinta puede definirse como una 7-tupla

 

donde:[11]

  •   es un conjunto finito de estados.
  •   es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto de máquina o de entrada.
  •   es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta ( ).
  •   es el estado inicial.
  •   es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces.
  •   es el conjunto de estados finales de aceptación.
  •   es una función parcial denominada función de transición, donde   es un movimiento a la izquierda y   es el movimiento a la derecha.

Existe en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo   como símbolo de "no movimiento" en un paso de cómputo.

Funcionamiento de la máquina de Turing

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a:

  • Mover el cabezal lector/escritor hacia la derecha.
     
    Visualización de una máquina de Turing, en la que se ve el cabezal y la cinta que se lee.
  • Mover el cabezal lector/escritor hacia la izquierda.

El cómputo se determina a partir de una tabla de estados de la forma:

(estado, valor)   (nuevo estado, nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a escribir en la cinta.

La memoria es la cinta de la máquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado "blanco". Las instrucciones que determinan el funcionamiento de la máquina tienen la forma, "si estamos en el estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha".

La máquina de Turing puede considerarse como un autómata capaz de reconocer lenguajes formales. En ese sentido, es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros tipos de autómatas, como el autómata finito, o el autómata con pila, o igual a otros modelos con la misma potencia computacional.

Representación como diagrama de estados

Las máquinas de Turing pueden representarse mediante grafos particulares, también llamados diagramas de estados finitos, de la siguiente manera:

 
Esta máquina de Turing está definida sobre el alfabeto  , posee el conjunto de estados  , con las transiciones que se pueden ver. Su estado inicial es   y el estado final es  , el lenguaje de salida
  siendo   el símbolo denominado "blanco". Esta máquina reconoce la expresión regular de la forma   con  .
  • Los estados se representan como vértices, etiquetados con su nombre en el interior.
  • Una transición desde un estado a otro, se representa mediante una arista dirigida que une a estos vértices, y está rotulada por símbolo que lee el cabezal/símbolo que escribirá el cabezal, movimiento del cabezal.
  • El estado inicial se caracteriza por tener una arista que llega a él y que no proviene de ningún otro vértice.
  • El o los estados finales se representan mediante vértices que están encerrados a su vez por otra circunferencia.

Descripción instantánea

Es una secuencia de la forma   donde   y   que escribe el estado de una máquina de Turing. La cinta contiene la cadena   seguida de infinitos blancos. El cabezal señala el primer símbolo de  .

Por ejemplo, para la máquina de Turing

 

con las transiciones

 

La descripción instantánea para la cinta 1011 es:

 
 
 
 
 
 

Ejemplo

Definimos una máquina de Turing sobre el alfabeto  , donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo "1" de una serie. La máquina de Turing copiará el número de símbolos "1" que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, posiciona el cabezal sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada "111" devolverá "1110111", con "1111" devolverá "111101111", y sucesivamente.

El conjunto de estados es   y el estado inicial es  . La tabla que describe la función de transición es la siguiente:

Estado Símbolo leído Símbolo escrito Mov. Estado sig.
  1 0    
  1 1    
  0 0    
  0 1    
  1 1    
  1 1    
  0 0    
  1 1    
  0 1    

El funcionamiento de una computación de esta máquina puede mostrarse con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):

Paso Estado Cinta
1   11
2   01
3   010
4   0100
5   0101
6   0101
7   0101
8   1101
9   1001
10   1001
11   10010
12   10011
13   10011
14   10011
15   11011
Parada

La máquina realiza su proceso por medio de un bucle, en el estado inicial  , reemplaza el primer 1 con un 0, y pasa al estado  , con el que avanza hacia la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado  , con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habrá ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con   vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a   que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado el cómputo.

Modificaciones equivalentes

Una razón para aceptar la máquina de Turing como un modelo general de cómputo es que el modelo que hemos definido anteriormente es equivalente a muchas versiones modificadas que en principio pareciera incrementar el poder computacional.

Máquina de Turing con movimiento de espera

La función de transición de la MT sencilla está definida por

 

la cual puede ser modificada como

 

Donde   significa «permanecer» o «esperar», es decir no mover el cabezal de lectura/escritura. Por lo tanto,   significa que se pasa del estado q al p, se escribe   en la celda actual y la cabeza se queda sobre la celda actual.

Máquina de Turing con cinta infinita a ambos lados

Esta modificación se denota al igual que una MT sencilla, lo que la hace diferente es que la cinta es infinita tanto por la derecha como por la izquierda, lo cual permite realizar transiciones iniciales como  .

Máquina de Turing con cinta multipista

Es aquella que mediante la cual cada celda de la cinta de una máquina sencilla se divide en subceldas. Cada celda es así capaz de contener varios símbolos de la cinta. Por ejemplo, la cinta de la figura tiene cada celda subdividida en tres subceldas.

Se dice que esta cinta tiene múltiples pistas puesto que cada celda de esta máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta puede ser representado mediante n-tuplas ordenadas. Los movimientos que realice esta máquina dependerán de su estado actual y de la n-tupla que represente el contenido de la celda actual. Cabe mencionar que posee un solo cabezal al igual que una MT sencilla.

Máquina de Turing multicinta

Una MT con más de una cinta consiste de un control finito con k cabezales lectores/escritores y k cintas. Cada cinta es infinita en ambos sentidos. La MT define su movimiento dependiendo del símbolo que está leyendo cada uno de sus cabezales, da reglas de sustitución para cada uno de los símbolos y dirección de movimiento para cada uno de los cabezales. Inicialmente la MT empieza con la entrada en la primera cinta y el resto de las cintas en blanco.

Máquina de Turing multidimensional

Una MT multidimensional es aquella cuya cinta puede verse como extendiéndose infinitamente en más de una dirección, el ejemplo más básico sería el de una máquina bidimensional cuya cinta se extendería infinitamente hacia arriba, abajo, derecha e izquierda.

En la modificación bidimensional de MT que se muestra en la figura también se agregan dos nuevos movimientos del cabezal {U,D} (es decir arriba y abajo). De esta forma la definición de los movimientos que realiza el cabezal será {L,R,U,D}.

 
MT con cinta infinita a ambos lados.  
 
MT multipista. Subdivisión de una celda de su cinta.  
 
MT multicinta con sus cabezales de lectura/escritura.  
 
MT bidimensional.  

Máquina de Turing determinista y no determinista

La entrada de una máquina de Turing viene determinada por el estado actual y el símbolo leído, un par (estado, símbolo), siendo el cambio de estado, la escritura de un nuevo símbolo y el movimiento del cabezal, las acciones a tomar en función de una entrada. En el caso de que para cada par (estado, símbolo) posible exista a lo sumo una posibilidad de ejecución, se dirá que es una máquina de Turing determinista, mientras que en el caso de que exista al menos un par (estado, símbolo) con más de una posible combinación de actuaciones se dirá que se trata de una máquina de Turing no determinista.

La función de transición   en el caso no determinista, queda definida como sigue:

 

¿Cómo sabe una máquina no determinista qué acción tomar de las varias posibles? Hay dos formas de verlo: una es decir que la máquina es "el mejor adivino posible", esto es, que siempre elige la transición que finalmente la llevará a un estado final de aceptación. La otra es imaginarse que la máquina se "clona", bifurcándose en varias copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una máquina determinista sigue un único "camino computacional", una máquina no determinista tiene un "árbol computacional". Si cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que la máquina acepta la entrada.

La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar que dada una máquina de Turing no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la misma, pues si una máquina no determinista M reconoce una cierta palabra de tamaño n en un tiempo  , la máquina determinista equivalente reconocerá la palabra en un tiempo  . Es decir, el no determinismo permitirá reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinómico.

Problema de la parada (halting problem)

El problema de la parada o problema de la detención (halting problem en inglés) para máquinas de Turing consiste en: dada una MT M y una palabra w, determinar si M terminará en un número finito de pasos cuando se ejecuta usando w como entrada.

Alan Turing, en su famoso artículo «On computable numbers, with an application to the Entscheidungsproblem» (1936), demostró que el problema de la parada de la máquina de Turing es indecidible, en el sentido de que ninguna máquina de Turing lo puede resolver.

Codificación de una máquina de Turing

Toda máquina de Turing puede codificarse como una secuencia binaria finita, es decir una secuencia finita de ceros y unos. Para simplificar la codificación, suponemos que toda MT tiene un único estado inicial denotado por  , y un único estado final denotado  . Tendremos que para una MT M de la forma

  •   donde   representa el símbolo blanco 0,   o b (según se desee denotar),
  •   es alfabeto de entrada y
  •   son los símbolos auxiliares utilizados por M (cada MT utiliza su propia colección finito de símbolos auxiliares).

Todos estos símbolos se codifican como secuencias de unos:

Símbolo Codificación
  1
  11
  111
.
.
.
.
.
.
   
   

Los estados de una MT   se codifican también con secuencias de unos:

Símbolo Codificación
  1
  11
.
.
.
.
.
.
   

Las directrices de desplazamiento  ,   y   se codifican con 1, 11, 111, respectivamente. Una transición   se codifica usando ceros como separadores entre los estados, los símbolos del alfabeto de cinta y la directriz de desplazamiento  . Así, la transición   se codifica como

 

En general, la codificación de una transición cualquiera   es

 

donde  , según la dirección sea  .

Una MT se codifica escribiendo consecutivamente las secuencias de las modificaciones de todas sus transiciones. Más precisamente, la codificación de una MT M es de la forma  , donde   es la codificación de la  -ésima transición de M. Puesto que el orden en que se representen las transiciones de una MT no es relevante, una misma MT tiene varias codificaciones diferentes. Esto no representa ninguna desventaja práctica o conceptual ya que no se pretende que las codificaciones sean únicas.

Máquina de Turing universal

Una máquina de Turing computa una determinada función parcial de carácter definido e unívoca, definida sobre las secuencias de posibles cadenas de símbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento.

En 1947, Turing indicó:

Se puede demostrar que es posible construir una máquina especial de este tipo que pueda realizar el trabajo de todas las demás. Esta máquina especial puede ser denominada máquina universal.

Con esta codificación de tablas como cadenas, se abre la posibilidad de que unas máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo, muchas de sus posibilidades son indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema interesante es determinar si una máquina de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada; problema conocido como problema de la parada, y que Turing demostró que era indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre el comportamiento o la salida de una máquina de Turing es un problema indecidible.

El concepto de Máquina de Turing universal está relacionado con el de un sistema operativo básico, pues puede ejecutar cualquier instrucción computable sobre él.[12]

Máquina de Turing cuántica

 
Ilustración de una máquina de Turing cuántica.

En 1985, Deutsch presentó el diseño de la primera Máquina cuántica basada en una máquina de Turing. Con este fin enunció una nueva variante la tesis de Church-Turing dando lugar al denominado "principio de Church-Turing-Deutsch".

La estructura de una máquina de Turing cuántica es muy similar a la de una máquina de Turing clásica. Está compuesta por los tres elementos clásicos:

  • Una cinta de memoria infinita en donde cada elemento es un qubit.
  • Un procesador finito.
  • Un cabezal.

El procesador contiene el conjunto de instrucciones que se aplica sobre el elemento de la cinta señalado por el cabezal. El resultado dependerá del qubit de la cinta y del estado del procesador. El procesador ejecuta una instrucción por unidad de tiempo.

La cinta de memoria es similar a la de una máquina de Turing tradicional. La única diferencia es que cada elemento de la cinta de la máquina cuántica es un qubit. El alfabeto de esta nueva máquina está formado por el espacio de valores del qubit. La posición del cabezal se representa con una variable entera.

Modelos equivalentes

Dos modelos matemáticos equivalentes a los de las máquinas de Turing son las máquinas de Post, creadas en forma paralela por Emil Leon Post,[13]​ y el cálculo lambda, introducido por Alonzo Church y Stephen Kleene en los años 1930, y también usado por Church para demostrar en 1936 el Entscheidungsproblem.

Véase también

Notas

  1. Turing envió su artículo el 31 de mayo de 1936 a la London Mathematical Society para su publicación en la revista Proceedings,[1]​ pero no fue publicada hasta principios de 1937.[2]

Referencias

  1. Hodges, 1983, p. 112.
  2. Hodges, 1983, p. 129.
  3. Minsky, 1967, p. 107.
  4. Stone, 1972, p. 8.
  5. See the definition of "innings" on Wiktionary
  6. Hodges, 1983.
  7. A.M. Turing (1948). «Intelligent Machinery (manuscript)». The Turing Archive. p. 3. 
  8. Gómez de Silva Garza, Gómez de Silva Garza (2008). Introducción a la computación. p. 522. 
  9. Minsky, 1967, p. 121.
  10. «Teoría de Autómatas».  Teoría de Autómatas, RAI 2012 Universidad Carlos III
  11. Pérez, Iván (2005). Lenguaje y Compiladores. p. 137. 
  12. Paun, Gheorghe (2002). «II. Prerequisites». Membrane Computing: An Introduction (en inglés). Nueva York: Springer-Verlag. ISBN 3540436014. Consultado el 24 de junio de 2012. «The parallelism with a computer, as we know computers in their general form, is clear: the code of a Turing machine is its program, the strings to be recognized represent the input data, and the universal Turing machine is the computer itself, with the instructions of the universal Turing machine corresponding to the operating system of a computer.» 
  13. Emil Post (1936), "Finite Combinatory Processes—Formulation 1", Journal of Symbolic Logic, 1, 103–105, 1936. Reimpreso en The Undecidable, p. 289ff.

Bibliografía

  • Hodges, Andrew (1983). Alan Turing: The Enigma. Reino Unido: Burnett Books/Hutchinson. ISBN 0-671-49207-1. 
  • Minsky, Marvin (1967). «Unsolvability of the Halting Problem». Computation: Finite and Infinite Machines. NJ: Prentice–Hall, Inc. 
  • Turing, A.M. (1936). «On Computable Numbers, with an Application to the Entscheidungsproblem». Proceedings of the London Mathematical Society. 2 (1937) 42: 230-265. doi:10.1112/plms/s2-42.1.230. 
  • Turing, A.M. (1938). «On Computable Numbers, with an Application to the Entscheidungsproblem: A correction». Proceedings of the London Mathematical Society. 2 (1937) 43 (6): 544-6. doi:10.1112/plms/s2-43.6.544. 

Enlaces externos

  • Sitio web de Stephen Wolfram
  • Demuestran que la máquina de Turing (2,3) es universal
  • Máquina de Turing construida sobre hardware
  • Video de máquina de Turing mecánica en YouTube


  •   Datos: Q163310
  •   Multimedia: Turing machines

máquina, turing, para, otros, usos, este, término, véase, turing, desambiguación, máquina, turing, dispositivo, manipula, símbolos, sobre, tira, cinta, acuerdo, tabla, reglas, pesar, simplicidad, máquina, turing, puede, adaptada, para, simular, lógica, cualqui. Para otros usos de este termino vease Turing desambiguacion Una maquina de Turing es un dispositivo que manipula simbolos sobre una tira de cinta de acuerdo con una tabla de reglas A pesar de su simplicidad una maquina de Turing puede ser adaptada para simular la logica de cualquier algoritmo de computador y es particularmente util en la explicacion de las funciones de una CPU dentro de un computador Originalmente fue definida por el matematico ingles Alan Turing como una maquina automatica en 1936 en la revista Proceedings of the London Mathematical Society nota 1 La maquina de Turing no esta disenada como una tecnologia de computacion practica sino como un dispositivo hipotetico que representa una maquina de computacion Las maquinas de Turing ayudan a los cientificos a entender los limites del calculo mecanico 3 4 Turing dio una definicion sucinta del experimento en su ensayo de 1948 Maquinas inteligentes Refiriendose a su publicacion de 1936 Turing escribio que la maquina de Turing aqui llamada una maquina de computacion logica consistia en una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con cuadrados en cada uno de los cuales podria imprimirse un simbolo En cualquier momento hay un simbolo en la maquina llamado el simbolo leido La maquina puede alterar el simbolo leido y su comportamiento esta en parte determinado por ese simbolo pero los simbolos en otros lugares de la cinta no afectan el comportamiento de la maquina Sin embargo la cinta se puede mover hacia adelante y hacia atras a traves de la maquina siendo esto una de las operaciones elementales de la maquina Por lo tanto cualquier simbolo en la cinta puede tener finalmente una oportunidad 5 Turing 1948 p 61 Una maquina de Turing que es capaz de simular cualquier otra maquina de Turing es llamada una maquina universal de Turing UTM o simplemente una maquina universal Una definicion mas matematicamente orientada con una similar naturaleza universal fue presentada por Alonzo Church cuyo trabajo sobre el calculo lambda se entrelaza con el de Turing en una teoria formal de la computacion conocida como la tesis de Church Turing La tesis senala que las maquinas de Turing capturan de hecho la nocion informal de un metodo eficaz en la logica y las matematicas y proporcionan una definicion precisa de un algoritmo o procedimiento mecanico La importancia de la maquina de Turing en la historia de la computacion es doble primero la maquina de Turing fue uno de los primeros si no el primero modelos teoricos para las computadoras viendo la luz en 1936 Segundo estudiando sus propiedades abstractas la maquina de Turing ha servido de base para mucho desarrollo teorico en las ciencias de la computacion y en la teoria de la complejidad Una razon para esto es que las maquinas de Turing son simples y por tanto amenas al analisis Dicho esto cabe aclarar que las maquinas de Turing no son un modelo practico para la computacion en maquinas reales las cuales precisan modelos mas rapidos como los basados en RAM Indice 1 Historia 2 Descripcion informal 3 Definicion formal 3 1 Funcionamiento de la maquina de Turing 3 2 Representacion como diagrama de estados 3 3 Descripcion instantanea 4 Ejemplo 5 Modificaciones equivalentes 5 1 Maquina de Turing con movimiento de espera 5 2 Maquina de Turing con cinta infinita a ambos lados 5 3 Maquina de Turing con cinta multipista 5 4 Maquina de Turing multicinta 5 5 Maquina de Turing multidimensional 6 Maquina de Turing determinista y no determinista 7 Problema de la parada halting problem 8 Codificacion de una maquina de Turing 9 Maquina de Turing universal 10 Maquina de Turing cuantica 11 Modelos equivalentes 12 Vease tambien 13 Notas 14 Referencias 15 Bibliografia 16 Enlaces externosHistoria Editar Estatua de Alan Turing con un retrato de fondo Representacion artistica de una maquina de Turing Alan Turing introdujo el concepto de maquina de Turing en el trabajo On computable numbers with an application to the Entscheidungsproblem publicado por la Sociedad Matematica de Londres en 1936 en el que se estudiaba la cuestion planteada por David Hilbert sobre si las matematicas son decidibles es decir si hay un metodo definido que pueda aplicarse a cualquier sentencia matematica y que nos diga si esa sentencia es cierta o no Turing ideo un modelo formal de computador la maquina de Turing y demostro que existian problemas que una maquina no podia resolver 6 Con este aparato extremadamente sencillo es posible realizar cualquier computo que un computador digital sea capaz de realizar 7 Mediante este modelo teorico y el analisis de la complejidad de los algoritmos fue posible la categorizacion de problemas computacionales de acuerdo a su comportamiento apareciendo asi el conjunto de problemas denominados P y NP cuyas soluciones pueden encontrarse en tiempo polinomico por maquinas de Turing deterministas y no deterministas respectivamente Precisamente la tesis de Church Turing formulada por Alan Turing y Alonzo Church de forma independiente a mediados del siglo XX caracteriza la nocion informal de computabilidad con la computacion mediante una maquina de Turing 8 La idea subyacente es el concepto de que una maquina de Turing puede verse como un automata ejecutando un procedimiento efectivo definido formalmente donde el espacio de memoria de trabajo es ilimitado pero en un momento determinado solo una parte finita es accesible Descripcion informal Editar Aqui se muestra el estado interno q1 dentro del cabezal y la ilustracion describe la cinta como siendo infinita y llenada previamente con 0 el simbolo sirviendo como blanco El estado completo del sistema su configuracion consiste del estado interno el contenido de las casillas sombreadas incluyendo el blanco leido el cabezal 11B y la posicion del cabezal 9 Animacion de la maquina de Turing La maquina de Turing modela matematicamente a una maquina que opera mecanicamente sobre una cinta En esta cinta hay simbolos que la maquina puede leer y escribir uno a la vez usando un cabezal lector escritor de cinta La operacion esta completamente determinada por un conjunto finito de instrucciones elementales como en el estado 42 si el simbolo visto es 0 escribe un 1 Si el simbolo visto es 1 cambia al estado 17 en el estado 17 si el simbolo visto es 0 escribe un 1 y cambia al estado 6 etc En el articulo original Sobre numeros computables con una aplicacion al Entscheidungsproblem Turing no imagina un mecanismo sino una persona a la que el llama la computadora quien ejecuta servilmente estas reglas mecanicas deterministas o como Turing pone de una manera desganada Mas precisamente una maquina de Turing consta de Una cinta que se divide en celdas una al lado de la otra Cada celda contiene un simbolo de algun alfabeto finito El alfabeto contiene un simbolo especial llamado blanco aqui escrito como B y uno o mas simbolos adicionales La cinta se supone que es arbitrariamente extensible hacia la izquierda y hacia la derecha es decir la maquina de Turing siempre es provista con tanta cinta como necesite para su computacion Las celdas que no se hayan escrito previamente se asumen que estan rellenas con el simbolo blanco En algunos modelos la cinta tiene un extremo izquierdo marcado con un simbolo especial la cinta se extiende o es indefinidamente extensible hacia la derecha Un cabezal que puede leer y escribir simbolos en la cinta y mover la cinta a la izquierda y a la derecha una y solo una celda a la vez En algunos modelos el cabezal se mueve y la cinta es estacionaria Un registro de estado que almacena el estado de la maquina de Turing uno de los estados finitos Hay un estado inicial especial con el que el registro de estado se inicia Turing escribe que estos estados reemplazan el estado de la mente en que ordinariamente estaria una persona realizando calculos Una tabla finita de instrucciones llamada ocasionalmente como tabla de accion o funcion de transicion Las instrucciones son usualmente 5 tuplas qiaj qi1aj1dk a veces 4 tuplas que dado el estado qi en que la maquina se encuentra actualmente y el simbolo aj que se esta leyendo en la cinta el simbolo actualmente debajo del cabezal le indica a la maquina hacer lo siguiente en secuencia para los modelos de 5 tupla Borra o escribe un simbolo reemplazando aj con aj1 y entonces Mueve el cabezal que es descrito por dk y puede tener los valores L para un paso a la izquierda o R para un paso a la derecha o N para permanecer en el mismo lugar y luego Asume el mismo o un nuevo estado como prescrito ve al estado qi1 En los modelos de 4 tupla son especificadas como instrucciones separadas borrar o escribir un simbolo aj1 y mover el cabezal a la izquierda o la derecha dk Especificamente la tabla indica a la maquina ia borrar o escribir un simbolo o ib mover el cabezal a la izquierda o a la derecha y luego ii asumir el mismo o un nuevo estado pero no las dos acciones ia y ib en la misma instruccion En algunos modelos si no hay ninguna entrada en la tabla para la actual combinacion de simbolo y estado la maquina se detendra otros modelos requieren que esten llenas todas las entradas dd Note que cada parte de la maquina su estado y colecciones de simbolos y sus acciones imprimir borrar movimiento de la cinta es finito discreto y distinguible es la cantidad potencialmente ilimitada de cinta lo que le da una cantidad ilimitada de espacio de almacenamiento Definicion formal EditarUna maquina de Turing 10 es un modelo computacional que realiza una lectura escritura de manera automatica sobre una entrada llamada cinta generando una salida en esta misma Este modelo esta formado por un alfabeto de entrada y uno de salida un simbolo especial llamado blanco normalmente b D displaystyle Delta o 0 un conjunto de estados finitos y un conjunto de transiciones entre dichos estados Su funcionamiento se basa en una funcion de transicion que recibe un estado inicial y una cadena de caracteres la cinta la cual puede ser infinita pertenecientes al alfabeto de entrada La maquina va leyendo una celda de la cinta en cada paso borrando el simbolo en el que se encuentra posicionado su cabezal y escribiendo un nuevo simbolo perteneciente al alfabeto de salida para luego desplazar el cabezal a la izquierda o a la derecha solo una celda a la vez Esto se repite segun se indique en la funcion de transicion para finalmente detenerse en un estado final o de aceptacion representando asi la salida Una maquina de Turing con una sola cinta puede definirse como una 7 tupla M Q S G s b F d displaystyle M Q Sigma Gamma s b F delta donde 11 Q displaystyle Q es un conjunto finito de estados S displaystyle Sigma es un conjunto finito de simbolos distinto del espacio en blanco denominado alfabeto de maquina o de entrada G displaystyle Gamma es un conjunto finito de simbolos de cinta denominado alfabeto de cinta S G displaystyle Sigma subseteq Gamma s Q displaystyle s in Q es el estado inicial b G displaystyle b in Gamma es un simbolo denominado blanco y es el unico simbolo que se puede repetir un numero infinito de veces F Q displaystyle F subseteq Q es el conjunto de estados finales de aceptacion d Q G Q G L R displaystyle delta Q times Gamma rightarrow Q times Gamma times L R es una funcion parcial denominada funcion de transicion donde L displaystyle L es un movimiento a la izquierda y R displaystyle R es el movimiento a la derecha Existe en la literatura un abundante numero de definiciones alternativas pero todas ellas tienen el mismo poder computacional por ejemplo se puede anadir el simbolo S displaystyle S como simbolo de no movimiento en un paso de computo Funcionamiento de la maquina de Turing Editar La maquina de Turing consta de un cabezal lector escritor y una cinta infinita en la que el cabezal lee el contenido borra el contenido anterior y escribe un nuevo valor Las operaciones que se pueden realizar en esta maquina se limitan a Mover el cabezal lector escritor hacia la derecha Visualizacion de una maquina de Turing en la que se ve el cabezal y la cinta que se lee Mover el cabezal lector escritor hacia la izquierda El computo se determina a partir de una tabla de estados de la forma estado valor displaystyle rightarrow nuevo estado nuevo valor direccion Esta tabla toma como parametros el estado actual de la maquina y el caracter leido de la cinta dando la direccion para mover el cabezal el nuevo estado de la maquina y el valor a escribir en la cinta La memoria es la cinta de la maquina que se divide en espacios de trabajo denominados celdas donde se pueden escribir y leer simbolos Inicialmente todas las celdas contienen un simbolo especial denominado blanco Las instrucciones que determinan el funcionamiento de la maquina tienen la forma si estamos en el estado x leyendo la posicion y donde hay escrito el simbolo z entonces este simbolo debe ser reemplazado por este otro simbolo y pasar a leer la celda siguiente bien a la izquierda o bien a la derecha La maquina de Turing puede considerarse como un automata capaz de reconocer lenguajes formales En ese sentido es capaz de reconocer los lenguajes recursivamente enumerables de acuerdo a la jerarquia de Chomsky Su potencia es por tanto superior a otros tipos de automatas como el automata finito o el automata con pila o igual a otros modelos con la misma potencia computacional Representacion como diagrama de estados EditarLas maquinas de Turing pueden representarse mediante grafos particulares tambien llamados diagramas de estados finitos de la siguiente manera Esta maquina de Turing esta definida sobre el alfabeto S a b c displaystyle Sigma a b c posee el conjunto de estados Q q o q 1 q 2 q 3 q 4 q 5 q 6 displaystyle Q q o q 1 q 2 q 3 q 4 q 5 q 6 con las transiciones que se pueden ver Su estado inicial es q 0 displaystyle q 0 y el estado final es q 2 displaystyle q 2 el lenguaje de salida G X Y Z B displaystyle Gamma X Y Z B siendo B displaystyle B el simbolo denominado blanco Esta maquina reconoce la expresion regular de la forma a n b n c n displaystyle a n b n c n con n gt 0 displaystyle n gt 0 Los estados se representan como vertices etiquetados con su nombre en el interior Una transicion desde un estado a otro se representa mediante una arista dirigida que une a estos vertices y esta rotulada por simbolo que lee el cabezal simbolo que escribira el cabezal movimiento del cabezal El estado inicial se caracteriza por tener una arista que llega a el y que no proviene de ningun otro vertice El o los estados finales se representan mediante vertices que estan encerrados a su vez por otra circunferencia Descripcion instantanea Editar Es una secuencia de la forma a 1 q a 2 displaystyle alpha 1 q alpha 2 donde a 1 a 2 G displaystyle alpha 1 alpha 2 in Gamma y q Q displaystyle q in Q que escribe el estado de una maquina de Turing La cinta contiene la cadena a 1 a 2 displaystyle alpha 1 alpha 2 seguida de infinitos blancos El cabezal senala el primer simbolo de a 2 displaystyle alpha 2 Por ejemplo para la maquina de Turing M T p q 0 1 0 1 x d p D q displaystyle MT p q 0 1 0 1 x delta p Delta q con las transiciones d p 1 p x D d p 0 p 0 D y d p D q D D displaystyle begin aligned delta p 1 amp p x D delta p 0 amp p 0 D text y delta p Delta amp q Delta D end aligned La descripcion instantanea para la cinta 1011 es p 1011 D D displaystyle p1011 Delta Delta ldots x p 011 D D displaystyle xp011 Delta Delta ldots x 0 p 11 D D displaystyle x0p11 Delta Delta ldots x 0 x p 1 D D displaystyle x0xp1 Delta Delta ldots x 0 x x p D D displaystyle x0xxp Delta Delta ldots x 0 x x q D D displaystyle x0xxq Delta Delta ldots Ejemplo EditarDefinimos una maquina de Turing sobre el alfabeto 0 1 displaystyle 0 1 donde 0 representa el simbolo blanco La maquina comenzara su proceso situada sobre un simbolo 1 de una serie La maquina de Turing copiara el numero de simbolos 1 que encuentre hasta el primer blanco detras de dicho simbolo blanco Es decir posiciona el cabezal sobre el 1 situado en el extremo izquierdo doblara el numero de simbolos 1 con un 0 en medio Asi si tenemos la entrada 111 devolvera 1110111 con 1111 devolvera 111101111 y sucesivamente El conjunto de estados es s 1 s 2 s 3 s 4 s 5 displaystyle s 1 s 2 s 3 s 4 s 5 y el estado inicial es s 1 displaystyle s 1 La tabla que describe la funcion de transicion es la siguiente Estado Simbolo leido Simbolo escrito Mov Estado sig s 1 displaystyle s 1 1 0 R displaystyle R s 2 displaystyle s 2 s 2 displaystyle s 2 1 1 R displaystyle R s 2 displaystyle s 2 s 2 displaystyle s 2 0 0 R displaystyle R s 3 displaystyle s 3 s 3 displaystyle s 3 0 1 L displaystyle L s 4 displaystyle s 4 s 3 displaystyle s 3 1 1 R displaystyle R s 3 displaystyle s 3 s 4 displaystyle s 4 1 1 L displaystyle L s 4 displaystyle s 4 s 4 displaystyle s 4 0 0 L displaystyle L s 5 displaystyle s 5 s 5 displaystyle s 5 1 1 L displaystyle L s 5 displaystyle s 5 s 5 displaystyle s 5 0 1 R displaystyle R s 1 displaystyle s 1 El funcionamiento de una computacion de esta maquina puede mostrarse con el siguiente ejemplo en negrita se resalta la posicion de la cabeza lectora escritora Paso Estado Cinta1 s 1 displaystyle s 1 112 s 2 displaystyle s 2 013 s 2 displaystyle s 2 0104 s 3 displaystyle s 3 01005 s 4 displaystyle s 4 01016 s 5 displaystyle s 5 01017 s 5 displaystyle s 5 01018 s 1 displaystyle s 1 11019 s 2 displaystyle s 2 100110 s 3 displaystyle s 3 100111 s 3 displaystyle s 3 1001012 s 4 displaystyle s 4 1001113 s 4 displaystyle s 4 1001114 s 5 displaystyle s 5 1001115 s 1 displaystyle s 1 11011ParadaLa maquina realiza su proceso por medio de un bucle en el estado inicial s 1 displaystyle s 1 reemplaza el primer 1 con un 0 y pasa al estado s 2 displaystyle s 2 con el que avanza hacia la derecha saltando los simbolos 1 hasta un 0 que debe existir cuando lo encuentra pasa al estado s 3 displaystyle s 3 con este estado avanza saltando los 1 hasta encontrar otro 0 la primera vez no habra ningun 1 Una vez en el extremo derecho anade un 1 Despues comienza el proceso de retorno con s 4 displaystyle s 4 vuelve a la izquierda saltando los 1 cuando encuentra un 0 en el medio de la secuencia pasa a s 5 displaystyle s 5 que continua a la izquierda saltando los 1 hasta el 0 que se escribio al principio Se reemplaza de nuevo este 0 por 1 y pasa al simbolo siguiente si es un 1 se pasa a otra iteracion del bucle pasando al estado s1 de nuevo Si es un simbolo 0 sera el simbolo central con lo que la maquina se detiene al haber finalizado el computo Modificaciones equivalentes EditarUna razon para aceptar la maquina de Turing como un modelo general de computo es que el modelo que hemos definido anteriormente es equivalente a muchas versiones modificadas que en principio pareciera incrementar el poder computacional Maquina de Turing con movimiento de espera Editar La funcion de transicion de la MT sencilla esta definida por d Q G Q G L R displaystyle delta Q times Gamma rightarrow Q times Gamma times L R la cual puede ser modificada como d Q G Q G L R S displaystyle delta Q times Gamma rightarrow Q times Gamma times L R S Donde S displaystyle S significa permanecer o esperar es decir no mover el cabezal de lectura escritura Por lo tanto d q s p s S displaystyle delta q sigma p sigma S significa que se pasa del estado q al p se escribe s displaystyle sigma en la celda actual y la cabeza se queda sobre la celda actual Maquina de Turing con cinta infinita a ambos lados Editar Esta modificacion se denota al igual que una MT sencilla lo que la hace diferente es que la cinta es infinita tanto por la derecha como por la izquierda lo cual permite realizar transiciones iniciales como d q 0 x q 1 y L displaystyle delta q 0 x q 1 y L Maquina de Turing con cinta multipista Editar Es aquella que mediante la cual cada celda de la cinta de una maquina sencilla se divide en subceldas Cada celda es asi capaz de contener varios simbolos de la cinta Por ejemplo la cinta de la figura tiene cada celda subdividida en tres subceldas Se dice que esta cinta tiene multiples pistas puesto que cada celda de esta maquina de Turing contiene multiples caracteres el contenido de las celdas de la cinta puede ser representado mediante n tuplas ordenadas Los movimientos que realice esta maquina dependeran de su estado actual y de la n tupla que represente el contenido de la celda actual Cabe mencionar que posee un solo cabezal al igual que una MT sencilla Maquina de Turing multicinta Editar Una MT con mas de una cinta consiste de un control finito con k cabezales lectores escritores y k cintas Cada cinta es infinita en ambos sentidos La MT define su movimiento dependiendo del simbolo que esta leyendo cada uno de sus cabezales da reglas de sustitucion para cada uno de los simbolos y direccion de movimiento para cada uno de los cabezales Inicialmente la MT empieza con la entrada en la primera cinta y el resto de las cintas en blanco Maquina de Turing multidimensional Editar Una MT multidimensional es aquella cuya cinta puede verse como extendiendose infinitamente en mas de una direccion el ejemplo mas basico seria el de una maquina bidimensional cuya cinta se extenderia infinitamente hacia arriba abajo derecha e izquierda En la modificacion bidimensional de MT que se muestra en la figura tambien se agregan dos nuevos movimientos del cabezal U D es decir arriba y abajo De esta forma la definicion de los movimientos que realiza el cabezal sera L R U D MT con cinta infinita a ambos lados MT multipista Subdivision de una celda de su cinta MT multicinta con sus cabezales de lectura escritura MT bidimensional Maquina de Turing determinista y no determinista EditarVease tambien Complejidad computacional La entrada de una maquina de Turing viene determinada por el estado actual y el simbolo leido un par estado simbolo siendo el cambio de estado la escritura de un nuevo simbolo y el movimiento del cabezal las acciones a tomar en funcion de una entrada En el caso de que para cada par estado simbolo posible exista a lo sumo una posibilidad de ejecucion se dira que es una maquina de Turing determinista mientras que en el caso de que exista al menos un par estado simbolo con mas de una posible combinacion de actuaciones se dira que se trata de una maquina de Turing no determinista La funcion de transicion d displaystyle delta en el caso no determinista queda definida como sigue d Q G P Q G L R displaystyle delta Q times Gamma rightarrow mathcal P Q times Gamma times L R Como sabe una maquina no determinista que accion tomar de las varias posibles Hay dos formas de verlo una es decir que la maquina es el mejor adivino posible esto es que siempre elige la transicion que finalmente la llevara a un estado final de aceptacion La otra es imaginarse que la maquina se clona bifurcandose en varias copias cada una de las cuales sigue una de las posibles transiciones Mientras que una maquina determinista sigue un unico camino computacional una maquina no determinista tiene un arbol computacional Si cualquiera de las ramas del arbol finaliza en un estado de aceptacion se dice que la maquina acepta la entrada La capacidad de computo de ambas versiones es equivalente se puede demostrar que dada una maquina de Turing no determinista existe otra maquina de Turing determinista equivalente en el sentido de que reconoce el mismo lenguaje y viceversa No obstante la velocidad de ejecucion de ambos formalismos no es la misma pues si una maquina no determinista M reconoce una cierta palabra de tamano n en un tiempo O t n displaystyle O t n la maquina determinista equivalente reconocera la palabra en un tiempo O 2 t n displaystyle O 2 t n Es decir el no determinismo permitira reducir la complejidad de la solucion de los problemas permitiendo resolver por ejemplo problemas de complejidad exponencial en un tiempo polinomico Problema de la parada halting problem EditarVease tambien Problema de la parada El problema de la parada o problema de la detencion halting problem en ingles para maquinas de Turing consiste en dada una MT M y una palabra w determinar si M terminara en un numero finito de pasos cuando se ejecuta usando w como entrada Alan Turing en su famoso articulo On computable numbers with an application to the Entscheidungsproblem 1936 demostro que el problema de la parada de la maquina de Turing es indecidible en el sentido de que ninguna maquina de Turing lo puede resolver Codificacion de una maquina de Turing EditarToda maquina de Turing puede codificarse como una secuencia binaria finita es decir una secuencia finita de ceros y unos Para simplificar la codificacion suponemos que toda MT tiene un unico estado inicial denotado por q 1 displaystyle q 1 y un unico estado final denotado q 2 displaystyle q 2 Tendremos que para una MT M de la forma G s 1 s 2 s m s p displaystyle Gamma s 1 s 2 ldots s m ldots s p donde s 1 displaystyle s 1 representa el simbolo blanco 0 D displaystyle Delta o b segun se desee denotar S s 2 s m displaystyle Sigma s 2 ldots s m es alfabeto de entrada y s m 1 s p displaystyle s m 1 ldots s p son los simbolos auxiliares utilizados por M cada MT utiliza su propia coleccion finito de simbolos auxiliares Todos estos simbolos se codifican como secuencias de unos Simbolo Codificacions 1 displaystyle s 1 1s 2 displaystyle s 2 11s 3 displaystyle s 3 111 s m displaystyle s m 1 m displaystyle 1 m s p displaystyle s p 1 p displaystyle 1 p Los estados de una MT q 1 q 2 q 3 q n displaystyle q 1 q 2 q 3 ldots q n se codifican tambien con secuencias de unos Simbolo Codificacionq 1 i n i c i a l displaystyle q 1 rm inicial 1q 2 f i n a l displaystyle q 2 rm final 11 q n displaystyle q n 1 n displaystyle 1 n Las directrices de desplazamiento R displaystyle R L displaystyle L y S displaystyle S se codifican con 1 11 111 respectivamente Una transicion d q a p c R displaystyle delta q a p c R se codifica usando ceros como separadores entre los estados los simbolos del alfabeto de cinta y la directriz de desplazamiento R displaystyle R Asi la transicion d q 3 s 2 q 5 s 3 R displaystyle delta q 3 s 2 q 5 s 3 R se codifica como 01110110111110111010 displaystyle 01110110111110111010 En general la codificacion de una transicion cualquiera d q i s k q j s l R displaystyle delta q i s k q j s l R es 01 i 01 k 01 j 01 l 01 t displaystyle 01 i 01 k 01 j 01 l 01 t donde t 1 2 3 displaystyle t in 1 2 3 segun la direccion sea d e r e c h a R i z q u i e r d a L e s p e r a r S displaystyle mathrm derecha R mathrm izquierda L mathrm esperar S Una MT se codifica escribiendo consecutivamente las secuencias de las modificaciones de todas sus transiciones Mas precisamente la codificacion de una MT M es de la forma C 1 C 2 C i displaystyle C 1 C 2 ldots C i donde C i displaystyle C i es la codificacion de la i displaystyle i esima transicion de M Puesto que el orden en que se representen las transiciones de una MT no es relevante una misma MT tiene varias codificaciones diferentes Esto no representa ninguna desventaja practica o conceptual ya que no se pretende que las codificaciones sean unicas Maquina de Turing universal EditarArticulo principal Maquina de Turing universal Una maquina de Turing computa una determinada funcion parcial de caracter definido e univoca definida sobre las secuencias de posibles cadenas de simbolos de su alfabeto En este sentido se puede considerar como equivalente a un programa de ordenador o a un algoritmo Sin embargo es posible realizar una codificacion de la tabla que representa a una maquina de Turing a su vez como una secuencia de simbolos en un determinado alfabeto por ello podemos construir una maquina de Turing que acepte como entrada la tabla que representa a otra maquina de Turing y de esta manera simule su comportamiento En 1947 Turing indico Se puede demostrar que es posible construir una maquina especial de este tipo que pueda realizar el trabajo de todas las demas Esta maquina especial puede ser denominada maquina universal Con esta codificacion de tablas como cadenas se abre la posibilidad de que unas maquinas de Turing se comporten como otras maquinas de Turing Sin embargo muchas de sus posibilidades son indecidibles pues no admiten una solucion algoritmica Por ejemplo un problema interesante es determinar si una maquina de Turing cualquiera se parara en un tiempo finito sobre una determinada entrada problema conocido como problema de la parada y que Turing demostro que era indecidible En general se puede demostrar que cualquier cuestion no trivial sobre el comportamiento o la salida de una maquina de Turing es un problema indecidible El concepto de Maquina de Turing universal esta relacionado con el de un sistema operativo basico pues puede ejecutar cualquier instruccion computable sobre el 12 Maquina de Turing cuantica Editar Ilustracion de una maquina de Turing cuantica En 1985 Deutsch presento el diseno de la primera Maquina cuantica basada en una maquina de Turing Con este fin enuncio una nueva variante la tesis de Church Turing dando lugar al denominado principio de Church Turing Deutsch La estructura de una maquina de Turing cuantica es muy similar a la de una maquina de Turing clasica Esta compuesta por los tres elementos clasicos Una cinta de memoria infinita en donde cada elemento es un qubit Un procesador finito Un cabezal El procesador contiene el conjunto de instrucciones que se aplica sobre el elemento de la cinta senalado por el cabezal El resultado dependera del qubit de la cinta y del estado del procesador El procesador ejecuta una instruccion por unidad de tiempo La cinta de memoria es similar a la de una maquina de Turing tradicional La unica diferencia es que cada elemento de la cinta de la maquina cuantica es un qubit El alfabeto de esta nueva maquina esta formado por el espacio de valores del qubit La posicion del cabezal se representa con una variable entera Modelos equivalentes EditarDos modelos matematicos equivalentes a los de las maquinas de Turing son las maquinas de Post creadas en forma paralela por Emil Leon Post 13 y el calculo lambda introducido por Alonzo Church y Stephen Kleene en los anos 1930 y tambien usado por Church para demostrar en 1936 el Entscheidungsproblem Vease tambien EditarTeoria de automatas Sistema combinacional Automata finito Automata con pila Maquina abstracta Maquina de Turing universal Maquina de Turing alternante Problema de la parada Jerarquia de Chomsky Juego de la vida Calculo lambdaNotas Editar Turing envio su articulo el 31 de mayo de 1936 a la London Mathematical Society para su publicacion en la revista Proceedings 1 pero no fue publicada hasta principios de 1937 2 Referencias Editar Hodges 1983 p 112 Hodges 1983 p 129 Minsky 1967 p 107 Stone 1972 p 8 See the definition of innings on Wiktionary Hodges 1983 A M Turing 1948 Intelligent Machinery manuscript The Turing Archive p 3 Gomez de Silva Garza Gomez de Silva Garza 2008 Introduccion a la computacion p 522 fechaacceso requiere url ayuda Minsky 1967 p 121 Teoria de Automatas Teoria de Automatas RAI 2012 Universidad Carlos III Perez Ivan 2005 Lenguaje y Compiladores p 137 fechaacceso requiere url ayuda Paun Gheorghe 2002 II Prerequisites Membrane Computing An Introduction en ingles Nueva York Springer Verlag ISBN 3540436014 Consultado el 24 de junio de 2012 The parallelism with a computer as we know computers in their general form is clear the code of a Turing machine is its program the strings to be recognized represent the input data and the universal Turing machine is the computer itself with the instructions of the universal Turing machine corresponding to the operating system of a computer Emil Post 1936 Finite Combinatory Processes Formulation 1 Journal of Symbolic Logic 1 103 105 1936 Reimpreso en The Undecidable p 289ff Bibliografia EditarHodges Andrew 1983 Alan Turing The Enigma Reino Unido Burnett Books Hutchinson ISBN 0 671 49207 1 Minsky Marvin 1967 Unsolvability of the Halting Problem Computation Finite and Infinite Machines NJ Prentice Hall Inc Turing A M 1936 On Computable Numbers with an Application to the Entscheidungsproblem Proceedings of the London Mathematical Society 2 1937 42 230 265 doi 10 1112 plms s2 42 1 230 Turing A M 1938 On Computable Numbers with an Application to the Entscheidungsproblem A correction Proceedings of the London Mathematical Society 2 1937 43 6 544 6 doi 10 1112 plms s2 43 6 544 Enlaces externos EditarSitio web de Stephen Wolfram Demuestran que la maquina de Turing 2 3 es universal Maquina de Turing construida sobre hardware Video de maquina de Turing mecanica en YouTube Datos Q163310 Multimedia Turing machinesObtenido de https es wikipedia org w index php title Maquina de Turing amp oldid 134538911, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos