Está en la página 1de 2

La máquina de Turing

(Creada en 1936 por Alan Turing)


La máquina de Turing es un modelo matemático que consiste o se comporta como
un autómata finito siendo capaz de implementar cualquier problema matemático
expresado a través de un algoritmo y esto lo hace muy simple debido a que
manipula símbolos sobre una tira de cinta siguiendo una serie de reglas y es muy
potente ya que puede adaptarse y simular la lógica de cualquier algoritmo de
computador.
La máquina de Turing está compuesta por una cinta que se divide en espacios de
trabajo o celdas que se comportan como memoria, un cabezal que es 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.
Aunque la máquina de Turing es considerada como un autómata es muchísimo
más superior que el autómata finito o que el autómata con pila puesto que la
máquina de Turing es un autómata con la capacidad de reconocer lenguajes
formales de acuerdo a la jerarquía de Chomsky
Existen diversos tipos de máquinas de Turing: con movimiento stay, con cinta
infinita a ambos lados, con cinta multipista, multicinta, determinista y no
determinista y 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.
Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo
especial llamado blanco, un conjunto de estados finitos y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una función de
transición, que recibe un estado inicial y una cadena de caracteres pertenecientes
al alfabeto de entrada.
Funcionamiento
La máquina va leyendo una celda de la cinta en cada paso, borrando el símbolo
en el que se encuentra posicionado su cabezal y escribiendo un nuevo símbolo
perteneciente al alfabeto de salida para luego desplazar el cabezal a la izquierda o
a la derecha. Esto se repite según se indique en la función de transición, para
finalmente detenerse en un estado final o de aceptación representado así la salida
Problemas de Complejidad
Problema computacional
Un problema computacional es una deseada relación entre una entrada y una
salida. Un algoritmo resuelve un problema computacional si logra producir la
relación deseada.
Los recursos comúnmente estudiados en complejidad computacional son:
– El tiempo: mediante una aproximación al número de pasos de ejecución que un
algoritmo emplea para resolver un problema.
– El espacio: mediante una aproximación a la cantidad de memoria utilizada para
resolver el problema.
Los problemas polinómicos y no polinómicos se basan en el estudio del tiempo de
ejecución un algoritmo
 Problemas No polinómicos (NP)
Los problemas no polinómicos son el conjunto de problemas que pueden
ser resueltos en tiempo polinómico por una máquina de Turing no
determinista.
Los problemas NP están compuestos por los problemas que tienen un
certificado sucinto (también llamado testigo polinómico) para todas las
instancias cuya respuesta es un SÍ. La única forma de que tengan un
tiempo polinomial es realizando una etapa aleatoria, incluyendo el azar de
alguna manera para elegir una posible solución, y entonces en etapas
posteriores comprueba si esa solución es correcta.

NP representa una frontera de la tratabilidad. Los problemas que no


pertenecen a NP son claramente intratables; si un problema no se puede
verificar de una forma eficiente, parece lógico pensar que su resolución
será intratable.
 Problemas polinómicos (P)
Los problemas polinómicos son el conjunto de problemas concretos de
decisión para los cuales existe un algoritmo que lo resuelve en tiempo
polinomial; es decir los problemas P suelen problemas computacionales que
son eficientemente resolubles o tratables

También podría gustarte