Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el...

43
Análisis de Algoritmos Clases de complejidad Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Clases de complejidad– p. 1

Transcript of Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el...

Page 1: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Análisis de Algoritmos

Clases de complejidad

Dra. Elisa Schaeffer

[email protected]

PISIS / FIME / UANL

Clases de complejidad– p. 1

Page 2: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Clase de complejidad

Los requisitos para definir una clase:

fijar un modelode computación (tipo de TM),

Clases de complejidad– p. 2

Page 3: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 4: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 5: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 6: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 7: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 8: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 9: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Clases básicas

tiempo{

determinista TIME (f)

no determinista NTIME (f)

espacio{

determinista SPACE (f)

no determinista NSPACE (f)

Clases de complejidad– p. 6

Page 10: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 11: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 12: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 13: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 14: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 15: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 16: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 17: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 18: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 19: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 20: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 21: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 22: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 23: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Tiempo de ejecución

Cada paso de la simulación necesita O (f(n)2) tiempo.

Clases de complejidad– p. 15

Page 24: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 25: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 26: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 27: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 28: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 29: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 30: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Consecuencias

P ⊂ TIME (2n) ⊆ EXP por nk = O (2n)

y

TIME (2n) ⊂ TIME(

(22n+1)3)

⊆ TIME

(

2n2

)

⊆ EXP

Clases de complejidad– p. 20

Page 31: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 32: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 33: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 34: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 35: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 36: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 37: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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

Page 38: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Teorema

NSPACE (f(n)) ⊆ TIME(

clogn+f(n))

Consecuencia:

L ⊆ NL ⊆ P ⊆ NP ⊆ PSPACE ⊆ EXP.

Clases de complejidad– p. 27

Page 39: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

¿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

Page 40: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

¿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

Page 41: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

¿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

Page 42: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

Espacio y no determinismo

Ya tenemos que

NSPACE (f(n)) ⊆ TIME(

clog n+f(n))

⊆ SPACE(

clogn+f(n))

Clases de complejidad– p. 29

Page 43: Dra. Elisa Schaeffer · función correcta de complejidad y ǫ > 0. ... contradicción y nos da el resultado deseado. Clases de complejidad– p. 17. Teorema Si f(n) ≥ n es una función

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