You are on page 1of 41

Modelos de Informtica Terica Captulo 2 - Clases de Complejidad

Serafn Moral Callejn Departamento de Ciencias de la Computacin Universidad de Granada

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 1/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 2/40

Mquina de Turing de k cintas


Es una quintupla M = (Q, A, , q0 , F ) donde Q conjunto nito: conjunto de estados. A alfabeto, con el smbolo especial es la funcin de transicin: : (Q F ) Ak Ak M k Q donde M = {I , D, S} q0 Q, estado inicial. F Q, estados nales. .

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 3/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 4/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 5/40

Conceptos Elementales (Cont.)


Paso de Clculo: Se dice que de la descripcin global S1 se pasa a la descripcin global S2 en un paso si y solo si existe una transicin que desde S1 nos lleva a S2 . Sucesin de Pasos de Clculo para la entrada x A : Sucesin, T (x), de descripciones que comienza en el estado global inicial para x A , y tal que desde cada descripcin se puede obtener la siguiente en un paso. Puede ser nita o innita. Clculo que termina en S: S es el ltimo estado global y su estado es nal. Mquinas de Turing Aceptadoras: F = {qa , qr }, qa : aceptar, qr : rechazar. Mquinas de Turing Calculadoras: F = {qh }. Calculan f (x): contenido de la ltima cinta.
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 6/40

Ejemplo de Mquina de Turing


q 1 2 3 4 5 6 7 8 9 q0 q0 q0 q3 q3 q3 q4 q4 q4 (a1 , a2 ) (b1 , b2 ) (m1 , m2 ) ( , ) (1, ) (0, ) (0, ) ( , ) (1, ) (0, ) (1, 1) ( , 1) (1, 0) ( , 0) (#, #) (1, #) (0, 0) (0, 1) (#, #) (1, #) (0, #) (1, 1) (#, 1) (1, 0) (#, 0) (S, S) (S, S) (D, D) (D, D) (S, S) (D, I ) (S, S) (D, I ) (S, S) (S, S) (S, S) q qa qr q3 q3 qr q4 qr q4 qr qr qa
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 7/40

10 q4 11 q4

Ejemplo de Mquina de Turing


q 1 2 3 4 5 6 7 8 9 q0 q0 q0 q3 q3 q3 q4 q4 q4 (a1 , a2 ) (b1 , b2 ) (m1 , m2 ) ( , ) (1, ) (0, ) (0, ) ( , ) (1, ) (0, ) (1, 1) ( , 1) (1, 0) ( , 0) (#, #) (1, #) (0, 0) (0, 1) (#, #) (1, #) (0, #) (1, 1) (#, 1) (1, 0) (#, 0) (S, S) (S, S) (D, D) (D, D) (S, S) (D, I ) (S, S) (D, I ) (S, S) (S, S) (S, S) q qa qr q3 q3 qr q4 qr q4 qr qr qa
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 7/40

Lenguaje aceptado: {0n 1n : n 0}

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 8/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 9/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 10/40

Medidas de Complejidad en Espacio


En general para medir el nmero de unidades que se consumen se siguen las siguiente reglas: Se cuentan las casillas que se usan (se escribe o se pasa sobre ellas). Si nunca se escribe sobre la cinta de entrada, entonces las casillas de esta cinta no se cuentan. Si las casillas de la cinta de salida se escriben de izquierda a derecha, sin volver nunca hacia atrs, tampoco se cuentan.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 11/40

Reconocer palndromos en espacio O(log(n))


Se hace con una Mquina de Turing con las siguiente estructura de cintas:

1 2 1 0 1 1

3 1

Entrada

Posicin que se est comprobando (binario) Contador en binario para encontrar posiciones

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 12/40

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.

El lenguaje aceptado es el conjunto de todas las palabras aceptadas.


Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 13/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 14/40

Ejemplo (en trminos de algoritmos)


Un algoritmo no-determinista que resuelve el problema de los colores en un grafo. 1. Asignar un color posible a cada nodo 2. Si no hay dos nodos conectados con el mismo color, aceptar 3. En caso contrario rechazar Para que el algoritmo resuelva el problema, si la respuesta es SI, entonces debe de existir la posibilidad de que acepte; si la respuesta es NO, necesariamente ha de rechazar. La complejidad sera proporcionar al nmero de arcos.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 15/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 17/40

Funciones de Complejidad Propias


Son aquellas que verican: f (n + 1) f (n) y tales que existe una Mquina de Turing calculadora que para cualquier entrada x de longitud n produce en tiempo O(n + f (n)) un estado de sus cintas: Estado qh x 0 0 ... 0 ...... 0 0 ... 0 0 0 ... 0 donde ji O( f (n)).
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 18/40

... j2 jk1 f (n)

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

. . .

Tipos de Instrucciones: Mi 1 Mi M j + Mk Mi M j Mk Mi [M1 /2] Mi MM j (poner en Mi el valor contenido en la celda nmero M j )

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 19/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 20/40

Tabla de Simulaciones
Mquina Simuladora Mquina Simulada
Mquina Turing 1 cinta: 1TM Mquina Turing k cintas: kTM Mquina RAM: RAM

1TM O(T 2 (n))

kTM O(T (n))

RAM O(T (n) log T (n)) O(T (n) log T (n))

O(T 3 (n)) O(T 2 (n))

(Del libro de Garey, Johnson. Distintos autores pueden dar distintas relaciones. Lo importante es que no cambiemos de clase cambiando de modelo.)

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 21/40

Simulacin de una Mquina de Turing


M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 . . . Salida Indice de estado Indice de smbolo 1 Estado de la MT Posicin del cabezal +8 Estado - Indice de estado Smbolo - Indice de smbolo Casilla 0 de la MT Casilla 1 de la MT . . .
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 22/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 23/40

Mquina RAM por una Mquina de Turing


Vamos a demostrar que si la mquina RAM tiene orden O( f (n)), donde f (n) n, entonces la Mquina de Turing la puede simular en tiempo O( f 3 (n)). La mquina codica en la primera cinta la entrada a la mquina RAM. La segunda cinta codica el contenido de las casillas de la mquina RAM. Cada casilla se codica con un par (en binario) (i, r(i)): i es el nmero de la casilla y r(i) su contenido. Cada vez que una casilla cambia, se borra y se aade el nuevo par al nal. La cinta tres contiene el nmero de instruccin de binario que se ejecuta. La cinta cuatro contiene el registro que se busca.
Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 24/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 25/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 26/40

Simulacin de Mquinas No-Deterministas


Teorema.- Supongamos que L es decidido por una mquina de Turing no-determinista en tiempo f (n) , entonces es decidido por una mquina de Turing determinstica con 3 cintas en tiempo O(c f (n) ) donde c > 1 es una constante que depende de la mquina no determinstica inicial. Sea d el nmero mximo de elecciones en la Mquina No-Determinstica. La idea es usar una cinta donde se van escribiendo secuencias de enteros entre 0 y d 1. Primero se escriben las secuencias de longitud 0, despues las de longitud 1, longitud 2, y as sucesivamente.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 27/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 29/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 31/40

P, NP y CoNP

NP P

CoNP

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 32/40

Relaciones entre Clases de Complejidad


a) b) c) ESPACIO( f (n)) NESPACIO( f (n)) TIEMPO( f (n)) NTIEMPO( f (n)) NTIEMPO( f (n)) ESPACIO( f (n)) NESPACIO( f (n)) TIEMPO(klog(n)+ f (n) )

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 33/40

NESPACIO( f (n)) TIEMPO(klog(n)+ f (n))


El Mtodo de la Alcanzabibilidad: Se basa en construir un grafo en el que los nodos son las posibles conguraciones de una Mquina de Turing, y los arcos conectan conguraciones tales que se puede llegar de una a otra en un paso de clculo. Suponemos que sobre la cinta primera no se escribe. Entonces tendremos que una conguracin se puede representar como un vector (q, i, w2 , u2 , . . . , wk , uk ), donde i es la posicin del cabezal en la primera cinta y w j , u j representan lo que hay en la cinta j antes y despus del cabezal. El nmero mximo de conguraciones es:

|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:

|Q||A|(2k2) f (n)(n + 1) log(n)+ f (n) Es decir del orden de c1


Comprobar si una palabra es aceptada equivale a comprobar si desde un nodo de un grafo se puede llegar a otro. Y sto se comprueba en tiempo cuadrtico respecto al tamao de la descripcin del grafo, con lo que se obtiene el resultado deseado. El grafo no es necesario construirlo de forma explcita, calculando los vecinos de una nodo slo cuando es necesario con una rutina que acepta una conguracin, una mquina M y una entrada x y nos da sus vecinos.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 35/40

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

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 36/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 37/40

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.

Modelos de Informtica TericaCaptulo 2 - Clases de Complejidad p. 40/40

You might also like