Documente Academic
Documente Profesional
Documente Cultură
Una mquina Turing consiste en una cinta indefinidamente larga acoplada a una unidad
de control finita.... La cinta, que acta como la memoria de la mquina, est dividida en
cuadrados. Cada cuadrado puede ser estampado con un solo smbolo del alfabeto finito
designado o puede estar en blanco.... La unidad de control puede correr la cinta para los
dos lados al travs de la cabeza lectora, pero en un momento particular la cabeza lectora
puede examinar, o rastrear, solamente un cuadrado de la cinta.
La operacin de una mquina Turing se caracteriza por la siguiente secuencia de eventos.
La mquina recibe inicialmente una cinta en la cual algn nmero finito de cuadrados
estn estampados con smbolos y el resto permanece en blanco. Un determinado
cuadrado de la cinta es designado para estar inicialmente bajo la cabeza lectora, y la
unidad de control es forzada a asumir un cierto estado inicial predesignado. La mquina
pasa entonces por una computacin que consiste en una serie de movidas bsicas. Esta
computacin puede continuar indefinidamente, o puede terminar despus de un nmero
finito de movidas. Si de hecho termina, el patrn de smbolos que queda en la cinta se
toma como el resultado de la computacin.
Una mquina Turing comienza con una cinta inicial y realiza una transformacin en esa
cinta. Si la mquina se detiene, el resultado de la transformacin es el contenido de la
cinta en el momento del detenimiento. Si la mquina nunca se detiene, el resultado no
est definido. (Kain 72, pp. 83-86)
En su artculo de 1936, A. M. Turing define la clase de mquinas abstractas que hoy
llevan su nombre. Una mquina Turing es una mquina de estado finito asociada con una
clase especial de ambiente su cinta en el cual puede guardar (y ms tarde recobrar)
secuencias de smbolos.... Son mquinas muy simples. En cada momento la parte que es
una mquina de estado finito obtiene su estmulo de entrada mediante la lectura del
smbolo escrito en cierto punto a lo largo de la cinta. La respuesta de la mquina puede
cambiar tal smbolo y tambin mover la mquina una pequea distancia en alguna de las
dos direcciones a lo largo de la cinta. El resultado es que el estmulo para el nuevo ciclo
de operacin vendr de un "cuadrado" distinto de la cinta, y la mquina puede as leer un
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
23
smbolo que haya sido escrito ah mucho antes. Esto significa que la mquina tiene
acceso a una especie de memoria exterior rudimentaria, adems de la que es suplida por
su parte de estado finito. Y como no ponemos lmite en la cantidad de cinta disponible,
esta memoria tiene en efecto una capacidad infinita.... ( Minsky 67, p. 107)
Una mquina Turing es una mquina de estado finito asociada con un almacn externo o
memoria. Esta memoria tiene la forma de una secuencia de cuadrados, marcados en una
cinta lineal. La mquina est acoplada a una cinta mediante una cabeza, situada en cada
momento sobre algn cuadrado de la cinta. La cabeza tiene tres funciones, todas las
cuales se ejercen en cada ciclo de operacin de la mquina de estado finito. Estas
funciones son leer el cuadrado de la cinta rastreado en ese momento, escribir en el
cuadrado rastreado y mover la mquina a un cuadrado adyacente (que pasa a ser el
cuadrado rastreado en el siguiente ciclo de operacin). ( Minsky 67, p. 117)
Lo que est en la cinta cuando la mquina para depender de un modo complicado de lo
que la cinta tena al comenzar. Por eso podemos decir que el resultado de la computacin
presente en la cinta es una funcin de la entrada. Exactamente cul funcin sea, eso
depender, por supuesto, de la mquina Turing que se use. Entonces, podemos pensar
que una mquina Turing define una funcin o la computa, o incluso que es una funcin. (
Minsky 67, p. 132)
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
24
Ejemplo
Reconocimiento de un Lenguaje Regular
La siguiente es la CINTA de una mquina de Turing que correr sobre la entrada aba.
celda i celda ii celda iii celda iv
a b a
El programa para esta MT es dado como un grafo dirigido con aristas etiquetadas como
se muestra a continuacin:
Note que el loop en el estado 3 tiene dos etiquetas. Las aristas desde el estado 1 al
estado 2 podran haber sido dibujadas como una arista con dos etiquetas.
Comenzamos, como siempre, con la CABEZA de CINTA leyendo la celda i y el programa
en el estado START, que est etiquetado como estado 1. Escribimos esto como:
1
aba
El nmero de arriba es el nmero del estado en el que estamos. Debajo se encuentran
los contenidos de la CINTA. Es posible encontrar smbolos dentro de esta cadena.
Subrayamos el carcter de la celda que est por ser leda.
En este punto de nuestro ejemplo, la CABEZA de CINTA lee la letra a y seguimos por la
arista (a,a,R) hacia el estado 2. Las instrucciones de esta arista a la CABEZA de CINTA
son lea una a, imprima una a, muvase a la derecha.
La CINTA ahora se ve como:
celda i celda ii celda iii celda iv
a b a
Podemos registrar el proceso de ejecucin escribiendo:
1 2
aba aba
START 1 HALT 4
(,,R)
(a,a,R)
3 2
(a,a,R)
(b,b,R)
(b,b,R)
(b,b,R)
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
25
Ahora estamos en el estado 2. Seguimos la arista etiquetada por (b,b,R). La CABEZA de
CINTA reemplaza la b con una b y se mueve a la derecha una celda.
La idea de reemplazar una letra consigo misma puede parecer tonta, pero unifica la
estructura de las instrucciones de las Mquinas de Turing, para que todas tengan el
mismo formato (las de reemplazo y las de desplazamiento).
En este momento la situacin es la siguiente:
celda i celda ii celda iii celda iv
a b a
1 2 3
aba aba aba
Pasamos al estado 3, leemos una a, y hacemos un loop.
Finalmente leemos un y nos movemos al estado 4.
La cadena de entrada aba ha sido aceptada por esta Mquina de Turing.
Esta MT particular no cambia ninguna de las letras de la CINTA, por lo que al final de la
ejecucin la CINTA permanece:
aba
En resumen, la ejecucin completa puede ser expresada como la siguiente traza:
1 2 3 3
aba aba aba aba HALT
Qu cadenas de entrada acepta esta MT?
Cualquier letra, a o b, nos lleva al estado 2. Desde all al estado 3 leemos una letra b.
Finalmente se genera un loop hasta que la CABEZA de CINTA encuentra una .
El lenguaje aceptado por esta MT est formado por todas las palabras que comienzan con
una a o b, luego tienen una b y finalmente tienen cualquier nmero de a o b.
Este es un lenguaje regular porque puede ser definido tambin por la expresin
regular:
(a+b)b(a+b)*
Esta MT es tambin una reminiscencia de los AF, ya que hace un solo paso sobre la
cadena de entrada, moviendo su CABEZA de CINTA siempre hacia la derecha y nunca
cambiando una letra que ha ledo.
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
26
Ejemplo
Reconocimiento de una GLC, aceptada por un APD determinista
Considere la siguiente MT.
Esta MT acepta el lenguaje {a
n
b
n
, con n>=1}
Tcnicamente, el alfabeto de entrada es = {a , b} y el alfabeto de salida es = {a , A ,
B}.
El siguiente cuadro muestra los contenidos de la CINTA en cada paso del procesamiento
de la cadena aaabbb. Recuerde que durante el seguimiento la posicin de la CABEZA de
CINTA se indica mediante el subrayado de la letra que va a ser leda.
1 parte 2 parte
aaabbb AAaBBb
Aaabbb AAaBBb
Aaabbb AAABBb
Aaabbb AAABBb
AaaBbb AAABBb
AaaBbb AAABBB
AaaBbb AAABBB
AaaBbb AAABBB
AAaBbb AAABBB
AAaBbb AAABBB
AAaBbb AAABBB
AAaBBb AAABBB
AAaBBb HALT
START 1
HALT
(A,A,R)
(B,B,L)
3
4
(a,A,R) (b,B,L)
(B,B,R)
5 2
(,,R)
(B,B,R)
(a,a,R)
(a,a,L)
(A,A,R) (a,a,L)
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
27
Ejemplo
Reconocimiento de una GLC, aceptada por un APD no determinista
Considere la siguiente MT.
Esta MT acepta el lenguaje PALINDROME
El siguiente cuadro muestra los contenidos de la CINTA en cada paso del procesamiento
de la cadena ababa. Recuerde que durante el seguimiento la posicin de la CABEZA de
CINTA se indica mediante el subrayado de la letra que va a ser leda.
1 parte 2 parte
1 ababa 5 bab
2 baba 5 ab
2 baba 5 ab
2 baba 5 ab
2 baba 6 ab
2 baba 7 a
3 baba 7 a
4 bab 1 a
4 bab 2
4 bab 3
4 bab 8 HALT
1 START 8 HALT
(a,,R)
3
(a,,R) (,,L)
(a,a,L)
4 2
(,,R)
(a,a,R)
(b,b,R)
(b,b,L)
(,,R)
(,,R)
(b,,R)
6
(b,,R) (,,L)
(a,a,L)
7 5
(,,R)
(a,a,R)
(b,b,R) (b,b,L)
(,,R)
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
28
Nuestro primer ejemplo era solamente un AF convertido, y el lenguaje que aceptaba era
Regular.
El segundo ejemplo aceptaba un lenguaje Libre de Contexto y No Regular y la MT dada
empleaba alfabetos separados para escribir y leer.
La tercer mquina aceptaba un lenguaje que era tambin Libre de Contexto,
pero que solo poda ser aceptado por un APD No Determinstico, sin embargo la
MT diseada es Determinstica.
Hemos visto que podemos usar la CINTA para ms que un STACK PUSHDOWN. En los
ltimos dos ejemplos recorrimos hacia delante y atrs la CINTA para hacer observaciones
y cambios en la cadena. Veremos ms adelante que la CINTA puede ser usada para ms
tareas an. Puede ser usada como un espacio de trabajo para clculo y salida.
Ejemplo
Reconocimiento de una Gramtica Dependiente del Contexto,
que no puede ser aceptada por un APD
Considere la siguiente MT.
Esta MT acepta el lenguaje {a
n
b
n
a
n
, con n>=0}
1 START HALT
(a,a,L)
3
(b,b,R)
4 2
(b,a,R)
(a,a,R)
(,,R)
(a,*,R)
(a,,L)
7
(a,,L)
6 8
(a,a,R)
(b,b,L)
(a,a,L)
(,,L) (*,*,R)
5
(b,b,R)
SINTAXIS Y SEMNTICA DE LOS LENGUAJES (UTN-FRR)
PROF. ING. EDUARDO AMAR - AUTMATAS PUSH-DOWN Y MQUINAS DE TURING
29
El siguiente cuadro muestra los contenidos de la CINTA en cada paso del procesamiento
de la cadena aaabbbaaa. Recuerde que durante el seguimiento la posicin de la CABEZA
de CINTA se indica mediante el subrayado de la letra que va a ser leda.
1 parte 2 parte 3 parte
1 aaabbbaaa 8 *aabbaa 8 **aba
2 *aabbbaaa 8 *aabbaa 8 **aba
2 *aabbbaaa 8 *aabbaa 8 **aba
2 *aabbbaaa 8 *aabbaa 8 **aba
3 *aabbbaaa 8 *aabbaa 1 **aba
3 *aabbbaaa 1 *aabbaa 2 ***ba
3 *aabbbaaa 2 **abbaa 3 ***ba
4 *aabbbaaa 2 **abbaa 4 ***ba
5 *aabbaaaa 3 **abbaa 5 ***aa
5 *aabbaaaa 3 **abbaa 5 ***aa
5 *aabbaaaa 4 **abbaa 6 ***aa
5 *aabbaaaa 5 **abaaa 7 ***a
6 *aabbaaaa 5 **abaaa 8 ***
7 *aabbaaa 5 **abaaa 1 ***
8 *aabbaa 6 **abaaa Halt ***
8 *aabbaa 7 **abaa
Luego de disear la mquina y siguiendo el recorrido son obvias algunas consideraciones:
1. Las nicas palabras aceptadas son de la forma {a
n
b
n
a
n
, con n>=0}.
2. Cuando la mquina se detiene, la CINTA contiene tantos * como letras b haba
en la entrada.
3. Si la entrada era a
n
b
n
a
n
, la CABEZA de CINTA estar en la celda (n + 2) al
detenerse la mquina.
Este ejemplo sugiere que las MT son ms poderosas que los APD, ya que los APD no
pueden aceptar este lenguaje.