Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INGENIERIA
Máquina de Turing
Fecha:
04-06-2018
Grupo #9
Máquina de Turing
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).
P⊆NPP⊆NP
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,...
La expresión
δ(q,X)=(p,Y,D)δ(q,X)=(p,Y,D)
M=(Q,Σ,T,δ,q0,B,F)M=(Q,Σ,T,δ,q0,B,F)
es
Lenguaje Recursivo
Ejemplos:
1. Máquina de Turing que proporciona el complemento a 1 de un número
binario.
La cinta de la MT es
Función de Transiciones:
δ(q0,1)=(q0,0,R)δ(q0,1)=(q0,0,R)
δ(q0,0)=(q0,1,R)δ(q0,0)=(q0,1,R)
δ(q0,B)=(q1,B,R)δ(q0,B)=(q1,B,R)
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})
δ(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)
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
• 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:
• M2 no se detiene para 0∗
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.
1. Elimine las características de inicio de los estados iniciales de las maquinas, excepto la de aquel
donde iniciara la maquina compuesta.
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.
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
Paso de variables
Recursividad
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).
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.
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:
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:
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:
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.
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.
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.
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.
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
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.
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
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.
Por tanto, la función de transición para esta máquina de Turing será de la forma
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
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 :
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.
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.
• Las MT, de acuerdo a la clasificación de los lenguajes formales de Chomsky, acepta los
lenguajes tipo cero (0), llamados lenguajes recursivamente enumerables.