Complejidad 1x1
Complejidad 1x1
Complejidad 1x1
Algoritmos y Complejidad
Complejidad Computacional
Pablo R. Fillottrani
Complejidad Computacional
Introducción
Clases de Complejidad
Clases P y NP
Problema P vs. NP
Algoritmos de aproximación
Algoritmos y Complejidad
Introducción
Objetivos
Objetivos
Clasificación de problemas
n
funcion
10 20 50 100 300
1/10000 1/2500 1/400 1/100 9/100
n2 segundo segundo segundo segundo segundo
n5 0, 1 seg. 3, 2 seg. 5, 2 min. 2, 8 hs. 28, 1 días
1/1000 400 billones
2n segundo 1 seg. 35, 7 años de siglos −−−
3,3 billones
nn 2, 8 hs. años −−− −−− −−−
Conceptos básicos
Demostración.
Se hace una codificación de todos los caracteres de Σ en secuencias
de caracteres de Γ.
I esto permite fijar como alfabeto estándar a Σ = {1, 0, t},
cualquier lenguaje en otro alfabeto puede ser traducido a este en
forma inmediata
Algoritmos y Complejidad
Introducción
Conceptos básicos
Lema 3
Si un lenguaje L es decidible entonces L es aceptable.
Lema 4
Si un lenguaje L es decidible entonces LC también es decidible.
Algoritmos y Complejidad
Introducción
Conceptos básicos
Lema 5
Un lenguaje L es decidible si y solo si L y LC son aceptables.
Lema 6
Si L1 ≤m L2 y L1 no es decidible, entonces L2 no es decidible.
Lema 7
Sea 0/ ⊂ L1 ⊂ Σ∗ . Entonces para todo lenguaje decidible L2 vale que
L2 ≤m L1 .
Clases de Complejidad
Lema 8
Sean C1 ⊂ C2 dos clases de complejidad tal que C1 es cerrada c.r. a
≤r . Entonces cualquier L ∈ C2 que sea C2 -completo c.r. a ≤r es tal
que L 6∈ C1 .
Demostración.
Se supone por el absurdo que L ∈ C1 , y se contradice el hecho de que
C1 ⊂ C2 .
Algoritmos y Complejidad
Clases de Complejidad
Ejemplos
I sean {Ti } el conjunto de todas las máquinas de Turing
determinísticas
I se define TIME la medida Φ = {TIMEi }, la cantidad de pasos de
la MTD Ti en cada entrada x; entonces Φ es una medida de
complejidad dinámica
I sea k la medida Φ = {k} donde k es una función constante, k no
cumple con la primer condición
I sea VALOR la medida Φ = {VALORi }, el resultado que deja la
MT Ti en la cinta al finalizar cada computación; VALOR no
satisface la segunda restricción
I sea SPACE 1 la medida Φ = {SPACEi1 }, la cantidad de celdas
que la MTD Ti usa en cada cada computación; SPACE1 no
satisface la primer restricción.
Algoritmos y Complejidad
Clases de Complejidad
Demostración.
Basta con considerar el conjunto de configuraciones globales posibles
de la MTD T . Si pasan más de |Σ|h(x ) |Q |h(x ) configuraciones,
entonces necesariamente alguna se repite y por lo tanto la máquina
cicla indefinidamente.
Algoritmos y Complejidad
Clases de Complejidad
DTIME [t (n)] = {L : L ⊆ Σ∗ y
∃Ti : L = L(Ti ) ∧ TIMEi (x ) ∈ O (t (|x |))}
DSPACE [t (n)] = {L : L ⊆ Σ∗ y
∃Ti : L = L(Ti ) ∧ SPACEi (x ) ∈ O (t (|x |))}
NTIME [t (n)] = {L : L ⊆ Σ∗ y
∃NTi : L = L(NTi ) ∧ NTIMEi (x ) ∈ O (t (|x |))}
NSPACE [t (n)] = {L : L ⊆ Σ∗ y
∃NTi : L = L(NTi ) ∧ NSPACEi (x ) ∈ O (t (|x |))}
Algoritmos y Complejidad
Clases de Complejidad
Lema 11
Sea t una función tiempo-construíble tal que t (n) ≥ n, y L1 , L2 ⊂ Σ∗
tal que |L1 4 L2 | < ℵ0 (su diferencia es finita). Entonces
L1 ∈ DTIME [t (n)] si y solo si L2 ∈ DTIME [t (n)].
I las clases de complejidad no determinísticas satisfacen la
segunda propiedad, pero es un problema abierto determinar si
satisfacen la primera
Algoritmos y Complejidad
Clases P y NP
Clase P
Clase P
P = ∪k ∈N DTIME [nk ]
Teorema 12
Sean L1 , L2 dos lenguajes tales que L1 ≤p L2 . Luego si L2 ∈ P
entonces L1 ∈ P.
Demostración.
Componiendo las MTD polinomiales que resuelven L2 y que calculan
la reducción, considerando que la composición de polinomios es un
polinomio.
Algoritmos y Complejidad
Clases P y NP
Clase P
Teorema 13
Sea L1 un lenguaje tal que 0/ ⊂ L1 ⊂ Σ∗ . Entonces para cualquier
L2 ∈ P vale que L2 ≤p L1 .
Demostración.
Si 0/ ⊂ L1 ⊂ Σ∗ entonces existe z ∈ L1 y un y ∈ Σ∗ − L1 . La reducción
consiste para cada x resolver L2 de acuerdo a su MTD polinomial, y
asignarle z o y de acuerdo a si su respuesta es sí o no.
Algoritmos y Complejidad
Clases P y NP
Clase P
Teorema 14
Una fbf F es satisfacible si y solo si no existe una proposición p tal
que p y ¬p pertenecen al mismo CFC del grafo G(F).
Demostración.
Sea F satisfacible. Si existen simultaneamente caminos de p a ¬p y
de ¬p a p entonces p ≡ ¬p es consecuencia de la formula, con lo que
la formula es insatisfacible.
Sea G(F ) tal que ningún CFC contiene literales complementarios. Se
construye una asignación de valores de verdad que hace a F
satisfacible, asignando a todos los literales de un mismo CFC los
mismos valores de verdad. Si existe camino de p a ¬p entonces p es
falso, los restante predicados se asignan arbitrariamente.
Algoritmos y Complejidad
Clases P y NP
Clase P
Teorema 15
Un grafo no dirigido G tiene una 2-coloración si y solo si F (G) es
satisfacible.
Demostración.
⇐) Si G tiene una 2-coloración, entonces se crea una asignación de
valores de verdad para cada pi , arbitrariamente tomando un color
como verdadero y otro como falso. Esta asignación satisface F (G).
⇒) Si F (G) es satisfacible, a partir de la asignación de valores de
verdad se asigna un color a cada ni tal que pi es verdadero, y el otro
color al resto. Esto forma una 2-coloración válida.
Clase NP
I en forma análoga a P, se puede definir su contraparte no
determinística NP:
NP = ∪k ∈N NTIME [nk ]
Teorema 16
Un lenguaje L pertenece a NP si y solo si existe un lenguaje
Lcheck ∈ P tal que
siendo p un polinomio.
Demostración.
Transformando una máquina de Turing.
I por ejemplo
I para mostrar que SAT∈ NP es suficiente con dar un algoritmo
determinístico polinomial para chequear si una asignación de
valores de verdad hace verdadera una fbf.
I para mostrar que la versión de decisión del problema VIAJANTE
(dado un grafo y un k encontrar un circuito en el grafo de longitud
menor o igual a k ) pertenece a NP se da un algoritmo polinomial
para controlar si un dado circuito es un circuito de viajante con
longitud menor o igual a k
I se puede mostrar que 3-COLOR∈ NP dando un algoritmo
polinomial para controlar que una asignación de colores de un
grafo asigne colores diferentes a nodos adyacentes.
Algoritmos y Complejidad
Clases P y NP
Clase NPC
Clase NPC
I como P es cerrada c.r. a ≤p , el lema 8 permite suponer que los
lenguajes NP-completos c.r. a ≤p (NPC) son candidatos a
lenguajes separadores, es decir a pertenecer a NP − P
I entonces, para averiguar si P = NP es suficiente con establecer
el status de un problema en NPC: si uno de estos problemas
tiene solución polinomial, entonces todos los NP tienen solución
polinomial; si se demuestra que no puede existir una solución
polinomial para alguno de ellos, entonces ninguno de NPC la
tiene
I el destino de un problema NPC es el destino de todos: todos son
tratables o todos son intratables.
I por lo tanto es interesante conocer cuáles problemas pertenecen
a NPC
Algoritmos y Complejidad
Clases P y NP
Clase NPC
Teorema de Cook
Teorema 17 (Cook/Levin)
SAT es un problema en NPC.
Demostración.
Primero se prueba que SAT∈ NP (usando el teorema 16 o mostrando
un algoritmo no determinístico polinomial). Luego se toma un
lenguaje arbitrario L ∈ NP, y se muestra que L ≤p SAT. Para esto se
define primero la reducción: sea T = hQ , Σ, ∆, q0 , q1 i la MTND que
acepta a L, y x ∈ Σ∗ . Como L ∈ NP sabemos que T (x ) para
(aceptando o rechazando) en tiempo polinomial p(|x |).
A continuación se define una fbf F (T , x ) tal que F (T , x ) sea
satisfacible si y solo si T (x ) termina en el estado aceptador.
Algoritmos y Complejidad
Clases P y NP
Clase NPC
Demostración (cont.)
La fórmula F (T , x ) está formada por las siguientes proposiciones:
I para cada paso t , 0 ≤ t ≤ p(|x |), para cada estado
qe , 1 ≤ e ≤ |Q |, existe Qet para representar que en el paso t la
computación T (x ) está en el estado e
I para cada paso t , 0 ≤ t ≤ p(|x |), para cada celda
cs , 1 ≤ s ≤ p(|x |), existe Lts para representar que en el paso t la
computación T (x ) tiene la cabeza lectora en la posición s.
I para cada paso t , 0 ≤ t ≤ p(|x |), para cada celda
cs , 1 ≤ s ≤ p(|x |), para cada letra li ∈ Σ ∪ {t} (o sea
l0 = 0, l1 = 1, l2 = t), existe Pst ,i para representar que en el paso
t la computación T (x ) tiene en la celda cs la letra li .
Algoritmos y Complejidad
Clases P y NP
Clase NPC
Demostración (cont.)
A partir de estas proposiciones, se define
F (T , x ) = A ∧ B ∧ C ∧ D ∧ E ∧ F
Demostración (cont.)
Las subfórmulas A, B , C tienen la siguiente forma:
^ _ ^
A = [( Qet ) ∧ (Qet → ¬Qet 0 )]
0≤t ≤p(|x |) 1≤e≤|Q | 1≤e,e0 ≤|Q |
e6=e0
^ _ ^
B = [( Lts ) ∧ (Lts → ¬Lts0 )]
0≤t ≤p(|x |) 1≤s≤p(|x | 1≤s,s0 ≤p(|x |)
s6=s0
^ ^
C = [(Pst ,0 ∨ Pst ,1 ∨ Pst ,2 ) ∧ ( (Pst ,i → ¬Pst ,i 0 )]
0≤t ≤p(|x |) 1≤i ,i 0 ≤2
1≤s≤p(|x |) i 6=i 0
Algoritmos y Complejidad
Clases P y NP
Clase NPC
Demostración (cont.)
Las subfórmulas D , E , F tienen la siguiente forma:
^ ^
D = ( Pj0,ij ) ∧ ( Pj0,2 ) ∧ Q00 ∧ L01
1≤j ≤|x | |x |<j ≤p(|x |)
Demostración (cont.)
Se puede mostrar que F (T , x ) tiene una longitud polinomial en |x |, ya
que la su longitud es cúbica en p(|x |).
Además, vale que si F (T , x ) es satisfacible entonces T (x ) acepta a x
y que si T (x ) acepta a x entonces F (T , x ) es satisfacible. (Los
detalles de estos dos últimos puntos queda como ejercicio.)
Esto finaliza la prueba que L ≤p SAT, y como L ∈ NP es arbitrario,
entonces SAT es NP-completo.
Algoritmos y Complejidad
Clases P y NP
Clase NPC
I por ejemplo, si
F = (p ∨ ¬q ∨ ¬r ∨ ¬s ∨ w ∨ ¬v ) ∧ (¬w ∨ z )
entonces
siempre que P 6= NP
Algoritmos y Complejidad
Otras clases de complejidad
Teorema 20 (Savitch)
Para toda función f : N −→ N tal que f (n) ≥ log n vale que
Corolario 21
PSPACE = NPSPACE
Demostración.
2
Por el teorema de Savitch, NSPACE [nk ] ⊆ DSPACE [nk ].
Algoritmos y Complejidad
Otras clases de complejidad
k
P ⊆ NP ⊆ PSPACE = NPSPACE ⊆ EXPTIME = ∪k ∈N DTIME [2n ]
Corolario 23
Para todo par de números reales ε1 , ε2 tal que 1 ≤ ε1 < ε2 vale que
DTIME [nε1 ] ⊂ DTIME [nε2 ].
Corolario 24
P ⊂ EXPTIME
Algoritmos y Complejidad
Otras clases de complejidad
Corolario 26
Para todo par de números reales ε1 , ε2 tal que 1 ≤ ε1 < ε2 vale que
DSPACE [nε1 ] ⊂ DSPACE [nε2 ].
Algoritmos y Complejidad
Otras clases de complejidad
Clases L y NL
NL = NSPACE [log n]
L ⊆ NL = coNL ⊆ P ⊆ PSPACE
I clases probabilísticas
I jerarquía polinomial en tiempo
I clases de computación paralela
I jerarquía aritmética de incomputabilidad
Algoritmos y Complejidad
Algoritmos de aproximación
Algoritmos de aproximación
Algoritmo greedy
PROCEDURE MochilaG(w[1..n],v[1..n],W)
ordenar v[i]/w[i] en L
peso::=0; valor::=0
FOR i::=1 TO n
IF peso+w[i]<=W
valor::=valor+v[i]
peso::=peso+w[i]
ENDIF
ENDFOR
RETURN valor
Algoritmos y Complejidad
Algoritmos de aproximación
Algoritmo de aproximación
PROCEDURE MochilaA(w[1..n],v[1..n],W)
maxElto::=max{v[i], 1<=i<=n}
greedy::=MochilaG(w,v,W)
RETURN max{maxElto, greedy}
Teorema 27
f ≥ opt /2.
Vale que opt
Demostración.
Si todos los objetos caben en la mochila, entonces opt f = opt. Sino,
existe k el menor índice tal que ∑i =1 w [i ] > W . Sea opt 0 el valor de
k
opt
f = max{maxElto, greedy} ≥ (maxElto + greedy))/2
k −1 k
≥ (v [k ] + ∑ v [i ])/2 = ( ∑ v [i ])/2 = opt 0 /2 ≥ opt /2
i =1 i =1
Algoritmos y Complejidad
Algoritmos de aproximación