Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el...
Transcript of Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el...
Análisis de Algoritmos
Clases de complejidad
Dra. Elisa Schaeffer
PISIS / FIME / UANL
Clases de complejidad– p. 1
Clase de complejidad
Los requisitos para definir una clase:
fijar un modelode computación (tipo de TM),
Clases de complejidad– p. 2
Clase de complejidad
Los requisitos para definir una clase:
fijar un modelode computación (tipo de TM),
la modalidad de computación: determinista, nodeterminista, etcétera,
Clases de complejidad– p. 2
Clase de complejidad
Los requisitos para definir una clase:
fijar un modelode computación (tipo de TM),
la modalidad de computación: determinista, nodeterminista, etcétera,
el recursoel uso del cual se controla por la definición:tiempo, espacio, etcétera,
Clases de complejidad– p. 2
Clase de complejidad
Los requisitos para definir una clase:
fijar un modelode computación (tipo de TM),
la modalidad de computación: determinista, nodeterminista, etcétera,
el recursoel uso del cual se controla por la definición:tiempo, espacio, etcétera,
la cota que se impone al recurso: una funcióncorrecta de complejidad.
Clases de complejidad– p. 2
Función correcta de complejidad
f : N → N que es no decreciente y existe una máquinaTuring Mf de k cintas con entrada y salida tal que
∀x aplica que Mf (x) = ⊓f(|x|)
Mf para después de O (|x|+ f(|x|)) pasos decomputación
Mf utiliza O (f(|x|)) espacio en adición a x
Clases de complejidad– p. 3
Ejemplos
c,√n, n, ⌈log n⌉, log2 n, n2, 2n, n!
donde n es el parámetro de la función y c es un constante
Dada dos funciones correctas de complejidad f y g,también
f + g, f · g y 2f
son funciones correctas.
Clases de complejidad– p. 4
Clase de complejidad
= el conjunto de lenguajes decididos por alguna TMM del tipo definido que opera en el modo de operacióndefinido tal que ∀x, M necesita ≤ f(|x|) unidades delrecurso definido.
Clases de complejidad– p. 5
Clases básicas
tiempo{
determinista TIME (f)
no determinista NTIME (f)
espacio{
determinista SPACE (f)
no determinista NSPACE (f)
Clases de complejidad– p. 6
Clases más amplias
TIME(
nk)
=⋃
j>0TIME (nj) = P
NTIME(
nk)
=⋃
j>0NTIME (nj) = NP
SPACE(
nk)
=⋃
j>0 SPACE (nj) = PSPACE
NSPACE(
nk)
=⋃
j>0NSPACE (nj) = NPSPACE
TIME
(
2nk)
=⋃
j>0TIME
(
2nj)
= EXP.
L = SPACE (log(n)) y NL = NSPACE (log(n))
Clases de complejidad– p. 7
Ejemplos simples
Tiempo Clase EjemploProblemas con algoritmos eficientes
O (1) P si un número es par o impar
O (n) P búsqueda de un elemento entre n elementos
O (n log n) P ordenación de n elementos
O (n3) P multiplicación de matrices
O(
nk)
P programación lineal
Problemas difícilesO (n22n) NP-completo satisfiabilidad
Clases de complejidad– p. 8
Complemento de clase C
{
L | L ∈ C}
Todas las clases deterministasde tiempo y espacio soncerradas bajo el complemento. L ∈ C.
Por ejemplo, P = coP. Lo único que hay que hacer para mostraresto es intercambiar los estados “sí” y “no” en las TM quecorresponden.
Se puede mostrar también que las clases de espacio nodeterministasestán cerradas bajo complemento.
Es una pregunta abierta si también aplica para clasesno deterministas de tiempo.
Clases de complejidad– p. 9
Aumento de rapidéz lineal
Teorema: TIME (f(n)) = TIME (ǫf(n)) para unafunción correcta de complejidad y ǫ > 0.
Demostracion: dada una TM M de tiempo f(n),construyemos otra M ′ que tenga tiempo ≤ ǫf(n).
Clases de complejidad– p. 10
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Clases de complejidad– p. 11
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Codificamos varios símbolos de M en uno sólo de M ′
Clases de complejidad– p. 11
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Codificamos varios símbolos de M en uno sólo de M ′
⇒ un paso de M ′ corresponde a varios de M
Clases de complejidad– p. 11
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Codificamos varios símbolos de M en uno sólo de M ′
⇒ un paso de M ′ corresponde a varios de M
Agrupamos cada grupo de 10k celdas de M como una
celda de M ′ así que 1 ≤ kǫ.
Clases de complejidad– p. 11
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Codificamos varios símbolos de M en uno sólo de M ′
⇒ un paso de M ′ corresponde a varios de M
Agrupamos cada grupo de 10k celdas de M como una
celda de M ′ así que 1 ≤ kǫ.
Preprocesamos primero la entrada de M
Clases de complejidad– p. 11
Idea de la construcción
Si M tiene una cinta, M ′ tiene dos; en otro caso usan el
mismo número de cintas
Codificamos varios símbolos de M en uno sólo de M ′
⇒ un paso de M ′ corresponde a varios de M
Agrupamos cada grupo de 10k celdas de M como una
celda de M ′ así que 1 ≤ kǫ.
Preprocesamos primero la entrada de M
Resulta que M ′ toma por máximo 2n+ 8f(n)10k pasos, que es
menor a ǫf(n) por la elección de k.
Clases de complejidad– p. 11
HALTING
Si permitimos mas tiempoa una TM M , logramos que Mpuede tratar de tareas más complejas.
Para una función correcta de complejidad f(n) ≥ n,definimos un lenguaje nuevo:
Hf = {Mb;x | M acepta a x en ≤ f(|x|) pasos }
Hf es una versión “cortada” de H de HALTING .
Clases de complejidad– p. 12
Hf ∈ TIME(
(f(n))3)
, demostración
Una TM Uf de cuatro cintas compuesta de
la máquina universal U ,
un simulador de una cinta de TM de cintas múltiples,
una máquina de aumento de rapidez lineal
Mf que computa una “vara de medir” de largo f(n)
Clases de complejidad– p. 13
Operación de Uf
Mf computa ⊓f(|x|) para M en cinta 4
Mb está copiada a cinta 3
Cinta 2 está inicializada para codificar s.
Cinta 1 está inicializada con ⊲x.
Uf simula con una sola cinta a M .
Después de cada paso simulado, Uf avanza la vara.
Si Uf ve que M acepta a x en f(|x|) pasos, Uf acepta.
Si se acaba la vara sin que M acepte, Uf rechaza.
Clases de complejidad– p. 14
Tiempo de ejecución
Cada paso de la simulación necesita O (f(n)2) tiempo.
Clases de complejidad– p. 15
Tiempo de ejecución
Cada paso de la simulación necesita O (f(n)2) tiempo.
Son f(|x|) pasos simulados al máximo.
Clases de complejidad– p. 15
Tiempo de ejecución
Cada paso de la simulación necesita O (f(n)2) tiempo.
Son f(|x|) pasos simulados al máximo.
Llegamos a tiempo total O (f(n)3) para Uf .
Clases de complejidad– p. 15
Hf 6∈ TIME(
f(⌊n2⌋))
, demostración
Suponga que ∃M que decide a Hf en tiempo f(⌊n2⌋).
Consideramos otra máquina D que dice “no” cuandoM(Mb;Mb) = “sí” y en otros casos D dice “sí”.
Con la entrada Mb, D necesita f(⌊2|Mb|+12
⌋) = f(|Mb|)pasos.
Clases de complejidad– p. 16
Resultado
Si D(Db) = “sí”, tenemos que M(Db;Db) = “no”, yentonces Db;Db 6∈ Hf .
En este caso, Df no puede aceptar la entrada Db dentrode f(|Db|) pasos, que significa que D(Db) = “no”, que esuna contradicción.
Entonces D(Db) 6= “sí”. Esto implica que D(Db) = “no” yM(Db;Db) = “sí”, por lo cual Db;Db ∈ Hf y D acepta laentrada Db en no más de f(|Db|) pasos.
Esto quiere decir que D(Db) = “sí”, que es otracontradicción y nos da el resultado deseado.
Clases de complejidad– p. 17
Teorema
Si f(n) ≥ n es una función correcta de complejidad,entonces la clase TIME (f(n)) ⊂ TIME ((f(2n+ 1))3).
Clases de complejidad– p. 18
Análisis
Es bastante evidente que
TIME (f(n)) ⊆ TIME(
(f(2n+ 1))3)
como f es no decreciente. Ya sabemos que
Hf(2n+1) ∈ TIME(
(f(2n+ 1))3)
y que
Hf(2n+1) 6∈ TIME
(
f
(
⌊2n+ 1
2⌋))
= TIME (f(n)) .
Clases de complejidad– p. 19
Consecuencias
P ⊂ TIME (2n) ⊆ EXP por nk = O (2n)
y
TIME (2n) ⊂ TIME(
(22n+1)3)
⊆ TIME
(
2n2
)
⊆ EXP
Clases de complejidad– p. 20
Teorema
Si f(n) ≥ n es una función correcta de complejidad,
SPACE (f(n)) ⊂ SPACE (f(n) log f(n)) .
Clases de complejidad– p. 21
Importancia de ser correcta
Ejemplo:Existe una función no correcta f : Z+ → Z
+ así queTIME (f(n)) = TIME
(
2f(n))
.
El truco es definir f tal que ninguna TM M con entrada x,|x| = n, para después de k pasos así que
f(n) ≤ k ≤ 2f(n).
Clases de complejidad– p. 22
Relaciones entre clases
Sea f(n) una función de complejidad correcta.
SPACE (f(n)) ⊆ NSPACE (f(n))
y
TIME (f(n)) ⊆ NTIME (f(n))
Clases de complejidad– p. 23
Relaciones entre clases
Sea f(n) una función de complejidad correcta.
SPACE (f(n)) ⊆ NSPACE (f(n))
y
TIME (f(n)) ⊆ NTIME (f(n))
(una TM determinista es también una NTM)
Clases de complejidad– p. 23
NTIME (f(n)) ⊆ SPACE (f(n))
Demostracion por simular todas las opciones:Dado un lenguaje L ∈ NTIME (f(n)), existe una TMprecisa no determinista M que decide L en tiempo f(n).
Sea d el grado de no determinismo de M
Cada computación de M es una sucesión deselecciones no deterministas
El largo de la sucesión es f(n)
Cada elemento se puede representar por un entero∈ [0, d− 1]
Clases de complejidad– p. 24
Máquina auxiliar
Construyamos una máquina M ′ para simular a M ,considerando cada sucesión posible.
Si M para con “sí”, M ′ también para con “sí”.
Si ninguna sucesión acepta, M ′ rechaza su entrada.
Clases de complejidad– p. 25
Espacio
Aunque el numero de simulacioneses exponencial, elespacioque necesitamos es solamente f(n) como lohacemos una por una.
El estado y todo lo anotado durante la simulación de unasucesión puede ser borrado cuando empieza lasimulación de la sucesión siguiente.
Además, como f(n) es una función correcta decomplejidad, la primera secuencia se puede generar enespacio f(n).
Clases de complejidad– p. 26
Teorema
NSPACE (f(n)) ⊆ TIME(
clogn+f(n))
Consecuencia:
L ⊆ NL ⊆ P ⊆ NP ⊆ PSPACE ⊆ EXP.
Clases de complejidad– p. 27
¿A ⊂ B o A ⊆ B?
Tenemos L ⊂ PSPACE por
L = SPACE (log(n)) ⊂ SPACE (log(n) log(log(n)))
⊆ SPACE (n2) ⊆ PSPACE.
Clases de complejidad– p. 28
¿A ⊂ B o A ⊆ B?
Tenemos L ⊂ PSPACE por
L = SPACE (log(n)) ⊂ SPACE (log(n) log(log(n)))
⊆ SPACE (n2) ⊆ PSPACE.
Es comunmente aceptadoque las inclusiones inmediatassean todos de tipo A ⊂ B, pero todavía no se ha establecido talresultado.
Clases de complejidad– p. 28
¿A ⊂ B o A ⊆ B?
Tenemos L ⊂ PSPACE por
L = SPACE (log(n)) ⊂ SPACE (log(n) log(log(n)))
⊆ SPACE (n2) ⊆ PSPACE.
Es comunmente aceptadoque las inclusiones inmediatassean todos de tipo A ⊂ B, pero todavía no se ha establecido talresultado.
Lo que sí se ha establecido que por lo menos unade las
inclusiones entre L y PSPACE es de ese tipo, y también que
por lo menos una entre P y EXP es de ese tipo.
No se sabe cuál.Clases de complejidad– p. 28
Espacio y no determinismo
Ya tenemos que
NSPACE (f(n)) ⊆ TIME(
clog n+f(n))
⊆ SPACE(
clogn+f(n))
Clases de complejidad– p. 29
Teorema de Savitch
NTM con límites de espacio se puede simular con TMdeterministas con espacio cuadrático;
REACHABILITY ∈ SPACE(
log2 n)
⇒ . . . ⇒ ∀ función correcta f(n) ≥ log n,
NSPACE (f(n)) ⊆ SPACE(
(f(n))2)
.
Además, PSPACE = NPSPACE.
⇒ Las NTM con respeto a espacioson menospoderososque las NTM con respeto a tiempo.
Clases de complejidad– p. 30