• No se han encontrado resultados

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía

N/A
N/A
Protected

Academic year: 2021

Share "7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía"

Copied!
16
0
0

Texto completo

(1)

7.1 M´

aquina de Turing

7.5 Modificaciones de la m´

aquina de

Turing

Una raz´on para aceptar a la m´aquina de Turing como un modelo general de c´omputo es que el modelo con el que hemos estado trabajando hasta ahora es equivalente a muchas versiones modificadas que en principio parecieran incre-mentar el poder computacional.

Cinta infinita de doble v´ıa

Una m´aquina de Turing con una cinta infinita de doble v´ıa se denota por M = (Q, Σ, Γ, δ, q0, B, F ), como en el modelo original. Como su nombre lo

indica, la cinta es infinita tanto hacia la izquierda como hacia la derecha. De-notamos una DI de tal dispositivo de la misma manera que en la MT con cinta semi-infinita. Existe bloques infinitos de celdas tanto a la derecha como a la izquierda de la porci´on no blanca en la cinta.

La relaci´on M, que relaciona dos DI si la DI de la derecha se obtiene a partir

de la izquierda por un solo movimiento, se define como para el modelo orig-inal con excepci´on de que si δ(q, X) = (p, Y, L), entonces qXα MpBY α, y si

δ(q, X) = (p, B, R), entonces qXα Mpα.

La DI inicial es q0w. Mientras que en el modelo original se ten´ıa un extremo

izquierdo en la cinta, no hay extremo izquierdo de la cinta, para la m´aquina de Turing de doble v´ıa, as´ı es que podemos avanzar tan lejos como queramos hacia la izquierda.

Teorema 7.1: Una m´aquina de Turing con cinta infinita de doble v´ıa reconoce a L si y s´olo si L es reconocido por una MT con cinta infinita de una sola v´ıa. Demostraci´on: La demostraci´on que una MT con cinta infinita de doble v´ıa simula a una MT con una cinta infinita de una v´ıa es f´acil. La primera m´aquina marca la celda a la izquierda de la posici´on inicial de la cabeza y luego simula la segunda m´aquina. Si durante la simulaci´on se alcanza la celda marcada, entonces termina la simulaci´on sin aceptar la entrada.

Rec´ıprocamente, sea M2 = (Q2, Σ2, Γ2, δ2, q2, B, F2) una MT con cinta infinita

de doble v´ıa. Se construye M1, una MT que simula a M2 y tiene una cinta

que es infinita s´olo por la derecha. M1 tiene dos pistas, una para representar

las celdas de la cinta de M2 por la derecha, e incluye, la celda que inicialmente

fue explorada, la otra es para representar, en orden inverso, las celdas a la izquierda de la celda inicial. La relaci´on entre las cintas de M2 y M1 se

mues-tra en la Figura, con la celda inicial de M2 numerada con 0, las celdas a la

(2)

A−5 A−4 A−3 A−2 A−1 A0 A1 A2 A3 A4 A5 A0 A1 A2 A3 A4 A5 A−1 A−2A−3 A−4 A−5

c

...

...

(a)

...

(b)

(a) Cinta de M2. (b) Cinta de M1

La primera celda de la cinta de M1 tiene el s´ımbolo c en la pista inferior, que

indica que es la celda m´as a la izquierda. El control finito en M1 dice si M2

explora un s´ımbolo que aparece en la pista superior o inferior de M1.

Es evidente que M1 se construy´o para simular a M2, en el sentido que mientras

la cabeza de M2 est´e a la derecha de la posici´on inicial, M1 trabajar´a en la

pista superior. Mientras que M2 est´e a la izquierda de la posici´on inicial de la

cabeza de la cinta M1 trabajar´a en su pista inferior, moviendose en la direcci´on

opuesta a la direcci´on en la cual se mueve M2. Los s´ımbolos de entrada en

M1 son s´ımbolos con un blanco en la pista inferior y un s´ımbolo de entrada

en M2 sobre la pista superior. Tal s´ımbolo se identifica con el correspondiente

s´ımbolo de entrada en M2. B se identifica con [B, B].

Damos la construcci´on formal de M1 = (Q1, Σ1, Γ1, δ1, q1, B, F1). Los estados,

Q1, en M1son todos los objetos de la forma [q, U ] o [q, D], donde q ∈ Q2, uni´on

el s´ımbolo q1. Note que la segunda componente indica si M1 est´a trabanjando

en la pista superior (U ) o inferior (D). El alfabeto de la cinta Γ1 consiste de

todos los objetos de la forma [X, Y ], donde X, Y ∈ Γ2. De hecho, Y puede ser

c, s´ımbolo que no pertenece a Γ2. Σ1 consiste de todos los s´ımbolos [a, B],

donde a ∈ Σ2. F = {[q, U ], [q, D] | q ∈ F2}. δ se define como:

1) Para cada a ∈ Σ2∪ {B},

δ1(q1, [a, B]) = ([q, U ], [X, c], R) si δ2(q2, a) = (q, X, R).

Si M2 se mueve a la derecha en el primer movimiento, M1 imprime el

s´ımbolo c en la pista inferior para marcar el fin de la cinta, la segunda

componente del conjunto es U , y se mueve a la derecha. La primera componente del estado en M1 tiene el estado de M2. Sobre la pista

superior, M1 imprime el s´ımbolo X que se imprimi´o por M2.

2) Para cada a ∈ Σ2∪ {B},

δ1(q1, [a, B]) = ([q, D], [X, c], R) si δ2(q2, a) = (q, X, L).

Si M2 se mueve a la izquierda en su primer movimiento, M1 registra el

siguiente estado en M2 e imprime el s´ımbolo en M2 como en (1) pero la

(3)

vez, c se imprime en la pista inferior para marcar el fin izquierdo de la

cinta.

3) Para cada [X, Y ] ∈ Γ1, con Y 6= c, y A = L o R

δ1([q, U ], [X, Y ]) = ([p, U ], [Z, Y ], A) si δ2(q, X) = (p, Z, A).

M1 simula a M2 sobre la pista superior.

4) Para cada [X, Y ] ∈ Γ1 con Y 6= c,

δ1([q, D], [X, Y ]) = ([p, D], [X, Z], A) si δ2(q, Y ) = (p, Z, ¯A).

Aqu´ı A = L si ¯A = R, y A = R si ¯A = L. M1 simula a M2 sobre la

pista inferior en M1. La direcci´on del movimiento de la cabeza en M1 es

opuesta a la de M2.

5) δ1([q, U ], [X, c]) = δ1([q, D], [X, c])

= ([p, C], [Y, c], R)

si δ2(q, X) = (p, Y, A).

Aqu´ı C = U si A = R, y C = D si A = L. M1 simula un movimiento

de M2 sobre la celda inicialmente explorada por M2. Luego M1 trabaja

sobre la pista superior o inferior, dependiendo de la direcci´on en la cual se mueva M2. M1 en esta situaci´on siempre se mover´a hacia la derecha.



aquinas de Turing multi-cinta

Una m´aquina de Turing multi-cinta se muestra en la siguiente figura:

Control Finito

... ...

... ...

... ...

Consiste de un control finito con k cabezas de cinta y k cintas; cada cinta es infinita en ambas direcciones. En un solo movimiento, dependiendo del estado del control finito y de los s´ımbolos explorados por cada cabeza de cinta, la m´aquina puede:

1) Cambiar de estado;

2) Imprimir un nuevo s´ımbolo en cada una de las celdas exploradas por las cabezas de las cintas;

(4)

3) Mover cada una de las cabezas de cinta, independientemente, una celda hacia la izquierda o derecha, o mantenerlas quietas.

Inicialmente, la entrada aparece en la primera cinta, y las otras cintas est´an en blanco.

Teorema 7.2: Si un lenguaje L es aceptado por una m´aquina de Turing multi-cinta, es aceptado por una m´aquina de Turing con una sola cinta.

Demostraci´on: Sea L el lenguaje aceptado por M1, una MT con k cintas.

Se construye una MT M2 con una cinta y 2k pistas, dos pistas por cada cinta

en M1. Una pista registra el contenido de la cinta correspondiente en M1 y la

otra est´a en blanco, excepto para la celda que marca la posici´on de la cabeza correspondiente en M1. El arreglo es el siguiente:

A1 A2 Am B1 B2 Bm C1 C2 Cm Cabeza 1 Cinta 1 Cabeza 2 Cinta 2 Cabeza 3 Cinta 3 X ... ... ... X ... ... X ... ...

El control finito de M2 almacena el estado de M1, junto con el contador del

n´umero de marcadores de cabeza ubicados a la derecha de la posici´on actual de la cabeza de M2.

Cada movimiento en M1se simula por el barrido de izquierda a derecha y luego

de derecha a izquierda de la cabeza de la cinta de M2. Al inicio, la cabeza de M2

est´a en la celda m´as a la izquierda que contenga el marcador de una cabeza de M1. Para simular un movimiento de M1, M2 inicia el barrido hacia la derecha,

visitando cada una de las celdas con marcadores de cabeza y registrando el s´ımbolo explorado por cada cabeza de M1. Cuando M2 cruza un marcador,

actualiza el contador de marcadores de cabeza ubicados a su derecha. Cuando no hay m´as marcadores a la derecha, M2 ha visto todos los s´ımbolos explorados

por las cabezas de M1, as´ı M2 tiene suficiente informaci´on para determinar el

movimiento de M1. Ahora M2 realiza un paso hacia la izquierda hasta que

alcance la marca de la cabeza ubicada m´as a la izquierda. El contador de mar-cadores a la derecha le permite a M2 saber cuando ha avanzado lo suficiente.

Conforme M2 atraviesa cada marcador de las posiciones de las cabezas llendo

hacia la izquierda, actualiza el s´ımbolo de M1 “explorado” por ese marcador

de cabeza, y mueve el marcador de cabeza un s´ımbolo a la izquierda o derecha para simular el movimiento de M1. Finalmente, M2 cambia el estado de M1

registrado en el control de M2 para terminar la simulaci´on de un movimiento

de M1. Si el nuevo estado de M1 es de aceptaci´on, entonces M2 lo acepta. 

(5)

sola cinta, moviendo la cabeza de la cinta hacia atr´as y adelante, checando s´ımbolos en ambos extremos y compar´andolos. El proceso es similar al ejem-plo de la secci´on 7.4.

Para reconocer a L con una MT con dos cintas, la entrada se copia a la se-gunda cinta. La entrada en la primera cinta se compara con el de la otra cinta al rev´es moviendo las cabezas en direcciones opuestas, se verifica la longitud de la entrada para asegurarse que sea par.

Note que el n´umero de movimientos usados para reconocer a L en una m´aquina con una sola cinta es aproximadamente el cuadrado de la longitud de la en-trada, mientras que en una m´aquina de dos cintas, un tiempo proporcional a la longitud de la entrada es suficiente.

aquinas de Turing no determin´ısticas

Una m´aquina de Turing no determin´ıstica es un dispositivo con un control finito y una sola cinta semi-infinita. Para un estado y un s´ımbolo explorado por la cabeza de la cinta, la m´aquina tiene una cantidad finita de selecciones para el siguiente movimiento. Cada selecci´on consiste de un nuevo estado, un s´ımbolo en la cinta para imprimir y una direcci´on para el movimiento de la cabeza.

Las m´aquinas de Turing no determin´ısticas aceptan una entrada si existe alguna secuencia de selecciones de movimientos que llevan a un estado de aceptaci´on.

Como con los aut´omatas finitos, la adici´on del nodeterminismo en m´aquinas de Turing no permiten aceptar nuevos lenguajes.

Teorema 7.3: Si L es aceptado por una m´aquina de Turing no determin´ıstica M1, entonces L es aceptado por alguna m´aquina de Turing determin´ıstica M2.

Demostraci´on: Para cualquier estado y s´ımbolo en la cinta de M1, existe

un n´umero finito de selecciones para el siguiente movimiento. Estas pueden ser numeradas por 1,2,..., sea r el n´umero m´aximo de selecciones para cualquier par estado-s´ımbolo de la cinta. Entonces cualquier secuencia finita de selec-ciones se puede representar por una secuencia de d´ıgitos del 1 al r. No todas las secuencias representan la selecci´on de movimientos, ya que en algunas situa-ciones puede haber menos de r selecsitua-ciones.

M2 tiene tres cintas. La primera contiene la entrada. En la segunda, M2

gen-era secuencias de d´ıgitos del 1 al r de mangen-era sistem´atica. Especialmente, las secuencias podr´ıan ser generadas con la primera m´as corta que aparezca. Secuencias de igual longitud son generadas en orden numerico.

Para cada secuencia generada en la cinta 2, M2 copia su entrada a la cinta 3

y simula M1 en esta cinta, usando la secuencia de la cinta 2 para decidir los

movimientos de M1. Si M1 entra en un estado de aceptaci´on, M2 tambi´en lo

hace. Si existe una secuencia de selecciones que lleven a la aceptaci´on, estas eventualmente se generan en la cinta 2. En alg´un momento M2 tambi´en acepta

(6)

su entrada. Pero si no hay secuencia de selecciones de movimientos en M1 que

lleven a la aceptaci´on, M2 tampoco acepta. 

aquinas de Turing

multidimensionales

Consideremos otra modificaci´on de las m´aquinas de Turing, las m´aquinas de Turing multidimensionales. El dispositivo tiene el control finito usual, pero la cinta consiste de arreglos k-dimensionales de celdas infinitas en las 2k direc-ciones, para alg´un k fijo. Dependiendo del estado y del s´ımbolo explorado, el dispositivo cambia su estado, imprime un s´ımbolo nuevo, y mueve la cabeza de la cinta en una de las 2k direcciones, positivamente o negativamente, a lo largo de cada uno de los k ejes. Inicialmente, la entrada est´a a lo largo de un eje, y la cabeza est´a en el extremo izquierdo de la entrada.

En cualquier momento, s´olo un n´umero finito de renglones en cualquier di-mensi´on contienen s´ımbolos no blancos, y cada uno de estos renglones tienen s´olo un n´umero finito de s´ımbolos no blancos. Por ejemplo, considere la si-guiente configuraci´on de la cinta de una MT 2-dimensional (o bidimensional):

B B B a1 B B B

B B a2 a3 a4 a5 B

a6 a7 a8 a9 B a10 B

B a11 a12 a13 B a14 a15

B B a16 a17 B B B

El rect´angulo se puede representar rengl´on por rengl´on en una sola cinta, por ejemplo:

**BBBa1BBB∗BBa2a3a4a5B∗a6a7a8a9Ba10B∗Ba11a12a13Ba14a15∗BBa16a17BBB∗

∗. Los *’s separan los renglones. Se usa una segunda pista para indicar la posici´on de la cabeza de la cinta de la MT bidimensional.

Se demostrar´a que una MT unidimensional puede simular a una MT bidimen-sional.

Teorema 7.4: Si L es aceptado por una MT bidimensional M2, entonces L

es aceptado por una MT unidimensional M1.

Demostraci´on: M1 representa la cinta de M2 como se vio anteriormente. M1

tambi´en tiene una segunda cinta que se usa para el prop´osito que se describe, y la cintas son infinitas de doble v´ıa. Suponga que M2 hace un movimiento en

el cual la cabeza no se sale del rect´angulo ya representado por la cinta de M1.

Si el movimiento es horizontal, M1 mueve simplemente su cabeza una celda

hacia la izquieda o hacia la derecha despu´es de imprimir un nuevo s´ımbolo y cambiar el estado de M2 registrado en el control de M1. Si el movimiento

es vertical, T1 usa su segunda cinta para contar el n´umero de celdas entre la

posici´on de la cabeza y el * a la izquierda. Entonces M1 se mueve al * hacia la

(7)

es hacia arriba, y pone la cabeza de la cinta en la posici´on correspondiente en el bloque nuevo (regi´on entre *’s) usando el contador de la segunda cinta. Ahora consideremos la situaci´on cuando la cabeza de M2 se mueve fuera del

rect´angulo representado por M1. Si el movimiento es vertical, se a˜nade un

nuevo bloque de blancos en la izquierda o en la derecha, se usa la segunda cinta para contar la longitud actual de los bloques. Si el movimiento es hori-zontal, M1usa la t´ecnica de “corrimiento” para a˜nadir un blanco a los extremos

izquierdo o derecho de cada bloque, seg´un corresponda. Note que el doble * marca los extremos de la regi´on usada para almacenar los bloques, as´ı M1

puede decir cuando ha aumentado todos los bloques. Despu´es de crear espacio para hacer el movimiento, M1 simula el movimiento de M2 como se describi´o

arriba. 

aquinas de Turing multi-cabeza

Una m´aquina de Turing con k cabezas tiene un n´umero fijo, k, de cabezas. Las cabezas se numeran de 1 a k, y los movimientos de la MT dependen del es-tado y del s´ımbolo explorado por cada cabeza. En un movimiento, las cabezas pueden cada una moverse independientemente hacia la izquierda, derecha o quedarse quietas.

Teorema 7.5: Si L es aceptado por alguna MT M1 con k cabezas, entonces

L es aceptado por una MT M2 con una cabeza.

Demostraci´on: La demostraci´on es similar a la del Teorema 7.2. M2 tiene

k + 1 pistas en la cinta, la ´ultima tiene la cinta de M1 y las otras i’s tienen una

marca que indican la posici´on de la i-´esima cabeza de cinta para 1 ≤ i ≤ k. 

aquinas de Turing fuera de l´ınea

Una m´aquina de Turing fuera de l´ınea es una MT multi-cinta cuya cinta de entrada es s´olo de lectura. Usualmente la entrada se rodea por el s´ımbolo c

en la izquierda y por el $ en la derecha. La MT no permite mover la cabeza de entrada de la cinta fuera de la regi´on entre c y el s´ımbolo $. Por eso, es

obvio que la m´aquina de Turing fuera de l´ınea es un caso especial de la MT multi-cinta. Rec´ıprocamente, una m´aquina de Turing fuera de l´ınea puede simular cualquier MT M que use una o m´as cintas que M .

7.6 Hip´

otesis de Church

La suposici´on de que las “funciones computables” puedan ser identificadas con la clase de funciones recursivas parciales se conoce como hip´otesis de Church o Tesis Church-Turing. No podemos esperar “demostrar” las hip´otesis de

(8)

Church mientras la noci´on informal de “computable” se mantenga informal, se pueden dar evidencias para este razonamiento. Ya que nuestra noci´on intui-tiva de “computable” no le pone un limite al n´umero de pasos o a la cantidad de almacenamiento, se puede ver que las funciones recursivas parciales son com-putables intuitivamente, aunque algunos podrian argumentar que una funci´on no es “computable” a menos que se pueda acotar su c´alculo por anticipado o al menos establecer si terminar´an los c´alculos eventualmente o no.

Lo que es menos claro es si la clase de funciones recursivas parciales incluyen todas las funciones “computables”. Los modelos abstractos de computadoras, como la m´aquina de acceso aleatorio (RAM) dan lugar a las funciones recur-sivas parciales.

La RAM consiste de un n´umero infinito de palabras memoria, numeradas como 0, 1, ... cada una puede contener un n´umero entero arbitrario, tambi´en tiene una cantidad finita de registros aritm´eticos capaces de almacenar cualquier entero. Los enteros pueden ser decodificados por instrucciones de computa-dora. No definimos formalmente el modelo RAM, pero debe ser claro que si escogemos un conjunto conveniente de instrucciones, la RAM puede simular cualquier computadora existente.

Simulaci´

on de m´

aquinas de acceso

aleatorio por m´

aquinas de Turing

Teorema 7.6Una m´aquina de Turing puede simular una m´aquina RAM, dado que las instrucciones elementales de la m´aquina RAM, pueden por si mismas ser simuladas por una MT.

Demostraci´on: Usaremos una MT multi-cinta M para ejecutar la simu-laci´on. Una cinta en M contiene las palabras de la RAM que tienen valores dados. La cinta se parece a

#0∗v0#1∗v1#10∗v2#· · · #i ∗ vi#· · · ,

donde vi es el contenido en binario de la i-´esima palabra. En todo momento,

existe alg´un n´umero finito de palabras de la RAM que se usan, y M s´olo nece-sita conservar un registro de valores hasta la palabra enumerada m´as grande que ha sido usada hasta el momento.

La RAM tiene un n´umero finito de registros aritm´eticos. M usa una cinta para almacenar el contenido de cada registro, una cinta para guardar el contador de localidades, que contiene el n´umero de la palabra de la cual se va a tomar la pr´oxima instrucci´on, y una cinta como registro de direcci´on de memoriadonde se coloca el n´umero de palabras memoria.

Suponga que los primeros 10 bits de una instrucci´on denotan una de las op-eraciones estandar, tales como LOAD, STORE, ADD, y as´ı sucesivamente, y el resto de los bits denotan la direcci´on de un operando. Suponga que la cinta de contador de localidades en M contiene el n´umero i en binario. M busca en la primera cinta comenzando por la izquierda, a #i∗. Si encuentra un blanco

(9)

antes de encontrar #i∗, no existen instrucciones en la palabra i, as´ı la RAM y M se paran. Si #i∗ se encontr´o, los bits siguientes a ∗ hasta el siguiente # se examinan. Suponga que los primeros 10 bits son el c´odigo para “ADD el registro 2”, y el resto de los bits son para alg´un n´umero j en binario. M a˜nade 1 a i en la cinta de contador de localidades y copia j sobre la cinta registro de direcci´on de memoria. Entonces M busca #j∗ en la primera cinta, otra vez comienza por la izquierda (note que #0∗ marca el fin izquierdo). Si #j∗ no se encontr´o, la palabra j no tiene 0’s e ir a la instrucci´on siguiente de la RAM. Si #j ∗ vj se encontro, vj se a˜nade al contenido del registro 2. Entonces se repite

el ciclo con la siguiente instrucci´on.

Observe que aunque la simulaci´on RAM usa una MT multi-cinta, por el Teo-rema 7.2 es suficiente una MT con una sola cinta, aunque la simulaci´on ser´ıa

m´as complicada. 

7.7 M´

aquinas de Turing como

enumeradores

Considere una MT multi-cinta que usa una cinta como cinta de salida, en la cual un s´ımbolo, escrito antes, nunca puede ser cambiado, y la cabeza de la cinta nunca se mueve a la izquierda. Suponga tambi´en que en la cinta de sal-ida, M escribe cadenas sobre alg´un alfabeto Σ, separadas por el s´ımbolo #. Se define a G(M ), el lenguaje generado por M, como el conjunto de w ∈ Σ∗ tales

que w se imprime eventualmente entre un par de #’s en la cinta de salida. Note que a menos que M corra siempre, G(M ) es finito. No se requiere que las palabras se generen en un orden particular, o que una palabra se genere s´olo una vez. Si L es G(M ) para alguna MT M , entonces L es un conjunto r.e y viceversa. Los conjuntos recursivos tambi´en tienen una caracterizaci´on en t´erminos de generadores (en t´erminos de una m´aquina que lo genera); ellos son exactamente los lenguajes cuyas palabras pueden ser generadas en orden creciente con respecto a su longitud.

Caracterizaci´

on de conjuntos r.e por

generadores

Lema 7.1: Si L es G(M1) para alguna MT M1, entonces L es un conjunto

r.e.

Demostraci´on: Se construye una MT M2 con una cinta mas que M1. M2

simula a M1 usando todas excepto la cinta de entrada de M2. Siempre que

M1 imprime # en la cinta de salida, M2 compara la entrada con la palabra

generada. Si son las mismas, M2 la acepta; en otro caso M2 continua

simu-lando a M1. Claramente M2 acepta una entrada x si y s´olo si x ∈ G(M1). As´ı,

L(M2) = G(M1). 

(10)

para un conjunto r.e L ⊆ Σ∗. El primer (y no exitoso) intento para dise˜nar

un generador para L puede ser generar las palabras en Σ∗ en alg´un orden

w1, w2, ..., corriendo M1 con w1, y si M1 acepta, genera a w1. Luego correr

M1 con w2, generando w2 si M1 lo acepta, y as´ı sucesivamente. Este m´etodo

trabaja si se garantiza que M1 se detiene para todas las entradas. Sin

em-bargo, existen lenguajes L que son r.e pero no recursivos. Si es el caso, se tiene la posibilidad que M1 nunca pare con alguna wi. Entonces M2 nunca

considera wi+1, wi+2, ..., y as´ı nunca puede generar cualquier palabra, aunque

M1 las acepte.

Por lo tanto, debemos evitar simular M1 indefinidamente con una palabra.

Para hacer esto se fija un orden para enumerar las palabras en Σ∗. Luego se

desarrolla un m´etodo para generar todos los pares (i, j) de enteros positivos. La simulaci´on procede a generar un par (i, j) y entonces simular M1 con la

palabra i, para j pasos.

Se fija un orden can´onicopara Σ∗ de la siguiente manera: se listan las palabras

por orden de tama˜nos, palabras del mismo tama˜no en “orden num´erico”. Es decir, sea Σ = {a0, a1, ..., ak−1}, e imagine que aies el “d´ıgito” i en base k.

En-tonces las palabras de longitud n son los n´umeros de 0 a kn− 1 escritos en base

k. El dise˜no de una MT que genere palabras en orden can´onico no es tan dif´ıcil. Ejemplo: Si Σ = {0, 1}, el orden can´onico es , 0, 1, 00, 01, 10, 11, 000, 001, ...

Note que el orden es aparentemente simple en el cual se generan las repre-sentaciones m´as cortas de 0, 1, 2, ... en base k ...

Luego, considere los pares generados (i, j) tal que cada par es generado des-pu´es de una cantidad finita de tiempo. Est´a tarea no es f´acil como parece. El ingenuo acercamiento, (1,1), (1,2), (1,3), ... nunca genera pares con i > 1. En su lugar, generamos pares en orden de la suma i + j, y entre pares de igual suma en orden creciente de i. Es decir, se genera (1,1), (1,2), (2,1), (1,3), (2,2), (3,1), (1,4), ... El par (i, j) es el {[(i + j − 1)(i + j − 2)]/2 + i}-´esimo par generado. As´ı, este orden tiene la propiedad deseada que existe un tiempo finito en el cual se genera un par particular (i, j).

Una MT que genera pares (i, j) en orden binario es f´acil de dise˜nar. Nos referimos a tal MT como el par generador. Incidentalmente, el orden usa-do por el par generausa-dor demuestra que pares de enteros se pueden poner en correspondencia uno a uno con los mismos enteros, aparentemente este resul-tado parad´ojico fue descubierto por Georg Kantor cuando demostr´o que los racionales tienen la misma cardinalidad que los enteros.

Teorema 7.7 Un lenguaje es r.e si y s´olo si es G(M2) para alguna MT M2.

Demostraci´on: Por lema 7.1 se tiene s´olo que demostrar c´omo un conjunto r.e. L = L(M1) es generado por una MT M2. M2 simula el par generador.

(11)

Cuando (i, j) se genera, M2 produce la i-´esima palabra wi en orden can´onico

y simula M1 con wi para j pasos. Si M1 acepta en el paso j, entonces M2

genera a wi.

Seguramente, M2 no genera palabras que no est´en en L. Si w ∈ L, sea w

la i-´esima palabra en orden can´onico para el alfabeto en L, y sea M1 que

acepta a w despu´es de exactamente j movimientos. Como M2 toma s´olo una

cantidad finita de tiempo para generar cualquier palabra en orden can´onico o para simular M1 para cualquier n´umero de pasos, sabemos que M2

pro-duce eventualmente el par (i, j). En esta etapa, w se genera por M2. As´ı,

G(M2) = L. 

Corolario Si L es un conjunto r.e., entonces existe un generador para L que enumera cada palabra en L exactamente una vez.

Demostraci´on: M2 describe la propiedad anterior, ya que se genera wi s´olo

cuando se considera el par (i, j), donde j es exactamente el n´umero de pasos

tomados por M1 para aceptar a wi. 

Caracterizaci´

on de conjuntos

recursivos por generadores

Ahora demostraremos que los conjuntos recursivos son precisamente aquellos conjuntos cuyas palabras se generan en orden can´onico.

Lema 7.2 Si L es recursivo, entonces existe un generador para L que im-prime las palabras en L en orden can´onico y no imim-prime otras palabras. Demostraci´on: Sea L = L(M1) ⊆ Σ∗, donde M1 se para con cada entrada.

Construya M2 que genere a L de la siguiente manera: M2 genera palabras en

Σ∗, una a la vez, en orden can´onico. Despu´es genera alguna palabra w, M 2

simula M1 con w. Si M1 acepta a w, M2 genera a w. Ya que se garantiz´o que

M1 se para, y sabemos que M2 termina el proceso de cada palabra despu´es de

un tiempo finito y por lo tanto considera eventualmente cada palabra en Σ∗.

Claramente M2 genera a L en orden can´onico. 

El rec´ıproco del Lema 7.2 es tambi´en verdadero. Sin embargo, existe una su-tileza de la cual se debe estar consciente. En el Lema 7.2 podriamos construir de manera efectiva M2 a partir de M1. Sin embargo, dada una MT M que

genere a L en orden can´onico, podemos saber que existe una MT que se para y que reconoce a L, pero no existe un algoritmo para exhibir tal MT.

Suponga que M1 genera a L en orden can´onico. Lo natural es construir a una

MT M2 que con la entrada w simule a M1 hasta que M1 genere a w o una

palabra despu´es de w en orden can´onico. En el primer caso, M2 acepta a w,

(12)

M1 pudiera nunca parar despu´es de generar la ´ultima palabra en L, as´ı M1

genera ni w ni cualquier otra palabra despu´es. En esta situaci´on M2 no se

para. Este problema surge s´olo cuando L es finito, aunque sabemos que cada conjunto finito es aceptado por una MT que se para con todas sus entradas. Desafortunadamente, no podemos determinar si una MT genera un conjunto finito o, si es finito qui´en es. As´ı, sabemos que la MT se para aceptando a L, el lenguaje generado por M1, siempre existe, pero no existe un algoritmo para

exhibir la MT.

Teorema 7.8 L es recursivo si y s´olo si L se genera en orden can´onico. Demostraci´on: La parte del “s´olo si” fue establecido por el Lema 7.2. Para la parte del “si”, cuando L es infinito, M2 descrita arriba se para para todas sus

entradas en el lenguaje. Claramente, cuando L es finito, existe un aut´omata finito que acepta a L, y as´ı L es aceptado por una MT que se para con todas

sus entradas. 

7.8 M´

aquinas de Turing restringidas

equivalentes al modelo b´

asico

Ahora consideremos algunos modelos que a primera vista parecen menos poderosos que la MT pero verdaderamente tienen el mismo poder. En su mayor´ıa, es-tos modelos podr´ıan ser variaciones de los aut´omatas de pila definidos en el cap´ıtulo 5.

De paso, notemos que un aut´omata de pila es equivalente a una MT no deter-minista cuya entrada es s´olo de lectura y cuya cabeza en la cinta de entrada no se puede mover hacia la izquierda, m´as una cinta de almacenamiento con re-stricci´on bastante peculiar sobre la cabeza de la cinta. Cuando, la cabeza de la cinta de almacenamiento se mueve hacia la izquierda, imprime un blanco, y la cinta de almacenamiento es efectivamente una pila, con el tope en la derecha, en vez de la izquierda como en el cap´ıtulo 5.

aquinas multi-pila

Una m´aquina determinista de doble pilaes una MT determinista con una sola cinta entrada de lectura y dos cintas de almacenamiento. Si una cabeza se mueve hacia la izquierda sobre cualquiera de las dos cintas, se imprime un blanco en la cinta.

Lema 7.3 Una m´aquina de Turing de una sola cinta arbitraria puede ser simulada por una m´aquina determinista de doble pila.

Demostraci´on: Los s´ımbolos a la izquierda de la cabeza de la MT que est´an simulados se almacenan en una pila, mientras los s´ımbolos a la derecha de la

(13)

cabeza se pueden colocar en otra pila. En cada pila, los s´ımbolos m´as cer-canos a la cabeza de la MT son colocados m´as cerca del tope de la pila que los s´ımbolos m´as lejanos de la cabeza de la MT. 

aquinas para contar

Probemos un resultado m´as fuerte que el Lema 7.3. Se trata de las m´aquinas para contar, que son MT fueras de l´ınea donde las cintas de almacenamiento son semi-infinitas, y el alfabeto de la cinta contiene s´olo dos s´ımbolos, Z y B. El s´ımbolo Z, el cual sirve como el marcador final de la pila, aparece ini-cialmente en la celda explorada por la cabeza de la cinta y puede que nunca aparezca en otras celdas. Un entero i se almacena al mover la cabeza de la cinta i celdas hacia la derecha de Z. Un n´umero almacenado se incrementa o decrementa por un movimiento de la cabeza de la cinta hacia la derecha o izquierda. Se puede probar si un n´umero es 0 verificando si Z es explorada por la cabeza, pero no se puede probar directamente si dos n´umeros son iguales. Un ejemplo de una m´aquina para contar aparece en la siguiente figura

d1 d2 Control Finito $ Z B B . . . B B B . . . Z B B B B B . . .

C (sólo lectura)Entrada

. . .

c y $ se usan normalmente para marcar el inicio y final de la entrada. Aqu´ı

Z es un s´ımbolo no blanco en cada cinta. Una DI de una m´aquina para contar se describe por el estado, el contenido de la cinta de la entrada, la posici´on de la cabeza de entrada, y la distancia de cada cabeza almacenadora al s´ımbolo Z de su cinta. Esta distancia se llama el contador de las cintas. Entonces, la m´aquina para contar s´olo almacena un contador por cada cinta y dice si el contador es cero.

Lema 7.4 Una m´aquina 4-contador puede simular una MT arbitraria.

Demostraci´on: Por el Lema 7.3 es suficiente demostrar que dos contadores de cinta pueden simular una pila. Se tiene una pila con k − 1 s´ımbolos de la cinta, Z1, Z2, ..., Zk−1. Entonces se puede representar la pila Zi1Zi2 · · · Zim

exclusivamente por la cuenta en base k. 7.3 j = im+ kim−1+ k

2

im−2 + · · · + km−1i1

Note que no cualquier entero representa una pila; en particular, aquellos cuya representaci´on en base k con un d´ıgito 0 no lo hacen.

(14)

Suponga que el s´ımbolo Zr se inserta hasta el final del lado derecho de la

pila Zi1Zi2· · · Zim. La cuenta asociada con Zi1Zi2· · · ZimZr es jk + r. Para

obtener esta nueva cuenta, el contador de la m´aquina mueve repetidamente la cabeza del primer contador una celda hacia la izquierda y la cabeza de la segunda, k celdas hacia la derecha. Cuando la cabeza del primer contador alcanza un s´ımbolo no blanco, el segundo contador tiene la cuenta jk. Es muy simple agregar r a la cuenta.

En cambio, si el s´ımbolo tope Zim de la pila se elimina, j se debe reemplazar

por bj/kc, la parte entera de j/k. Repetidamente se decrementa por k la cuenta en el primer contador y entonces se suma uno a la cuenta del segundo. Cuando la primera cuenta es 0, la segunda cuenta es bj/kc.

Para completar la descripci´on de la simulaci´on, se debe demostrar c´omo la m´aquina 4 contador dice qu´e s´ımbolo est´a en el tope de cada pila. Si la cuenta j se almacena en un contador, la m´aquina 4 contador puede copiar j a otro contador calculando j mod k en su control finito. Note que j mod k es im si

j esta dada por 7.3. 

Teorema 7.9 Una m´aquina 2-contador puede simular una MT arbitraria. Demostraci´on: Por el Lema 7.4 es suficiente mostrar c´omo simular 4 conta-dores con dos. Si 4 contaconta-dores tienen cuentas i, j, k y l. Un contador puede representar a esos cuatro por el n´umero n = 2i3j5k7l. Ya que 2, 3, 5 y 7 son

primos, i, j, k y l se pueden recuperar exclusivamente de n.

Para incrementar i, j, k o l por 1, se multiplica n por 2, 3, 5 o 7, respecti-vamente. Haciendo esto, si se tiene el otro contador en 0, se puede mover la cabeza de este contador 2, 3, 5 o 7 celdas hacia la derecha cada vez que se mueva la cabeza del primer contador una celda hacia la izquierda. Cuando el primer contador contiene 0, el segundo contiene 2n, 3n, 5n o 7n, respectiva-mente. Para decrementar i, j, k o l por 1, n se realiza, por un proceso similar, para obtener la divisi´on entre 2, 3, 5 o 7, respectivamente.

Tambi´en se debe demostrar c´omo la m´aquina 2 contador determina el movimiento siguiente en la m´aquina 4 contador. La m´aquina 2 contador siempre explora la misma celda de la cinta de entrada como la m´aquina 4 contador lo hace. El estado de m´aquina 4 contador se almacena en el control finito de la m´aquina 2 contador. As´ı, para determinar el movimiento de la m´aquina 4 contador, la m´aquina 2 contador tiene s´olo que determinar alguno de los valores de i, j, k o l es 0. Pasando n de un contador a otro, el control finito de la m´aquina 2 con-tador puede determinar si n es divisible por 2, 3, 5 o 7, o cualquier producto

de ´estos. 

Limites en el n´

umero de estados y

s´ımbolos

(15)

Otro camino para restringir una MT es limitar el tama˜no del alfabeto de la cinta o el n´umero de estados. Si el alfabeto de la cinta, el n´umero de cintas y el n´umero de estados est´an todos limitados, entonces existe s´olo un n´umero finito de MT diferentes, por lo tanto el modelo restringido es menos poderoso que el original. Si no se restringe el alfabeto de la cinta, entonces 3 estados y una cinta son suficientes para reconocer a cualquier conjunto r.e.

Teorema 7.10 Si L ⊆ (0 + 1)∗ y L es r.e. entonces L es aceptado por una

MT con una sola cinta y con el alfabeto de la cinta {0, 1, B}.

Demostraci´on: Sea L = L(M1), donde M1 = (Q, {0, 1}, Γ, δ, q0, B, F ).

Su-ponga que Γ tiene entre 2k−1+ 1 y 2k s´ımbolos, as´ı k bits son suficientes para

codificar cualquier s´ımbolo de la cinta en M1. Se dise˜na M2, con el alfabeto de

la cinta {0, 1, B} para simular M1. La cinta en M2 consiste de una secuencia

de c´odigos de s´ımbolos de M1. El control finito de M2 recuerda el estado de

M1 y tambi´en la posici´on de la cabeza de la cinta de M2, modulo k, as´ı M2

sabe cuando se encuentra al principio de la codificaci´on de un s´ımbolo de cinta de M1.

Para comenzar la simulaci´on de un movimiento en M1, la cabeza de M2 est´a

al final izquierdo de un s´ımbolo codificado en binario de M1. M2 explora los

siguientes k − 1 s´ımbolos a la derecha, para determinar el movimiento en M1.

Entonces M2 reemplaza los s´ımbolos explorados para reflejar el movimiento

de M1, la posici´on de su cabeza por el siguiente s´ımbolo explorado por M1, y

cambia el estado de M1. Si es un estado de aceptaci´on, M2 lo acepta; en otro

caso, M2 esta listo para simular el siguiente movimiento de M1. Un caso

espe-cial ocurre si M2 encuentra su cabeza posicionada en un blanco cuando deber´ıa

estar leyendo un c´odigo de cinta de M1. En este caso, M1 se ha movido justo

a una posici´on que nunca antes hab´ıa alcanzado. M2 debe escribir el c´odigo

binario para el s´ımbolo blanco de M1 en la celda explorada y k − 1 celdas a la

derecha, despu´es puede simular el movimiento en M1 como antes. 

Podemos aplicar la misma t´ecnica de c´odigo binario si el alfabeto de s´ımbolos de entrada no es el {0, 1}

Corolario: Si L es un conjunto r.e. sobre cualquier alfabeto, entonces L es aceptado por una MT fuera de l´ınea que tiene s´olo una sola cinta aparte de la de entrada, y el alfabeto de la cinta es {0, 1, B}.

Teorema 7.11Cada m´aquina de Turing puede ser simulada por una MT fuera de l´ınea que tiene una cinta de almacenamiento con dos s´ımbolos, 0 (blanco) y 1. La MT puede imprimir un 0 o 1 sobre un 0, pero no puede imprimir un 0 sobre un 1.

Demostraci´on: El “truco” es crear en la cinta nueva DI’s sucesivas de la MT original. Los s´ımbolos de la cinta est´an, por supuesto, codificados en binario.

(16)

Cada DI se copia, haciendo los cambio necesarios para simular un movimiento de la m´aquina vieja.

Adem´as, de codificar en binario el s´ımbolo original, la MT necesita celdas para indicar la posici´on de la cabeza en la DI que fueron copiadas, y celdas para indicar qu´e representaci´on binaria de un s´ımbolo se tiene ya copiada. 

Referencias

Documento similar

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de