Optimizacin Aproximados
Serafn Moral
Modelos Avanzados de Computacin - Universidad de Granada
Serafn Moral
Contenido
Problemas de Optimizacin
Algoritmos -aproximados
Anlisis de problemas: cubrimiento por vrtices, viajante
de comercio, corte mximo, mochila, satisfaccin mxima.
Esquema de aproximacin polinmico.
Clase NPO y PO
Clases APX, PTAS y FPTAS
Algoritmos pseudo-polinmicos
L-reduccin
Problemas completos
Serafn Moral
Bibliografa
Serafn Moral
Problemas de Optimizacin
Problema de Optimizacin (minimizacin)
Tenemos unos datos x.
Estos datos tienen asociados un conjunto de soluciones
factibles F (x) .
s F (x) tenemos una funcin C(s) que evala el coste de
esta solucin.
El problema es encontar un elemento s tal que
C(s ) = min C(s)
sF (x)
Ejemplo
Datos: un grafo G no dirigido.
Soluciones factibles F (G): conjunto de los cubrimientos
por vrtices de G el conjunto de todos los subconjuntos de
vrtices A tales que toda arista tiene, al menos un extremo
en A.
Coste de una solucin factible A: su nmero de vrtices.
Queremos encontrar el cubrimiento por vrtices con un nmero
menor de vrtices.
Serafn Moral
Problemas de Maximizacin
Serafn Moral
Caractersticas
Estos problemas suelen ser equivalentes bajo reduccin
Turing a los problemas de decisin asociados (ver la
reduccin del problema del viajante de comercio en el
tema del clculo de funciones) cuando el problema de
decisin es NP-completo.
En este tema no nos vamos a preocupar de resolverlos de
forma exacta.
Vamos a ver problemas que son de similar dificultad
cuando se resuelven de forma exacta, son bastante
diferentes cuando intentamos aproximarlos: unos no se
pueden aproximar con ningn error; otros se pueden
aproximar con algn error, pero no con errores muy
pequeos; y otros se pueden aproximar con errores
arbritrariamente pequeos.
Serafn Moral
Algoritmos -aproximados
Definicin
Se dice que M es un algoritmo -aproximado sii para todo x,
calcula M(x) F (x) tal que
|c(M(x)) OPT (x)|
En Problemas de Minimizacin:
c(M(x)) OPT (x)
c(M(x))
Equivalente a:
1
C(M(x))
1
OPT (x)
Serafn Moral
Problemas de Maximizacin
OPT (x)
Equivalente a:
OPT (x)
1
1
C(M(x))
Serafn Moral
Razn de Eficacia
Actualmente, se suele emplear ms la razn de eficacia .
1
Este valor es: = 1
, donde es el grado de aproximacin.
Epsilon se puede obtener como = 1
OPT (x)
C(M(x))
C(M(x))
OPT (x)
Serafn Moral
Umbral de Aproximacin
Umbral
Serafn Moral
Serafn Moral
Serafn Moral
c5
c4
c3
c2
c1
b5
b4
b3
b2
b1
a3
a2
a1
Serafn Moral
Se puede equivocar ms
a7
c6
c5
c4
c3
c2
c1
b6
b5
b4
b3
b2
b1
a6
a5
a4
a3
a2
a1
Serafn Moral
Serafn Moral
Serafn Moral
Un algoritmo Greedy
V1
V2
V3
V4
Corte Heurstico
Corte ptimo
Corte Mximo
Repitiendo lo anterior para V1 , V2 , V3 , V4 , obtenemos
e12 e13 + e14 , e12 e23 + e24 ,
e34 e23 + e13 , e34 e14 + e24
Sumando y dividiendo por dos se obtiene
e12 + e34 e14 + e23 + e13 + e24
Tambin es obvio que e14 + e23 e14 + e23 + e13 + e24 .
Sumando, las dos ltimas desigualdades obtenemos:
e12 + e34 + e14 + e23 2.(e14 + e23 + e13 + e24 )
Lo que nos disce que nuestro algoritmo heurstico, al menos,
obtiene la mitad de arcos del ptimo: La razn de aproximacin
es 2.
Serafn Moral
Serafn Moral
Algoritmo Aproximado
Para una asignacin de valores de verdad al azar,
calculamos la p robabilidad de que i sea cierta:
P(i ) =
ti
2k
m
X
P(i )
i=1
Serafn Moral
Algoritmo Aproximado
Si seleccionamos una variable x1 , tenemos que
P() = 1/2 (P([x1 = verdadero]) + P([x1 = falso]))
donde [x1 = verdadero], [x1 = falso] son los
conjuntos de frmulas que se obtienen a partir de las
originales, substituyendo x1 por verdadero ( x1 falso) y
x1 por falso ( x1 verdadero) respectivamente.
Elegimos x1 = verdadero si
P([x1 = verdadero]) P([x1 = falso]) y x1 = falso en
caso contrario.
Si x1 es verdadero repetimos lo mismo para el resto de
las variables con [x1 = verdadero] y si lo hacemos falso
trabajamos con [x1 = falso].
Serafn Moral
Ejemplo
Num. Esp. = 1+3/4+1+1/2+3/4+7/8+1/2+1=6+3/8
V,
q s,
r q,
r s q,
V,
s,
s
V
p Verd.
p q,
q s,
p r q,
r s q,
p,
s,
p s
r ps
Hacemos p verdadero
p Fals.
q,
q s,
V,
r s q,
F,
s,
V
r s
Ejemplo
Num. Esp. = 1+3/4+1+1/2+3/4+7/8+1/2+1=6+3/8
V,
q s,
r q,
r s q,
V,
s,
s
V
p Verd.
p q,
q s,
p r q,
r s q,
p,
s,
p s
r ps
Hacemos p verdadero
p Fals.
q,
q s,
V,
r s q,
F,
s,
V
r s
Serafn Moral
Razn de aproximacin
La razn de aproximacin es:
#{i : P(i ) > 0}
OPT (x )
=
APROX (x )
APROX (x )
#{i : P(i ) > 0}
1
P(1 ) + . . . + P(m )
mn {P(i ) : P(i ) > 0}
Este es un algoritmo delta-aproximado con =
1
mn {P(i ) : P(i )>0} .
Serafn Moral
1
.
1(2k )
Serafn Moral
Viajante de Comercio
Serafn Moral
El problema de la Mochila
Pesos: w1 , . . . , wn
Valores: v1 , . . . , vn
Peso lmite: W
P
Problema:
Encontrar S {1, . . . , n} tal que
iS wi W y
P
iS vi sea mximo.
Serafn Moral
Algoritmo Pseudo-Polinmico
Sea V = m
ax {v1 , . . . , vn }
Para i = 0, 1, . . . , n y 0 v nV calculamos:
W (i, v): Mnimo peso que se puede conseguir eligiendo items
entre los i primeros de valor v exactamente.
Se calcula con:
W (i + 1, v) = mn {W (i, v), W (i, v vi+1 ) + wi+1 }
Estos valores resuelven el problema. Complejidad O(n2 V ). Es
Pseudo-polinmico.
Cuando se ha calculado W (n, v) es fcil calcular el ptimo.
Comparamos, desde i = nV hasta i = 0 los valores W (n, i)
con el lmite W . El primer i para el que W (n, i) W es el
ptimo del problema.
Serafn Moral
Algoritmo Aproximado
Dado un ejemplo I = (w1 , . . . , wn , W , v1 , . . . , vn ) consideramos
I = (wi , . . . , wn , W , v1 , . . . , vn )
donde vi = 2b 2vbi .
(Los b bits menos significativos se reemplazan por 0).
Entonces aplicamos el algoritmo pseudo-polinmico.
Este
2
n V
tendr una complejidad en este caso de O 2b .
-aproximado, haciendo
Se obtiene
un algoritmo
h
i
(1).V
b = log( n ) .
Algoritmo Aproximado
X
iS
vi
iS
X
vi (
vi ) n.2b
iS
1+
=
V (S )
V (S )
V
Es decir es un algoritmo
i
2 -aproximado.
h
)
La complejidad es O n2bV , que para b = log( (1).V
, se
n
convierte en O(n3 /( 1)).
Serafn Moral
Serafn Moral
Conjunto Independiente
Teorema
Si existe un algoritmo 0 -aproximado polinmico con 0 <
para el mximo conjunto independiente, entonces existe un esquema de aproximacin polinmico.
Si G = (V , E ) es un grafo consideremos el grafo
G2 = (V V , E ) donde
(1,1)
(2,1)
(3,1)
(1,3)
(2,2)
G2
(2,3)
(3,3)
(3,2)
Serafn Moral
Relacin entre G y G2
Resultado Intermedio
G tiene un conjunto independiente de tamao k si y solo si G2
tiene un conjunto independiente de tamao k 2 .
Si S es un conjunto independiente de G entonces S S
es un conjunto independiente de G2 .
Si G2 tiene un conjunto independiente H de tamao k 2 ,
entonces H1 = {u V : v, (u, v) H} y
Hu = {v V : (u, v) H} para todo u V , son
conjuntos independientes de G.
Si H es de tamao k 2 , al menos uno de estos conjuntos
tiene que tener tamao k.
Serafn Moral
Demostracin
Teorema
Si existe un algoritmo 0 -aproximado polinmico con 0 <
para el mximo conjunto independiente, entonces existe un esquema de aproximacin polinmico.
Supongamos un algoritmo 0 -aproximado de orden O(nl ).
Si aplicamos el algoritmo a G2 , entonces ser de orden
O(n2l ).
Si k es el tamao ptimo de un conjunto independiente en G,
el tamao del ptimo en G2 ser de tamao k 2 y el que
calcule el algoritmo aproximado verificar:
k2
0
tam(H)
o equivalentemente
Serafn Moral
Demostracin
tam(H )
Es decir hemos conseguido con una complejidad
de O(n2l ) un
Serafn Moral
Demostracin
1 = 0
Tenemos que 1 < 0 . Si esto mismo lo repetimos r veces,
Serafn Moral
La clase NPO
Definicin NPO
Un problema de optimizacin est en NPO si y solo si se
cumplen las siguientes condiciones:
1
La clase PO
Un problema de optimizacin est en la clase PO si est en
NPO y existe un algoritmo polinmico tal que para cada caso
del problema x existe un algoritmo polinmica que calcula la
solucin ptima y su coste.
Ejemplo: La distancia mnima en grafos.
Serafn Moral
Optimizacin Decisin
Dado un problema de optimizacin (minimizacin o
maximizacin), siempre podemos asociarle un problema de
decisin: por ejemplo para un problema de minizacin, se da
una cota K y se pregunta si existe una solucin factible de
costo menor o igual a K .
Teorema
Para cualquier problema de optimizacin de NPO su correspondiente problema de decisin est en NP.
Teorema
Si P 6= NP entonces PO 6= NPO.
Serafn Moral
La clase APX
Definicin: Clase APX
La clase APX es la clase de todos los problemas tales que
admiten un algoritmo -aproximado para < .
Ejemplo: Problemas en APX
Cubrimiento mnimo por vrtices, problema de la mochila, corte
mximo, mximo nmero de clusulas satisfechas, etc...
Ejemplo: Problemas que no estn en APX
Problema del viajante de comercio, mximo clique, mximo conjunto independiente, etc...
Teorema
Si N 6= NP, entonces APX 6= NPO
Serafn Moral
La clase APX
Definicin: Clase APX
La clase APX es la clase de todos los problemas tales que
admiten un algoritmo -aproximado para < .
Ejemplo: Problemas en APX
Cubrimiento mnimo por vrtices, problema de la mochila, corte
mximo, mximo nmero de clusulas satisfechas, etc...
Ejemplo: Problemas que no estn en APX
Problema del viajante de comercio, mximo clique, mximo conjunto independiente, etc...
Teorema
Si N 6= NP, entonces APX 6= NPO
Serafn Moral
La clase APX
Definicin: Clase APX
La clase APX es la clase de todos los problemas tales que
admiten un algoritmo -aproximado para < .
Ejemplo: Problemas en APX
Cubrimiento mnimo por vrtices, problema de la mochila, corte
mximo, mximo nmero de clusulas satisfechas, etc...
Ejemplo: Problemas que no estn en APX
Problema del viajante de comercio, mximo clique, mximo conjunto independiente, etc...
Teorema
Si N 6= NP, entonces APX 6= NPO
Serafn Moral
La clase APX
Definicin: Clase APX
La clase APX es la clase de todos los problemas tales que
admiten un algoritmo -aproximado para < .
Ejemplo: Problemas en APX
Cubrimiento mnimo por vrtices, problema de la mochila, corte
mximo, mximo nmero de clusulas satisfechas, etc...
Ejemplo: Problemas que no estn en APX
Problema del viajante de comercio, mximo clique, mximo conjunto independiente, etc...
Teorema
Si N 6= NP, entonces APX 6= NPO
Serafn Moral
La clase PTAS
Definicin de PTAS
Es la clase de problemas con un esquema de aproximacin
polinmico.
Ejemplo: Un problema de PTAS
el problema de la mochila en el que puede haber tantas copias
como se quiera de cada objeto.
Ejemplo: Problemas de APX que no est en PTAS (si P6= NP)
El corte mximo o el cubrimiento mnimo.
Teorema
En grafos planares, el cubrimiento mnimo est en PTAS.
Serafn Moral
La Clase FPTAS
Serafn Moral
Problemas de FPTAS
Definicin: Problemas acotados polinmicamente
Un problema de optimizacin est acotado polinmicamente si
y solo si existe un polinomio p tal que para todo ejemplo x y
para toda solucin factible y de x, entonces
c(x, y) p(|x|)
donde c(x, y) es el coste de la solucin y.
Ejemplo
El problema del viajante de comercio no est acotado polinmicamente. El del cubrimiento mnimo por vrtices si lo est.
Serafn Moral
FPTAS y PTAS
Teorema
No existe un problema NP-difcil acotado polinmicamente con
un esquema de aproximacin polinmico total.
Corolario
Si P 6= NP entonces PTAS 6= FPTAS
Ejemplo
El mximo conjunto independiente para grafos planares estara
en PTAS - FPTAS.
Serafn Moral
Problemas Pseudo-polinmicos
En el problema del corte mximo la dificultad est en su
estructural combinatoria: no hay nmeros, slo un grafo
con sus vrtices y arcos.
El problema de la mochila puede resolverse por
programacin dinmica en tiempo O(n2 pmax ) donde pmax
es el entero de tamao mximo que aparece en el
problema. Eso no implica que el problema sea polinmico,
pero su complejidad se debe al tamao de los nmeros
que aparecen.
Problemas Pseudo-polinmicos
Los problemas que tienen un algoritmo tal que para cada
ejemplo del problema x encuentra la respuesta correcta en un
tiempo que depende polinmicamente de |x| y del entero
mayor que aparezca en la especificacin de x se dice que son
Pseudo-Polinmicos.
Serafn Moral
Serafn Moral
Demostracin
c (x) p(|x|, max(x))
Demostracin
=
Serafn Moral
Demostracin
c (x) p(|x|, max(x))
Demostracin
=
Serafn Moral
Clases de Aproximacin
NPO
APX
PTAS
FPTAS
PO
Serafn Moral
L-Reduccin
Reduccin
Decimos que el problema de optimizacin 1 se L-reduce al
problema 2 ( 1 L 2 ) si y solo si
existen dos funciones R y S espacio logartmicas y dos
constantes , > 0 tales que
Si x es un ejemplo de 1 , entonces R(x) es un ejemplo
de 2 con
OPT(R(x)) .OPT(x)
Si s es factible de R(x), entonces S(s, x) es factible de
x con
|OPT(x) C(S(s, x))| .|OPT(R(x)) C(s)|
Las L-reducciones son transitivas
Serafn Moral
L-Reducciones
Teorema
Si tenemos una L-reduccin de 1 a 2 , siendo estos problemas de minimizacin, con constantes y , entonces si existe
un algoritmo -aproximado polinmico para 2 tambin existir
uno 1 + ( 1) polinmico para 1 .
Demostracin
Supongamos las funciones R y S de la L-reduccin.
El algoritmo aproximado para 1 se construye de la siguiente
forma ( x es un caso de este problema)
Calcular R(x)
Aproximar R(x) por su algoritmo -aproximado,
obteniendo s
Calcular S(s) como aproximacin de x
Supongamos un problema de minimizacin.
Serafn Moral
L-reducciones
Demostracin
Como,
|OPT(x ) C(S(s))| .|OPT(R(x )) C(s)|
C(S(s)) OPT(x ) .(C(s) OPT(R(x )))
y, por tanto,
C(S(s)) .(C(s) OPT(R(x ))) + OPT(x )
Tambin,
Serafn Moral
L-reducciones
Demostracin
Tenemos,
C((s)) OPT (R(x ))
1
OPT (R(x ))
C(S(s)) .(C(s) OPT(R(x ))) + OPT(x )
Y ya podemos obtener la cota para el error relativo:
C(S(s))
C(s) OPT (R(x ))
1+
OPT (x )
OPT (x )
1 +
Serafn Moral
L-Reducciones
Teorema
Si tenemos una L-reduccin de 1 a 2 , siendo estos problemas de maximizacin, con constantes y , entonces si existe
un algoritmo -aproximado polinmico para 2 tambin existir
polinmico para 1 .
uno (1)
Demostracin
Supongamos las funciones R y S de la L-reduccin.
El algoritmo aproximado para 1 se construye de igual forma
que en el caso de un problema de minimizacin ( x es un caso
de este problema)
Calcular R(x)
Aproximar R(x) por su algoritmo -aproximado,
obteniendo s
Calcular S(s) como aproximacin de x
Supongamos ahora un problema de maximizacin.
Serafn Moral
L-reducciones
Demostracin
Como,
|OPT(x ) C(S(s))| .|OPT(R(x )) C(s)|
OPT(x ) C(S(s)) .(OPT(R(x )) C(s))
Tambin,
OPT(R(x )) .OPT(x )
OPT (R(x ))
C(s)
Serafn Moral
L-reducciones
Demostracin
Obtengamos una cota para
OPT (x )
C(S(s))
OPT (x)
OPT (x)
C(S(s))
OPT (x) (OPT (R(x)) C(s))
(por ser OPT(x) C(S(s)) .(OPT(R(x)) C(s)))
Y por ser OPT(R(x))/ OPT(x) y f (y ) = y /(y a) una funcin decreciente en y :
OPT (x)
OPT (R(X ))/
Serafn Moral
OPT (R(X ))
OPT (R(X )) (OPT (R(x )) C(s))
L-reducciones
Demostracin
Tenemos:
OPT (R(X ))
OPT (x )
=
C(S(s))
OPT (R(X )) (OPT (R(x )) C(s))
1
1 (1 C(s)/OPT (R(x )))
Al ser OPT (R(x ))/C(s) , tenemos que C(s)/OPT (R(x )) 1/ y,
por tanto
1
=
1 (1 C(s)/OPT (R(x )))
1 (1 1/)
( 1)
Obeteniendo la cota:
OPT (x)
C(S(s))
(1)
Serafn Moral
Ejemplo
Ejemplo
La reduccin del conjunto independiente al cubrimiento por nodos no es una L-reduccin.
El ptimo del cubrimiento puede ser tan grande como se quiera
para un conjunto independiente fijo.
Serafn Moral
L-reduccin y PTAS
Teorema
Si tenemos una L-reduccin de 1 a 2 , entonces si 2 est
en PTAS, entonces 1 tambin lo est.
Demostracin
Si existe un algoritmo -aproximado polinmico para 2 tambin existir uno 1 + (.( 1)) polinmico para 1 . Cuando
converge hacia 1, entonces 1 + (.( 1)) se puede hacer
tan cercano a 1 como se quiera.
Serafn Moral
Teorema
Si tenemos una L-reduccin de 1 a 2 y son problemas de
minimizacin, entonces si 2 est en APX, entonces 1 tambin lo est.
Serafn Moral
Definicin
Dada una clase C de problemas en NPO , decimos que un
problema es C-difcil si y solo si cualquier otro problema de
C es L-reducible a l. Y es C-completo si, adems, est en C.
Teorema
Si un problema NPO-completo tiene un esquema de aproximacin polinmico, entonces todos los problemas de NPO tambin lo tienen.
Un teorema anlogo se puede dar para la clase APX.
Serafn Moral
Ejemplos
Serafn Moral
L-Reduccin
Reduccin
Decimos que el problema de optimizacin 1 se L-reduce al
problema 2 ( 1 L 2 ) si y solo si
existen dos funciones R y S espacio logartmicas y dos
constantes , > 0 tales que
Si x es un ejemplo de 1 , entonces R(x) es un ejemplo
de 2 con
OPT(R(x)) .OPT(x)
Si s es factible de R(x), entonces S(s, x) es factible de
x con
|OPT(x) C(S(s, x))| .|OPT(R(x)) C(s)|
Serafn Moral
AP-Reduccin
Reduccin
Decimos que el problema de optimizacin (minimizacin) 1 se
AP-reduce al problema 2 (minimizacin) ( 1 AP 2 ) si y
solo si existen dos funciones R(x, r ) y S(x, y, r ) espacio
logartmicas y una constante constantes > 0 tal que para
todo nmero racional r
Si x es un ejemplo de 1 , entonces R(x, r ) es un
ejemplo de 2
Si s es factible de R(x), entonces S(s, x, r ) es factible de
x y si OPTC(s)
(R(x,r )) r , entonces se verifica que:
S(s, x, r )
1 + (r 1)
OPT (x))
Si el problema es de maximizacin se invierte la fraccin.
Serafn Moral
AP-reduccin
Teorema
Si tenemos una AP-reduccin de 1 a 2 , entonces si 2 est
en APX, entonces 1 tambin lo est.
Teorema
Si tenemos una AP-reduccin de 1 a 2 , entonces si 2 est
en PTAS, entonces 1 tambin lo est.
Ejemplo
La reduccin entre el conjunto independiente mximo y el clique
mximo que transforma un grafo en el complementario y un conjunto de vrtices en l mismo es una AP-reduccin con = 1.
Serafn Moral