Sei sulla pagina 1di 27

Contenido

Contenido ............................................................................................................................................ 1
Introducción ........................................................................................................................................ 2
Inicios de la Máquina de Turing .......................................................................................................... 3
La prueba de Turing (máquina y persona) .......................................................................................... 4
Qué es una Máquina de Turing y cómo funciona. .............................................................................. 4
Representación gráfica de una MT ..................................................................................................... 7
Clasificación de las Máquinas de Turing ............................................................................................. 9
Lenguajes aceptados por una MT ..................................................................................................... 13
Construcción modular de las MT ...................................................................................................... 14
Reconocimiento de cadenas de una MT ........................................................................................... 16
Ejemplos de aplicación de las MT ..................................................................................................... 17
Funcionamiento de la MT Multicinta ................................................................................................ 23
Conclusiones ..................................................................................................................................... 25
Bibliografía. ....................................................................................................................................... 26
Introducción

La llamada “Máquina de Turing” es en realidad un modelo matemático consistente en un


autómata que es capaz de “implementar cualquier problema matemático expresado a
través de un algoritmo”. A pesar de esta definición tan complicada, en realidad la máquina
de Turing destaca por su simplicidad pues manipula símbolos sobre una tira de cinta
siguiendo una serie de reglas. A pesar de esta simplicidad, una máquina de Turing puede
adaptarse para que simule la lógica de cualquier algoritmo de computador, de ahí
su enorme potencial y valor.

Como su propio nombre indica, la máquina de Turing fue creada por el matemático inglés
Alan Turing, un genio en muchos campos pero especialmente en la criptografía y la
lógica. Originalmente la denominó “Máquina de Computación Lógica” siendo una de las
mayores aportaciones pues despejó el camino de la ciencia de la Computación, de la
Informática moderna.

Una Máquina de Turing consta de una cinta infinita dividida en espacios de trabajo o
celdas yuxtapuestas que actúa como memoria, un cabezal capaz de leer y escribir
símbolos en la cinta y moverla de celda en celda a derecha e izquierda, un registro de
estado, y una tabla finita de instrucciones o tabla de acción.

La máquina de Turing es considerada un autómata con la capacidad de reconocer


lenguajes formales de acuerdo a la jerarquía de Chomsky, razón por la cual es muy
superior a otros autómatas como el autómata con pila o el autómata finito.

Existen diversos tipos de máquinas de Turing: con movimiento stay o “esperar”, con cinta
infinita a ambos lados, con cinta multipista, multicinta, determinista y no determinista, la
Máquina de Turing Cuántica. En resumen, una máquina de Turing es un dispositivo que
transforma un INPUT en un OUTPUT, ambos formados por un código binario de unos y
ceros.
Inicios de la Máquina de Turing
En el año 1931, Kurt Gödel publicó su famoso artículo Sobre las proposiciones
formalmente indecidibles en Principia mathematica y sistemas relacionados, el cual en
síntesis demuestra que toda formulación axiomática consistente de la teoría de números
contiene proposiciones indecidibles, es decir, siempre habrá en ella afirmaciones
verdaderas que no se pueden demostrar.

K. Gödel con A. Einstein

En 1937, el matemático inglés Alan Turing publicó otro artículo famoso (sobre los
Números Calculables), que desarrollo el teorema de Gödel y que puede considerarse el
origen oficial de la informática teórica. En este artículo introdujo la Máquina de Turing, una
entidad matemática abstracta que formalizó el concepto de algoritmo, convirtiéndose en la
precursora de las computadoras digitales. Con la ayuda de su máquina, Turing pudo
demostrar que existen problemas irresolubles, tales que ninguna máquina u ordenador
serán capaces de obtener su solución. Por esta razón, Turing es considerado el padre de
la teoría de la computabilidad.

A. Turing

En forma general, una Máquina de Turing puede considerarse como una cinta infinita
dividida en casillas, cada una de las cuales contiene un símbolo. Sobre dicha cinta actúa
un dispositivo que puede adoptar diversos estados y que, en cada instante, lee un
símbolo de la casilla sobre la que está situado. En función del símbolo que ha leído y del
estado en que se encuentra, realiza las tres acciones siguientes: pasa a un nuevo estado,
imprime un símbolo en lugar del que acaba de leer y se desplaza a una posición hacia la
izquierda, derecha, o se detiene.

La prueba de Turing (máquina y persona)


Se llama Prueba o Test de Turing al procedimiento desarrollado por Alan Turing para
identificar la existencia de inteligencia en una máquina. Expuesto en 1950 en un artículo
para la revista Mind (Computing Machinery and Inteligence), sigue siendo hoy día una de
las cabezas de lanza de los defensores de la Inteligencia Artificial. Está fundamentado en
la asunción positivista de que, si una máquina se comporta en todos los aspectos como
inteligente, entonces debe ser inteligente.

La prueba consiste en un desafío. La máquina ha de hacerse pasar por humana en una


conversación con un hombre a través de una comunicación de texto estilo chat. Al sujeto
no se le avisa si está hablando con una máquina o una persona. Si el sujeto es incapaz
de determinar si la otra parte de la comunicación es humana o máquina, entonces se
considera que la máquina ha alcanzado un determinado nivel de madurez: es inteligente.
Todavía ninguna maquina puede pasar este examen en una experiencia con método
científico.

La prueba de Turing

Existe una versión modificada, propuesta por Roger Penrosse: la sala china, en esencia
es igual, pero la ejecución del algoritmo la realizan personas encerradas en una
habitación, se requiere que las personas de la habitación no conozcan el idioma en que
se realiza la conversación. Pese a la brillantez de Penrosse, esta modificación no aporta
nada al problema, puesto que si los operadores consiguen comprender la conversación, lo
harían gracias a su propia inteligencia, por otra parte, pese a lo aparentemente absurdo
de la proposición, la sala podría pasar la prueba de Turing sin que los operadores
hubieran comprendido nada de la conversación.

Qué es una Máquina de Turing y cómo funciona.


Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la máquina de Turing consiste en una
cinta infinitamente larga con unos y ceros que pasa a través de una caja. La caja es tan
fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior. La máquina
tiene una serie de estados internos finitos que también se pueden numerar en binario.
Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno
arbitrario. A continuación, se pone en marcha y la máquina lee el bit que se encuentra en
ese momento en su interior y ejecuta alguna operación con ese bit (lo cambia o no,
dependiendo de su estado interno). Después se mueve hacia la derecha o hacia la
izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para,
dejando el resultado al lado izquierdo por ejemplo.

Definición formal

Una máquina de Turing con una sola cinta puede ser definida como una 7-tupla
M={Q,Σ,Γ,s,b,F,δ}, donde:

• Q 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. Σ⊆Γ

• s ∈ Q es el estado inicial.

• b ∈ Γ es un símbolo denominado blanco, y es el único símbolo que se puede repetir un


número infinito de veces.

• F⊆Q es el conjunto de estados finales de aceptación.

• δ:Q x Γ → Q x Γ x{L,R} es una función parcial denominada función de transición, donde


L es un movimiento a la izquierda y R 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 S como
símbolo de "no movimiento" en un paso de cómputo.

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.

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

Escritura en una MT

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.
Borrado en una MT

Por definición, al iniciar la operación de la MT, la cabeza lectora está posicionada en el


carácter blanco a la izquierda de la palabra de entrada, el cual es el cuadro más a la
izquierda de la cinta.

Decimos que en la MT se llega al “final de un cálculo” cuando se alcanza un estado


especial llamado halt en el control finito, como resultado de una transición.
Representaremos al halt por “h”. 1 Al llegar al halt, se detiene la operación de la MT, y se
acepta la palabra de entrada. Ası, en la MT no hay estados finales. En cierto sentido el
halt serıa entonces el único estado final, solo que además detiene la ejecución. Cuando
queremos que una palabra no sea aceptada, desde luego debemos evitar que la MT
llegue al halt. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo infinito
(ver ejemplos adelante).

El lenguaje aceptado por una MT es simplemente el conjunto de palabras aceptadas por


ella.

Para más información de las MT se pueden consultar: Definiciones y ejemplos de


funcionamiento

Representación gráfica de una MT


En forma similar a las demás máquinas abstractas, una Máquina de Turing puede
representarse gráficamente a través de los llamados Diagramas finitos o de transición. Un
diagrama de transición está formado por un conjunto de nodos que corresponden a los
estados de la MT. La transición δ(q,a)=(p,b,D)se representa así:
Según esto, tenemos para un diagrama de transición los siguientes elementos:

 Estados, representados por vértices: q, p


 El estado inicial de la máquina es aquel representado por una arista sin origen. El
estado final o de aceptación está representado por una doble arista.
 Transición entre estados, representada por una arista dirigida: (a/b, D): el primer
término (a) indica el símbolo leído en el cabezal; el segundo término (b) indica el símbolo
que el cabezal va a escribir. El último término es la indicación del siguiente movimiento del
cabezal: derecha (D o R, por la palabra inglesa Right) o izquierda (I o L, de Left).

Para explicar el reconocimiento de la cadena por una MT se presenta el siguiente


ejemplo. Sea M una MT con la siguiente descripción M=(Q,Σ,Γ,q_0,q_1,B,δ), donde
Q={q_0,q_1 }, Σ={a,b}, y B indica el espacio en blanco.

Sus transiciones están dadas por:

Esta MT reconoce a* sobre el alfabeto Σ. Sea la cadena w = aaa.

(1) El cabezal, representado con una flecha roja, lee el primer símbolo “a”. La transición
dice que al estar en q0 y leer una “a”, se sobrescribe “a” y el cabezal se mueve a la
derecha:

(2) A continuación, el estado sigue siendo q0, y el cabezal lee el segundo símbolo “a”.
Nuevamente, queda en q0, sobrescribe una “a”, y el cabezal se mueve a la derecha.

(3) El proceso se repite para el último símbolo “a”


(4) En este instante, el cabezal lee un espacio en blanco, B. Según las transiciones de la
MT, en el estado q0 un espacio B cambia el estado de la máquina a q1, mantiene B y
mueve el cabezal a la derecha. El estado q1 es final de aceptación, por lo que la cadena
es aceptada.

Clasificación de las Máquinas de Turing


A continuación se presentan los diversos tipos de Máquinas de Turing, que surgen de la
necesidad de flexibilidad para la solución de problemas, y que tienen su modelo general
en el definido en los párrafos anteriores.

- Máquina de Turing con Directiva de Permanecer

Recuérdese que la máquina de Turing sencilla sitúa la cabeza de lectura/escritura sobre


el primer B que haya a la izquierda de la posición actual. Para hacerlo, busca fuera de la
celda actual y retrocede. Esto es debido a la definición original que requiere que por cada
transición se mueva la cabeza de la cinta.

La función de transición estaba definida como: d: Q x G ® Q x G x {R, L} y puede ser


modificada como: d: Q x G ® Q x G x {R, L, S} donde S significa "permanecer", es decir
no mover la cabeza de lectura/escritura.

Por tanto d (q, s)= (p, s ’, S) significa que se pasa del estado q al p, se escribe s’ en la
celda actual y la cabeza se queda sobre la celda actual.
- Máquina de Turing Multipista

Es aquella mediante la cual cada celda de la cinta 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. En el ejemplo anterior, las celdas
de la cinta contienen (B, a, a), (b, a, a) y (b, b, B). Por tanto, 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.

Una máquina de Turing multipista no tiene más potencia que la máquina de Turing
original. Sin embargo, hace que sea más fácil la construcción de máquinas de Turing que
resuelvan ciertos problemas.

Ejemplo: Para una máquina de Turing que sume dos números binarios. Primero se
construye una máquina de Turing de tres pistas. La entrada serán dos números binarios
que ocupen las dos pistas superiores de la cinta. Suponiendo que sus dígitos se alinean
por la derecha, que sus representaciones binarias son de la misma longitud (lo que se
puede conseguir rellenándolas con tantos ceros como sea necesario) y que la cabeza de
lectura/escritura se sitúa sobre la celda del extremo izquierdo de la cadena. Por tanto, si
tuvieran que sumar 101 y 10, la cinta debería contener

La máquina de Turing realizará la suma en la tercera pista. Por tanto, el alfabeto de cinta
estará formado por las ternas:

(B, B, B) (1, 1, B) (1, 1, 0) (1, 1, 1)

(0, 0, B) (0, 0, 0) (0, 0, 1) (B, B, 1)

(0, 1, B) (0, 1, 0) (0, 1, 1)

(1, 0, B) (1, 0, 0) (1, 0, 1)


Esta máquina de Turing buscará primero hacia la derecha el extremo derecho de los
números que van a ser sumados. Entonces sumará pares de dígitos, desde la derecha
hacia la izquierda, llevando la cuenta de los resultados que se obtengan y sumando a
quienes corresponda.

Por tanto, se obtiene (suponiendo que q1 es el estado inicial):

d (q1, s ) = (q1, s , R), si s ¹ (B, B, B) ó (q2, s , L), si s =(B, B, B)

d (q2, (0, 0, B)) = (q2, (0, 0, 0), L) d (q3, (0, 0, B)) = (q2, (0, 0, 1), L)

d (q2, (0, 1, B)) = (q2, (0, 1, 1), L) d (q3, (0, 1, B)) = (q3, (0, 1, 0), L)

d (q2, (1, 0, B)) = (q2, (1, 0, 1), L) d (q3, (1, 0, B)) = (q3, (1, 0, 0), L)

d (q2, (1, 1, B)) = (q3, (1, 1, 0), L) d (q3, (1, 1, B)) = (q3, (1, 1, 1), L)

d (q2, (B, B, B)) = (q4, (B, B, B), S) d (q3, (B, B, B)) = (q4, (B, B, B), S)

Obsérvese que se necesita que esta máquina de Turing tenga la posibilidad de no


moverse.

- Máquina de Turing de Cinta infinita en una Dirección

Máquina de Turing que usa una cinta que se extiende infinitamente en una única
dirección. Generalmente, se tiene una cinta que se extiende infinitamente hacia la
derecha. No está permitido realizar ningún movimiento hacia la izquierda a partir de la
celda del extremo izquierdo. Desde luego, cualquier máquina de Turing de esta forma
puede ser simulada por una de las que responden a la definición original. Para cada
computación, simplemente se marca una de las celdas de la cinta infinita por los dos
lados, como la celda que se encuentra en el límite izquierdo.

- Máquina de Turing en Dos Direcciones

Una máquina de Turing con una cinta infinita en un sentido puede simular una máquina de
Turing con la cinta infinita en los dos sentidos pero con dos pistas. Sea M una máquina de
Turing con una cinta infinita en los dos sentidos. La máquina de Turing M’, que tiene una
cinta infinita en un sentido, puede simular a M si tiene una cinta con dos pistas. La cinta
superior contiene la información correspondiente a la parte derecha de la cinta M, a partir
de un punto de referencia dado. La pista inferior contiene la parte izquierda de la cinta M
(en orden inverso).

- Máquina de Turing Multicinta


La máquina de Turing multicinta tiene varias cintas, cada una de las cuales tiene su propia
cabeza de lectura/escritura. Las cabezas de lectura/escritura se controlan
independientemente (es decir, al mismo tiempo, no tienen que moverse en la misma
dirección, ni realizar el mismo número de movimientos, ni incluso, hacer nada a la vez).
En un solo movimiento, esta máquina de Turing:

1. Cambia de estado dependiendo del estado actual y del contenido de las celdas de
todas las cintas, que están analizando actualmente las cabezas de lectura/escritura.

2. Escriben un nuevo símbolo en cada una de las celdas barridas por sus cabezas de
lectura/escritura.

3. Mueve cada una de sus cabezas hacia la izquierda o hacia la derecha (de forma
independiente al resto de las cabezas).

Por tanto, la función de transición para una máquina de Turing con n cintas, es de la
forma d : Q x G n ® Q x G n x {R, L} n donde una transición de la forma d (q, (s 1, s 2,…, s
n)) = (p,(t 1, t 2, …, t n), (X1, X2, …, Xn)) significa que cambia del estado q a p, reemplaza
s i por t i en la cinta i y mueve la cabeza de la cinta i en la dirección Xi.

- Máquina de Turing Muldimensional.

La máquina de Turing multidimensional es aquella que permite que la cinta tenga muchas
dimensiones. Por ejemplo, una cinta de dos dimensiones que se extienda hacia abajo y
hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado
actual de la máquina de Turing y del símbolo analizado, cambia de estado, escribe un
símbolo en la celda actual y se mueve a la izquierda, al derecha, hacia arriaba o hacia
abajo. Por tanto, la función de transición para esta máquina de Turing será de la forma:

d : Q x G ® Q x G x {R, L, U, D}

Una máquina de Turing multidimensional simula una máquina de Turing estándar.


Simplemente realizando todas sus computaciones en una única dimensión. Una máquina
de Turing estándar también puede simular una máquina de Turing multidimensional y, por
tanto, la complejidad y la flexibilidad adicional que se debe a la múltiple dimensión, no es
una capacidad real. Para simular una máquina de Turing de dos dimensiones mediante
una máquina de Turing estándar, primero se asociara una dirección a todas las celdas de
la cinta. Una forma de hacerlo es fijar, de forma arbitraria, un lugar en la cinta a partir del
cual se asignarán las coordenadas a las celdas de la misma forma que se realiza en un
plano de coordenadas.

Entonces, se usara una cinta de dos pistas para simular la máquina de Turing. Una pista
se encargará de almacenar el contenido de las celdas y la otra las coordenadas,
utilizando un símbolo (*) para separar los valores de las coordenadas. Para simular un
movimiento de una máquina de Turing de dos dimensiones, está máquina calcula la
dirección de la celda a la que se moverá la máquina de Turing dos dimensiones.
Entonces, localiza la pista inferior la celda con dicha dirección y cambia el contenido de la
celda en la pista superior.

Máquina de Turing No determinista.

La máquina de Turing No determinista es aquella que para un estado actual y el símbolo


actual de la cinta, puede haber un número finito de movimientos a elegir. Por lo tanto, la
regla de transición d de dicha máquina, satisface

d (q, s ) Í Q x G x {R, L}

Por ejemplo, si la máquina de Turing tiene una transición

d (q1, a) = {(q1, b, R), (q2, a, L)} entonces los movimientos

abbq1ab abbbq1b y abbq1ab abq2bab son posibles.

Ya que cualquier máquina de Turing determinista es también no determinista, es lógico


que una máquina de Turing determinista se pueda simular mediante una no determinista.
También una máquina de Turing determinista puede simular una no determinista. Por
tanto, no se gana ninguna potencia adicional a causa del no determinismo.

Lenguajes aceptados por una MT


De acuerdo a la clasificación de los lenguajes formales realizada por el norteamericano
Avram Chomsky, la Máquina de Turing acepta los lenguajes más generales, o tipo cero
(0), también llamados lenguajes recursivamente enumerables.

Un lenguaje recursivamente enumerable es un lenguaje formal para el cual existe una


máquina de Turing que acepta y se detiene con cualquier cadena del lenguaje, pero que
puede parar y rechazar, o bien iterar indefinidamente, con una cadena que no pertenece
al lenguaje. Todos los lenguajes, regulares, independientes de contexto, dependientes de
contexto y recursivos son recursivamente enumerables.

Una cadena ω∈A^*, es aceptada por una MT, si comienza en el estado e0, con la cabeza
de lectura/escritura en el símbolo más a la izquierda, luego de leer toda la cadena ω, llega
a un estado e_f∈F. El lenguaje aceptado por MT, es el conjunto de todas las cadenas que
son aceptadas por MT:

L(MT)={ω / e_0 ω ⊢*α_1 e_f α_2 y e_f∈F y α_1,α_1 ∈C^* y ω∈A^* }

Tenemos por ejemplo una MT que reconoce el lenguaje {0^n 1^n:n≥1}. Las transiciones
de la máquina se representan como sigue:
Se evalúa la cadena w = 1100, arrojando el siguiente resultado:

Otras cadenas también aceptadas por esta MT son 11110000, 10, 11111110000000.

Construcción modular de las MT


El objetivo de la creación modular de una maquina de Turing es poder desarrollar
máquinas complejas a partir de bloques elementales, a partir de maquinas más pequeñas,
mediante diagramas de transiciones. La construcción de máquinas de Turing se lleva a
cabo mediante los diagramas de transición y combinarlos de manera parecida a lo que se
realiza en la formación de la unión y concatenación de los autómatas finitos.

Pasos para la construcción de una máquina de Turing:

1. Elimine las características de inicio de los estados iniciales de las maquinas, excepto la
de aquel donde iniciara la maquina compuesta.

2. Elimine las características de detención de los estados de parada de todas la maquinas


e introduzca un nuevo estado de parada que nos se encuentre en ninguno de los
diagramas que se combinan.

3. Para cada uno de los antiguos estados de parada p y cada x en y.

Ejemplificación de dicha construcción.


Los diagramas compuestos para la construcción modular de una máquina de Turing:

Son aquellos en los que cada uno de los bloques de construcción se representa como un
nodo, con flechas entre dichos nodos para indicar las transiciones entre bloques.

Se puede combinar dos máquinas de Turing permitiendo que compartan la misma cinta y,
que cuando una termine su ejecución, la otra empiece. El contenido de la cinta cuando
comienza la ejecución de la segunda máquina de Turing, está formado por todo lo que
dejó la primera máquina de Turing, y la cabeza de l/e de la segunda se situará, al
comienzo de la ejecución, sobre la celda de la cinta sobre la que terminó la primera.

Un sistema Turing completo es aquel que puede simular el comportamiento de una


máquina de Turing. Es evidente que salvando los problemas de memoria, los ordenadores
modernos y los lenguajes de programación de uso general, son sistemas de Turing
completos. También es evidente, que con independencia de su forma concreta, cualquier
dispositivo que se comporte como un sistema de Turing completo, puede en principio
ejecutar cualquier cálculo que realice cualquier computador.

Nota: Observe que la anterior afirmación no menciona para nada la posible dificultad de
escribir el programa o del tiempo que pueda emplear en realizar el cálculo (cualquier
cálculo que pueda hacer un ordenador puede teóricamente efectuarse con papel y lápiz).

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.

Maquinas de Turing Compuesta.


Reconocimiento de cadenas de una MT
Para explicar el proceso de reconocimiento de cadenas se emplea la gráfica a
continuación. La siguiente máquina de Turing acepta el lenguaje de palabras sobre {0,1}
que comienzan y acaban con el mismo símbolo. Para validar este lenguaje, se presentan
dos cadenas, una que cumple la condición y otra que será rechazada por la máquina. Se
muestra entonces la cadena del lenguaje descrito, aceptada: 0110100 (Estado de
aceptación q5).

Las transiciones, y el proceso seguido en la evaluación y aceptación de una cadena dada,


se resumen en la siguiente tabla:

2. Cadena del lenguaje descrito, rechazada: 110


Ejemplos de aplicación de las MT
Ejemplo del Funcionamiento: se construye una MT que acepte el lenguaje L={a^i b^i
c^i:i≥0}, sobre Σ={a,b,c}.

1. Se cambia la “a” por una X y se mueve hacia la derecha pasando por encima de todas
las “a” e “Y”, hasta llegar a la primera “b”, cambia la primera “b” por una Y, se mueve a la
derecha pasando por encima de las “b” y “Z”, y luego encuentra la primera “c” y la cambia
por “Z” y se mueve a la izquierda.

2. Luego se mueve a la izquierda pasando por encima de “b”, “Y”, “a”, hasta encontrar la
“X”, la reemplaza por una “X” y repite el proceso anterior, cuando la máquina reemplaza la
cadena “X”, “Y” y “Z” reconoce la cadena vacía y busca el estado de aceptación.

Comprobación de la aceptación de la cadena w = aabbcc:


En cuanto a las aplicaciones de las MT, tenemos la Teoría de la computación:

Teoría de la computación:

La teoría de la computación es una rama de la matemática y la computación que centra


su interés en las limitaciones y capacidades fundamentales de las computadoras.
Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de
hacer un cómputo (cuenta o cálculo) y la clasificación de problemas de acuerdo a su
grado de dificultad.
La teoría de la computación comienza propiamente a principios del siglo XX, poco antes
que las computadoras electrónicas fuesen inventadas. En esta época varios matemáticos
se preguntaban si existía un método universal para resolver todos los problemas
matemáticos. Para ello debían desarrollar la noción precisa de método para resolver
problemas, es decir, la definición formal de algoritmo.

Algunos de estos modelos formales fueron propuestos por precursores como Alonzo
Church (cálculo Lambda), Kurt Gödel (funciones recursivas) y Alan Turing (máquina de
Turing). Se ha mostrado que estos modelos son equivalentes en el sentido de que pueden
simular los mismos algoritmos, aunque lo hagan de maneras diferentes. Entre los
modelos de cómputo más recientes se encuentran los lenguajes de programación, que
también han mostrado ser equivalentes a los modelos anteriores; esto es una fuerte
evidencia de la conjetura de Church-Turing, de que todo algoritmo habido y por haber se
puede simular en una máquina de Turing, o equivalentemente, usando funciones
recursivas. En 2007 Nachum Dershowitz y Yuri Gurevich publicaron una demostración de
esta conjetura basándose en cierta axiomatización de algoritmos.

Uno de los primeros resultados de esta teoría fue la existencia de problemas imposibles
de resolver algoritmicamente, siendo el problema de la parada el más famoso de ellos.
Para estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no
importando la cantidad de tiempo o memoria se disponga en una computadora. Asimismo,
con la llegada de las computadoras modernas se constató que algunos problemas
resolubles en teoría eran imposibles en la práctica, puesto que dichas soluciones
necesitaban cantidades irrealistas de tiempo o memoria para poderse encontrar.

Máquinas Oráculo (O-Machines)

La máquina con oráculo, es una máquina de Turing equipada con un oráculo que es
capaz de contestar preguntas sobre la pertenencia a un conjunto específico de números
naturales.

Funcionamiento:

La máquina también tiene tres estados especiales: el "estado llamada", el "estado-1" y el


"estado-0" y un símbolo marcador especial: μ (mú). Para usar su oráculo, la máquina
debe escribir primero el símbolo μ en dos recuadros de la cinta, y entonces se entrará en
el "estado llamada". En este estado se manda una petición al oráculo y la máquina
termina en el "estado-1" si el número escrito en los cuadrados de la cinta entre los
símbolos "μ" son un elemento del conjunto oráculo y termina en el "estado-0" en otro
caso.

Una máquina oráculo con el "conjunto parada" en su oráculo puede computar la función
del problema de la parada. Mientras este sería un ejemplo trivial del uso del conjunto
oráculo, muchas otras funciones de interés pueden ser computadas utilizando el oráculo
de la función de la parada. De hecho, esto permite que todas las funciones
recursivamente enumerables sean computables.
Función Recursiva Enumerable:

Una función "f" es recursivamente enumerable por definición si y sólo si hay una máquina
de Turing, m, tal que para todo n perteneciente a los ℕ, la máquina dará como salida 1 si
f(n)=1 y dará salida 0 o un bucle infinito (la máquina diverge) en otro caso.

Además una O-Machine con el "oráculo de la parada" puede preguntar a su oráculo si m


se detendrá para la entrada n. Si m no se detiene, la O-Machine puede devolver 0 (f(n)
debe ser 0). Si m se detiene, entonces la O-Machine puede simplemente simular la
entrada n en la máquina m y retornar su resultado.

Dada la potencia y la naturaleza del conjunto de parada, es utilizado a menudo en la


teoría de la recursión para describir los diferentes niveles de computabilidad.

Si un conjunto es computable en una O-Machine con el oráculo X, se dice que es


computable en X o recursiva en X. El conjunto de las funciones computables por una
máquina de Turing puede encajar en esta jerarquía imaginando una máquina de Turing
como una O-Machine con un oráculo vacío, por tanto hay un incremento obvio en la
potencia de esta máquina. La generalización del conjunto de parada a las O-Machines
con oráculo X se denota como X’, donde la (’) es conocida como el operador de salto. De
esta manera, el problema de la parada (y todas las funciones recursivamente
enumerables) se dice que son recursivas en el ∅’, mientras que el problema de la parada
para máquinas con oráculo ∅’ son recursivas en el ∅’’, y así sucesivamente.

Las máquinas oráculo tienen una propiedad de que cualquier función de ℕ en ℕ es


computable por alguna máquina oráculo, pero ningún oráculo es suficiente para permitir a
las O-Machines que tengan acceso a este oráculo computar todas las funciones de ℕ en
ℕ.

Esta situación nace del hecho de que una O-Machine es una combinación entre una parte
clásica (la máquina de Turing de estados y transiciones finitas) y un oráculo (que es un
conjunto posiblemente infinito de números). De alguna manera esto permite la
trivialización de la computación generalizada (si pudiéramos elegir el oráculo una vez que
conociéramos la función, ésta podría ser resuelta utilizando el oráculo como una tabla
infinita de búsqueda). Sin embargo, el concepto de computación por una O-Machine es
interesante y está bien fundado, ya que resolvemos funciones que pueden ser resueltas
con un oráculo determinado.
MT como calculadora de funciones:

Como las maquinas de Turing pueden transformar cadenas de entradas, también se


utilizan como mecanismos para calcular funciones.

MT M=(Q,Σ,Γ,q_0,T,B,δ)

Formalmente una

f:Σ^*→Γ^* (parcial o total)

calcula una función

q_0 w⊢*q_f v, donde v=f(w)

si para una entrada w se tiene:

Σ={a,b} y q_f

El modelo de MT no utiliza estado de aceptación, el estado es llamado estado final se usa


para terminar el proceso de la entrada y producir la salida.

Ejemplo:

Supongamos que tenemos Σ={a,b} y q_f y que representamos los enteros positivos
mediante cadenas solo de “as”. Así el entero “n” estaría representado por a^n.

Se puede construir la MT que calcule la función f(n,m) = n+m, implementando la


transformación

a^n ba^m en a^(n+m) b


Solución:

Se recorren desde la izquierda todas las as hasta encontrar una “b”, esta se reemplaza
por una “a”, cambiando de estado, en este mismo estado se recorren todas las “as” a la
derecha y cuando se llega a un blanco se reemplaza por el mismo blanco se deja la
cabecera a la izquierda y se reemplaza la “a” por un blanco para restarle la que adiciono y
se mueve hacia la derecha y se cambia al estado final “q3”.

M=(Q,Σ,Γ,q_0,q_3,B,δ)

Donde la función se define así:

MT como generadoras de lenguaje

Otra de las capacidades importantes es la de generar lenguajes, tarea en la

MT M=(Q,Σ,Γ,q_0,T,B,δ)

Cual los estados finales son necesarios. Concretamente una MT genera un lenguaje
L⊆Σ^* si:

M comienza a operar con la cinta en blanco en el estado inicial “q0”.

Cada vez que M retorna al estado inicial “q0”, hay una cadena u∈L escrita sobre la cinta.

Todas las cadenas de L son, eventualmente, generadas por M.

El siguiente MT genera cadenas con un numero par de “a” sobre Σ={a}


Funcionamiento de la MT Multicinta
Tal como se describió en la sección anterior sobre la clasificación de las MT, una máquina
multicintas posee n cintas diferentes, y n cabezas de L/E. La función de transición para
máquinas de Turing con n cintas es:

δ:QxΓ^n→QxΓ^n x〖{D,I,N}〗^n

Para entender su funcionamiento, se presentan dos ejemplos a continuación:

Ejemplo 1

Reconocimiento del lenguaje {anbn


n³ 1}. Éste es bastante laborioso en una máquina de Turing con una única cinta. Es
mucho más fácil realizarlo con una máquina de Turing de dos cintas. Suponiendo que,
inicialmente, coloca la cadena a analizar en la cinta 1 y que q1 es el estado inicial. Si la
cabeza de lectura/escritura de la cinta 1 está situada inicialmente sobre el carácter del
extremo izquierdo de la cadena, las cuatro posiciones siguientes son fundamentales para
el reconocimiento (cualquier otra transición sería para cadenas mal formadas y se puede
suponer que llega a un estado que no es de aceptación):

d (q1, (a, B)) =(q1, (a, a), (R, R))

d (q1, (b, B)) =( q2, (b, B), (S, L))


d ( q2, (b, a)) =( q2, (b, a), (R, L))

d ( q2, (B, B)) =( q3, (B, B), (R, L))

Aunque esta máquina de Turing multicinta parece bastante distinta y posiblemente más
potente que la máquina de Turing definida originalmente, las dos son equivalentes en el
sentido de que cada una de ellas puede ser simulada por la otra.

Ejemplo 2

Sea una MT de dos cintas, que reconoce el lenguaje L={a^i b^i c^i:i≥0}

Se coloca la cadena de entrada en la primera cinta, la idea es copiar en la segunda cinta


una X por cada “a” y cuando encuentre la primera “b”, se detiene en la primera cinta,
luego se avanza a la derecha en la primera cinta y se avanza a la izquierda en la segunda
cinta, cuando encuentra la primera “c” las dos cintas avanzan hacia la derecha.

La función de transición es la siguiente, sea T = {q3}.

δ(q0, (a,B)) = (q0, (a,X), (D,D))

δ(q0, (b,B)) = (q1, (b,B), (N,D))

δ(q1, (b,B)) = (q1, (b,X), (D, I))

δ(q1, (c,B)) = (q2, (c,B), (N,D))

δ(q2, (c,X)) = (q2, (c,X), (D,D))

δ(q2, (B,B)) = (q3, (B,B), (D,D))

Se muestra el funcionamiento de la MT multicinta, con la cadena de entrada w = abc.


Se finaliza en el estado q3, definido como estado de aceptación.

Conclusiones
• Una Máquina de Turing, o MT, se considerar una cinta infinita dividida en casillas, cada
una de las cuales contiene un símbolo, y sobre la cual actúa un dispositivo que puede
adoptar diversos estados, y que lee un símbolo de la casilla sobre la que está situado. En
función de dicho símbolo y del estado actual, se pueden realizar tres acciones siguientes:
pasa a un nuevo estado, imprime un símbolo en lugar del que acaba de leer y se desplaza
a una posición hacia la izquierda, derecha, o se detiene.

• Existen diversas clasificaciones de las Máquinas de Turing, atendiendo a los estados


reconocidos, tipo de cinta, cantidad o división de dichas cintas: MT con directiva de
permanecer, MT con cinta infinita en una dirección, MT en dos direcciones, MT multicinta,
MT Multidimensional, MT No determinista.

• Las MT, de acuerdo a la clasificación de los lenguajes formales de Chomsky, acepta los
lenguajes tipo cero (0), llamados lenguajes recursivamente enumerables.

• La creación modular de una maquina de Turing permite desarrollar máquinas complejas


a partir de bloques elementales, mediante diagramas de transiciones. La construcción de
máquinas de Turing se lleva a cabo mediante dichos diagramas de transición, y sus
combinaciones.

• Las MT han sido aplicadas en el desarrollo de la teoría computacional y en las llamadas


máquinas oráculo, generadores de funciones, calculadoras de funciones, y generadores
de lenguaje.

Bibliografía.
• Historia de las Computadoras (n.d.) Extraído desde
http://html.rincondelvago.com/historia-de-las-computadoras_1.html

• Documental: Como empezó la informática. Extraído desde


http://www.taringa.net/posts/info/2788805/Documental--:--Como-empezo-la-
Informatica!.html

• Teoría de Autómatas I: Máquinas de Turing y lenguajes estructurados por frases.


Extraído desde http://dac.escet.urjc.es/~lrincon/uned/ta1/ta1-tema3.pdf

• Máquina de Turing (01, 2003). Wikipedia, la enciclopedia en línea. Extraído desde


http://es.wikipedia.org/wiki/M%C3%A1quina_de_Turing

• Lenguaje recursivamente enumerable (02, 2008). Wikipedia, la enciclopedia en línea.


Extraído desde http://es.wikipedia.org/wiki/Lenguaje_recursivamente_enumerable

• Alfonseca, Manuel (n.d.) La máquina de Turing. Extraído desde


http://www.sinewton.org/numeros/numeros/43-44/Articulo33.pdf
• La máquina de Turing / La teoría de la computación y la Máquina de Turing (05, 2005.)
Epistemowikia. Extraído desde
http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=La_m%C3%A1quina_de_
Turing/La_teor%C3%ADa_de_la_computaci%C3%B3n_y_la_M%C3%A1quina_de_Turing

• Quiroga, E., (2008). Módulo Autómatas y lenguajes formales, (p.p 1 – 143). Bogotá,
Colombia: Universidad Nacional Abierta y a Distancia

• Máquinas de Turing (n.d) Universidad del Valle. Extraído desde


http://eisc.univalle.edu.co/materias/Computabilidad/material/turing.pdf

• 4.4 Variantes de una máquina de Turing (n.d) Extraído desde


http://sistemas.itlp.edu.mx/tutoriales/teoriadelacomputacion/t44.htm

• Máquina de Turing multicinta (n.d.) Extraído desde


http://www3.uji.es/~martine/DOC/E45/apuntes/node12.html

• Zator System (n.d.) Computación: Máquina de Turing. Extraído


desde http://www.zator.com/Cpp/E0_1_1.htm

• Teoría de la Computación (10, 2003). Wikipedia, la enciclopedia en línea. Extraído desde


http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computaci%C3%B3n

• Alan Turing (08, 2003). Wikipedia, la enciclopedia en línea. Extraído


desde http://es.wikipedia.org/wiki/Alan_Turing#cite_note-Leavitt-0

• Alan M. Turing (n.d.) Stanford Encyclopedia of Philosophy. Extraído desde


http://plato.stanford.edu/archives/sum2002/entries/turing/#2