Introducción a la Complejidad...
-
Upload
dinhkhuong -
Category
Documents
-
view
227 -
download
5
Transcript of Introducción a la Complejidad...
Introduccion a la Complejidad Computacional
IIC2213
IIC2213 – Introduccion a la Complejidad Computacional 1 / 111
Complejidad Computacional
Objetivo: Medir la complejidad computacional de un problema.
Vale decir: Medir la cantidad de recursos computacionalesnecesarios para solucionar un problema.
◮ Tiempo
◮ Espacio
◮ ...
Para hacer esto primero tenemos que introducir la nocion deproblema.
IIC2213 – Introduccion a la Complejidad Computacional 2 / 111
Problemas de decision
Alfabeto A: Conjunto finito de sımbolos.
◮ Ejemplo: A = {0, 1}.
Palabra w : Secuencia finita de sımbolos de A.
◮ Ejemplo: w = 01101.
A∗: Conjunto de todas las palabras construidas con sımbolos de A.
Lenguaje L: Conjunto de palabras.
◮ Ejemplo: L = {0n1n | n ∈ N}.
IIC2213 – Introduccion a la Complejidad Computacional 3 / 111
Problemas de decision
Problema de decision asociado a un lenguaje L: Dado w ∈ A∗,decidir si w ∈ L.
Ejemplo
Podemos ver SAT como un problema de decision. Suponga queP = {p, q}:
◮ A = {p, q,¬,∧,∨,→,↔, (, )}Algunas palabras de A∗ representan formulas de L(P),mientras que otras tales como ¬¬ y p¬q ∧ ∧ ∨ q norepresentan formulas.
◮ SAT = {w ∈ A∗ | w representa una formula de L(P) y w essatisfacible}.
IIC2213 – Introduccion a la Complejidad Computacional 4 / 111
Complejidad de un problema de decision
La complejidad de un lenguaje L es la complejidad del problema dedecision asociado a L.
¿Cuando decimos que L puede ser solucionado eficientemente?
◮ Cuando existe un algoritmo eficiente que decide L.
Ejercicio
Muestre que L = {w ∈ {0, 1}∗ | numero de 0s y 1s en w es elmismo} puede ser resuelto eficientemente.
¿Cuando decimos que L es un problema difıcil?
◮ Cuando no existe un algoritmo eficiente que decide L.
IIC2213 – Introduccion a la Complejidad Computacional 5 / 111
Maquinas de Turing
¿Como podemos demostrar que un problema es difıcil?
◮ Para hacer esto, primero tenemos que formalizar la nocion dealgoritmo.
¿Que es un algoritmo? ¿Podemos formalizar este concepto?
◮ Maquinas de Turing: Intento por formalizar este concepto.
¿Podemos demostrar que las maquinas de Turing capturan lanocion de algoritmo?
◮ No, el concepto de algoritmo es intuitivo.
IIC2213 – Introduccion a la Complejidad Computacional 6 / 111
Maquinas de Turing
¿Por que creemos que las maquinas de Turing son una buenaformalizacion del concepto de algoritmo?
◮ Porque cada programa de una maquina de Turing puede serimplementado.
◮ Porque todos los algoritmos conocidos han podido serimplementados en maquinas de Turing.
◮ Porque todos los otros intentos por formalizar este concepto fueronreducidos a las maquinas de Turing.
◮ Los mejores intentos resultaron ser equivalentes a las maquinasde Turing.
◮ Todos los intentos “razonables” fueron reducidoseficientemente.
◮ Tesis de Church: Algoritmo = Maquina de Turing.
IIC2213 – Introduccion a la Complejidad Computacional 7 / 111
Maquinas de Turing: Componentes
Dado: Alfabeto A que no contiene sımbolo especial B.
Componentes:
◮ Memoria: Arreglo infinito (en ambas direcciones) que en cadaposicion almacena un sımbolo de A ∪ {B}.
◮ Control: Conjunto finitos de estados, una cabeza lectora, unestado inicial y un conjunto de estados finales.
◮ Programa: Conjunto de instrucciones.
IIC2213 – Introduccion a la Complejidad Computacional 8 / 111
Maquinas de Turing: Funcionamiento
Inicialmente:
◮ La maquina recibe como entrada una palabra w .
◮ Coloca esta palabra en alguna parte del arreglo. En lasposiciones restantes el arreglo contiene sımbolo blanco B.
◮ La cabeza lectora se coloca en la primera posicion de w y lamaquina queda en el estado inicial q0.
IIC2213 – Introduccion a la Complejidad Computacional 9 / 111
Maquinas de Turing: Funcionamiento
En cada paso:
◮ La maquina lee el sımbolo a en la celda apuntada por lacabeza lectora y determina en que estado q se encuentra.
◮ Busca en el programa una instruccion para (q, a). Si estainstruccion no existe, entonces la maquina se detiene.
◮ Si la instruccion existe, entonces la ejecuta: Escribe unsımbolo en la posicion apuntada por la cabeza lectora, pasa aun nuevo estado y mueve la cabeza lectora a la derecha o a laizquierda.
Si la maquina se detiene en un estado final, entonces la maquinaacepta w .
IIC2213 – Introduccion a la Complejidad Computacional 10 / 111
Maquinas de Turing: Formalizacion
Definicion
Maquina de Turing (determinista): (Q,A, q0, δ,F )
◮ Q es un conjunto finito de estados.
◮ A es un alfabeto tal que B 6∈ A.
◮ q0 es el estado inicial (q0 ∈ Q).
◮ F es un conjunto de estados finales (F 6= ∅).
◮ δ es una funcion parcial:
δ : Q × (A ∪ {B})→ Q × (A ∪ {B})× {←,→}.
δ es llamada funcion de transicion. Suponemos que sudominio no es vacıo.
IIC2213 – Introduccion a la Complejidad Computacional 11 / 111
Maquinas de Turing: Ejemplo
Queremos construir una maquina que verifique si el largo de unapalabra de 0s es par: M = (Q,A, q0, δ,F )
◮ A = {0}.
◮ Q = {q0, q1, qS , qN}.
◮ F = {qS}.
◮ δ es definida como:
δ(q0, 0) = (q1, 0,→)
δ(q0, B) = (qS , B,→)
δ(q1, 0) = (q0, 0,→)
δ(q1, B) = (qN , B,→)
IIC2213 – Introduccion a la Complejidad Computacional 12 / 111
Maquinas de Turing: Ejecucion
Supongamos que w = 0000:
. . . . . .
. . . . . .
. . . . . .
q1
B B B B0 0 0 0
B B B B0 0 0 0
B B B B0 0 0 0
q0
Paso 0:
Paso 2:
Paso 1:
q0
IIC2213 – Introduccion a la Complejidad Computacional 13 / 111
Maquinas de Turing: Ejecucion
. . . . . .
. . . . . .
. . . . . .
qS
B B B B0 0 0 0
B B B B0 0 0 0
B B B B0 0 0 0
Paso 3:
Paso 4:
Paso 5:
q0
q1
IIC2213 – Introduccion a la Complejidad Computacional 14 / 111
Maquinas de Turing: Otra ejecucion
Ahora supongamos que w = 00000:
. . . . . .
. . . . . .
. . . . . .
q0
Paso 0:
Paso 2:
Paso 1:
B B 0 0 0 0 BB0
B B 0 0 0 0 BB0
B B 0 0 0 0
q0
BB0
q1
IIC2213 – Introduccion a la Complejidad Computacional 15 / 111
Maquinas de Turing: Otra ejecucion
. . . . . .
. . . . . .
. . . . . .
. . . . . .
qN
Paso 3:
Paso 4: B B 0 0 0 0 BB0
B B 0 0 0 0 BB0
Paso 5: B B 0 0 0 0 BB0
B B 0 0 0 0 BB0Paso 6:
q1
q0
q1
IIC2213 – Introduccion a la Complejidad Computacional 16 / 111
Maquinas de Turing: Palabra vacıa
Finalmente supongamos que w = ε:
. . . . . .
. . . . . .
qS
Paso 0:
Paso 1: B B B B
B B B B
q0
Inicialmente: La cabeza lectora se encuentra en una posicioncualquiera.
IIC2213 – Introduccion a la Complejidad Computacional 17 / 111
El lenguaje aceptado por una maquina de Turing
Definicion
Dada una maquina de Turing M = (Q,A, q0, δ,F ):
L(M) = {w ∈ A∗ | M acepta w}.
L(M) es el lenguaje aceptado por M.
En el ejemplo anterior: L(M) = {w ∈ {0}∗ | largo de w es par}.
IIC2213 – Introduccion a la Complejidad Computacional 18 / 111
El lenguaje aceptado por una maquina de Turing
Ejercicio
1. Construya una maquina de Turing que acepta el lenguaje delas palabras de 0s que tienen largo divisible por 3.
2. Construya una maquina de Turing que acepta el lenguaje delas palabras de 0s que tienen largo divisible por 6.
3. Construya una maquina de Turing que acepta el lenguaje delas palabras de 0s y 1s que tienen el mismo numero de 0s y 1s.
IIC2213 – Introduccion a la Complejidad Computacional 19 / 111
Detencion de una maquina de Turing
Una maquina de Turing puede no detenerse en alguna entrada.
Ejemplo
M = (Q,A, q0, δ,F ), donde Q = {q0, q1}, A = {0}, F = {q1} y δ
es definida de la siguiente forma:
δ(q0, 0) = (q1, 0,→)
δ(q0, B) = (q0, B,→)
¿Con que palabra no se detiene esta maquina?
IIC2213 – Introduccion a la Complejidad Computacional 20 / 111
Problemas decidibles
Si una maquina de Turing no se detiene en alguna entrada,entonces no puede ser utilizada como un algoritmo.
◮ Un buen programa en C o Java no se deberıa quedar en unloop infinito.
Definicion
Un lenguaje L es decidible si existe una maquina de Turing M quese detiene en todas las entradas y tal que L = L(M).
¿Existen problemas para los cuales no hay algoritmos? ¿Se puededemostrar esto?
IIC2213 – Introduccion a la Complejidad Computacional 21 / 111
Existencia de problemas no decidibles
Sea A = {0, 1}.
◮ ¿Cuantos lenguajes con alfabeto A existen?
◮ ¿Cuantas maquinas de Turing con alfabeto A existen?
◮ ¿Existen lenguajes no decidibles?◮ Si lanzamos un dardo al azar sobre el espacio de todos los
lenguajes con alfabeto A, ¿cual es la probabilidad de que eldardo caiga en un problema decidible?
IIC2213 – Introduccion a la Complejidad Computacional 22 / 111
Existencia de problemas no decidibles
La demostracion anterior no es constructiva.
◮ Sabemos que existe un problema indecidible, pero no sabemoscomo es este lenguaje.
Vamos a construir un lenguaje indecidible.
◮ Usamos diagonalizacion.
IIC2213 – Introduccion a la Complejidad Computacional 23 / 111
Codificacion de una maquina de Turing
Primero tenemos que introducir algo de terminologıa.
Supongamos que M = (Q,A, q1, δ,F ), donde
◮ Q = {q1, . . . , qn}.
◮ A = {0, 1}.
◮ F = {qi1 , qi2 , . . . , qim}, 1 ≤ i1 < i2 < · · · < im ≤ n.
Definimos una palabra C (M) = wQ00wδ00wF que representa a M.
IIC2213 – Introduccion a la Complejidad Computacional 24 / 111
Codificacion de una maquina de Turing
◮ wQ :
001001100 · · · 00 1 · · · 1︸ ︷︷ ︸
n veces
◮ wδ: Usamos 1 para representar sımbolo 0, 11 para sımbolo 1 y111 para sımbolo B. Tambien usamos 1 para representar ← y11 para →.
wδ es de la forma w1 · · ·wk , donde cada wi representa unatransicion. Por ejemplo, si δ(qi , 0) = (qj , B,←), entonces lasiguiente palabra representa esta transicion:
00 1 · · · 1︸ ︷︷ ︸
i veces
00100 1 · · · 1︸ ︷︷ ︸
j veces
00111001
IIC2213 – Introduccion a la Complejidad Computacional 25 / 111
Codificacion de una maquina de Turing
En cambio, si δ(qi , 1) = (qj , 0,→), entonces la siguientepalabra representa la transicion:
00 1 · · · 1︸ ︷︷ ︸
i veces
001100 1 · · · 1︸ ︷︷ ︸
j veces
0010011
◮ wF :
00 1 · · · 1︸ ︷︷ ︸
i1 veces
00 1 · · · 1︸ ︷︷ ︸
i2 veces
00 · · · 00 1 · · · 1︸ ︷︷ ︸
im veces
IIC2213 – Introduccion a la Complejidad Computacional 26 / 111
Codificacion de una maquina de Turing: Ejemplo
Sea M = (Q,A, q1, δ,F ), donde Q = {q1, q2, q3, q4}, A = {0, 1},F = {q3} y δ es definido de la siguiente forma:
δ(q1, 0) = (q1, 0,→) δ(q2, B) = (q3, B,←)δ(q1, 1) = (q2, 1,→) δ(q2, 0) = (q4, 0,←)δ(q2, 1) = (q4, 1,←)
Entonces: C (M) = wQ00wδ00wF , donde:
wQ = 001001100111001111
wF = 00111
wδ = 00100100100100110010011001100110011
00110011100111001110010011001001111001001
001100110011110011001
IIC2213 – Introduccion a la Complejidad Computacional 27 / 111
Un problema indecidible: Problema de la parada
Problema natural
Dada una maquina de Turing M y una palabra w , ¿se detiene Mcon entrada w?
Como problema de decision: Consideramos maquinas de Turingcon alfabeto {0, 1}. Entonces,
U = {w ′ ∈ {0, 1}∗ | existe una MT M y w ∈ A∗ tal que
w ′ = C (M)0000w y M se detiene con entrada w}.
¿Es este problema decidible?
◮ Vamos a demostrar que no, pero para eso vamos a considerarprimero un problema mas simple.
IIC2213 – Introduccion a la Complejidad Computacional 28 / 111
Un problema de decision mas simple
Otro problema de decision
Dada una maquina de Turing M, ¿es cierto que M se detiene conentrada C (M)?
Le damos como entrada a M su propio codigo, ¿es valido haceresto?
◮ Sı, C (M) es una palabra como cualquier otra.
Como problema de decision:
H = {w ∈ {0, 1}∗ | existe una MT M tal que
w = C (M) y M se detiene con entrada C (M)}.
IIC2213 – Introduccion a la Complejidad Computacional 29 / 111
Un problema de decision mas simple: Demostracion
Teorema
H es indecidible, vale decir, no existe una maquina de Turing Mque se detiene en todas las entradas y tal que H = L(M).
Demostracion: Por contradiccion, asuma que existe una MT M⋆
que se detiene en todas las entradas y tal que H = L(M⋆).
Vale decir: para cada MT M, si M se detiene con su propio codigo,entonces M⋆ con entrada C (M) se detiene en un estado final. Encaso contrario, M⋆ se detiene en un estado que no es final.
IIC2213 – Introduccion a la Complejidad Computacional 30 / 111
Un problema de decision mas simple: Demostracion
Sea M0 una MT que con entrada w funciona de la siguiente forma:
hace funcionar la maquina M⋆ con entrada wsi M⋆ se detiene en un estado final
entonces M0 no se detieneen caso contrario M0 se detiene en un estado final
¿Es posible construir M0? ¿Como?
IIC2213 – Introduccion a la Complejidad Computacional 31 / 111
Un problema de decision mas simple: Demostracion
La pregunta ahora es si M⋆ acepta M0:
M⋆ acepta M0
si y solo siM0 se detiene con entrada C (M0)
si y solo siM⋆ se detiene en un estado no final con entrada C (M0)
si y solo siM⋆ no acepta M0
¡Tenemos una contradiccion!
IIC2213 – Introduccion a la Complejidad Computacional 32 / 111
Un problema indecidible: Problema de la parada
Podemos concluir que nuestro problema original U es indecidible.
◮ ¿Por que?
Pero, ¿como demostramos formalmente que U es indecidible?
◮ Tenemos que formalizar el concepto de reduccion.
IIC2213 – Introduccion a la Complejidad Computacional 33 / 111
La nocion de reduccion
Dado: Lenguajes L1 y L2 con alfabeto A.
Intuicion: Decimos que un lenguaje L1 es reducible a un lenguajeL2 si existe un algoritmo tal que dado w1 ∈ A∗, calcula w2 ∈ A∗ talque w1 ∈ L1 si y solo si w2 ∈ L2.
Para formalizar esta idea necesitamos introducir la nocion dealgoritmo que calcula.
◮ Tenemos que introducir maquinas de Turing que calculan.
IIC2213 – Introduccion a la Complejidad Computacional 34 / 111
Maquinas de Turing que calculan
Definicion
Una MT M calcula una funcion f : A∗ → A∗ si:
con entrada w ∈ A∗, la maquina se detiene en un estadofinal teniendo en la memoria una cadena infinita de sımbo-los B seguida de f (w) seguida de otra cadena infinita desımbolos B.
Definicion
Una funcion f es computable si es que existe una maquina deTuring que calcula f .
IIC2213 – Introduccion a la Complejidad Computacional 35 / 111
Maquinas de Turing que calculan
Ejemplo
Sea g : {0, 1}∗ → {0, 1}∗ una funcion definida comog(w) = w0000. Queremos demostrar que g es computable.
Sea M = (Q,A, q1, δ,F ), donde
◮ Q = {q1, q2, q3, q4, qF}.
◮ A = {0, 1}.
◮ F = {qF}.
◮ δ es definida como:δ(q1, 0) = (q1, 0,→) δ(q2, B) = (q3, 0,→)δ(q1, 1) = (q1, 1,→) δ(q3, B) = (q4, 0,→)δ(q1, B) = (q2, 0,→) δ(q4, B) = (qF , 0,→)
IIC2213 – Introduccion a la Complejidad Computacional 36 / 111
La nocion de reduccion: Formalizacion
Definicion
Dados lenguajes L1 y L2 con alfabeto A, L1 es reducible a L2 siexiste una funcion computable f tal que para todo w ∈ A∗:w ∈ L1 si y solo si f (w) ∈ L2.
Teorema
Suponga que L1 es reducible a L2.
◮ Si L2 es decidible entonces L1 es decidible.
◮ Si L1 es indecidible entonces L2 es indecidible.
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 37 / 111
El problema de la parada: Demostracion
Por fin estamos listos para demostrar que el problema de la paradaU es indecidible.
Demostracion: Sea g : {0, 1}∗ → {0, 1}∗ definida comog(w) = w0000w .
Es facil ver que g es computable y es una reduccion de H a U.
Dado que H es indecidible, concluimos que U es indecidible.
IIC2213 – Introduccion a la Complejidad Computacional 38 / 111
Parentesis: Otro problema indecidible
¿Puede una maquina de Turing funcionar como un computador?
◮ Un computador es de uso general, no es usado para resolverun solo problema.
Definicion
Maquina de Turing universal MA con alfabeto {0, 1}:
◮ Recibe como entrada C (M)0000w.
◮ Simula M con entrada w.
◮ Se detiene en un estado final si y solo si M acepta w.Ademas, si M con entrada w retorna x, entonces MA tambienretorna x.
IIC2213 – Introduccion a la Complejidad Computacional 39 / 111
Parentesis: La nocion de aleatoriedad
Suponga que cada vez que lanzamos una moneda anotamos un 0 sisale cara y un 1 si sale sello.
◮ Decimos que estamos generando una palabra “aleatoria”.
¿Como podemos definir la nocion de “ser aleatorio”?
◮ ¿Es la siguiente palabra aleatoria? ¿Por que?0000000000000000000000000000000000000000
◮ ¿Que sucede con el siguiente caso? ¿Es aleatoria?0101010101010101010101010101010101010101
◮ ¿Y en el siguiente caso dirıa que la palabra es aleatoria?0001101101111100010101000100111001100110
IIC2213 – Introduccion a la Complejidad Computacional 40 / 111
Parentesis: Complejidad de Kolmogorov
Cuan aleatoria es una palabra depende de cuanto nos cuestadescribirla.
◮ Para formalizar esta idea tenemos que definir que significa“describir una palabra”.
Definicion
Dado una palabra x, definimos la complejidad de Kolmogorov de xcomo:
KA(x) = min{ |y | | MA con entrada y retorna x},
donde |y | es el largo de y. En particular, |ε| = 0.
Ejercicio
De una cota superior para KA(x) en funcion de |x |.
IIC2213 – Introduccion a la Complejidad Computacional 41 / 111
Parentesis: Complejidad de Kolmogorov
La complejidad de Kolmogorov depende de la MT universal queelijamos. ¿Que pasa si elegimos otra MT universal?
Teorema
Si MB es otra MT universal, entoncesKA(x) ≤ KB(x) + |C (MB)|+ 4
Vale decir: Las dos medidas solo difieren en una constante.
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 42 / 111
Parentesis: Complejidad de Kolmogorov y aleatoriedad
Nocion de aleatoriedad: una palabra x es aleatoria si su estructuraes compleja.
◮ x es “difıcil de describir” (no puede ser “comprimida” mucho).
Definicion
Una palabra x es aleatoria si:
KA(x) >|x |
2.
Ejercicio
1. Demuestre que existen infinitas palabras aleatorias.
2. ¿Existen mas palabra aleatorias que no aleatorias?
IIC2213 – Introduccion a la Complejidad Computacional 43 / 111
Parentesis: Aleatoriedad es indecidible
Problema de decision: Dado x ∈ {0, 1}∗, ¿es x aleatorio?
Vamos a demostrar que este problema es indecidible.
◮ Nuevamente usamos diagonalizacion.
Teorema
El lenguaje LA = {x ∈ {0, 1}∗ | KA(x) >|x |2 } es indecidible.
Demostracion: Suponga que LA es decidible. Entonces existe unaMT M⋆ que se detiene en todas las entradas y tal que L(M⋆) = LA.
IIC2213 – Introduccion a la Complejidad Computacional 44 / 111
Parentesis: Aleatoriedad es indecidible
Defina una MT M que con entrada y ∈ {0, 1}∗ funciona de lasiguiente forma:
asigna 0 a xmientras que M⋆ no acepta x o |x | < 2 · y
incrementa x en 1retorna x
Con entrada y : M genera una palabra x tal que KA(x) >|x |2 ≥ y .
IIC2213 – Introduccion a la Complejidad Computacional 45 / 111
Parentesis: Aleatoriedad es indecidible
Dado que |y | = ⌈log(y + 1)⌉: Existe y0 tal que|C (M)| + 4 + |y0| ≤ y0.
Sea x0 el valor retornado por M con entrada y0.
Entonces : KA(x0) >|x0|2 ≥ y0.
Pero M con entrada y0 describe a x0: MT universal MA conentrada C (M)0000y0 retorna x0. Entonces:
Entonces : KA(x0) ≤ |C (M)|+ 4 + |y0| ≤ y0.
¡Tenemos una contradiccion!
IIC2213 – Introduccion a la Complejidad Computacional 46 / 111
¿Donde estamos?
El objetivo de esta seccion es introducir la nocion de complejidadcomputacional.
◮ Cuanto cuesta resolver un problema.
Hasta ahora:
◮ Formalizamos la nocion de algoritmo a traves de las Maquinasde Turing.
◮ Demostramos que hay problemas muy difıciles: indecidibles.
Lo que viene:
◮ Definir la complejidad de un algoritmo.
◮ Estudiar la complejidad de un problema.
Antes de esto: Maquinas de Turing no deterministas.
IIC2213 – Introduccion a la Complejidad Computacional 47 / 111
Maquinas de Turing no deterministas
Definicion
Maquina de Turing no determinista: (Q,A, q0, δ,F )
◮ Q es un conjunto finito de estados.
◮ A es un alfabeto tal que B 6∈ A.
◮ q0 es el estado inicial (q0 ∈ Q).
◮ F es un conjunto de estados finales (F 6= ∅).
◮ δ ⊆ Q × (A ∪ {B})× Q × (A ∪ {B})× {←,→}: Relacion detransicion.Suponemos que δ 6= ∅.
IIC2213 – Introduccion a la Complejidad Computacional 48 / 111
Maquinas de Turing no deterministas: Funcionamiento
Inicialmente: Tal como en una MT determinista.
En cada paso:
◮ La maquina lee el sımbolo a en la celda apuntada por lacabeza lectora y determina en que estado q se encuentra.
◮ Determina el conjunto de todas las instrucciones para (q, a).Si este conjunto es vacıo, entonces la maquina se detiene.
◮ Si el conjunto no es vacıo, entonces escoge una instruccion deeste conjunto y la ejecuta.
Si la maquina se detiene en un estado final, entonces la maquinaacepta w .
IIC2213 – Introduccion a la Complejidad Computacional 49 / 111
Maquinas de Turing no deterministas: Lenguaje aceptado
Definicion
Dada una maquina de Turing M no determinista con alfabeto A:
L(M) = {w ∈ A∗ | existe alguna ejecucion de M
con entrada w que termina en un estado final}.
Ejercicio
1. Sea L = {w ∈ {0}∗ | el largo de w es divisible por 2 o 3}.Construya una MT no determinista que acepte L y que solomueva su cabeza a la derecha.
2. ¿Puede hacer lo mismo con una MT determinista?
IIC2213 – Introduccion a la Complejidad Computacional 50 / 111
Maquinas de Turing no deterministas: Poder de
computacion
¿Son las maquinas de Turing no deterministas mas poderosas quelas deterministas?
Teorema
Para cada MT no determinista M, existe una MT determinista M ′
tal que M y M ′ se detienen en las mismas palabras yL(M) = L(M ′).
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 51 / 111
Complejidad de un algoritmo
Notacion
Dada una MT determinista M con alfabeto A que para en todaslas entradas:
◮ Paso de M: Ejecutar una instruccion de la funcion detransicion.
◮ tiempoM(w): Numero de pasos ejecutados por M con entradaw.
Definicion
Dado un numero natural n:
tM(n) = max{ tiempoM(w) | w ∈ A∗ y |w | = n}.
tM : tiempo de ejecucion de M en el peor caso.
IIC2213 – Introduccion a la Complejidad Computacional 52 / 111
Complejidad de un problema
Definicion
Un lenguaje L puede ser aceptado en tiempo t si existe una MTdeterminista M tal que:
◮ M para en todas las entradas.
◮ L = L(M).
◮ tM es O(t), vale decir, existe c ∈ R+ y n0 ∈ N tal quetM(n) ≤ c · t(n) para todo n ≥ n0.
El tiempo para computar una funcion f se define de la mismaforma.
IIC2213 – Introduccion a la Complejidad Computacional 53 / 111
Clases de complejidad
Definicion
Dado un alfabeto A, DTIME(t) se define como el conjunto detodos los lenguajes L ⊆ A∗ que pueden ser aceptados en tiempo t.
Dos clases fundamentales:
PTIME =⋃
k∈N
DTIME(nk).
EXPTIME =⋃
k∈N
DTIME(2nk
).
PTIME: conjunto de todos los problemas que pueden sersolucionados eficientemente.
IIC2213 – Introduccion a la Complejidad Computacional 54 / 111
Un problema fundamental
El problema fundamental de nuestra disciplina:
Dado un problema, encontrar un algoritmo efi-
ciente para solucionarlo o demostrar que no exis-
te tal algoritmo.
Primera parte (puede ser difıcil): Demostrar que L ∈ DTIME(t).
◮ Si L = {w ∈ {0}∗ | largo de w es par}, entoncesL ∈ DTIME(n).
Segunda parte (es difıcil): Demostrar que L 6∈ DTIME(t).
◮ ¿Es cierto que SAT 6∈ PTIME?
◮ ¿Como podemos atacar este problema?
IIC2213 – Introduccion a la Complejidad Computacional 55 / 111
La nocion de completitud: Reduccion polinomial
Definicion
Dados lenguajes L1 y L2 con alfabeto A, decimos que L1 esreducible en tiempo polinomial a L2 si existe una funcion fcomputable en tiempo polinomial tal que para todo w ∈ A∗:
w ∈ L1 si y solo si f (w) ∈ L2.
Teorema
Suponga que L1 es reducible en tiempo polinomial a L2.
◮ Si L2 ∈ PTIME entonces L1 ∈ PTIME.
◮ Si L1 6∈ PTIME entonces L2 6∈ PTIME.
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 56 / 111
La nocion de completitud: Hardness
Definicion
Dada una clase de complejidad C que contiene PTIME, decimosque L es hard para C si para todo L′ ∈ C existe una reduccionpolinomial de L′ a L.
Teorema
Si PTIME ( C y L es hard para C, entonces L 6∈ PTIME.
Entonces: Para probar que L 6∈ PTIME, basta encontrar una claseC tal que PTIME ( C y demostrar que L es hard para esta clase.
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 57 / 111
La nocion de completitud
Pero: Tambien queremos saber cual es la complejidad exacta de unproblema.
Definicion
Decimos que L es completo para C si L ∈ C y L es hard para C.
Corolario
Si PTIME ( C y L es completo para C, entonces L 6∈ PTIME.
¿Se conoce alguna clase C tal que PTIME ( C? ¿Se puededemostrar que SAT 6∈ PTIME usando este enfoque?
IIC2213 – Introduccion a la Complejidad Computacional 58 / 111
La existencia de problemas difıciles
Veamos un ejemplo de una clase que contiene en forma estricta aPTIME:
Teorema
PTIME ( EXPTIME.
Existen problemas naturales que son completos para EXPTIME, yque por lo tanto no pueden ser resueltos eficientemente.
Ejercicio
Demuestre que SAT ∈ EXPTIME.
IIC2213 – Introduccion a la Complejidad Computacional 59 / 111
¿Es SAT un problema difıcil?
Para demostrar que SAT 6∈ PTIME, solo tenemos que demostrarque SAT es hard para EXPTIME
◮ Nadie sabe como hacer esto.
Preguntas a resolver:
◮ ¿Que clase representa la complejidad de SAT? ¿Para que clasede complejidad SAT es completo?
◮ ¿Se puede demostrar que esta clase no es igual a PTIME?
IIC2213 – Introduccion a la Complejidad Computacional 60 / 111
La complejidad de SAT
Tenemos que usar maquinas de Turing no deterministas paraentender la complejidad exacta de SAT.
Notacion
Dada una MT no determinista M con alfabeto A:
◮ Paso de M: Ejecutar una instruccion de la relacion detransicion.
◮ tiempoM(w): Numero de pasos de M con entrada w en laejecucion mas corta que acepta a w.
Solo esta definido para palabras aceptadas por M.
IIC2213 – Introduccion a la Complejidad Computacional 61 / 111
La complejidad de SAT
Definicion
Dado un numero natural n:
tM(n) = max{n} ∪ { tiempoM(w) |
w ∈ A∗, |w | = n y M acepta w}.
¿Por que incluimos {n} en la definicion?
IIC2213 – Introduccion a la Complejidad Computacional 62 / 111
Clases de complejidad no deterministas
Definicion
Un lenguaje L es aceptado en tiempo t por una MT M nodeterminista si:
◮ L = L(M).
◮ tM es O(t).
IIC2213 – Introduccion a la Complejidad Computacional 63 / 111
Clases de Complejidad no deterministas
Definicion
NTIME(t) se define como el conjunto de todos los lenguajes quepueden ser aceptados en tiempo t por alguna MT no determinista.
Una clase fundamental:
NP =⋃
k∈N
NTIME(nk).
¿Por que es tan importante esta clase? ¿Que problemas estan enesta clase? ¿Que problemas son completos para esta clase?
IIC2213 – Introduccion a la Complejidad Computacional 64 / 111
Algunas propiedades de la clase NP
¿Donde vive NP? PTIME ⊆ NP ⊆ EXPTIME.
◮ Se sabe que al menos una de estas inclusiones es estricta(¿por que?), pero no se sabe cual.
◮ Tampoco se sabe si ambas inclusiones son estrictas.
¿Que problemas estan en NP?
Ejercicio
Muestre que SAT y 3-coloracion de grafos estan en NP.
¿Que problemas son completos para esta clase?
IIC2213 – Introduccion a la Complejidad Computacional 65 / 111
Teorema de Cook
Teorema (Cook)
SAT es completo para la clase NP.
Demostracion: Sea L ∈ NP. Tenemos que demostrar que L esreducible en tiempo polinomial a SAT.
Esto significa que existe una funcion f : {0, 1}∗ → {0, 1}∗ tal que:
◮ f es computable en tiempo polinomial.
◮ Para cada w ∈ {0, 1}∗ se tiene que w ∈ L si y solo sif (w) ∈ SAT.
Notacion: f (w) = ϕw
IIC2213 – Introduccion a la Complejidad Computacional 66 / 111
Teorema de Cook: Demostracion
¿Que sabemos de L?
◮ Como L ∈ NP, existe una MT M no determinista tal queL = L(M) y tM es O(nk), donde k > 0 es una constante.
Vamos a representar el funcionamiento de M con entrada wusando la formula ϕw : M acepta w si y solo si ϕw es satisfacible.
Suponemos:
◮ M = (Q, {0, 1}, q0 , δ,F ), donde F = {qm} y no existe unatransicion en δ para qm.
◮ Para cada q ∈ (Q \ {qm}) y a ∈ {0, 1, B}, existe al menos unatransicion en δ para (q, a).
◮ w = a0 · · · an−1, donde cada ai ∈ {0, 1}.
IIC2213 – Introduccion a la Complejidad Computacional 67 / 111
Teorema de Cook: Demostracion
Usamos las siguientes variables proposicionales:
st,p,a : t ∈ [0, tM(n)], p ∈ [−tM(n), tM(n)] y a ∈ {0, 1, B}.ct,p : t ∈ [0, tM(n)] y p ∈ [−tM(n), tM(n)].et,q : t ∈ [0, tM(n)] y q ∈ Q.
ϕw : es definida como ϕI ∧ ϕC ∧ ϕA ∧ ϕδ .
IIC2213 – Introduccion a la Complejidad Computacional 68 / 111
Teorema de Cook: Demostracion
ϕI : Estado inicial.
c0,0 ∧ e0,q0 ∧
( −1∧
p=−tM (n)
s0,p,B
)
∧
( n−1∧
p=0
s0,p,ai
)
∧
( tM (n)∧
p=n
s0,p,B
)
.
IIC2213 – Introduccion a la Complejidad Computacional 69 / 111
Teorema de Cook: Demostracion
ϕC : La maquina funciona correctamente.
ϕC se define como la conjuncion de cuatro formulas. Primero,cada celda siempre contiene un unico sımbolo:
tM (n)∧
t=0
tM (n)∧
p=−tM(n)
(
(st,p,0∨st,p,1∨st,p,B)∧(st,p,0 → (¬st,p,1∧¬st,p,B)) ∧
(st,p,1 → (¬st,p,0 ∧ ¬st,p,B)) ∧ (st,p,B → (¬st,p,0 ∧ ¬st,p,1))
)
.
IIC2213 – Introduccion a la Complejidad Computacional 70 / 111
Teorema de Cook: Demostracion
Segundo, la maquina siempre esta en un unico estado:
tM (n)∧
t=0
(∨
q∈Q
(et,q ∧∧
q′∈(Q\{q})
¬et,q′)
)
.
Tercero, la cabeza siempre esta en una unica posicion:
tM (n)∧
t=0
( tM (n)∨
p=−tM (n)
(ct,p ∧∧
p′∈([−tM(n),tM (n)]\{p})
¬ct,p′)
)
.
IIC2213 – Introduccion a la Complejidad Computacional 71 / 111
Teorema de Cook: Demostracion
Cuarto, el valor de una celda no cambia si no es apuntada por lacabeza lectora:
tM (n)−1∧
t=0
tM (n)∧
p=−tM(n)
(
(¬ct,p)→ ((st,p,0 ∧ st+1,p,0) ∨
(st,p,1 ∧ st+1,p,1) ∨ (st,p,B ∧ st+1,p,B))
)
.
IIC2213 – Introduccion a la Complejidad Computacional 72 / 111
Teorema de Cook: Demostracion
ϕA: La maquina acepta w .
tM(n)∨
t=0
et,qm .
IIC2213 – Introduccion a la Complejidad Computacional 73 / 111
Teorema de Cook: Demostracion
ϕδ : relacion δ define como funciona la maquina.
tM (n)−1∧
t=0
tM (n)−1∧
p=−(tM (n)−1)
(∧
(q,a)∈Q×{0,1,B}
(
(et,q ∧ ct,p ∧ st,p,a) →
(∨
(q′,a′,k) : (q,a,q′,a′,k)∈δ
(et+1,q′ ∧ ct+1,p+k ∧ st+1,p,a′)
)))
.
Representamos ← como -1 y → como 1.
IIC2213 – Introduccion a la Complejidad Computacional 74 / 111
Otros problemas NP-completos
Notacion
Si L es completo para C, decimos que L es C-completo.
¿Como podemos demostrar que un problema L es NP-completo?
◮ Nos basta con demostrar que L ∈ NP y que existe unareduccion polinomial de SAT a L.
Antes de utilizar esta tecnica tenemos que pensar que version deSAT usar.
◮ En general es mas facil utilizar formulas en alguna formanormal.
IIC2213 – Introduccion a la Complejidad Computacional 75 / 111
Otros problemas NP-completos
Una version de SAT muy util:
CNF-SAT = {ϕ | ϕ es una formula en CNF y ϕ es satisfacible}.
¿Es CNF-SAT NP-completo?
◮ Podemos modificar la demostracion del Teorema de Cookpara mostrar esto.
Teorema
CNF-SAT es NP-completo.
IIC2213 – Introduccion a la Complejidad Computacional 76 / 111
Pero algunas versiones de SAT son mas simples . . .
Otra version de SAT:
DNF-SAT = {ϕ | ϕ es una formula en DNF y ϕ es satisfacible}.
¿Es DNF-SAT NP-completo?
◮ ¿Podemos modificar la demostracion del Teorema de Cookpara mostrar esto?
Teorema
DNF-SAT esta en PTIME.
IIC2213 – Introduccion a la Complejidad Computacional 77 / 111
Otros problemas NP-completos
Ahora podemos usar la idea inicial para mostrar que otrosproblemas son NP-completos.
Algunos ejemplos:
◮ 3-CNF-SAT = {ϕ | ϕ es una formula en CNF que contienetres literales por clausula y es satisfacible}.
◮ 3-COL = {G | G es una grafo 3-coloreable}.
◮ PRO-ENT = {(A,~b) | A es una matriz de enteros, ~b es unvector de enteros y existe un vector de enteros ~x tal queA~x ≤ ~b}.
IIC2213 – Introduccion a la Complejidad Computacional 78 / 111
Conjetura de Cook
Conjetura de Cook
PTIME ( NP
Si la conjetura es cierta:
◮ No existe un algoritmo eficiente para resolver SAT.
◮ Tampoco existen algoritmos eficientes para resolver ningunode los problemas NP-completos.
¿Cuan fundamental es este problema?
IIC2213 – Introduccion a la Complejidad Computacional 79 / 111
Conjetura de Cook
Desde la pagina del Clay Mathematics Institute:
“In order to celebrate mathematics in the new millennium,The Clay Mathematics Institute of Cambridge, Massachusetts(CMI) has named seven Prize Problems. The Scientific AdvisoryBoard of CMI selected these problems, focusing on importantclassic questions that have resisted solution over the years. TheBoard of Directors of CMI designated a $7 million prize fundfor the solution to these problems, with $1 million allocated toeach.”
IIC2213 – Introduccion a la Complejidad Computacional 80 / 111
Conjetura de Cook
Uno de los siete problemas es PTIME versus NP:
“Suppose that you are organizing housing accommodations for agroup of four hundred university students. Space is limited and onlyone hundred of the students will receive places in the dormitory. Tocomplicate matters, the Dean has provided you with a list of pairsof incompatible students, and requested that no pair from this listappear in your final choice. This is an example of what computerscientists call an NP-problem, since it is easy to check if a givenchoice of one hundred students proposed by a coworker is satisfac-tory ..., however the task of generating such a list from scratch seemsto be so hard as to be completely impractical ...”
Ejercicio
Muestre que el problema mencionado en este parrafo esNP-completo.
IIC2213 – Introduccion a la Complejidad Computacional 81 / 111
Que hacer con un problema NP-completo
¿Que hacemos si tenemos que solucionar un problemaNP-completo?
◮ Existen casos que no vamos a ser capaces de solucionar.
◮ Pero, ¿Que pasa en la practica?
Dado un problema NP-completo:
◮ Nos gustarıa encontrar casos que puedan ser solucionadoseficientemente y que sean interesantes en la practica.
Ejemplo
3-COL es NP-completo pero 2-COL puede ser solucionadoeficientemente.
Vamos a ver dos casos en los que SAT puede ser resueltoeficientemente: 2-CNF-SAT y Clausulas de Horn.
IIC2213 – Introduccion a la Complejidad Computacional 82 / 111
La complejidad de 2-CNF-SAT
Sea 2-CNF-SAT = {ϕ | ϕ es una formula en CNF que contiene dosliterales por clausula y es satisfacible}.
Teorema
2-CNF-SAT puede ser solucionado eficientemente.
Demostracion: Sea ϕ una formula en CNF que contiene dosliterales por clausula. Suponga que ϕ menciona las variablesproposicionales x1, . . ., xn.
Sea Gϕ = (N,A) un grafo construido de la siguiente forma:
◮ N = {x1, . . . , xn,¬x1, . . . ,¬xn}.
◮ Para cada clausula C = l1 ∨ l2 en ϕ, A contiene los arcos(l1, l2) y (l2, l1).
Notese que este grafo es dirigido.
IIC2213 – Introduccion a la Complejidad Computacional 83 / 111
La complejidad de 2-CNF-SAT
Ejemplo
Si ϕ = (x1 ∨ x2) ∧ (¬x1 ∨ x3) ∧ (x2 ∨ ¬x3), entonces Gϕ es elsiguiente grafo:
¬x3
x1
x2
x3
¬x1
¬x2
IIC2213 – Introduccion a la Complejidad Computacional 84 / 111
La complejidad de 2-CNF-SAT
¿Por que construimos Gϕ? ¿Cual es la relacion entre ϕ y Gϕ?
Vamos a demostrar que ϕ es satisfacible si y solo si no existe unnodo xi tal que ¬xi es alcanzable desde xi y xi es alcanzable desde¬xi en Gϕ.
¿Por que nos sirve esta propiedad?
◮ Porque se puede verificar en tiempo polinomial (¿como?).
IIC2213 – Introduccion a la Complejidad Computacional 85 / 111
La complejidad de 2-CNF-SAT
(⇒) Por contradiccion: Suponga que ϕ es satisfacible y existe xi talque ¬xi es alcanzable desde xi y xi es alcanzable desde ¬xi en Gϕ.
Sea σ una valuacion tal que σ(ϕ) = 1.
Consideramos σ(xi ) = 1. El otro caso se resuelve de la mismaforma.
IIC2213 – Introduccion a la Complejidad Computacional 86 / 111
La complejidad de 2-CNF-SAT
Como ¬xi es alcanzable desde xi en Gϕ: Existe un caminol1, . . . , lk en Gϕ tal que k ≥ 2, l1 = xi y lk = ¬xi .
Como σ(¬xi) = 0: Existe j ∈ [1, k − 1] tal que σ(lj ) = 1 yσ(lj+1) = 0.
Como (lj , lj+1) ∈ A: (lj ∨ lj+1) o (lj+1 ∨ lj) es una clausula en ϕ.
Pero: σ no satisface a ninguna de estas clausulas, por lo queσ(ϕ) = 0, una contradiccion.
IIC2213 – Introduccion a la Complejidad Computacional 87 / 111
La complejidad de 2-CNF-SAT
(⇐) Suponga que para todo i ∈ [1, n]: xi no es alcanzable desde¬xi o ¬xi no es alcanzable desde xi en Gϕ.
Usamos Gϕ para construir una valuacion σ tal que σ(ϕ) = 1:
Sea V = {x1, . . . , xn,¬x1, . . . ,¬xn}Mientras V 6= ∅
elija li ∈ V tal que li no es alcanzable desde li en Gϕ
V := V \ {li , li}σ(li ) := 1Para todo lj tal que lj es alcanzable desde li en Gϕ
V := V \ {lj , lj}σ(lj) := 1
IIC2213 – Introduccion a la Complejidad Computacional 88 / 111
La complejidad de 2-CNF-SAT
Primero tenemos que demostrar que σ esta bien definida:
◮ σ asigna un valor de verdad a cada variable xi .
◮ No existe una variable xi tal que el procedimiento asigna 1tanto a xi como a ¬xi .
Es claro que el primer punto se cumple (¿por que?).
IIC2213 – Introduccion a la Complejidad Computacional 89 / 111
La complejidad de 2-CNF-SAT
Segundo punto: Por contradiccion, asuma que existe xi tal que elprocedimiento asigna 1 tanto a xi como a ¬xi .
Entonces existen literales l y l ′ tales que:
◮ l y l ′ fueron elegidos en la tercera linea del procedimiento.
◮ Existe un camino l1, . . ., lj en Gϕ tal que j ≥ 1, l1 = l ylj = xi .
◮ Existe un camino l ′1, . . ., l ′k en Gϕ tal que k ≥ 1, l ′1 = l ′ yl ′k = ¬xi .
IIC2213 – Introduccion a la Complejidad Computacional 90 / 111
La complejidad de 2-CNF-SAT
Supongamos que l ′ fue elegido primero.
Como lj , . . . , l1 es un camino en Gϕ desde ¬xi a l : Existe uncamino en Gϕ desde l ′ a l .
Como l ′ fue elegido primero: el procedimiento asigna 1 a σ(l) yremueve tanto l como l desde V .
Por lo tanto: l no es elegido y σ(l) = 0, una contradiccion.
IIC2213 – Introduccion a la Complejidad Computacional 91 / 111
La complejidad de 2-CNF-SAT
Para terminar la demostracion, tenemos que mostrar queσ(ϕ) = 1.
◮ Sea C = l1 ∨ l2 una clausula en ϕ. Tenemos que demostrarque σ(C ) = 1.
Como (l1 ∨ l2) es una clausula en ϕ: (l1, l2) es un arco en Gϕ.
Para cada arco (l , l ′) en Gϕ, el procedimiento:
◮ asigna 0 a σ(l) y σ(l ′) o
◮ asigna 0 a σ(l) y 1 a σ(l ′) o
◮ asigna 1 a σ(l) y σ(l ′).
IIC2213 – Introduccion a la Complejidad Computacional 92 / 111
La complejidad de 2-CNF-SAT
Por lo tanto: En los dos primeros casos σ(l1) = 1, y en el ultimocaso σ(l2) = 1.
En cualquiera de los tres casos, σ(l1 ∨ l2) = 1, lo cual concluye lademostracion.
IIC2213 – Introduccion a la Complejidad Computacional 93 / 111
Clausulas de Horn
Notacion
p es un literal positivo y ¬p es un literal negativo.
Una clausula C es de Horn si C contiene a lo mas un literalpositivo.
Ejemplo
p ∨ ¬q ∨ ¬r , p,¬q ∨ ¬r , ¬q.
¿Por que son interesantes las clausulas de Horn?
IIC2213 – Introduccion a la Complejidad Computacional 94 / 111
Conocimiento definitivo
Una formula (p ∧ q)→ r expresa conocimiento definitivo:
◮ Si sabemos que p y q son verdaderos, entonces tambiensabemos que r es verdadero.
En cambio, una formula (p ∧ q)→ (r ∨ s) no expresa conocimientodefinitivo:
◮ Si sabemos que p y q son verdaderos, no podemos concluirque r es verdadero ni tampoco podemos concluir que s esverdadero, solo podemos concluir que alguno de los dos esverdadero.
◮ Esta formula expresa conocimiento disyuntivo.
IIC2213 – Introduccion a la Complejidad Computacional 95 / 111
Conocimiento definitivo
Las clausulas de Horn corresponden al siguiente tipo de reglas queexpresan conocimiento definitivo:
◮ q.
◮ ¬q.
◮ (p1 ∧ · · · ∧ pn)→ q.
◮ (p1 ∧ · · · ∧ pn)→ ¬q.
En muchos casos es posible modelar el dominio de aplicacionusando solo este tipo de reglas.
IIC2213 – Introduccion a la Complejidad Computacional 96 / 111
La complejidad de HORN-SAT
Sea HORN-SAT = {ϕ | ϕ es una conjuncion de clausulas de Horny ϕ es satisfacible}.
Teorema
HORN-SAT puede ser solucionado eficientemente.
Ejercicio
Demuestre el teorema.
IIC2213 – Introduccion a la Complejidad Computacional 97 / 111
La complejidad de NEG-HORN-SAT
C es una clausula de Horn negativa si C contiene a lo mas unliteral negativo.
Sea NEG-HORN-SAT = {ϕ | ϕ es una conjuncion de clausulas deHorn negativas y ϕ es satisfacible}.
Ejercicio
Demuestre que NEG-HORN-SAT puede ser solucionadoeficientemente.
IIC2213 – Introduccion a la Complejidad Computacional 98 / 111
Clases de complejidad: Espacio
Para recordar:
Facil de demostrar : PTIME ⊆ NP ⊆ EXPTIME.No tan facil de demostrar : PTIME ( EXPTIME.Aun sin resolver : ¿PTIME ( NP?
¿Nos basta con estas clases?
◮ No, en algunos casos tambien es necesario utilizar clasesdefinidas en termino del espacio utilizado.
IIC2213 – Introduccion a la Complejidad Computacional 99 / 111
Espacio utilizado en una Maquina de Turing
Para introducir la nocion de espacio utilizado en una MT tenemosque distinguir entre:
◮ el espacio ocupado por la entrada, y
◮ el espacio necesario para procesar la entrada.
Para hacer esta distincion utilizamos MT con dos cintas:
◮ Cinta para la entrada: Solo de lectura.
◮ Cinta de trabajo: Como en una MT usual.
El espacio utilizado se mide en terminos de las celdas visitadas enla cinta de trabajo.
IIC2213 – Introduccion a la Complejidad Computacional 100 / 111
Maquinas de Turing con cinta de trabajo
Definicion
Maquina de Turing con cinta de trabajo: (Q,A, q0, δ,F )
◮ Q es un conjunto finito de estados.
◮ A es un alfabeto tal que B 6∈ A.
◮ q0 es el estado inicial (q0 ∈ Q).
◮ F es un conjunto de estados finales (F 6= ∅).
◮ δ es una funcion parcial:
δ : Q × (A ∪ {B})× (A ∪ {B}) →
Q × {←,→}× (A ∪ {B})× {←,→}.
Suponemos que el dominio de δ no es vacıo.
IIC2213 – Introduccion a la Complejidad Computacional 101 / 111
Espacio utilizado en una MT
Dada una MT determinista M con alfabeto A que para en todaslas entradas:
◮ espacioM(w): Numero de celdas distintas visitadas en la cintade trabajo de M al procesar w .
Definicion
Dado un numero natural n:
sM(n) = max{ espacioM(w) | w ∈ A∗ y |w | = n}.
sM : Espacio utilizado en la ejecucion de M en el peor caso.
IIC2213 – Introduccion a la Complejidad Computacional 102 / 111
Espacio utilizado para resolver un problema
Definicion
Un lenguaje L puede ser aceptado en espacio s si es que existe unaMT determinista M tal que:
◮ M para en todas las entradas.
◮ L = L(M).
◮ sM es O(s).
El espacio requerido para computar una funcion f se define de lamisma forma.
◮ En este caso, usualmente se supone que la maquina tiene unatercera cinta donde escribe el resultado. El espacio utilizado semide solo considerando las celdas en la cinta de trabajo.
IIC2213 – Introduccion a la Complejidad Computacional 103 / 111
Clases de complejidad: Espacio
Definicion
Dado un alfabeto A, DSPACE(s) se define como el conjunto detodos los lenguajes L ⊆ A∗ que pueden ser aceptados en espacio s.
Tres clases fundamentales:
LOGSPACE = DSPACE(log n)
PSPACE =⋃
k∈N
DSPACE(nk)
EXPSPACE =⋃
k∈N
DSPACE(2nk
)
IIC2213 – Introduccion a la Complejidad Computacional 104 / 111
Relacion entre clases de complejidad
¿Cual es la relacion entre las clases de complejidad que acabamosde definir?
La relacion es mas compleja:
LOGSPACE ⊆ PTIME ⊆ NP ⊆ PSPACE ⊆
EXPTIME ⊆ EXPSPACE.
Tambien se sabe que: LOGSPACE ( PSPACE ( EXPSPACE.
Y todavıa nos faltan las clases no deterministas ...
IIC2213 – Introduccion a la Complejidad Computacional 105 / 111
Clases de complejidad no deterministas: Espacio
Notacion
Dada una MT no determinista M con alfabeto Σ:
◮ espacioM(w): Numero mınimo de celdas distintas visitadas enla cinta de trabajo de M, entre todas las ejecuciones de Mque aceptan w.
Solo esta definido para palabras aceptadas por M.
IIC2213 – Introduccion a la Complejidad Computacional 106 / 111
Clases de complejidad no deterministas: Espacio
Definicion
Dado un numero natural n:
sM(n) = max{1} ∪
{ espacioM(w) | w ∈ Σ∗, |w | = n y M acepta w}.
¿Por que incluimos {1} en la definicion?
IIC2213 – Introduccion a la Complejidad Computacional 107 / 111
Clases de complejidad no deterministas: Espacio
Definicion
Un lenguaje L es aceptado en espacio s por una MT M nodeterminista si:
◮ L = L(M).
◮ sM es O(s).
IIC2213 – Introduccion a la Complejidad Computacional 108 / 111
Clases de Complejidad no deterministas: Espacio
Definicion
NSPACE(s) se define como el conjunto de todos los lenguajes quepueden ser aceptados en espacio s por alguna MT no determinista.
Dos clases fundamentales:
NLOGSPACE = NSPACE(log n)
NPSPACE =⋃
k∈N
NSPACE(nk)
IIC2213 – Introduccion a la Complejidad Computacional 109 / 111
Relacion entre clases de complejidad
¿Cual es la relacion entre las clases de complejidad que definimos?
Se sabe que: PSPACE = NPSPACE.
La relacion final:
LOGSPACE ⊆ NLOGSPACE ⊆ PTIME ⊆ NP ⊆ PSPACE ⊆
EXPTIME ⊆ EXPSPACE
IIC2213 – Introduccion a la Complejidad Computacional 110 / 111
Para terminar: Un poco de intuicion
Ejercicio
Determine en que clases de complejidad viven los siguientesproblemas.
1. Dado un grafo dirigido G y nodos a, b, determinar si existe uncamino de a a b.
2. El mismo problema que en 1. pero ahora suponiendo que G esuna relacion de sucesor.
3. Determinar si un conjunto de clausulas de Horn es satisfacible.
IIC2213 – Introduccion a la Complejidad Computacional 111 / 111