Вы находитесь на странице: 1из 12

TECNOLOGIA EN REDES Y TELECOMUNICACIONES

NOMBRE:

CARLOS YAJAMIN

TEMA

DESCRIPCION DE LA MAQUINA DE TURING

FECHA

19 DE AGOSTO DEL 2010

Máquina de Turing

De Wikipedia, la enciclopedia libre


Saltar a navegación, búsqueda

Máquina de Turing (MT) 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á conformado 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 es finita por la izquierda) pertenecientes al alfabeto de
entrada. Luego va leyendo una celda de la cinta, borrando el símbolo, escribir el
nuevo símbolo perteneciente al alfabeto de salida y finalmente avanza a la
izquierda o a la derecha(solo una celda a la vez), repitiendo esto 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.
Contenido

[ocultar]

1 Historia
2 Definición formal
o 2.1 Funcionamiento
o 2.2 Representación como diagrama de estados.
o 2.3 Descripción instantánea(DI).
3 Ejemplo
4 Modificaciones Equivalentes
o 4.1 Máquina de Turing con movimiento "Stay" o "Esperar"
o 4.2 Máquina de Turing con cinta infinita a ambos lados
o 4.3 Máquina de Turing con cinta multipista
o 4.4 Máquina de Turing con multicintas
o 4.5 Máquinas de Turing Multidimensionales
5 Máquinas de Turing deterministas y no deterministas
6 Problema de la parada (halting problem)
7 Codificación de una máquina de Turing
8 Máquina Universal de Turing
9 Máquina de Turing Cuántica
10 Véase también
11 Enlaces externos
12 Referencias
o 12.1 Notas al pie
o 12.2 Bibliografía

Historia

Diagrama artístico de una máquina de Turing.

El concepto de Máquina de Turing fue introducido por Alan 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 cual 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.
Con este aparato extremadamente sencillo es posible realizar cualquier cómputo
que un computador digital sea capaz de realizar.

Mediante este modelo teórico y el análisis de complejidad de 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 en tiempo polinómico son encontradas según el determinismo y
no determinismo respectivamente de la máquina de Turing.

De hecho, se puede probar matemáticamente que para cualquier programa de


computadora es posible crear una máquina de Turing equivalente. Esta prueba
resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church,
de forma independiente a mediados del siglo XX.[1]

La idea subyacente es el concepto de que una máquina de Turing es una persona


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.

[editar] Definición formal

Una máquina de Turing con una sola cinta puede ser definida como una 7-tupla
, donde:[2]

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.

Existen 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.

[editar] Funcionamiento

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:

avanzar el cabezal lector/escritor hacia la derecha.


Visualización de una Maquina de Turing, en la que se ve el cabezal y la cinta
que se lee

avanzar el cabezal lector/escritor hacia la izquierda.

El cómputo es determinado 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 ser escrito en la cinta.

La memoria será la cinta la cual 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.

[editar] Representación como diagrama de estados.

Las maquinas de Turing se pueden representar mediante grafos particulares,


también llamados diagramas de estados finitos, de la siguiente manera:
Esta Máquina de Turing está definido sobre el alfabeto Σ={a,b,c}, posee el conjunto
de estados Q={qo,q1,q2,q3,q4,q5,q6}, con las transiciones que se pueden ver. Su
estado inicial es q1 y el estado final es q2, el lenguaje de salida
={X,Y,Z,B} siendo B el símbolo denominado Blanco . Esta Máquina reconoce la
expresión regular de la forma {a^n b^n c^n,n>=0} .

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 esta 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,
proveniente 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.

[editar] Descripción instantánea(DI).

Secuencia de la forma α1qα2 donde α1,α2 y . Describe la situación de


una MT La cinta contiene la cadena α1α2 seguida de infinitos blancos. El cabezal
señala el primer símbolo de α2. ejemplo:
Para la MT=({p,q},{0,1},{0,1,x}, δ,p,Δ,{q}) con las transiciones
δ(p,1)=(p,x,D) δ(p,0)=(p,0,D)
δ(p,Δ)=(q,Δ,D)
Realizaremos la DI para la cinta 1011.

p1011ΔΔ.. → xp011ΔΔ.. → x0p11ΔΔ.. → x0xp1ΔΔ.. → x0xxpΔΔ.. → x0xxqΔΔ..

[editar] Ejemplo

Definimos una máquina de Turing sobre el alfabeto {0,1}, 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, situada 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 se puede mostrar 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 s1,


reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hacia la
derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra
pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la
primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1.
Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los
1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 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 su cómputo.

[editar] 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.
[editar] Máquina de Turing con movimiento "Stay" o "Esperar"

La función de transición de la MT sencilla esta definida por δ :Q x Γ → Q x Γ x {L, R},


la cual puede ser modificada como δ: Q x Γ → Q x Γ x {L, R, S} . Donde S significa
"permanecer" o "esperar", es decir no mover el cabezal de lectura/escritura. Por lo
tanto δ(q, σ ) = (p, σ’, S) significa que se pasa del estado q al p, se escribe σ’ en la
celda actual y la cabeza se queda sobre la celda actual.

[editar] 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 δ(q0, x) = (q1, y, L).

Subdivisión de una celda de la cinta.

[editar] 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 subcelda es capaz de contener símbolos de la cinta. La
cinta 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 está 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.

Diagrama de una Máquina de Turing multicintas, las flechas indican los cabezales
de Lectura/Escritura.
[editar] Máquina de Turing con multicintas

Una MT con más de una cinta consiste de un control finito con k cabezales
lectore/escritores y k cintas. Cada cinta es infinita en ambos sentidos. la MT define
su movimiento dependiendo del símbolo que esta 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.

[editar] Máquinas de Turing Multidimensionales

Una MT multidimensional es aquella cuya cinta puede verse como extendiéndose


infinitamente en mas de una direccion, el ejemplo mas basico sería el de una
máquina bidimensional cuya cinta se extendería infinitamente hacia arriba, abajo,
derecha e izquierda.

En esta modificación de la MT también se agrega 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}.

[editar] Máquinas de Turing deterministas y no deterministas

Véase también: Complejidad computacional

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 las acciones a tomar en función de una entrada.
En el caso de que para cada par estado y 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 cuál de las varias actuaciones tomar?
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 eventualmente 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 solo "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 O(t(n)), la máquina determinista equivalente reconocerá la
palabra en un tiempo O(2t(n)). 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.

[editar] Problema de la parada (halting problem)

Véase también: problema de la parada

El problema de la parada o problema de la detención (halting problem en


ingles) 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 es ejecutada
usando w como dato de 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.

[editar] Codificación de una máquina de Turing

Toda máquina de Turing se puede codificar 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 q1, y un único
estado final denotado q2. Tendremos que para una MT M de la forma
Γ= {s1,s2,.....,sm,....,sp}
donde s1 representa el símbolo blanco 0, Δ o b(según se desee denotar), Σ =
{s2,.....,sm} es alfabeto de entrada y sm + 1,...,sp 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
s1 1
s2 11
s2 111
. .
. .
. .
sm 1m
sp 1p

Los estados de una MT, q1,q2,q3,...,qn, se codifican también con secuencias de unos:

Símbolo Codificación
q1(inicial) 1
q2(final) 11
. .
. .
. .
qn 1n

Las directrices de desplazamiento R,L y S se codifican con 1,11,111,


respectivamente. Una transición δ(q, a ) = (p, c, R) se codifica usando ceros como
separadores entre los estados, los símbolos del alfabeto de cinta y la directriz de
desplazamiento R. Así, la transición δ(q3,s2) = (q5,s3, R) se codifica como
01110110111110111010. En general, la codificación de una transición cualquiera
δ(qi,sk) = (qj,st, R) es 01i01k01j01l01t donde t= 1 ó 2 ó 3, según la dirección sea
derecha(R), izquierda(L), esperar(S). Una MT se codifica escribiendo
consecutivamente las secuencias de las modificaciones de todas sus
transiciones.Mas precisamente, la codificación de una MT M es de la forma C1C2...Ci
donde Ci son las codificaciones de las transiciones 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.

[editar] Máquina Universal de Turing

Una máquina de Turing computa una determinada función parcial de carácter


definido, y 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.

Esta fue, posiblemente, la idea germinal del concepto de Sistema Operativo, un


programa que puede, a su vez, ejecutar en el sentido de controlar otros programas,
demostrando su existencia, y abriendo camino para su construcción real.

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.

[editar] 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
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 que cada elemento es un QuBit


Un procesador finito
Un cursor

El procesador contiene el juego de instrucciones que se aplica sobre el elemento de


la cinta señalado por el cursor. 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.

El cursor es el elemento que comunica la unidad de memoria y el procesador. Su


posición se representa con una variable entera.

Вам также может понравиться