Máquinas de Turing -...

30
aquinas de Turing IIC3242 IIC3242 aquinas de Turing 1 / 42

Transcript of Máquinas de Turing -...

Page 1: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing

IIC3242

IIC3242 – Maquinas de Turing 1 / 42

Page 2: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad Computacional

Objetivo: Medir la complejidad computacional de un problema.

Vale decir: Medir la cantidad de recursos computacionalesnecesarios para solucionar un problema.

I Tiempo

I Espacio

I ...

Para hacer esto primero tenemos que introducir la nocion deproblema.

IIC3242 – Maquinas de Turing 2 / 42

Page 3: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Problemas de decision

Alfabeto Σ: Conjunto finito de sımbolos.

I Ejemplo: Σ = 0, 1.

Palabra w : Secuencia finita de sımbolos de Σ.

I Ejemplo: w = 01101.

Σ∗: Conjunto de todas las palabras construidas con sımbolos de Σ.

Lenguaje L: Conjunto de palabras.

I Ejemplo: L = 0n1n | n ∈ N.

IIC3242 – Maquinas de Turing 3 / 42

Page 4: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Problemas de decision

Problema de decision asociado a un lenguaje L: Dado w ∈ Σ∗,decidir si w ∈ L.

Ejemplo

Podemos ver SAT como un problema de decision. Suponga queP = p, q:

I Σ = p, q,¬,∧,∨,→,↔, (, )Algunas palabras de Σ∗ representan formulas, mientras queotras tales como ¬¬ y p¬q ∧ ∧ ∨ q no representanformulas.

I SAT = w ∈ Σ∗ | w representa una formula y w essatisfacible.

IIC3242 – Maquinas de Turing 4 / 42

Page 5: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad de un problema de decision

La complejidad de un lenguaje L es la complejidad del problema dedecision asociado a L.

¿Cuando decimos que L puede ser solucionado eficientemente?

I Cuando existe un algoritmo eficiente que decide L.

Ejercicio

Muestre que L = w ∈ 0, 1∗ | w es un palındromo puede serresuelto eficientemente.

¿Cuando decimos que L es un problema difıcil?

I Cuando no existe un algoritmo eficiente que decide L.

IIC3242 – Maquinas de Turing 5 / 42

Page 6: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing

¿Como podemos demostrar que un problema es difıcil?

I Para hacer esto, primero tenemos que formalizar la nocion dealgoritmo.

¿Que es un algoritmo? ¿Podemos formalizar este concepto?

I Maquinas de Turing: Intento por formalizar este concepto.

¿Podemos demostrar que las maquinas de Turing capturan lanocion de algoritmo?

I No, el concepto de algoritmo es intuitivo.

IIC3242 – Maquinas de Turing 6 / 42

Page 7: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing

¿Por que creemos que las maquinas de Turing son una buenaformalizacion del concepto de algoritmo?

I Porque cada programa de una maquina de Turing puede serimplementado.

I Porque todos los algoritmos conocidos han podido serimplementados en maquinas de Turing.

I Porque todos los otros intentos por formalizar este concepto fueronreducidos a las maquinas de Turing.

I Los mejores intentos resultaron ser equivalentes a las maquinasde Turing.

I Todos los intentos “razonables” fueron reducidoseficientemente.

I Tesis de Church: Algoritmo = Maquina de Turing.

IIC3242 – Maquinas de Turing 7 / 42

Page 8: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Formalizacion

Definicion

Maquina de Turing (Determinista): (Q,Σ,Γ, q0, δ,F )

I Q es un conjunto finito de estados.

I Σ es un alfabeto tal que `, B 6∈ Σ.

I Γ es un alfabeto tal que Σ ∪ `, B ⊆ Γ.

I q0 ∈ Q es el estado inicial.

I F ⊆ Q es un conjunto de estados finales.

I δ es una funcion parcial:

δ : Q × Γ → Q × Γ × I ,N,D.

δ es llamada funcion de transicion.

IIC3242 – Maquinas de Turing 8 / 42

Page 9: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Funcionamiento

La cinta de la maquina de Turing es infinita hacia la derecha.

I El sımbolo ` es usado para demarcar la posicion 0 de la cinta.

Supuesto

I Si δ(q,`) esta definido: δ(q,`) = (q′,`,X ), con X ∈ D,N

I Si a ∈ Γ r ` y δ(q, a) esta definido: δ(q, a) = (q′, b,X ),con b ∈ Γ r `.

Σ es el alfabeto de entrada y Γ es el alfabeto de la cinta.

I Una palabra w ∈ Σ∗ de entrada de largo n es colocada en lasposiciones 1, . . ., n de la cinta.

I Las posiciones siguientes (n + 1, n + 2, . . .) contienen elsımbolo B.

IIC3242 – Maquinas de Turing 9 / 42

Page 10: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Funcionamiento

Al comenzar a funcionar, la maquina se encuentra en el estado q0

y su cabeza lectora esta en la posicion 1 de la cinta.

En cada instante la maquina se encuentra en un estado q y sucabeza lectora esta en una posicion p.

I Si el sımbolo en la posicion p es a y δ(q, a) = (q′, b,X ),entonces:

I La maquina escribe el sımbolo b en la posicion p de la cinta.

I Cambia de estado desde q a q′.

I Mueve la cabeza lectora a la posicion p − 1 si X = I , y a laposicion p + 1 si X = D. Si X = N , entonces la cabeza lectorapermanece en la posicion p.

IIC3242 – Maquinas de Turing 10 / 42

Page 11: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Aceptacion

Los estados de F son utilizados como estados de aceptacion.

I Una palabra w es aceptada por una maquina M si y solo si laejecucion de M con entrada w se detiene en un estado de F .

Definicion

Lenguaje aceptado por una maquina de Turing M:

L(M) = w ∈ Σ∗ | M acepta w.

IIC3242 – Maquinas de Turing 11 / 42

Page 12: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Ejemplo

Queremos construir una maquina que verifique si el numero de 0sen una palabra es par: M = (Q,Σ,Γ, q0, δ,F )

I Q = q0, q1.

I Σ = 0, 1.

I Γ = 0, 1,`, B.

I F = q0.

I δ es definida como:

δ(q0, 0) = (q1, B,D)

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

δ(q1, 0) = (q0, B,D)

δ(q1, 1) = (q1, B,D)

IIC3242 – Maquinas de Turing 12 / 42

Page 13: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Ejecucion

Supongamos que w = 00010:

. . .

. . .

. . .

B

B0 0 0

B0

B0 0

q0

q0

q1

`

`

`

Inicio:

Paso 1:

Paso 2:

B01

B

B0

01

1

B

B

IIC3242 – Maquinas de Turing 13 / 42

Page 14: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing: Ejecucion

. . .

. . .

. . .B

B

B

B

`

`

`

Paso 4:

Paso 5:

B01

B

B

0

Paso 3:

q1

q1

q0

B B B

BBB

B B B B B

Conclusion: La maquina acepta w = 00010.

IIC3242 – Maquinas de Turing 14 / 42

Page 15: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

El lenguaje aceptado por una maquina de Turing: Ejemplos

Ejemplo

Para la maquina M mostrada en las transparencias anteriores:

L(M) = w ∈ 0, 1∗ | w contiene un numero par de sımbolos 0.

Ejercicio

Construya una maquina de Turing que acepte el lenguajeL = w ∈ 0, 1∗ | w es un palındromo.

IIC3242 – Maquinas de Turing 15 / 42

Page 16: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad de un algoritmo

Una Maquina de Turing puede no detenerse en alguna entrada.

I Primera nocion de algoritmo: MT que se detiene en todas lasentradas.

¿Como se mide el tiempo de ejecucion de un algoritmo?

Para una MT con alfabeto Σ:

I Paso de M: Ejecutar una instruccion de la funcion detransicion.

I tiempoM(w): Numero de pasos ejecutados por M con entradaw ∈ Σ∗.

IIC3242 – Maquinas de Turing 16 / 42

Page 17: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad de un algoritmo

Definicion

El tiempo de funcionamiento de una MT M en el peor caso es

definido por la funcion tM :

tM(n) = max tiempoM(w) | w ∈ Σ∗ y |w | = n .

Ejercicio

Construya una maquina de Turing que funcione en tiempo O(n2) yacepte el lenguaje L = w ∈ 0, 1∗ | w es un palındromo.

IIC3242 – Maquinas de Turing 17 / 42

Page 18: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing con varias cintas

Definicion

MT con k cintas: (Q,Σ,Γ, q0, δ,F )

I Q es un conjunto finito de estados.

I Σ es un alfabeto tal que `, B 6∈ Σ.

I Γ es un alfabeto tal que Σ ∪ `, B ⊆ Γ.

I q0 ∈ Q es el estado inicial.

I F ⊆ Q es un conjunto de estados finales.

I δ es una funcion parcial:

δ : Q × Γk → Q × Γk × I ,N,Dk .

δ es llamada funcion de transicion.

IIC3242 – Maquinas de Turing 18 / 42

Page 19: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing con k cintas: Funcionamiento

La maquina tiene k cintas infinitas hacia la derecha.

I El sımbolo ` es usado para demarcar la posicion 0 de cadacinta.

Σ es el alfabeto de entrada y Γ es el alfabeto de las cintas.

I Una palabra w ∈ Σ∗ de entrada de largo n es colocada en lasposiciones 1, . . ., n de la primera cinta.

I Las siguientes posiciones (n + 1, n + 2, . . .) de la primeracinta contienen el sımbolo B.

I Las restantes cintas contienen el sımbolo B en las posiciones1, 2, 3, . . .

IIC3242 – Maquinas de Turing 19 / 42

Page 20: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Maquinas de Turing con k cintas: Funcionamiento

La maquina tiene una cabeza lectora por cinta.

I Al comenzar, la maquina se encuentra en el estado q0, y cadacabeza lectora esta en la posicion 1 de su cinta.

En cada instante la maquina se encuentra en un estado q y sucabeza lectora i se encuentra en la posicion pi .

I Si el sımbolo en la posicion pi es ai y δ(q, a1, . . . , ak) =(q′, b1, . . . , bk ,X1, . . . ,Xk), entonces:

I La maquina escribe el sımbolo bi en la posicion pi de lai-esima cinta.

I Cambia de estado desde q a q′.

I Mueve la cabeza lectora de la i-esima cinta a la posicion pi − 1si Xi = I , y a la posicion pi + 1 si Xi = D. Si Xi = N , entoncesla maquina no mueve la cabeza lectora de la i-esima cinta.

IIC3242 – Maquinas de Turing 20 / 42

Page 21: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

MT con k cintas: Aceptacion y complejidad

Una palabra w es aceptada por una MT M con k cintas si y solo sila ejecucion 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 Σ:

I Paso de M: Ejecutar una instruccion de la funcion detransicion.

I tiempoM(w): Numero de pasos ejecutados por M con entradaw ∈ Σ∗.

I Tiempo de funcionamiento M en el peor caso:

tM(n) = max tiempoM(w) | w ∈ Σ∗ y |w | = n .

IIC3242 – Maquinas de Turing 21 / 42

Page 22: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

MT con k cintas: Ejemplo

Ejercicio

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.

Solucion: Definimos M = (Q,Σ,Γ, q0, δ,F ) de la siguiente forma:

I Q = q0, qc , qr , qv , qa

I Σ = 0, 1

I Γ = 0, 1, B,`

I F = qa

IIC3242 – Maquinas de Turing 22 / 42

Page 23: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

MT con k cintas: Ejemplo

I Funcion δ 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)

IIC3242 – Maquinas de Turing 23 / 42

Page 24: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Aceptacion en distintos modelos

Un lenguaje L es aceptado por una MT M si L = L(M).

I ¿Es posible aceptar mas lenguajes si se usa cintas adicionales?

Teorema

Si un lenguaje L es aceptado por una MT M1 con k cintas,

entonces L es aceptado por una MT M2 con una cinta.

Ejercicio

Demuestre el teorema.

I ¿Cual es la diferencia de complejidad entre M1 y M2?

IIC3242 – Maquinas de Turing 24 / 42

Page 25: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

Un lenguaje L es aceptado por una MT M en tiempo O(t(n)) siL = L(M) y tM(n) es O(t(n)).

I La definicion es identica para el caso de Ω(t(n)) y Θ(t(n)).

¿Es posible aceptar mas rapido si se usa 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).

Ejercicio

Demuestre el teorema.

I ¿Es posible reducir la diferencia entre M1 y M2?

IIC3242 – Maquinas de Turing 25 / 42

Page 26: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

Sea L = w ∈ 0, 1,#∗ | w es un palındromo.

I L es aceptado por una MT con dos cintas en tiempo O(n).

I ¿Puede ser L aceptado en tiempo lineal por una MT con unacinta?

Proposicion

Sea M una MT con una cinta. Si L = L(M), entonces M funciona

en tiempo Ω(n2).

Demostracion: Suponga que L = L(M), donde M es una MT conuna cinta.

I Sin perdida de generalidad, suponemos que M siempre recorretoda la palabra de entrada.

IIC3242 – Maquinas de Turing 26 / 42

Page 27: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

Para w ∈ 0, 1,#∗, sea w r la palabra obtenida al escribir w en elsentido inverso.

Defina Ln como el siguiente lenguaje (para n divisible por 4):

Ln = w#n2 w r | w ∈ 0, 1

n4 .

Notese que Ln ⊆ L.

Sea w ∈ Ln y n4 ≤ i ≤ 3n

4 . Entonces Ci (w) es la secuencia deestados [q1, . . ., qk ] en que se encuentra M despues de moverseentre las posiciones i e i + 1 (en cualquiera de las dos direcciones)en la ejecucion que tiene a w como entrada.

I C (w) = Ci (w) | n4 ≤ i ≤ 3n

4 .

IIC3242 – Maquinas de Turing 27 / 42

Page 28: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

Lema

Si w1,w2 ∈ Ln y w1 6= w2, entonces C (w1) ∩ C (w2) = ∅.

Demostracion: Suponga que el lema es falso. Entonces existeni , j ∈ n

4 , . . . , 3n4 tales que Ci(w1) = Cj(w2).

Sean u1 y u2 las palabra formadas por los primeros i sımbolos dew1 y los ultimos n − j sımbolos de w2, respectivamente.

Dado que Ci (w1) = Cj(w2), se tiene que u1u2 es aceptado por M.

I ¿Como se demuestra esto?

Pero u1u2 no es un palındromo, por lo que tenemos unacontradiccion.

IIC3242 – Maquinas de Turing 28 / 42

Page 29: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

Para w ∈ Ln, sea sw la secuencia mas corta en C (w).

I Sn = sw | w ∈ Ln.

Por el lema sabemos que sw1 6= sw2 si w1 6= w2.

I Por lo tanto: |Sn| = |Ln| = 2n4

Sea m el largo de la secuencia mas larga en Sn.

I Cantidad de posibles secuencias de largo a lo mas m:

m∑

i=0

|Q|i =|Q|m+1 − 1

|Q| − 1.

IIC3242 – Maquinas de Turing 29 / 42

Page 30: Máquinas de Turing - marenas.sitios.ing.uc.clmarenas.sitios.ing.uc.cl/iic3242-09/clases/mt-I-imp.pdf · M´aquinas de Turing ¿Por qu´e creemos que las maquinas de Turing son una

Complejidad en distintos modelos

De lo anterior concluimos que: |Q|m+1−1|Q|−1 ≥ 2

n4 .

I ¿Por que?

Se tiene entonces que m es Ω(n).

I Por lo tanto existe w0 ∈ Ln para el cual |sw0 | es Ω(n).

Entonces: Todas las secuencias en C (w0) son de largo Ω(n).

Conclusion: Con entrada w0, la maquina M toma tiempo Ω(n2).

I Puesto que M tiene que generar n2 secuencias de estados de

largo Ω(n).

IIC3242 – Maquinas de Turing 30 / 42