Clase 6 Maquina de Turing

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 37

Lenguajes Formales y Autómatas

Profesor: Jorge Osio


CONTENIDO
 Maquina de Turing

 Bibliografía
 1 Balarí Sergio. “Teoría de Lenguajes Formales”.
Universidad de Barcel0na ,2014.
Introducción
 En 1928, el célebre matemático David Hilbert planteó tres
preguntas aun no planteadas:
1. ¿Son completas las matemáticas?
2. ¿Son coherentes las matemáticas?
3. ¿Son decidibles las matemáticas?

 Alan Turing en el demuestran que la tercera pregunta, el


problema de la decisión, no tiene solución.
 Para esto definió la computación por una máquina.
 Turing demostró que dada una Máquina de Turing M y una
cadena w es imposible determinar si M se detendrá en un
número finito de pasos usando w como entrada
Maquina de Turing
 Inventó los lenguajes formales, ya que la máquina fue
concebida como un dispositivo que operaba sobre
cadenas de símbolos dispuestos sobre una cinta.
 Existe un espacio de lenguajes que quedan dentro de las
capacidades de la máquina: los lenguajes recursivamente
enumerables y todas las subclases representan todo
aquello que es computable
 Pero, por otro lado, la demostración también conlleva la
existencia de lenguajes que no son enumerables,
 Cuya complejidad estructural es tal que la Máquina de
Turing no puede con ellos.
Descripción básica
 Descripción básica de la Máquina de Turing
Descripción básica
 Tenemos una unidad finita de control, un cabezal y
una cinta con símbolos.
 La convención suele ser que las MT leen siempre
código binario.
 El símbolo B es un símbolo especial que indica que la
celdilla está en blanco.
 Las diferencias son pocas, pero significativas. En
primer lugar, la cinta está acotada por la izquierda.
 Pero se extiende hasta el infinito por la derecha, de ahí
los puntos suspensivos.
Descripción básica
 El cabezal, que puede leer un símbolo de una celda o
sobre escribir un nuevo símbolo sobre el símbolo
original
 Puede desplazarse a derecha e izquierda
 Distinguimos, estados de parada o finales (h) en los
que entra la MT cuando ha completado la
computación, momento en el cual esta se detiene.
Definición Formal (Máquina de Turing).
 Una Máquina de Turing M es una séptupla
M = (Q, Σ, Γ,δ, B, q0, F), donde
1. Q es un conjunto finito de estados;
2. Σ es el alfabeto de entrada;
3. Γ es el alfabeto de la cinta, donde Σ с Γ y Q  Γ= Ø;
4. δ Є(Q × Г → Q × Γ × {I,D}) es la función de transición;
5. B es el símbolo en blanco, tal que B Є Г y B  Σ;
6. q0 Є Q es el estado inicial ;
7. F Q es el conjunto de estados finales.
Definición formal (MT)
 El requisito de que Q  Г = Ø ; impide que un estado
pueda ser también interpretado como un símbolo
 δ toma como valores pares ordenados formados por un
estado q Є Q, y un símbolo X Є Г, símbolo que lee el
cabezal.
 La imagen de δ es una tripla (p, Y,D), con p nuevo
estado, Y el símbolo que debe escribir, D es una de las
direcciones.
 Esta MT es determinista,
 Sin embargo, δ no tiene por qué estar definida para
todo su dominio
Definición. Descripción Instantánea
 La descripción instantánea (DI) de una Máquina de
Turing M es una cadena de la forma α1qα2,
 Donde q Є Q es el estado en que se encuentra M, α1 Є
Г* es el contenido de la cinta a la izquierda del cabezal
y α2 Є Г* es el contenido a la derecha del cabezal.
 Asumimos que el cabezal apunta al primer símbolo de
α2 o, si α2 = ε", que el cabezal apunta a un blanco.
Descripción Instantánea
 Con la definición de DI, ya podemos definir las acciones de una MT.
 Hay dos tipos de acciones: las que desplazan el cabezal a la izquierda y
las que lo desplazan a la derecha.
Supongamos que tenemos la DI
X1X2 . . .Xi−1qXi . . .Xn.
 Para una acción hacia la izquierda δ(q,Xi) = (q’, Y, I), donde pueden
darse dos circunstancias posibles.
1. La primera, es que i = 1, en cuyo caso no hay DI siguiente, ya
que el cabezal nunca puede traspasar la cota izquierda de la
cinta.
2. La segunda es que i > 1, en cuyo caso
X1X2 . . .Xi−1qXi . . .Xn ―> X1X2 . . .Xi−2q’Xi−1Y Xi+1 . . .Xn,
Nota: si i−1 = n entonces Xi = B, M

 Para una acción a la derecha δ(q,Xi) = (q’, Y, D), se tiene

X1X2 . . .Xi−1qXi . . .Xn ―> X1X2 . . .Xi−1Yq’Xi+1 . . .Xn,


M

Nota: Para i − 1 = n, la cadena Xi . . .Xm es vacía y la acción escribe el


símbolo Y sobre un blanco
Funcionamiento de la MT
 Al comenzar a funcionar, la máquina se encuentra en el estado
q0 y su cabezal lector estará en la posición 1 de la cinta.
 En cada instante la máquina se encuentra en un estado q y su
cabezal lector está en una posición p.
 Si el símbolo en la posición p es “a” y δ(q, a) = (q’, b, X),
entonces:
- La máquina escribe el símbolo b en la posición p de la cinta.
- Cambia de estado desde q a q’.
- Mueve la cabeza lectora a la posición p − 1 si X = I , y a la posición p
+ 1 si X = D. Si X = N, entonces el cabezal lector permanece en la
posición p.
Lenguaje aceptado por MT
 Si una DI J es el resultado de otra DI I tras un número finito
de pasos, entonces se dice que
I ―> J.
M

 Esto nos da como resultado el Lenguaje aceptado por la MT


 L(M), es el conjunto de cadenas sobre ∑* que provocan la
entrada de M en un estado final

L(M) = {w | w Є ∑* y q0w ―>α1qα2, tal que q Є F y α1, α2 Є Г*}.


M
Ejemplo de una simple MT
 Queremos construir una máquina que verifique si el
número de 0s en una palabra es par: M = (Q,∑, Γ, q0, δ, F)
 Q = {q0, q1}.
 Σ = {0, 1}.
 Г = {0, 1, B}.
 F = {q0}.
 δ es definida como:
 δ (q0, 0) = (q1, B,D) q0 q1

 δ (q0, 1) = (q0, B,D)


 δ (q1, 0) = (q0, B,D)
 δ(q1, 1) = (q1, B,D)
 δ(q0, B) = (q0, B,N)
Ejemplo de una simple MT
 Supongamos que w = 00010:

Inicio:

Paso 1:

Paso 2:
Ejemplo de una MT simple
 Paso 3.

 Paso 4:

 Paso 5:

Conclusión: La máquina acepta w = 00010.


Ejemplo de una MT simple
Para la máquina M el lenguaje aceptado es:

L(M) = {w Є {0, 1}*| w contiene un número par de símbolos 0}.


La MT como modelo computacional
 La Tesis de Church-Turing afirma que no hay ningún
dispositivo computacional más potente que la MT.
 Nada que no pueda computar una MT es computable,
por tanto, no hay dispositivo imaginable capaz de
computar lo no computable
 La MT dice si el problema es soluble o no
 Cuando se trata de un problema soluble, lo que entonces
nos interesa es cuán difícil de resolver es el problema
en cuestión.
 Este es el objetivo principal de la teoría de la
complejidad computacional
Complejidad Computacional
 La teoría de la complejidad computacional nos
sirve para definir donde se halla la frontera que separa
los problemas tratables de aquellos que no lo son.
 La forma de evaluar la dificultad de un problema, en
teoría de la complejidad es determinar la cantidad
máxima de recursos de espacio y de tiempo que ha
necesitado una MT para resolverlo.
Complejidad de un Algoritmo
 Tenemos una MT M que siempre se detiene, es decir
que, dada una cadena arbitraria w, M siempre acepta o
rechaza.
 En este caso diremos que M es un algoritmo o que M
es una MT total y diremos que el lenguaje L(M) que
acepta M es un lenguaje recursivo.
 El complemento de un lenguaje recursivo es
también recursivo.
Definición MT para Teoría de
Complejidad
 Definición (Máquina de Turing con k-cintas). Aquí,
asumiremos que una MT M con k-cintas, k ≥ 1, es una
quíntupla, M = (Q ,∑ ,Г , δ, q0, F), donde
1. Q es un conjunto finito de estados;
2. ∑ es un alfabeto tal que los símbolos B (blanco) y
 (símbolo inicial) ∑ ;
3. Г es un alfabeto tal que Σ U {, B}  Г .
4. δ es la función de transición;

5. q0 es el estado inicial ;
6. F = {sí, no, h} es el conjunto de los estados finales de
aceptación, rechazo y parada, respectivamente.
Funcionamiento de la MT de k cintas
 Una palabra w Є ∑* de entrada de largo n es colocada en
las posiciones 1, . . ., n de la primera cinta.
 Las siguientes posiciones (n + 1, n + 2, . . .) de la primera
cinta contienen el símbolo B.
 Las restantes cintas contienen el símbolo B en las
posiciones 1, 2, 3, . . .
 La máquina tiene una cabeza lectora por cinta. Al
comenzar, la máquina se encuentra en el estado q0, y
cada cabeza lectora esta en la posición 1 de su cinta.
Funcionamiento de la MT de k cintas
 En cada instante la maquina se encuentra en un estado q y
su cabeza lectora i se encuentra en la posición pi .
 Si el símbolo en la posición pi es ai y
(q, a1, . . . , ak ) = (q’, b1, . . . , bk ,X1, . . . ,Xk ), entonces:
- La máquina escribe el símbolo bi en la posición pi de la
i-esima cinta.
- Cambia de estado desde q a q’.
 Mueve la cabeza lectora de la i-esima cinta a la posición
pi − 1 si Xi = I , y a la posición pi +1 si Xi = D. Si Xi = N,
entonces la máquina no mueve la cabeza lectora de la
i-esima cinta.
Funcionamiento de la MT de k cintas
 Tenemos que considerar una situación especial:
Donde la MT no se detenga y entre en un bucle, lo cual
denotaremos con el símbolo ;
 En la MT de k-cintas que responde algo tras alcanzar el
estado h: dada una cadena de entrada v, la respuesta
será la cadena w que la MT ha escrito en la última
cinta.
Tiempo consumido
¿Cómo se mide el tiempo de ejecución de un algoritmo?

Para una MT con alfabeto Σ:


 Paso de M: Ejecutar una instrucción de la función de
transición.
 tiempo M(w): Número de pasos ejecutados por M con
entrada w Є∑* .
Tiempo consumido por una MT
 Si para una MT de k cintas y cadena x, tenemos

(q0,  , x, , Є, ……, ,Є) t (H, w1,u1,….,wk,uk)


M

Donde H Є F, entonces el tiempo que M ha necesitado


para computar x es t, es decir, el tiempo utilizado es
simplemente el numero de pasos hasta el momento
de la parada. Si M(x)= , entonces el tiempo que M
necesita para computar x es 
Aceptación y Complejidad
 Una palabra w es aceptada por una MT M con k cintas si y solo si
la ejecución de M con entrada w se detiene en un estado final.

L(M) = {w Є Σ* | M acepta w}.

 Para una MT con k cintas y alfabeto ∑:


 Paso de M: Ejecutar una instrucción de la función de transición.
 tiempoM(w): Número de pasos ejecutados por M con entrada w Є
Σ.
 Tiempo de funcionamiento de M en el peor caso:
tM(n) = max{ tiempoM(w) | w Є Σ* y |w| = n }.
Ejemplo de MT de múltiples cintas
 Construya una MT M con dos cintas que funcione en
tiempo O(n) y acepte el lenguaje L = {w Є {0, 1}* | w es
un palíndromo}.
Solución: Definimos M = (Q,∑, Г, q0,δ , F) de la siguiente
forma:
• Q = {q0, qc , qr , qv , qa}
• ∑ = {0, 1}
• Γ = {0, 1, B, }
• F = {qa}
Ejemplo de MT de múltiples cintas
Función δ es definida de la siguiente forma:
(q0, B, B) →(qa, B, B,N,N) (qr , 1, 0)→(qr , 1, 0, I ,N)
(q0, 0, B) →(qc , 0, 0, D,D) (qr , 1, 1) → (qr , 1, 1, I ,N)
(q0, 1, B) →(qc , 1, 1,D,D) (qr ,, 0) → (qv , , 0,D,N)
(qc , 0, B)→(qc , 0, 0, D,D) (qr ,, 1) →(qv ,, 1,D,N)
(qc , 1, B) → (qc , 1, 1,D,D) (qv , 0, 0) → (qv , 0, 0,D, I )
(qc , B, B) → (qr , B, B, I , I) (qv , 1, 1) → (qv , 1, 1,D, I )
(qr , 0, 0) →(qr , 0, 0, I ,N) (qv , B, ) → (qa, B, ,N,N)
(qr , 0, 1) → (qr , 0, 1, I ,N)
Ejemplo de MT de múltiples cintas
Para la entrada w=00100 la máquina ejecutará lo siguientes
pasos:  0 0 1 0 0 B Estado q0
 0 B B B B B

0 0 1 0 0 B Estado qc
0 0 B B B B

 0 0 1 0 0 B Estado qc
 0 0 1 B B B

 0 0 1 0 0 B Estado qc
 0 0 1 0 B B

 0 0 1 0 0 B Estado qc
 0 0 1 0 0 B
Ejemplo de MT de múltiples cintas
 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qr
 0 0 1 0 0 B
Ejemplo de MT de múltiples cintas
 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B

 0 0 1 0 0 B Estado qv
 0 0 1 0 0 B Se llega al estado qa
Complejidad en distintos modelos
 Un lenguaje L es aceptado por una MT M en tiempo
O(t(n)) si L = L(M) y tM(n) es O(t(n)).

 ¿Es posible aceptar mas rápido si se usan cintas


adicionales?
Teorema
 Si un lenguaje L es aceptado por una MT M1 con k
cintas en tiempo O(t(n)), entonces L es aceptado por
una MT M2 con una cinta en tiempo O(t(n)2).
Clase de complejidad TIEMPO
•Supongamos ahora que el lenguaje L  (∑ - {B})* es
decidible por una MT con múltiples cintas que opera
en tiempo f(n).
•Diremos entonces que L Є TIEMPO (f(n)).
• TIEMPO(f(n)) es un conjunto de lenguajes, el
conjunto de todos los lenguajes elegibles por una MT
de múltiples cintas que operan con la cota de tiempo
f(n).
•TIEMPO(F(N)) es una clase de complejidad y los
lenguajes que contiene poseen la misma complejidad
computacional en relación con el recurso del tiempo
requerido por una MT.
MT de entrada / salida
(Maquina de Turing de entrada y salida). Sea un entero positivo k >
2. Una MT de entrada y salida es como una MT con k-cintas con las
siguientes restricciones sobre la función δ: siempre que

δ(q,σ1,…, σk) = (q’, ρ1,D1,…, ρk,Dk)

Entonces

(a)ρ1=σ1 (que el símbolo que se «escribe» al cambiar de estado


sea el mismo que había antes de hacerlo, por tanto, la primera
cinta es de solo de lectura)
(b)Dk ≠I. (el último cabezal no mueve a izquierda, es de solo
escritura)
(c)Si σ1 = B, entonces D1 = I. (nos garantiza que el cabezal de la
primera cinta no siga leyendo los blancos al final de la cadena de
entrada)
Espacio consumido
Sea M una MT de entrada y salida con k-cintas. El
espacio consumido por la M al procesar la cadena
de entrada x cuando

(q0, , x, , Є, ……, ,Є) * (H, w1,u1,….,wk,uk)


M

Donde H Є F, es igual a i = 2 wi ui . Supongamos


k −1

ahora que f es una función de N en N. Diremos


que la MT M opera con una cota de espacio f(n)
si, para toda cadena de entrada x, M necesita
como máximo el espacio f(|x|).
Clase de complejidad ESPACIO
 podemos definir a su vez una nueva clase de complejidad, la
clase ESPACIO(f(n)). A esta clase pertenecerán aquellos
lenguajes decidibles por una MT de entrada y salida que opere
dentro de la cota de espacio f(n).
 El espacio, viene a ser la cantidad de celdillas que recorre la MT
antes de detenerse y, en el caso de que una MT esté decidiendo
un lenguaje regular, necesariamente tendrá que inspeccionar
algún símbolo de la cadena antes de poder decidir si esta
pertenece o no al lenguaje. Lo interesante del caso es que los
lenguajes regulares pertenecen a la clase de complejidad
ESPACIO(k), donde k es un entero.
 Es decir, que el espacio necesario para reconocer un lenguaje
regular dado es siempre una constante y es, por tanto,
independiente de la longitud de la cadena.

También podría gustarte