Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.1 Definición:
La máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo
“On computable numbers, with an application to the Entscheidungs problem”, publicado por la
Sociedad Matemática de Londres, 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 construyó un
modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una
máquina no podía resolver. La máquina de Turing es un modelo matemático abstracto que formaliza
el concepto de algoritmo.
La maquina de Turing utiliza una cinta infinita como su memoria. Tiene una cabeza de la cinta
con la cual puede leer y escribir símbolos y moverse sobre la cinta. Inicialmente la cinta contiene sólo
la cadena de entrada y está en blanco en cualquier otro lugar. Si la máquina necesita almacenar
información lo puede hacer en la cinta. Para leer la información que se ha escrito, la máquina puede
mover su cabeza y colocarse sobre la información. La máquina continúa computando hasta que
decide producir una salida. La cadena de entrada es aceptada o rechazada al entrar a los estados de
aceptación o rechazo, respectivamente. Si no entra a un estado de aceptación o rechazo, la máquina
seguirá por siempre, nunca se detendrá.
La siguiente lista resume las diferencias entre una autómata finito y una máquina de Turing:
Una máquina de Turing puede escribir a una cinta y leer de ella
La cabeza de la cinta puede moverse a la izquierda y a la derecha
La cinta es infinita
Los estados especiales para aceptar y rechazar tienen efecto inmediato
Definición formal:
De manera formal, una máquina de Turing (TM de sus siglas en inglés Turing Machine) se
representa por: M=(Q, , , , q0, B, F) en donde:
Q es un conjunto finito de estados.
es el conjunto finito de símbolos de cinta admisibles.
B símbolo de , es el espacio en blanco.
subconjunto de que no incluye a B, es el conjunto de los símbolos de entrada.
es la función de movimientos siguiente, una transformación de Q x a Q x x {L, R} (
puede sin embargo, permanecer indefinida por algunos argumentos).
q0 en Q es el estado inicial.
F Q es el conjunto de estados finales.
Computabilidad y Complejidad de Algoritmos
En esta definición se supone que el valor inicial de todas las celdas de la cinta es el símbolo
B. La definición requiere que B . Generalmente permitimos que - {B}. La función de
transición transforma pares (q, ) formados por el estado actual y los símbolos de la cinta en ternas
de la forma (p, t, x), donde p es el estado siguiente, t es el símbolo escrito en la cinta y x es un
movimiento de lectura/escritura de la cabeza, que puede ser L o R, según que el movimiento sea
hacia la izquierda o hacia la derecha (nos imaginamos que la cinta se extiende de izquierda a
derecha).
Por ejemplo, la transición (q1, a)=(q5, b, R) provoca que la TM pase de una configuración
figura 5.2. A la configuración de la figura 5.3.
a b b a b b
Cabeza de
Cabeza de lectura/escritura
lectura/escritura
Figura. 5.2 Estado interno q1. Figura. 5.3 Estado interno q1.
Q ={q1, q2}
={a, b}
={a, b, B}
F ={q2}
q0 =q1
y dada por la siguiente tabla::
los datos de también se pueden listar de la siguiente manera:
Estados a b B
q1 (q1, a, R) -- (q2,B, R)
q2 -- -- --
Q3
1. (q1, a) = (q1, a, R)
2. (q1, B) = (q2, B,R)
Esta máquina de Turing para en el estado q2, sólo si se analiza una cadena de cero o más a’s.
Las notaciones * y +
tienen el significado usual “cero o más” o “una o más”,
respectivamente.
Cuando (q, a) está indefinido y la configuración de la máquina de Turing es imposible que
pase a otra se dice que la máquina de Turing está parada. La secuencia de todos los movimientos
que conducen a una configuración de parada se llama computación. Para los casos donde la
máquina de Turing nunca parará se dice, que la máquina se encuentra en un bucle infinito.
L(M) = {w *
| q1w * w1pw2 para p F y wi *
}
Los lenguajes aceptados por las máquinas de Turing se conocen como lenguajes recursivamente
enumerables.
El siguiente grafo muestra una máquina de Turing transforma una cadena de la forma anbam en an+mb
mediante la siguiente función de transición:
(q1, a) = (q1, a, R)
(q1, b) = (q2, a, R)
(q2, a) = (q2, a, R)
(q2, Б) = (q3, Б, L)
(q3, a) = (q4, b, L)
(q4, a) = (q4, a, L)
(q4, Б) = (q5, Б, R)
(q1, a) = (q2, c, R)
(q2, a) = (q2, a, R)
(q2, d) = (q2, d, R)
(q3, b) = (q3, d, L)
(q3, d) = (q3, d, L)
(q3, a) = (q3, a, L)
(q3, c) = (q1, c, R)
(q1, d) = (q4, d, R)
(q4, d) = (q4, d, R)
(q4, Б) = (q5, Б, L)
Computabilidad y Complejidad de Algoritmos
c/c
a/a a/a
a/c b/d
q q q
d/d
d/d d/d
Б/Б
q q
d/d
L(M) = {w *
| qw * upv para p F y u, v }
*
Sea M = (Q, , s, F, ) un autómata finito determinista. Se puede construir una máquina de Turing
M’ = (Q’, ', , s’, Б, F’, ’) para la cual L(M) = L(M’) por medio de:
Sea M un autómata de pila no determinista. Podemos construir una máquina de Turing que emule el
comportamiento de M. Supongamos un MT con dos cintas, la primera contendrá la cadena de
entrada y la segunda se utilizará para almacenar la pila. Un apilamiento se emula moviendo la
cabeza de la segunda cinta a la derecha y escribiendo el símbolo que se apilará.
Consideremos el siguiente ADPND dado por
Este ADPND reconoce anbn. La máquina de Turing empezará en el estado q’. Primero se marca el
fondo de la pila en la cinta 2. Por tanto, tendremos las transiciones
de la máquina de Turing.
Definición 5.4.1. Una gramática no restringida (que también se conoce como una gramática
estructurada por frase) es una 4-tupla G = (N, , S, P), donde
Definición 5.5.1. Una gramática G = (N, , S, P) es una gramática sensible al contexto si todas las
producciones son de la forma , donde , (N )+ y | | | |.
Lema 5.5.2. El conjunto de los lenguajes sensibles al contexto contiene al conjunto de los lenguajes
independientes del contexto.
Lema 5.5.3. Sea G = (N, , S, P) una gramática sensible al contexto. Entonces, existe una gramática
G1 = (N1, , S1, P1) sensible al contexto, para la cual L(G) = L(G1) y S1 nunca aparece en el lado
derecho de una producción de P1.
Lema 5.5.4. Sea G = (N, , S, P) una gramática sensible al contexto. Entonces, existe una una
máquina de Turing T, que para sobre toda entrada y acepta L(G).
Lema 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al contexto.
Teorema 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los lenguajes
independientes del contexto. A su vez, los lenguajes recursivos contienen, propiamente, a los
lenguajes sensibles al contexto.
Teorema 5.5.8. Sobre un alfabeto dado, el conjunto de los lenguajes recursivamente enumerable
contienen propiamente a los lenguajes recursivos que contienen propiamente al conjunto de los
Computabilidad y Complejidad de Algoritmos
Una máquina de Turing es un autómata que se mueve sobre una secuencia lineal de datos. En cada
instante la máquina puede leer un solo dato de la secuencia (generalmente un carácter) y realiza
ciertas acciones en base a una tabla que tiene en cuenta su "estado" actual (interno) y el último dato
leído.
Entre las acciones está la posibilidad de escribir nuevos datos en la secuencia; recorrer la secuencia
en ambos sentidos y cambiar de "estado" dentro de un conjunto finito de estados posibles.
Computabilidad y Complejidad de Algoritmos
Para ilustrar la robustez del modelo de la máquina de Turing, hagamos una variación de la
función de transición permitida. En la definición original, la función de transición fuerza a la cabeza
de la cinta a moverse a la izquierda o a la derecha después de cada paso, la cabeza de la cinta no
puede permanecer sin movimiento. Supongamos que le damos a la máquina de Turing la habilidad
para que la cabeza de la cinta permanezca sin movimiento. La función de transición tendría la forma
δ: Q x Γ → Q x Γ x { L, R, S }. ¿ Permitirá esta nueva característica aceptar reconocer lenguajes
adicionales, dando más poder al modelo ? Por supuesto que no, ya que es posible convertir este
nuevo tipo de MT en una MT original.
Este pequeño ejemplo contiene la clave para mostrar la equivalencia de las variantes de la
máquina de Turing. Para mostrar que dos modelos son equivalentes simplemente hay que mostrar
que podemos simular un modelo en el otro.
Una máquina de Turing multicinta es como una máquina ordinaria con muchas cintas. Cada
cinta tiene su propia cabeza de la cinta. Inicialmente la cadena de netrada se encuentra en la cinta 1
y las otras cintas están en blanco. La función de transción se modifica para permitir la lectura,
escritura y movimiento de todas las cintas simultáneamente. Formalmente, se define como
δ: Q x Γk → Q x Γk x { L, R }k,
significa que, si la máquina se encuentra en el estado qi y las cabezas 1 a la k están leyendo los
símbolos a1 hasta ak, la máquina va al estado qj, escribe los símbolos b1 hasta bk y mueve cada
cabeza a la izquierda o derecha según se especifica.
Pareciera que las máquinas de Turing multicinta son más poderosas que las máquinas de
Turing ordinarias, pero podemos mostrar que son equivalentes. Recordemos que dos máquinas son
equivalentes si reconocen el mismo lenguaje.
Computabilidad y Complejidad de Algoritmos
Cada máquina de Turing multicinta tiene una máquina de Turing ordinaria equivalente.
DEMOSTRACIÓN
Mostramos como convertir una MT multicinta M a una MT S con una sóla cinta. La idea
principal es mostrar como simular M con S.
a. # w1 w2 … wn # Џ # Џ # … #
2) Para simular un movimiento, S barre su cinta desde el primero hasta el último símbolo #
para determinar los símbolos bajo las cabezas virtuales. Después S
hace un segundo barrido para actualizar las cintas de acuerdo a como
dicta la función de transición de M.
3) Si en algún punto S mueve una de las cabezas virtuales a la derecha sobre un símbolo
#, esta acción significa que M ha movido la cabeza correspondiente sobre la porción de
cinta aún no leída (con símbolos blancos). De tal forma que S escribe un símbolo
blanco en su cinta y recorre una posición todos los símbolos desde ahí hasta el símbolo
# más a la derecha. Después continua la simulación como antes.”
Computabilidad y Complejidad de Algoritmos
Corolario
DEMOSTRACIÓN
Un lenguaje reconocido por Turing es reconocido por una máquina de Turing ordinaria, la cual
es un caso especial de una máquina de Turing multicinta. Esto prueba una dirección del
corolario. La otra dirección se probó en el teorema anterior.
Una máquina de Turing indeterminista se define de la forma esperada. En cada punto en una
computación la máquina puede proceder de acuerdo a varias posibilidades. La función de transición
para una máquina de Turing indeterminista tiene la forma
δ: Q x Γ → P(Q x Γ x { L, R })
Cada máquina de Turing indeterminista tiene una máquina de Turing ordinaria (determinista)
equivalente.
IDEA DE LA DEMOSTRACIÓN
DEMOSTRACIÓN
………………………………………………………………………………………………………………………
………………………
Corolario
DEMOSTRACIÓN
………………………………………………………………………………………………………………………
………………………
Corolario
4.2.3. Enumeradores
Un enumerador es una máquina de Turing con una impresora, la cual puede utilizarse como
un dispositivo de salida para imprimir cadenas. La siguiente figura muestra un esquema de este
modelo.
Computabilidad y Complejidad de Algoritmos
DEMOSTRACIÓN
M = “Ignorar la entrada w:
1. Repetir lo siguiente para i = 1, 2, 3, …
2. Ejecutar M para i pasos sobre cada entrada s1, s2, … si
3. Si cualquier computación acepta, imprimir la sk correspondiente