Professional Documents
Culture Documents
Contenido
Mquinas de Turing Clases de complejidad deterministas Tiempo Espacio Clases No Deterministas Mquinas RAM y simulaciones Funciones de Complejidad Propias Relaciones entre Clases de Complejidad
Signicado de
(q, (a1 , . . . , ak )) = ((b1 , . . . , bk ), (m1 , . . . , mk ), q ) q, estado actual (a1 , . . . , ak ): contenido actual de la cinta en las posiciones de la cabeza de lectura. (b1 , . . . , bk ): Smbolos que se escriben en la cinta en sustitucin de (a1 , . . . , ak ). q , estado al que se evoluciona (m1 , . . . , mk ), rdenes de movimiento para las k cabezas de lectura: I: izquierda D: Derecha S: No se mueve
Conceptos Elementales
Descripcin Global de la Mquina de Turing, S: Estado en el que se encuentra Contenido de las cintas Posiciones de las cabezas de entrada Descripcin Inicial para la Entrada x A : Estado inicial Primera cinta x y despus casillas vacas, resto de casillas vacas Todas las cabezas de cintas en la casilla inicial (ms a la izquierda).
10 q4 11 q4
10 q4 11 q4
CLASES DE COMPLEJIDAD
Una Mquina de Turing (u otro dispositivo de clculo) es de complejidad f (n) si y solo si para toda entrada x A de longitud |x| = n, la mquina acepta esta entrada o la rechaza consumiento menos de f (n) unidades. Un lenguaje se dice de complejidad f (n) si existe una Mquina de Turing que acepta el lenguaje y tiene complejidad f (n). Unidades pasos de clculo complejidad en tiempo Unidades casillas de la cinta complejidad en espacio Existen otras medidas de complejidad
rdenes de Complejidad
Se dice que una medida g(n) es de orden O( f (n)) si existe n0 y c > 0 tal que n n0 , g(n) c. f (n). Teorema.- Si L es aceptado en tiempo t (n) por una Mquina de Turing con k cintas, entonces m 0 existe una Mquina de Turing con k + 1 cintas que acepta el mismo lenguaje en tiempo 1 t (n) + n m 2
Idea de la Demostracin
Imaginemos una Mquina de Turing que acepta palindromos 3 1 4 3 2 2 3 4 1 3 Tiene que ir leyendo smbolos por la izquierda, moverse a la derecha y comprobar que es el mismo smbolo. Esto tambin se puede hacer con ms estados y ms smbolos en el alfabeto. Se aade un smbolo por cada pareja de smbolos de A. La cadena de entrada se codica en una nueva cinta, representando cada dos smbolos por uno. La condicin de palndromo se comprueba en esta nueva cinta. As, se hace de dos en dos smbolos, reduciendo el tiempo a la mitad.
1 2 1 0 1 1
3 1
Entrada
Posicin que se est comprobando (binario) Contador en binario para encontrar posiciones
Clases No-Deterministas
Mquina de Turing No-Determinista: Una mquina de Turing No-Determinista es aquella en la que presenta varias opciones para cada situacin: hay pasos que no se especican cmo se hacen, sino que se dejan varias opciones. Lenguaje Aceptado por Una Mquina No-Determinista: Una mquina de Turing No-Determinista acepta una entrada x si y solo si existe una cadena de clculos posibles para esa entrada que acepta.
Para que una palabra sea aceptada basta con que haya una posibilidad de que termine en aceptacin. Para que sea rechazada todas los clculos posible tienen que terminar en rechazo.
Clases No-Deterministas
La funcin de complejidad se puede medir en una mquina de Turing no-determinista. Una mquina de Turing no determinista tiene complejidad f (n) en tiempo (espacio) si y solo si para una entrada x de longitud n todas las posibles opciones de clculo de la mquina terminan en f (n) pasos (no usan ms de f (n) casillas).
Clases de Complejidad
TIEMPO( f ) Todos los lenguajes aceptados por una mquina de Turing determinista en tiempo O( f (n)). ESPACIO( f ) Todos los lenguajes aceptados por una mquina de Turing determinista en espacio O( f (n)). NTIEMPO( f ) Todos los lenguajes aceptados por una mquina de Turing no determinista en tiempo O( f (n)). NESPACIO( f ) Todos los lenguajes aceptados por una mquina de Turing no determinista en espacio O( f (n)).
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 16/40
Clases de Complejidad
Clase polinmica (tiempo): P =
j >0
TIEMPO(n j )
j >0
Clase polinmica no determinista (tiempo): NP = NTIEMPO(n j ) Clase polinmica (espacio): PESPACIO = ESPACIO(n j ) Clase polinmica no determinista (espacio): NPESPACIO = j>0 NESPACIO(n j ) Clase de espacio logartmico determinista: L = ESPACIO(log(n)) Clase de espacio logartmico no determinista: NL= NESPACIO(log(n)) Clase exponencial en tiempo: EXP =
j>0 (2 nj j >0
Mquina RAM
Cada celda contiene un entero de cualquier longitud. Una RAM se controla por un programa que se guarda en la unidad de control. El estado de la Mquina RAM es el nmero de instruccin que se est ejecutando. MMi M j (poner en la celda nmero Mi el valor de M j ) Goto m if Mi > 0 Halt
M0 M1 M2 M3 . . .
. . .
Mquina RAM
Entrada: m enteros en las celdas M1 , . . . , Mm Tamao de la Entrada: Suma del tamao de los enteros de entrada RAM Aceptadoras: Escriben 0 en M0 si rechazan y 1 si aceptan. Si no paran rechazan RAM calculadoras de f (x): Escriben f (x) en M0
Tabla de Simulaciones
Mquina Simuladora Mquina Simulada
Mquina Turing 1 cinta: 1TM Mquina Turing k cintas: kTM Mquina RAM: RAM
(Del libro de Garey, Johnson. Distintos autores pueden dar distintas relaciones. Lo importante es que no cambiemos de clase cambiando de modelo.)
Programa RAM
M1 1 M6 M4 M1 If M6 > 0 goto Comienza simulacion del estado 2 M2 1 M7 MM5 M2 If M7 > 0 goto 12 Comienza simulacion del estado 1 - simbolo 2 M4 q Simula (q, a) = (q , m, b) MM5 b M5 M5 + m Si q = qr , q = qa Si q = qr Si q = qa 10. If M3 > 0 goto 1 10. M0 = 0 10. M0 = 1 11. M3 1 11. Halt 11. Halt 12. M2 M2 + M3 Simula primer estado, segundo simbolo ... 1. 2. 3. 4. 5. 6. 7. 8. 9.
Continuacin
Hay un grupo de estados para cada instruccin de la Mquina RAM. Estos estados buscarn el contenido de las casillas necesarias y los copian en las cintas 5 y 6. El resultado se pone en la cinta 7 y se copia despus en la cinta 2. Si la longitud de la entrada es n, entonces despus de t pasos, necesitamos del orden de n + t casillas de la mquina de Turing para almacenar una celda de la de RAM. Tambin usamos a lo ms n + t celdas de la Mquina RAM. En denitiva, del orden de t celdas de la Mquina RAM y cada una necesita del orden de t casillas.
Continuacin
Despus de t pasos para simular una instruccin se necesitan, a lo ms del orden de t 2 pasos: hay que buscar y escribir en la cinta 2 que tiene del orden O(t 2 ) casillas. Si da f (n) pasos y cada uno necesita O( f 2 (n)) pasos de la Mquina de Turing, la complejidad nal es del orden O( f 3 (n)).
Demostracin (Cont.)
Cada vez que se escriben t enteros c1 , . . . , ct se simulan determinsticamente t pasos de la mquina no-determinstica, eligiendo la opcin ci en el paso i. La mquina para cuando ha encontrado una secuencia de aceptacin o cuando todas los clculos asociados a una longitud t rechazan. La complejidad de la simulacin est acotada por f (n) f (n). t =1 d t , que es de orden O( f (n).d f (n)+1) = O(d f (n)+log( f (n)) ) O(d 2 f (n) ). La complejidad de manejar la secuencia de enteros de las opciones es O( f (n).d f (n)+1) O(d 2 f (n) ). El teorema se verica para c = d 2 .
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 28/40
Existencia de Caminos
Tenemos un grafo dirigido G y dos nodos xi y x j . Existe un camino entre estos dos nodos? Los algoritmos de bsqueda en profundidad o en anchura son del orden O(n2 ) en tiempo y del orden O(n) en espacio, donde n es el nmero de nodos.
Espacio no-determinista
En espacio no-determinista el problema se resuelve en espacio O(log(n)). El algoritmo funciona escribiendo el identicador de un nodo xk de forma no-determinista. a) Si existe un arco de xi a xk y xk es igual a x j , entonces para y acepta. b) Si existe el arco y xk es distinto de x j , vuelve a ejecutar este paso con xk en el lugar de xi . c) Si no existe el arco de xi a xk para con rechazo. a) xi x j SI k= j c) xi xj xk b) xi Llamada recursiva a Camino(xk ,x j ) xk NO
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 30/40
Complementarios de Clases
La clase de los lenguajes complementarios de los lenguajes en la clase C se llama CoC. Se verica que L C L CoC. El complementario de una clase determinista coincide con la propia clase: CoP = P. No ocurre lo mismo con las clase no deterministas. La clase CoNP es el conjunto de problemas cuyo complementario est en NP.
P, NP y CoNP
NP P
CoNP
La demostracin de a) es trivial. La demostracin de b) se basa en una simulacin de las opciones de una Mquina no-determinstica por una determinstica. Nunca necesitamos ms espacio del nmero de pasos que estamos simulando: f (n) (el necesario para escribir las opciones y los caracteres que se escriban en tiempo f (n)).
|Q||A|(2k2) f (n)(n + 1)
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 34/40
Demostracin (Cont.)
El nmero mximo de conguraciones es:
Teorema de la Jerarqua
Teorema.- Si f (n) n es propia, entonces TIEMPO(( f (n)) TIEMPO( f 3 (2n + 1)) TIEMPO(( f (n)) = TIEMPO( f 3 (2n + 1)) Corolario.- P = EXP Jerarqua en Espacio: Si f (n) es una funcin de complejidad propia, entonces ESPACIO( f (n)) ESPACIO( f (n) log f (n)) ESPACIO( f (n)) = ESPACIO( f (n) log f (n))
Inclusin de Clases
L NL P NP PESPACIO No se sabe si alguna o varias de estas inclusiones son igualdades. Lo nico que se sabe es que, al menos, una de ellas debe de ser una inclusin estricta.
Espacio Determinista
Teorema de Savitch: Existencia de Caminos est en ESPACIO(log2 (n)), donde n es el nmero de nodos del grafo. La demostracin se basa en una resolucin ordenada del problema CAMINO(x, y, i): Existencia de un camino de longitud 2i , y la relacin
CAMINO(x, y, i) z, CAMINO(x, z, i 1) y CAMINO(z, y, i 1)
Se van colocando las tripletas necesarias para resolver el problema de forma recursiva en una cinta. En cada llamada recursiva slo hay que colocar una tripleta. Para saber si estamos en la primera o segunda tripleta, slo hay que comprobar la tripleta anterior. Cada tripleta es de longitud O(log(n)) y el nmero de tripletas es de orden O(log(n)).
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 38/40
Espacio No-Determinista
Teorema.- Si f (n) log(n) y es propia, entonces NESPACIO( f (n)) ESPACIO( f 2 (n)) Corolario.- PESPACIO = NPESPACIO Teorema de Immerman-Szelepscnyi.- Dado un grafo G y un nodo x el nmero de nodos alcanzables desde x puede ser calculado en espacio log(n) no determinstico, donde n es el nmero de nodos. Calcular F (x) para una mquina no determinstica es que para cada entrada x, la mquina termina produciendo F (x) o NO y, al menos, una salida es F (x).
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 39/40
Espacio No-Determinista
Corolario.- Si f (n) log(n) es propia entonces NESPACIO( f (n)) = CoNESPACIO( f (n)) Si L es decidido en espacio no determinstico f (n) por la mquina M . Se calcula en nmero de nodos accesibles desde la conguracin inicial. Si se encuentra una aceptacin rechaza y si se han calculado todos (visitado todas las nales) y no se ha aceptado, entonces acepta.