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

Preview:

Citation preview

Análisis de Algoritmos

Clases de complejidad

Dra. Elisa Schaeffer

elisa.schaeffer@gmail.com

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

Recommended