Вы находитесь на странице: 1из 37

MÁQUINAS DE

TURING
Integrantes: - Apaza Humpire, Javier
Augusto - Guerra Vidal, Maria Alexandra - Montoya
Muñoz, Solansh - Roque Mamani, Luis - Cruces
Ramos Danilo
1.Máquina de Turing (MT)
Máquina abstracta definida por el matemático inglés Alan Turing, 1936.
Es un autómata finito que dispone de una única cinta de longitud infinita en la que
se pueden leer y escribir datos.
Es lo suficientemente simple como para que podamos representar su configuración
de manera precisa, utilizando una notación sencilla muy similar a las descripciones
instantáneas de un autómata a pila.
2. Notación para una Máquina de
Turing
Símbolos de cinta Espacios en blanco (B,#,)
Alfabeto de entrada
Cabeza de Cinta
2. Notación para una Máquina de
Turing
Estado inicial
Estados
Alfabeto
Transición
Símbolo de cinta
Estados de Aceptación
Símbolo de espacio en blanco
(p,Y,D)
1. p es el siguiente estado de Q. 2. Y es el símbolo de Γ. 3. D es
una dirección y puede ser L o R.
EJEMPLO 8.2

Vamos a diseñar una máquina de Turing y a ver cómo se comporta con una entrada
tipica. La MT que vamos a construir aceptará el lenguaje (0"1" | n>1}. Inicialmente, se
proporciona a la cinta una secuencia finita de ceros y unos, precedida y seguida por
secuencias infinitas de espacios en blanco. Alternativamente, la MT cambiará primero un
0 por X y luego un 1 por una Y. hasta que se hayan cambiado todos los ceros y los unos.
Más detalladamente, comenzando por el extremo izquierdo de la entrada, se cambia
sucesivamente un 0 por una X y se mueve hacia la derecha pasando por encima de todos
los ceros y letras y que ve, hasta encontrar un
1. Cambia el 1 por una Y y se mueve hacia la izquierda pasando sobre todas las letras Y y ceros
hasta encontrar una X. En esta situación, busca un 0 colocado inmediatamente a la derecha y, si
lo encuentra, lo cambia por una
X y repite el proceso, cambiando el 1 correspondiente por una Y.
Si la entrada no es de la forma 0*1", entonces la MT terminará no haciendo el
siguiente movimiento y se detendrá sin aceptar. Sin embargo, si termina cambiando todos
los ceros por X en la misma iteración en la que cambia el último 1 por una Y, entonces
determina que la entrada era de la forma 0"1" y acepta. La especificación formal de la
máquina de Turing Mes:
M=({90,91,92,93,94},{0,1},{0,1,X,Y,B), 0,90,B,{94})
donde
se especifica en la tabla de la Figura 8.9.
Simbolo
X YB
Estado
(91.X,R) (91,0,R) (92.0.1)
- (92,Y.L)
Il

(91,9,R)
-

-
Con
(93,Y,R) (91,Y,R) (92.Y.L) (93,Y,R)
(90,X.R)
|
8ਚਚ
i
1

(94,B, R)
!
-
Diagrama de Transición
Aceptación de palabras por la
Máquina de Turing
- Una palabra x pertenece a E* es aceptada por una MT T si
empezando con la configuración inicial correspondiente a la
palabra x, eventualmente se llega al estado de aceptación ha. -
Note que no es necesario procesar toda la palabra para aceptarla.
- El lenguaje aceptado por T es el conjunto de palabras
aceptadas por T.
Rechazo de palabras por la Máquina
de Turing
- Una palabra x perteneciente a E* es rechazada por una MT T si
empezando con
la configuración inicial correspondiente a la palabra x,
eventualmente se llega al estado de rechazo hr. - Note que no es
necesario procesar toda la palabra para rechazarla. - Es
costumbre omitir el estado de rechazo y rechazar una palabra
cuando no existe
una transición, es decir, cuando la máquina se queda “colgada”.
Ejemplos:
MT que acepta palabras sobre {a, b} que
inician con‘a'
Cama Qens ©
#?#R
alas
2
b/b, s #1#,5
5. Extensiones de la máquina de
Turing básica
Existen modelos de computadoras relacionadas con las
máquinas de Turing que tienen la misma funcionalidad de
reconocimiento de lenguajes que el modelo básico de las MT:
● Máquina de Turing de varias cintas
● Maquina de Turing no determinista
Máquina de Turing de varias cintas
● El dispositivo tiene una unidad de control (estado) y un
número infinito de cintas.
● Cada cinta está dividida en casillas, y cada casilla puede
contener cualquier símbolo del alfabeto de cinta finito.
● EL conjunto de símbolos de la cinta incluye el espacio en
blanco y dispone de un subconjunto de símbolos de entrada (al
que no pertenece el espacio en blanco)
● El conjunto de estados incluye un estado inicial y varios
estados de aceptación.
Equivalencias de MT de una sola cinta
y de varias cintas
● Es prácticamente seguro que las MT de varias cintas aceptan
todos los lenguajes recursivamente enumerables, ya que una MT
de una sola cinta es un caso particular de una MT de varias
cintas.
● Sin embargo, no existen lenguajes que no sean recursivamente
enumerables y que sean aceptados por máquinas de Turing de
varias cintas.
Tiempo de ejecución en la
construcción que pasa de muchas
cintas a una
● Se dice que el tiempo de ejecución de la MT “m” para una
entrada “w” es el número de pasos que m realiza antes de
pararse.
● Si m no se para con la entrada w, entonces el tiempo de
ejecución de m para w es infinito
● La complejidad temporal (o tiempo de ejecución) de m es la
función T(N) que es el máximo, para todas las entradas w de
longitud n.
● En las MT que no se detienen para todas las entradas, T(N)
puede ser infinito para algun n o para todo n
Maquinas de Turing no deterministas
● Una máquina de Turing no determinista (MTN) se diferencia
de la máquina determinista en que tiene una función de
transición δ tal que para el estado q y símbolo de cinta X, δ (q,
X) es un conjunto de tuplas:
(q 1 ,Y 1 , D 1 ), (q 2 ,Y 2 , D 2 ), . . . , (q k ,Y k , D k )}
donde k es cualquier número entero finito. La MTN puede
elegir, en cada paso, cuál de las tuplas será el siguiente
movimiento.
● Las MTN no aceptan ningún lenguaje que no sea aceptado por
una MT determinista (o MTD si necesitamos resaltar que se trata
de una máquina determinista).
5. Máquinas de Turing Restringidas
Tras aplicar algunas restricciones a las Máquinas de Turing, se
demuestra que aún pueden reconocer los mismo lenguajes.
Tenemos:
1. MT con cinta semi-infinita 2. Máquina con varias pilas 3.
Máquinas contadoras
5.1 MT con cinta semi-infinita
● La cinta es infinita solo a la derecha, la entrada se coloca al
inicio de la cinta con lo que solo continua a la derecha.
● No se pueden escribir espacios en blanco (blank)
● Una MT normal se puede simular con una MT semi-infinita
con dos cintas.
● Los estados ahora tienen una segunda componente (U o L)
para referirse a la cinta superior o inferior.
● * solo marca el extremo izquierdo de la cinta.
● Las transiciones de la cinta superior son iguales a una MT
normal, las de la cinta inferior son contrarias.
5.2 Máquinas con varias pilas
Se puede generalizar como un autómata de pila determinista.
Un movimiento de la máquina con varias pilas está basado en:
1. El estado de la máquina de control. 2. El símbolo de entrada
leido. 3. El símbolo superior de cada una de las pilas.
Regla de transición típica para una máquina con k número de
pilas:
La regla de transición nos dice que estamos en un estado q,
leemos el símbolo a y en la cima de la pila i tenemos Xi y
hacemos una transición al estado p y cambiamos la cima de cada
pila por i
5.3 Máquinas contadoras
● Una máquina contadora tiene la misma estructura que una
máquina de varias pilas, pero ahora cada pila es un contador.
● Los contadores no pueden almacenar valores negativos.
● Solo se puede distinguir entre contadores que están en cero y
contadores que no están en cero.
6. Máquinas de Turing y
computadoras
Para hacer la comparación debemos recurrir a intuición en lo
que una computadora puede hacer. Se define que:
1. Una computadora puede simular una máquina de Turing 2.
Una máquina de Turing puede simular una computadora
Simulación de una máquina de Turing
mediante una computadora
Para la demostración suponemos que disponemos de tantos
discos como necesite la computadora, ya que la memoria de una
computadora es finita.
Pila de la izquierda almacena los datos de la máquina de Turing.
Pila de la derecha almacena los datos almacenados.
Cuando más profundo se encuentre un símbolo en una pila, más
alejado de la cabeza de la cinta se encontrará el dato.
Si la cabeza de la cinta de la MT se alejara hacia la izquierda, un
operador cambiaría el disco que está montado por otro y lo
colocaría en la pila de la derecha.
Si la cabeza de la cinta de la MT alcanza casillas
suficientemente alejadas por la derecha, un operador retirará
entonces el disco actualmente montado en la parte superior de la
pila izquierda y montará el disco en la parte superior de la pila
derecha de la computadora
Simulación de una computadora
mediante una máquina de Turing
Para simular la máquina de Turing se utiliza varias cintas:
1. Memoria: representa la memoria completa de la computadora.
2. Contador de instrucciones: Esta cinta almacena un entero en
binario, que
representa una de las posiciones de memoria sobre la cinta
1. 3. Dirección de memoria. el contenido de dicha dirección
después de que ésta haya
sido localizada en la cinta 1
La máquina de Turing simulará el ciclo de instrucción de la
computadora:
1. Busca en la primera cinta la dirección de la instrucción de la
cinta 2. 2. Cuando encuentra la dirección de la instrucción, lo
examina. 3. Si la instrucción requiere el valor de alguna
dirección, entonces utiliza la tercera
cinta de apoyo 4. Se ejecuta la instrucción 5. Después de
ejecutar la instrucción, se suma 1 al contador de instrucciones y
de
nuevo se inicia el ciclo de instrucción.
Aunque no tenga todo lo que puede realizar una computadora,
esta representación es una simulación de una computadora
básica.
Ejercicios
Ejercicio 1
Diseñar una máquina de Turing que calcule el complemento a 1
de un número binario
0000 1111
0101 1010
0110 1001
0011 1100
Recorrer el numero y cambiar los 1’s por 0’s y los 0’s por 1’s
[transición recursiva en q0], hasta encontrar un B [transición de
q0 a q1]
Estados 0 1 B
q0 q0,1,R q0,0,R q1,B,L
q1 - - -
1; 0, R 0; 1, R
-B; B, L
Ejercicio 2
Diseñe una máquina de Turing que tome como entrada un
número N y le añada 1 en binario. Para ser más precisos,
inicialmente la cinta contiene el símbolo de $ seguido por N en
binario. La cabeza de la cinta inicialmente está señalando al
símbolo $ estando en el estado q 0 . La MT debe pararse cuando
en la cinta haya N + 1, en binario y esté señalando al símbolo
más a la izquierda de N + 1, estando en el estado q f . Si fuera
necesario, en el proceso de creación de N + 1 se puede destruir
$.
● 0000 + 0001 = 0001
● 0001 + 0001 = 0010
● 0010 + 0001 = 0011
● 0011 + 0001 = 0100
● 0100 + 0001 = 0101
Tras observar detenidamente los ejemplos, podemos concluir
que:
- Si la entrada acaba en 0, si se le suma 1 el resultado se
obtiene cambiando ese 0 por un 1.
- Si la entrada acaba en 1:
- Se recorre el numero del final al inicio, sustituyendo todos
los 1's por 0's, SOLO hasta que aparezca un 0 o un el $ y
cambiarlo por un 1
Basandonos en esto podemos describir el siguiente algoritmo:
1. Recorrer el numero hasta el final [transiciones recursivas en
q0], buscando el
primer blank a la derecha y al llegar mover una posicion a la
izquierda para quedarse en el ultimo digito del numero binario
[transicion de q0 a q1] 2. En la posicion final:
a. Si es un 0, se cambia por un 1 [transicion de q1 a q2] y se va al paso 3. b. Si es
un 1, recorrer el numero hacia atras, sustituyendo 1's por 0's [transiciones
recursivas en q1].
Hasta que aparezca un 0 [transicion de q1 a q2] p el simbolo $
[transicion de q1 a q3]. 3. Tras cambiar ese 0 por un 1, recorre el
numero hacia atras [transiciones recursivas
en q2] hasta encontrar el simbolo $ que simboliza el principio de
la cadena [transicion de q2 a q3]
Estados 0 1 $ B
q0 q0,0,R q0,1,R q0,$,R q1,B,L
q1 q2,1,L q1,0,L q3,1,- -
q2 q2,0,L q2,1,L q3,$,R -
q3 - - - -
0, 0, R 1, 1, R $,$, R
1.0. L

-B, B, L
0, 1, L
$. 1. -

$,$, RS
q3
10, 0, L
1, 1, L

Вам также может понравиться