Está en la página 1de 30

Maquinas de Turing

IIC3242

IIC3242

M
aquinas de Turing

1 / 42

Complejidad Computacional

Objetivo: Medir la complejidad computacional de un problema.


Vale decir: Medir la cantidad de recursos computacionales
necesarios para solucionar un problema.
I

Tiempo

Espacio

...

Para hacer esto primero tenemos que introducir la nocion de


problema.

IIC3242

M
aquinas de Turing

2 / 42

Problemas de decision

Alfabeto : Conjunto finito de smbolos.


I

Ejemplo: = {0, 1}.

Palabra w : Secuencia finita de smbolos de .


I

Ejemplo: w = 01101.

: Conjunto de todas las palabras construidas con smbolos de .


Lenguaje L: Conjunto de palabras.
I

IIC3242

Ejemplo: L = {0n 1n | n N}.

M
aquinas de Turing

3 / 42

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 que
P = {p, q}:
I

IIC3242

= {p, q, , , , , , (, )}
Algunas palabras de representan f
ormulas, mientras que
otras tales como y pq q no representan
formulas.
SAT = {w | w representa una f
ormula y w es
satisfacible}.

M
aquinas de Turing

4 / 42

Complejidad de un problema de decision


La complejidad de un lenguaje L es la complejidad del problema de
decision 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 palndromo} puede ser
resuelto eficientemente.
Cuando decimos que L es un problema difcil?
I

IIC3242

Cuando no existe un algoritmo eficiente que decide L.

M
aquinas de Turing

5 / 42

Maquinas de Turing

Como podemos demostrar que un problema es difcil?


I

Para hacer esto, primero tenemos que formalizar la nocion de


algoritmo.

Que es un algoritmo? Podemos formalizar este concepto?


I

Maquinas de Turing: Intento por formalizar este concepto.

Podemos demostrar que las m


aquinas de Turing capturan la
nocion de algoritmo?
I

IIC3242

No, el concepto de algoritmo es intuitivo.

M
aquinas de Turing

6 / 42

Maquinas de Turing
Por que creemos que las m
aquinas de Turing son una buena
formalizacion del concepto de algoritmo?
I

Porque cada programa de una maquina de Turing puede ser


implementado.

Porque todos los algoritmos conocidos han podido ser


implementados en maquinas de Turing.

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

IIC3242

Los mejores intentos resultaron ser equivalentes a las maquinas


de Turing.
Todos los intentos razonables fueron reducidos
eficientemente.

Tesis de Church: Algoritmo = M


aquina de Turing.

M
aquinas de Turing

7 / 42

Maquinas de Turing: Formalizacion


Definicion
Maquina de Turing (Determinista): (Q, , , q0 , , F )
I

Q es un conjunto finito de estados.

es un alfabeto tal que `, B 6 .

es un alfabeto tal que {`, B} .

q0 Q es el estado inicial.

F Q es un conjunto de estados finales.

es una funcion parcial:


: Q Q {I , N, D}.
es llamada funcion de transicion.

IIC3242

M
aquinas de Turing

8 / 42

Maquinas de Turing: Funcionamiento


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

El smbolo ` es usado para demarcar la posicion 0 de la cinta.

Supuesto
I
I

Si (q, `) esta definido: (q, `) = (q 0 , `, X ), con X {D, N}


Si a r {`} y (q, a) est
a definido: (q, a) = (q 0 , b, X ),
con b r {`}.

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


I

IIC3242

Una palabra w de entrada de largo n es colocada en las


posiciones 1, . . ., n de la cinta.
Las posiciones siguientes (n + 1, n + 2, . . .) contienen el
smbolo B.

M
aquinas de Turing

9 / 42

Maquinas de Turing: Funcionamiento

Al comenzar a funcionar, la m
aquina se encuentra en el estado q0
y su cabeza lectora est
a en la posicion 1 de la cinta.
En cada instante la m
aquina se encuentra en un estado q y su
cabeza lectora esta en una posicion p.
I Si el s
mbolo en la posicion p es a y (q, a) = (q 0 , b, X ),
entonces:
I
I
I

IIC3242

La maquina escribe el smbolo b en la posicion p de la cinta.


Cambia de estado desde q a q 0 .
Mueve la cabeza lectora a la posici
on p 1 si X = I , y a la
posicion p + 1 si X = D. Si X = N, entonces la cabeza lectora
permanece en la posici
on p.

M
aquinas de Turing

10 / 42

Maquinas de Turing: Aceptacion

Los estados de F son utilizados como estados de aceptacion.


I

Una palabra w es aceptada por una m


aquina M si y solo si la
ejecucion de M con entrada w se detiene en un estado de F .

Definicion
Lenguaje aceptado por una m
aquina de Turing M:
L(M) = {w | M acepta w }.

IIC3242

M
aquinas de Turing

11 / 42

Maquinas de Turing: Ejemplo


Queremos construir una m
aquina que verifique si el n
umero de 0s
en una palabra es par: M = (Q, , , q0 , , F )
I

Q = {q0 , q1 }.

= {0, 1}.

= {0, 1, `, B}.

F = {q0 }.

es definida como:
(q0 , 0) = (q1 , B, D)
(q0 , 1) = (q0 , B, D)
(q1 , 0) = (q0 , B, D)
(q1 , 1) = (q1 , B, D)

IIC3242

M
aquinas de Turing

12 / 42

Maquinas de Turing: Ejecucion


Supongamos que w = 00010:

Inicio:

. . .

. . .

. . .

q0
Paso 1:

q1
Paso 2:

q0

IIC3242

M
aquinas de Turing

13 / 42

Maquinas de Turing: Ejecucion

Paso 3:

. . .

. . .

. . .

q1
Paso 4:

q1
Paso 5:

q0

Conclusion: La maquina acepta w = 00010.

IIC3242

M
aquinas de Turing

14 / 42

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 n
umero par de smbolos 0}.

Ejercicio
Construya una maquina de Turing que acepte el lenguaje
L = {w {0, 1} | w es un palndromo}.

IIC3242

M
aquinas de Turing

15 / 42

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 las


entradas.

Como se mide el tiempo de ejecucion de un algoritmo?


Para una MT con alfabeto :

IIC3242

Paso de M: Ejecutar una instruccion de la funcion de


transicion.

tiempo M (w ): N
umero de pasos ejecutados por M con entrada
w .

M
aquinas de Turing

16 / 42

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{ tiempo M (w ) | w y |w | = n }.

Ejercicio
Construya una maquina de Turing que funcione en tiempo O(n2 ) y
acepte el lenguaje L = {w {0, 1} | w es un palndromo}.

IIC3242

M
aquinas de Turing

17 / 42

Maquinas de Turing con varias cintas


Definicion
MT con k cintas: (Q, , , q0 , , F )
I

Q es un conjunto finito de estados.

es un alfabeto tal que `, B 6 .

es un alfabeto tal que {`, B} .

q0 Q es el estado inicial.

F Q es un conjunto de estados finales.

es una funcion parcial:


: Q k Q k {I , N, D}k .
es llamada funcion de transicion.

IIC3242

M
aquinas de Turing

18 / 42

Maquinas de Turing con k cintas: Funcionamiento

La maquina tiene k cintas infinitas hacia la derecha.


I

El smbolo ` es usado para demarcar la posicion 0 de cada


cinta.

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


I

IIC3242

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 smbolo B.

Las restantes cintas contienen el smbolo B en las posiciones


1, 2, 3, . . .

M
aquinas de Turing

19 / 42

Maquinas de Turing con k cintas: Funcionamiento


La maquina tiene una cabeza lectora por cinta.
I

Al comenzar, la m
aquina se encuentra en el estado q0 , y cada
cabeza lectora est
a en la posicion 1 de su cinta.

En cada instante la m
aquina se encuentra en un estado q y su
cabeza lectora i se encuentra en la posici
on pi .
I Si el s
mbolo en la posicion pi es ai y (q, a1 , . . . , ak ) =
(q 0 , b1 , . . . , bk , X1 , . . . , Xk ), entonces:
I

I
I

IIC3242

La maquina escribe el smbolo bi en la posicion pi de la


i-esima cinta.
Cambia de estado desde q a q 0 .
Mueve la cabeza lectora de la i-esima cinta a la posicion pi 1
si Xi = I , y a la posici
on pi + 1 si Xi = D. Si Xi = N, entonces
la maquina no mueve la cabeza lectora de la i-esima cinta.

M
aquinas de Turing

20 / 42

MT con k cintas: Aceptacion y complejidad


Una palabra w es aceptada por una MT M con k cintas si y solo si
la 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 de


transicion.

tiempo M (w ): N
umero de pasos ejecutados por M con entrada
w .

Tiempo de funcionamiento M en el peor caso:


tM (n) = max{ tiempo M (w ) | w y |w | = n }.

IIC3242

M
aquinas de Turing

21 / 42

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 palndromo}.
Soluci
on: Definimos M = (Q, , , q0 , , F ) de la siguiente forma:

IIC3242

Q = {q0 , qc , qr , qv , qa }

= {0, 1}

= {0, 1, B, `}

F = {qa }

M
aquinas de Turing

22 / 42

MT con k cintas: Ejemplo

Funcion es definida de la siguiente forma:

(q0 , B, B)
(q0 , 0, B)
(q0 , 1, B)
(qc , 0, B)
(qc , 1, B)
(qc , B, B)
(qr , 0, 0)
(qr , 0, 1)

IIC3242

M
aquinas de Turing

(qa , B, B, N, N)
(qc , 0, 0, D, D)
(qc , 1, 1, D, D)
(qc , 0, 0, D, D)
(qc , 1, 1, D, D)
(qr , B, B, I , I )
(qr , 0, 0, I , N)
(qr , 0, 1, I , N)

(qr , 1, 0)
(qr , 1, 1)
(qr , `, 0)
(qr , `, 1)
(qv , 0, 0)
(qv , 1, 1)
(qv , B, `)

(qr , 1, 0, I , N)
(qr , 1, 1, I , N)
(qv , `, 0, D, N)
(qv , `, 1, D, N)
(qv , 0, 0, D, I )
(qv , 1, 1, D, I )
(qa , B, `, N, N)

23 / 42

Aceptacion en distintos modelos

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


I

Es posible aceptar m
as 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

IIC3242

Cual es la diferencia de complejidad entre M1 y M2 ?

M
aquinas de Turing

24 / 42

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)).
I

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

Es posible aceptar m
as r
apido 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

IIC3242

Es posible reducir la diferencia entre M1 y M2 ?

M
aquinas de Turing

25 / 42

Complejidad en distintos modelos


Sea L = {w {0, 1, #} | w es un palndromo}.
I

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

Puede ser L aceptado en tiempo lineal por una MT con una


cinta?

Proposicion
Sea M una MT con una cinta. Si L = L(M), entonces M funciona
en tiempo (n2 ).
Demostraci
on: Suponga que L = L(M), donde M es una MT con
una cinta.
I

IIC3242

Sin perdida de generalidad, suponemos que M siempre recorre


toda la palabra de entrada.

M
aquinas de Turing

26 / 42

Complejidad en distintos modelos


Para w {0, 1, #} , sea w r la palabra obtenida al escribir w en el
sentido inverso.
Defina Ln como el siguiente lenguaje (para n divisible por 4):
n

Ln = {w # 2 w r | w {0, 1} 4 }.
Notese que Ln L.
Sea w Ln y n4 i 3n
4 . Entonces Ci (w ) es la secuencia de
estados [q1 , . . ., qk ] en que se encuentra M despues de moverse
entre las posiciones i e i + 1 (en cualquiera de las dos direcciones)
en la ejecucion que tiene a w como entrada.
I

IIC3242

C (w ) = {Ci (w ) |

M
aquinas de Turing

n
4

3n
4 }.

27 / 42

Complejidad en distintos modelos


Lema
Si w1 , w2 Ln y w1 6= w2 , entonces C (w1 ) C (w2 ) = .
Demostraci
on: Suponga que el lema es falso. Entonces existen
n
i , j { 4 , . . . , 3n
4 } tales que Ci (w1 ) = Cj (w2 ).
Sean u1 y u2 las palabra formadas por los primeros i smbolos de
w1 y los u
ltimos n j smbolos de w2 , respectivamente.
Dado que Ci (w1 ) = Cj (w2 ), se tiene que u1 u2 es aceptado por M.
I

Como se demuestra esto?

Pero u1 u2 no es un palndromo, por lo que tenemos una


contradiccion.
IIC3242

M
aquinas de Turing

28 / 42

Complejidad en distintos modelos


Para w Ln , sea sw la secuencia m
as corta en C (w ).
I

Sn = {sw | w Ln }.

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


n

Por lo tanto: |Sn | = |Ln | = 2 4

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


I

Cantidad de posibles secuencias de largo a lo mas m:


m
X
i =0

IIC3242

M
aquinas de Turing

|Q|i

|Q|m+1 1
.
|Q| 1

29 / 42

Complejidad en distintos modelos

De lo anterior concluimos que:


I

|Q|m+1 1
|Q|1

24 .

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 m
aquina M toma tiempo (n2 ).
I

IIC3242

Puesto que M tiene que generar


largo (n).

M
aquinas de Turing

n
2

secuencias de estados de

30 / 42

También podría gustarte