You are on page 1of 23

UNIVERSIDAD NACIONAL DE

INGENIERIA

Trabajo de Teoría de Computación

Máquina de Turing

Diego Rodrigo Lamping Poveda.


Jhovan Alejandro Cantillano Perez.

Fecha:
04-06-2018

Docente: Hilda Saavedra Jiron

Grupo #9
Máquina de Turing

La máquina de Turing, presentada por Alan Turing en 1936 en On computable


numbers, with an application to the Entscheidungsproblems, es el modelo
matemático de un dispositivo que se comporta como un autómata finito y que
dispone de una cinta de longitud infinita en la que se pueden leer, escribir o borrar
símbolos. Existen otras versiones con varias cintas, deterministas o no, etc., pero
todas son equivalentes (respecto a los lenguajes que aceptan).

Uno de los teoremas más importantes sobre las máquinas de Turing es que pueden
simular el comportamiento de una computadora (almacenamiento y unidad de
control). Por ello, si un problema no puede ser resuelto por una de estas máquinas,
entonces tampoco puede ser resuelto por una computadora (problema indecidible,
NP).

La notación de las máquinas de Turing es sencilla y exacta, por lo que es más


cómodo trabajar con ellas a la hora de estudiar qué problemas son decidibles (P)
y cuáles indecidibles (NP).

Por el momento la relación de inclusión entre P y NP está por demostrar, aunque


sí sabemos que

P⊆NPP⊆NP

Además, diremos que los lenguajes aceptados por los Autómatas


Finitos (Deterministas o no, con o sin transiciones-ε, con o sin pila...) pueden ser
aceptados también por alguna máquina de Turing.

Definición de la Máquina de Turing


Llamamos Máquina de Turing (ó MT) a

M=(Q,Σ,T,δ,q0,B,F)M=(Q,Σ,T,δ,q0,B,F)

donde
 Q es el conjunto finito de estados que denotaremos por

q0,q1,q2,...q0,q1,q2,...

 Σ es el alfabeto: el conjunto finito de símbolos de entrada.


 Τ es el conjunto de símbolos de cinta. El alfabeto es un subconjunto de Τ.
 q0 es el estado inicial: el estado en el que se encuentra inicialmente la MT.
 B es un elemento de Σ: el símbolo en blanco. Se encuentra en todas las
casillas de la cinta que no tienen un símbolo de entrada.
 F es el conjunto de estados finales.
 δ es la función de transiciones.

La expresión

δ(q,X)=(p,Y,D)δ(q,X)=(p,Y,D)

indica que en el estado q, si la cabeza de la MT señala al símbolo de cinta X,


entonces la MT escribe el símbolo de cinta Y en la casilla actual
(cambia X por Y ) y mueve la cabeza una casilla hacia D (D puede ser
derecha, R; o izquierda, L) y pasa al estado p.

La cinta de la MT está formada por infinitas casillas.

Inicialmente, la palabra de entrada (una concatenación de símbolos del alfabeto)


se encuentra escrita en casillas consecutivas de la cinta y la cabeza señala al primer
símbolo de la palabra. Todas las otras casillas (hacia la izquierda y la derecha)
contienen el símbolo en blanco.

Lenguaje de una Máquina de Turing


El lenguaje de una Máquina de Turing

M=(Q,Σ,T,δ,q0,B,F)M=(Q,Σ,T,δ,q0,B,F)

es

L(M):={w∈Σ∗ : q0w⊢∗ αpβ,p∈F,α,β∈T∗}L(M):={w∈Σ∗ : q0w⊢∗ αpβ,p∈F,α,β∈T∗}

Es decir, las w de Σ* tales que la máquina de Turing alcanza un estado de


aceptación.

Lenguaje Recursivo

Sea L el lenguaje de una máquina de Turing M, es decir, L = L(M), y además,

 si w es una palabra de L, entonces M se para (y alcanza un estado de


aceptación)

 si w no es una palabra de L, entonces M se para (pero no alcanza un estado


de aceptación)

entonces se dice que L es un lenguaje recursivo

Ejemplos:
1. Máquina de Turing que proporciona el complemento a 1 de un número
binario.

La MT tendrá escrita en la cinta un número de n cifras (bits) en binario (ceros y


unos). Tiene que cambiar los 0's por 1's y viceversa.
Inicialmente, la cabeza de la MT señala la primera cifra del número (la que está
más a la izquierda). Las otras casillas tienen el símbolo en blanco.

La cinta de la MT es

La MT tendrá únicamente dos estados: el inicial, q0, y el de aceptación o final, q1.

La MT se mantiene en el estado q0 mientras realiza la conversión. Cuando haya


finalizado, pasa al estado q1.

Función de Transiciones:

δ(q0,1)=(q0,0,R)δ(q0,1)=(q0,0,R)

Es decir, si la cabeza señala un 1, lo cambia por un 0 y se mueve hacia la derecha.

δ(q0,0)=(q0,1,R)δ(q0,0)=(q0,1,R)

Es decir, si la cabeza señala un 0, lo cambia por un 1 y se mueve hacia la derecha.

δ(q0,B)=(q1,B,R)δ(q0,B)=(q1,B,R)

Es decir, cuando la cabeza señala el primer símbolo en blanco, la cabeza se mueve


a la derecha y la MT pasa al estado final.

Por tanto, la MT es

M=({q0,q1},{0,1},{0,1,B},δ,q0,B,{q1})M=({q0,q1},{0,1},{0,1,B},δ,q0,B,{q1})

siendo δ la función de transición definida por:

δ(q0,0)=(q0,1,R)δ(q0,0)=(q0,1,R)

δ(q0,1)=(q0,0,R)δ(q0,1)=(q0,0,R)
δ(q0,B)=(q1,B,R)δ(q0,B)=(q1,B,R)

Notemos que la MT se para al llegar al estado de aceptación q1 ya que para este


estado no tenemos definida la función de transición.

- La Máquina de Turing como aceptadora de Lenguajes

Una palabra x es aceptada por una máquina de Turing M sii a partir de la descripción inicial se llega
a una con estado final

x ∈ L(M) ⇔ q0x ∗ α1qα2 con α1, α2 ∈ Γ∗ y q ∈ F

L(M) = {x ∈ Σ∗ | q0x ∗ α1qα2, α1, α2 ∈ Γ∗, q ∈ F}

• Un lenguaje es recursivamente enumerable si es aceptado por una máquina de Turing

• Un lenguaje es recursivo si es aceptado por una máquina de Turing que se detiene ante todas las
entradas
Ejemplo 1: Sea el lenguaje L formado por las palabras sobre Σ = {0, 1} que contienen al menos un 1:

• Ambas máquinas reconocen L

• M2 no se detiene para 0∗

• M1 se detiene ante cualquier entrada. L es recursivo

Ejemplo 2: Máquina que acepta el lenguaje de palabras sobre {0, 1} que comienzan y acaban con
el mismo símbolo
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.


Almacenamiento en el control finito
Se dota al control finito de una memoria finita capaz de almacenar información limitada.

(a) Almacenamiento de una tupla de k estados

(b) Almacenamiento de una tupla de k símbolos

(c) Almacenamiento de otra información.

Último movimiento aplicado, primer símbolo de la cadena de entrada, etc

Pistas múltiples (multipistas)


La cinta almacena en cada celda un vector k dimensional de símbolos a los que se accede
simultáneamente.
Subrutinas:

Una subrutina es un subconjunto de movimientos de la función δ que se puede utilizar igual que
en algunos lenguajes de programación.

Paso de control

Se utiliza almacenamiento en el control finito [qact, qin, qfin]

Paso de variables

Se utiliza almacenamiento en control finito o bien multipistas

Recursividad

Una subrutina puede llamarse a sí misma

La pila de recursividad puede habilitarse en una pista

Extensión del modelo de la máquina de Touring básica


En su memorable estudio "Los números computables, con una aplicación al Entscheidungsproblem"
(publicado en 1936), Turing reformuló los resultados obtenidos por Kurt Gödel en 1931 sobre los
límites de la demostrabilidad y la computación, sustituyendo al lenguaje formal universal descrito
por Gödel por lo que hoy se conoce como máquina de Turing, unos dispositivos formales y simples.
Turing demostró que dicha máquina era capaz de resolver cualquier problema matemático que
pudiera representarse mediante un algoritmo. Las máquinas de Turing siguen siendo el objeto
central de estudio en la teoría de la computación. Llegó a probar que no había ninguna solución
para el problema de decisión, Entscheidungsproblem, demostrando primero que el problema de la
parada para las máquinas de Turing es irresoluble: no es posible decidir algorítmicamente si una
máquina de Turing dada llegará a pararse o no. Aunque su demostración se publicó después de la
demostración equivalente de Alonzo Churchrespecto a su cálculo lambda, el estudio de Turing es
mucho más accesible e intuitivo. También fue pionero con su concepto de «máquina universal (de
Turing)», con la tesis de que dicha máquina podría realizar las mismas tareas que cualquier otro tipo
de máquina. Su estudio también introduce el concepto de números
Máquina de Turing como aceptadores de lenguaje
Teoremas sobre las máquinas de Turing

1. Lenguaje Recursivamente Enumerable


Recordemos que llamamos lenguaje Recursivamente Enumerable (RE) a los lenguajes que pueden
ser aceptados por una Máquina de Turing.

Teorema 1

Todo lenguaje aceptado por una Máquina de Turing de varias cintas es Recursivamente Enumerable.

Teorema 2

Sea L = L(M) el lenguaje que acepta una máquina de Turing no determinista M, entonces existe una
máquina de Turing deterministaN que acepta dicho lenguaje, es decir, L(M) =L (N).

Lenguajes de máquinas de Turing y de Autómatas


Teorema 3

Sea L el lenguaje aceptado por una máquina de Turing, entonces existe algún Autómata de dos pilas
que acepta L.

Teorema 4

Todo lenguaje Recursivamente Enumerable es aceptado por alguna máquina de tres contadores.

Teorema 5

Todo lenguaje Recursivamente Enumerable es aceptado por alguna máquina de dos contadores.

Lenguajes aceptados por una maquina Turing


Aceptan lenguajes formales que pueden ser generados por una gramática de tipo 0:
recursivamente innumerable. Las máquinas de Turing son los reconocedores de lenguaje
más poderosos que existen.
Lenguajes regulares: las gramáticas (de tipo 3) formales definen un lenguaje describiendo
como se pueden generar las cadenas del lenguaje… Las gramáticas regulares (aquellos
reconocidos por un autómata finito). Son las gramáticas más restrictivas. El lado derecho
de una producción debe contener un símbolo Terminal y como máximo un símbolo no
Terminal.
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.
Tipos de Máquina de Turing
Existen varios tipos de Máquinas de Turing, (Jurado Málaga Elena, 2008) todas caracterizadas por
tener un comportamiento similar, entre ellas están:

 Máquina de Turing con cinta infinita a ambos lados

Esta modificación de denota al igual que una Máquina de Turing sencilla, lo que la hace diferente
es que la cinta es infinita tanto por la derecha como por la izquierda.

 Máquina de Turing con Cinta Multiplista

Es aquella mediante la cual cada celda de la cinta de una maquina sencilla se divide en subceldas.
Cada celda es capaz de contener carios símbolos de la cinta. Se dice que la cinta tiene múltiples
pistas porque cada celda de esta Máquina de Turing contiene múltiples caracteres, el contenido de
las celdas de la cinta puede ser representado mediante n-tuplas ordenadas. Los movimientos que
realice esta máquina dependerán de su estado actual y de la n-tupla que represente el contenido
de la celda actual. Debe mencionar que posee un solo cabezal al igual que una Máquina de Turing
sencilla.

 Máquina de Turing Multicinta

Las Máquinas de Turing con más de una cinta consisten en un control finito con k cabezales
lectores/escritores y k cintas. Cada cinta es finita en ambos sentidos. La Máquina de Turing
Multicinta define su movimiento dependiendo del símbolo que está leyendo cada uno de sus
cabezales, las reglas de sustitución para cada uno de los símbolos y dirección de movimiento para
cada uno de los cabezales. Inicialmente empieza con la entrada en la primera cinta y el resto de las
cintas en blanco.

 Máquinas de Turing Multidimensional

Una Máquina de Turing multidimensional es aquella cuya cinta se extiende infinitamente en más
de una dirección, ejemplo más básico sería el de una maquina bidimensional cuya cinta se
extendería infinitamente hacia arriba, abajo, izquierda o derecha.

 Máquinas de Turing No Deterministas

Es una Máquina de Turing en la que pueden existir varias transiciones a partir del mismo estado y
lectura del cabezal. Esto significa que dado un estado y un símbolo de entrada, es posible elegir la
transición a efectuar entre varias operaciones. Una Máquina de Turing No Determinista se puede
modelar como una Máquina de Turing con una entrada adicional que permite seleccionar la
transición a efectuar entre las varias posibilidades a cada paso.

Se pueden reescribir las transiciones añadiendo nuevos estados de manera que en cada caso la
elección se efectué solo entre dos opciones, con lo que el selector podría ser una señal de un bit.
37 Todo lenguaje aceptado por una Máquina de Turing No Determinista puede ser aceptado por
una Maquina de Turing Determinista.
 Máquina de Turing Universal

Es una Máquina de Turing capaz de simular el comportamiento de cualquier Maquina de Turing


sobre cualquier cadena de entrada. Para poder construir una Máquina de Turing Universal es
necesario definir una codificación de las Máquinas de Turing, de manera que se pueda controlar a
la maquina por medio de su código.

Modificaciones de la maquina de Turing


Una razón para aceptar a la máquina de Turing como un modelo general de computo es que el
modelo con el que hemos estado trabajando hasta ahora es equivalente a muchas versiones
modificadas que en principio parecieran incrementar el poder computacional.

La máquina de Turing sencilla , sitúa la cabeza de lectura/ escritura sobre el primero

que haya a la izquierda de la posición actual. Para hacerlo, buscamos fuera de la celda
actual y retrocedemos. Esto es debido a nuestra definición que requiere que por cada
transición se mueva la cabeza de la cinta.

Una máquina de Turing, para la cual esté definida


Múltiples pistas

Otra modificación sencilla de nuestra máquina de Turing básica es aquella mediante la cual
cada celda de la cinta se divide en subceldas. Cada subcelda es capaz de contener un
símbolo 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-uplas ordenadas.

Por ejemplo, queremos construir una máquina de Turing que sume dos números binarios.
Para ello, podemos construir una máquina de Turing de tres pistas. Se supone que la
entrada serán dos números binarios que ocupen las dos pista superiores de la cinta.
Suponemos 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 tuviésemos 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:
Una máquina de Turing con una cinta finita en un sentido puedo 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, puedo simular a M si tiene una cinta con dos pistas. La cinta
superior contiene la in información correspondiente a la parte derecha de la cinta de M', a
partir de un p le referencia dado.

Multicinta

Una modificación que es más complicada, es la máquina de Turing multicinta. Esta máquina
de Turing 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 sólo movimiento, esta
máquina de Turing:
a) 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.

b) Escribe un nuevo símbolo en cada una de las celdas barridas por sus cabezas de
lectura/escritura.

c) Mueve cada una de sus cabezas hacia la izquierda o hacía la derecha (de forma
independiente al resto de las cabezas).

Inicialmente, la entrada aparece en la primera cinta, y las otras cintas están en blanco.

Por tanto, la función de transición para una máquina de Turing con n cintas, es de la

forma:

Aunque una máquina de Turing multicinta parece bastante distinta y posiblemente más
potente que nuestra 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:

El lenguaje L = {ww R | w ∈ (0 + 1) ∗}

lo reconoce una MT de una sola cinta, moviendo la cabeza de la cinta hacia atrás y adelante,
checando símbolos en ambos extremos y comparándolos. Para reconocer a L con una MT
con dos cintas, la entrada se copia a la segunda cinta. La entrada en la primera cinta se
compara con el de la otra cinta al revés moviendo las cabezas en direcciones opuestas, se
verifica la longitud de la entrada para asegurarse que sea par.
Máquina de Turing multidimensional

Una máquina de Turing multidimensional fácilmente es similar a la maquina estándar.


Simplemente realiza todas sus computaciones en una única dimensión.

Para simular una máquina de Turing de dos dimensiones mediante una máquina de Turing
estándar, primero asociaremos 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 el plano de coordenadas.

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, a la derecha, hacia arriba o hacia abajo.

En cualquier momento, solo un numero finito de renglones en cualquier dimensión


contienen símbolos no blancos, y cada uno de estos renglones tienen solo un numero finito
de símbolos no blancos.

Por tanto, la función de transición para esta máquina de Turing será de la forma

Cinta infinita de doble vía

Se denota por M = (Q, Σ, Γ, δ, q0, B, F), la cinta es infinita tanto hacia la izquierda como hacia
la derecha. Denotamos 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ón no blanca en la cinta. La primera máquina marca la celda a la izquierda de la posición
inicial de la cabeza y luego simula la segunda máquina. Si durante la simulación se alcanza
la celda marcada, entonces termina la simulación sin aceptar la entrada.
Tesis de Church-Turing

La Tesis de Church-Turing es una formulación hipotética de la equivalencia entre los


conceptos de función computable y máquina de Turing, que si se expresa en lenguaje
corriente, sería “todo algoritmo es equivalente a una máquina de Turing”.

El concepto inicial de la máquina de Turing, misma que no existe físicamente, sino


como descripción formal, se tienen los siguientes modos:

•Máquinas de Turing con más de una cinta


•Máquinas de Turing con contas n-dimensionales
•Máquinas de Turing con un número limitado de estados y símbolos
•Máquinas de Turing probabilistas
•Máquinas de Turing no deterministas

Los lenguajes formales aceptados por una máquina de Turing son los que se
pueden generar por una gramática formal.
Entre los lenguajes formales aceptados por una máquina de Turing existen :

•Autómatas finitos con dos pilas


•Autómatas finitos con dos contadores
•La gramática formal
•El sistema Post
•El cálculo Lambda
•Funciones recursivas parciales
•Autómatas celulares, como el juego de la vida de Conway
•Computadoras cuánticas

Los tres últimos ejemplos funcionan con una definición un poco distinta de aceptación
de lenguaje, ya que aceptan una cadena si existe un solo cómputo que la acepta o la
mayoría la acepta, entonces es equivalente a la máquina de Turing.
Aunque se asume como cierta, la tesis de Church-Turing no puede ser probada
debido a que no se poseen los medios necesarios, por ello es una tesis. Debido a
que “procedimiento efectivo” y“algoritmo” no son conceptos dentro de ninguna
teoría matemática y no son definibles fácilmente.

Esta tesis ha ganado gran éxito porque la mayoría la considera como verdadera. Los
términos que se derivan de ella como método efectivo y computable son comúnmente
utilizados, en realidad, computable se refiere a Turing-Computable, en el salto
entre uno y otro se encuentra la tesis de Church.
Simulación de Autómatas por medio de la Maquina de Turing:
Simulación de Autómatas, Simulación de Autómatas con Pila.

Simulación de máquinas de Turing

Será la definición del diagrama de transiciones. Las opciones de dibujo son


idénticas. Y lo mismo las operaciones que podemos llevar a cabo una vez
tenemos el diagrama de transiciones definidos. Una diferencia importante es, sin
embargo, la posibilidad de elegir distintos tipo de máquinas de Turing. El modelo
básico se complementa con otros, fruto de restringir o aumentar las capacidades
del modelo básico.

Autómata Simulador: Permite el diseño y simulación de autómatas finitos,


autómatas de pila y máquinas de Turing. Como en otras, su punto débil es la
facilidad de uso. Integra la simulación de autómatas finitos, autómatas de pila y
tanto máquinas de Turing convencionales como multicinta.

Simulación de autómatas de pila

El primer paso, cuando trabajamos con los autómatas de pila, es definir su


funcionamiento mediante la definición de su diagrama de transiciones, que
podemos editar con las herramientas de dibujo. Podemos insertar estados y
conectarlos mediante transiciones. Cada vez que realizamos la conexión de un par
de estados se nos pregunta por el símbolo que deberá leerse de la entrada, el
símbolo que deberá estar presente en el tope de pila, y la secuencia de símbolos
que debe apilarse a continuación (estos se apilarán de izquierda a derecha, es decir
al final, el último símbolo de la secuencia, será el símbolo de tope de pila).
Podemos simular su funcionamiento, observando paso a paso, como se van
modificando el estado actual, la entrada por leer y los contenidos de la pila. Cuando
hacemos esto, podemos avanzar o retroceder en el proceso. O seleccionar las
configuraciones a las que llegamos para mostrar una traza que nos muestra toda la
secuencia de configuraciones que nos ha permitido llegar a la seleccionada. Esto
es especialmente útil en presencia de situaciones de indeterminismo, en las que
podemos tener más de una posible configuración actual.
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.