Introducción a la máquina de Turing
Una máquina de Turing es un dispositivo de aceptación que acepta los idiomas (conjunto enumerable recursivamente) generados por gramáticas de tipo 0. Fue inventado en 1936 por Alan Turing.
Definición
Una máquina de Turing (TM) es un modelo matemático que consiste en una cinta de longitud infinita dividida en celdas en las que se da entrada. Consiste en un cabezal que lee la cinta de entrada. Un registro estatal almacena el estado de la máquina de Turing. Después de leer un símbolo de entrada, se reemplaza con otro símbolo, se cambia su estado interno y se mueve de una celda a la derecha o izquierda. Si la TM alcanza el estado final, se acepta la cadena de entrada; de lo contrario, se rechaza.
Una TM se puede describir formalmente como una tupla de 7 (Q, X, ∑, δ, q 0 , B, F) donde -
Q es un conjunto finito de estados
X es el alfabeto de la cinta
∑ es el alfabeto de entrada
δes una función de transición; δ: Q × X → Q × X × {Left_shift, Right_shift}.
q0 es el estado inicial
B es el símbolo en blanco
F es el conjunto de estados finales
Comparación con el autómata anterior
La siguiente tabla muestra una comparación de cómo una máquina de Turing se diferencia de Finite Automaton y Pushdown Automaton.
Máquina | Estructura de datos de pila | Determinista? |
---|---|---|
Autómata finito | N / A | si |
Autómata de empuje | Último en entrar, primero en salir (LIFO) | No |
Máquina de Turing | Cinta infinita | si |
Ejemplo de máquina de Turing
Máquina de Turing M = (Q, X, ∑, δ, q 0 , B, F) con
- Q = {q 0 , q 1 , q 2 , q f }
- X = {a, b}
- ∑ = {1}
- q 0 = {q 0 }
- B = símbolo en blanco
- F = {q f }
δ está dado por -
Símbolo del alfabeto de cinta | Estado actual 'q 0 ' | Estado actual 'q 1 ' | Estado actual 'q 2 ' |
---|---|---|---|
una | 1Rq 1 | 1Lq 0 | 1Lq f |
segundo | 1Lq 2 | 1Rq 1 | 1Rq f |
Aquí la transición 1Rq 1 implica que el símbolo de escritura es 1, la cinta se mueve hacia la derecha y el siguiente estado es q 1 . De manera similar, la transición 1Lq 2 implica que el símbolo de escritura es 1, la cinta se mueve hacia la izquierda y el siguiente estado es q 2 .
Complejidad temporal y espacial de una máquina de Turing
Para una máquina de Turing, la complejidad del tiempo se refiere a la medida del número de veces que se mueve la cinta cuando la máquina se inicializa para algunos símbolos de entrada y la complejidad del espacio es el número de celdas de la cinta escritas.
Complejidad temporal todas las funciones razonables -
T(n) = O(n log n)
Complejidad espacial de TM -
S(n) = O(n)