Está en la página 1de 30

Mquinas de Turing a

IIC3242

IIC3242

Mquinas de Turing a

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. Tiempo Espacio ... Para hacer esto primero tenemos que introducir la nocin de o problema.

IIC3242

Mquinas de Turing a

2 / 42

Problemas de decisin o

Alfabeto : Conjunto nito de s mbolos. Ejemplo: = {0, 1}. Palabra w : Secuencia nita de s mbolos de . Ejemplo: w = 01101. : Conjunto de todas las palabras construidas con s mbolos de . Lenguaje L: Conjunto de palabras. Ejemplo: L = {0n 1n | n N}.

IIC3242

Mquinas de Turing a

3 / 42

Problemas de decisin o
Problema de decisin asociado a un lenguaje L: Dado w , o decidir si w L.

Ejemplo
Podemos ver SAT como un problema de decisin. Suponga que o P = {p, q}: = {p, q, , , , , , (, )} Algunas palabras de representan frmulas, mientras que o otras tales como y pq q no representan frmulas. o SAT = {w | w representa una frmula y w es o satisfacible}.

IIC3242

Mquinas de Turing a

4 / 42

Complejidad de un problema de decisin o


La complejidad de un lenguaje L es la complejidad del problema de decisin asociado a L. o Cundo decimos que L puede ser solucionado ecientemente? a Cuando existe un algoritmo eciente que decide L.

Ejercicio
Muestre que L = {w {0, 1} | w es un pal ndromo} puede ser resuelto ecientemente. Cundo decimos que L es un problema dif a cil? Cuando no existe un algoritmo eciente que decide L.

IIC3242

Mquinas de Turing a

5 / 42

Mquinas de Turing a

Cmo podemos demostrar que un problema es dif o cil? Para hacer esto, primero tenemos que formalizar la nocin de o algoritmo. Qu es un algoritmo? Podemos formalizar este concepto? e Mquinas de Turing: Intento por formalizar este concepto. a Podemos demostrar que las mquinas de Turing capturan la a nocin de algoritmo? o No, el concepto de algoritmo es intuitivo.

IIC3242

Mquinas de Turing a

6 / 42

Mquinas de Turing a
Por qu creemos que las mquinas de Turing son una buena e a formalizacin del concepto de algoritmo? o
Porque cada programa de una mquina de Turing puede ser a implementado. Porque todos los algoritmos conocidos han podido ser implementados en mquinas de Turing. a Porque todos los otros intentos por formalizar este concepto fueron reducidos a las mquinas de Turing. a Los mejores intentos resultaron ser equivalentes a las mquinas a de Turing. Todos los intentos razonables fueron reducidos ecientemente. Tesis de Church: Algoritmo = Mquina de Turing. a
IIC3242 Mquinas de Turing a 7 / 42

Mquinas de Turing: Formalizacin a o


Denicin o
Mquina de Turing (Determinista): (Q, , , q0 , , F ) a Q es un conjunto nito de estados. es un alfabeto tal que , B . es un alfabeto tal que { , B} . q0 Q es el estado inicial. F Q es un conjunto de estados nales. es una funcin parcial: o : Q Q {I , N, D}. es llamada funcin de transicin. o o

IIC3242

Mquinas de Turing a

8 / 42

Mquinas de Turing: Funcionamiento a


La cinta de la mquina de Turing es innita hacia la derecha. a El s mbolo es usado para demarcar la posicin 0 de la cinta. o

Supuesto
Si (q, ) est denido: (q, ) = (q , , X ), con X {D, N} a Si a { } y (q, a) est denido: (q, a) = (q , b, X ), a con b { }. es el alfabeto de entrada y es el alfabeto de la cinta. 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 s mbolo B.
IIC3242 Mquinas de Turing a 9 / 42

Mquinas de Turing: Funcionamiento a

Al comenzar a funcionar, la mquina se encuentra en el estado q0 a y su cabeza lectora est en la posicin 1 de la cinta. a o En cada instante la mquina se encuentra en un estado q y su a cabeza lectora est en una posicin p. a o Si el s mbolo en la posicin p es a y (q, a) = (q , b, X ), o entonces:
La mquina escribe el s a mbolo b en la posicin p de la cinta. o Cambia de estado desde q a q . Mueve la cabeza lectora a la posicin p 1 si X = I , y a la o posicin p + 1 si X = D. Si X = N, entonces la cabeza lectora o permanece en la posicin p. o

IIC3242

Mquinas de Turing a

10 / 42

Mquinas de Turing: Aceptacin a o

Los estados de F son utilizados como estados de aceptacin. o Una palabra w es aceptada por una mquina M si y slo si la a o ejecucin de M con entrada w se detiene en un estado de F . o

Denicin o
Lenguaje aceptado por una mquina de Turing M: a L(M) = {w | M acepta w }.

IIC3242

Mquinas de Turing a

11 / 42

Mquinas de Turing: Ejemplo a


Queremos construir una mquina que verique si el nmero de 0s a u en una palabra es par: M = (Q, , , q0 , , F ) Q = {q0 , q1 }. = {0, 1}. = {0, 1, , B}. F = {q0 }. es denida como: (q0 , 0) = (q1 , B, D) (q0 , 1) = (q0 , B, D) (q1 , 0) = (q0 , B, D) (q1 , 1) = (q1 , B, D)

IIC3242

Mquinas de Turing a

12 / 42

Mquinas de Turing: Ejecucin a o


Supongamos que w = 00010:
. . .

Inicio:

q0 Paso 1: B 0 0 1 0 B B
. . .

q1 Paso 2: B B 0 1 0 B B
. . .

q0

IIC3242

Mquinas de Turing a

13 / 42

Mquinas de Turing: Ejecucin a o

Paso 3:

. . .

q1 Paso 4: B B B B 0 B B
. . .

q1 Paso 5: B B B B B B B
. . .

q0

Conclusin: La mquina acepta w = 00010. o a

IIC3242

Mquinas de Turing a

14 / 42

El lenguaje aceptado por una mquina de Turing: Ejemplos a

Ejemplo
Para la mquina M mostrada en las transparencias anteriores: a L(M) = {w {0, 1} | w contiene un nmero par de s u mbolos 0}.

Ejercicio
Construya una mquina de Turing que acepte el lenguaje a | w es un pal L = {w {0, 1} ndromo}.

IIC3242

Mquinas de Turing a

15 / 42

Complejidad de un algoritmo

Una Mquina de Turing puede no detenerse en alguna entrada. a Primera nocin de algoritmo: MT que se detiene en todas las o entradas. Cmo se mide el tiempo de ejecucin de un algoritmo? o o Para una MT con alfabeto : Paso de M: Ejecutar una instruccin de la funcin de o o transicin. o tiempo M (w ): Nmero de pasos ejecutados por M con entrada u w .

IIC3242

Mquinas de Turing a

16 / 42

Complejidad de un algoritmo

Denicin o
El tiempo de funcionamiento de una MT M en el peor caso es denido por la funcin tM : o tM (n) = mx{ tiempo M (w ) | w y |w | = n }. a

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

IIC3242

Mquinas de Turing a

17 / 42

Mquinas de Turing con varias cintas a


Denicin o
MT con k cintas: (Q, , , q0 , , F ) Q es un conjunto nito de estados. es un alfabeto tal que , B . es un alfabeto tal que { , B} . q0 Q es el estado inicial. F Q es un conjunto de estados nales. es una funcin parcial: o : Q k Q k {I , N, D}k . es llamada funcin de transicin. o o

IIC3242

Mquinas de Turing a

18 / 42

Mquinas de Turing con k cintas: Funcionamiento a

La mquina tiene k cintas innitas hacia la derecha. a El s mbolo cinta. es usado para demarcar la posicin 0 de cada o

es el alfabeto de entrada y es el alfabeto de las 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, . . .

IIC3242

Mquinas de Turing a

19 / 42

Mquinas de Turing con k cintas: Funcionamiento a


La mquina tiene una cabeza lectora por cinta. a Al comenzar, la mquina se encuentra en el estado q0 , y cada a cabeza lectora est en la posicin 1 de su cinta. a o En cada instante la mquina se encuentra en un estado q y su a cabeza lectora i se encuentra en la posicin pi . o Si el s mbolo en la posicin pi es ai y (q, a1 , . . . , ak ) = o (q , b1 , . . . , bk , X1 , . . . , Xk ), entonces:
La mquina escribe el s a mbolo bi en la posicin pi de la o i-sima cinta. e Cambia de estado desde q a q . Mueve la cabeza lectora de la i-sima cinta a la posicin pi 1 e o si Xi = I , y a la posicin pi + 1 si Xi = D. Si Xi = N, entonces o la mquina no mueve la cabeza lectora de la i-sima cinta. a e
IIC3242 Mquinas de Turing a 20 / 42

MT con k cintas: Aceptacin y complejidad o


Una palabra w es aceptada por una MT M con k cintas si y slo si o la ejecucin de M con entrada w se detiene en un estado nal. o L(M) = {w | M acepta w }.

Para una MT con k cintas y alfabeto : Paso de M: Ejecutar una instruccin de la funcin de o o transicin. o tiempo M (w ): Nmero de pasos ejecutados por M con entrada u w . Tiempo de funcionamiento M en el peor caso: tM (n) = mx{ tiempo M (w ) | w y |w | = n }. a

IIC3242

Mquinas de Turing a

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 pal ndromo}. Solucin: Denimos M = (Q, , , q0 , , F ) de la siguiente forma: o Q = {q0 , qc , qr , qv , qa } = {0, 1} = {0, 1, B, } F = {qa }

IIC3242

Mquinas de Turing a

22 / 42

MT con k cintas: Ejemplo

Funcin es denida de la siguiente forma: o


(q0 , B, B) (q0 , 0, B) (q0 , 1, B) (qc , 0, B) (qc , 1, B) (qc , B, B) (qr , 0, 0) (qr , 0, 1) (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)

IIC3242

Mquinas de Turing a

23 / 42

Aceptacin en distintos modelos o

Un lenguaje L es aceptado por una MT M si L = L(M). Es posible aceptar ms lenguajes si se usa cintas adicionales? a

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. Cul es la diferencia de complejidad entre M1 y M2 ? a

IIC3242

Mquinas de Turing a

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)). La denicin es idntica para el caso de (t(n)) y (t(n)). o e Es posible aceptar ms rpido si se usa cintas adicionales? a a

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. Es posible reducir la diferencia entre M1 y M2 ?
IIC3242 Mquinas de Turing a 25 / 42

Complejidad en distintos modelos


Sea L = {w {0, 1, #} | w es un pal ndromo}. 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?

Proposicin o
Sea M una MT con una cinta. Si L = L(M), entonces M funciona en tiempo (n2 ). Demostracin: Suponga que L = L(M), donde M es una MT con o una cinta. Sin perdida de generalidad, suponemos que M siempre recorre toda la palabra de entrada.
IIC3242 Mquinas de Turing a 26 / 42

Complejidad en distintos modelos


Para w {0, 1, #} , sea w r la palabra obtenida al escribir w en el sentido inverso. Dena Ln como el siguiente lenguaje (para n divisible por 4): Ln = {w # 2 w r | w {0, 1} 4 }. Ntese que Ln L. o Sea w Ln y n i 3n . Entonces Ci (w ) es la secuencia de 4 4 estados [q1 , . . ., qk ] en que se encuentra M despus de moverse e entre las posiciones i e i + 1 (en cualquiera de las dos direcciones) en la ejecucin que tiene a w como entrada. o C (w ) = {Ci (w ) |
n 4
n n

3n 4 }.

IIC3242

Mquinas de Turing a

27 / 42

Complejidad en distintos modelos


Lema
Si w1 , w2 Ln y w1 = w2 , entonces C (w1 ) C (w2 ) = . Demostracin: Suponga que el lema es falso. Entonces existen o n i , j { 4 , . . . , 3n } tales que Ci (w1 ) = Cj (w2 ). 4 Sean u1 y u2 las palabra formadas por los primeros i s mbolos de w1 y los ultimos n j s mbolos de w2 , respectivamente. Dado que Ci (w1 ) = Cj (w2 ), se tiene que u1 u2 es aceptado por M. Cmo se demuestra esto? o Pero u1 u2 no es un pal ndromo, por lo que tenemos una contradiccin. o
IIC3242 Mquinas de Turing a 28 / 42

Complejidad en distintos modelos


Para w Ln , sea sw la secuencia ms corta en C (w ). a Sn = {sw | w Ln }. Por el lema sabemos que sw1 = sw2 si w1 = w2 . Por lo tanto: |Sn | = |Ln | = 2 4 Sea m el largo de la secuencia mas larga en Sn . Cantidad de posibles secuencias de largo a lo ms m: a
m
n

|Q|i
i =0

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

IIC3242

Mquinas de Turing a

29 / 42

Complejidad en distintos modelos


|Q|m+1 1 |Q|1
n

De lo anterior concluimos que: Por qu? e

24 .

Se tiene entonces que m es (n). Por lo tanto existe w0 Ln para el cual |sw0 | es (n). Entonces: Todas las secuencias en C (w0 ) son de largo (n). Conclusin: Con entrada w0 , la mquina M toma tiempo (n2 ). o a Puesto que M tiene que generar largo (n).
n 2

secuencias de estados de

IIC3242

Mquinas de Turing a

30 / 42

También podría gustarte