Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
IIC3242
Mquinas de Turing a
8 / 42
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
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
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
IIC3242
Mquinas de Turing a
12 / 42
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
Paso 3:
. . .
q1 Paso 4: B B B B 0 B B
. . .
q1 Paso 5: B B B B B B B
. . .
q0
IIC3242
Mquinas de Turing a
14 / 42
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
IIC3242
Mquinas de Turing a
18 / 42
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
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
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
IIC3242
Mquinas de Turing a
23 / 42
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
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
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
3n 4 }.
IIC3242
Mquinas de Turing a
27 / 42
|Q|i
i =0
|Q|m+1 1 . |Q| 1
IIC3242
Mquinas de Turing a
29 / 42
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