You are on page 1of 11

Optimizacion Capitulo 5 - Algoritmos de Aproximacin

A menos que NP=P, los problemas NP-hard no tienen algoritmos polinomiales por
lo que un algoritmo que los resuela en !orma exacta puede tardar un tiempo
prohibitio" As# que debemos con!ormarnos con algoritmos polinomiales que den
soluciones aproximadas" $xisten dos categor#as de tales algoritmos% algoritmos de
aproximacin & algoritmos heur#sticos" $n esta seccin tratamos los primeros"
'ndiquemos con A un algoritmo de tiempo polinomial aplicado a un problema de
minimizacin NP-hard que obtiene un alor A(x) aproximado del ptimo para
cada instance x del problema" *ea Opt(x) el alor ptimo" $stamos interesados en
acotar el error relatio de A(x)" +ecimos que el problema es -aproximable si
existe ,- tal que para cualquier instance x del problema%

) (
) ( ) (
x opt
x opt x A
or A(x)(./) opt(x) (.)
$scribiremos tambien%
A(x) 0 opt(x) (0=./) (.)
$n el caso que se trata de un problema de maximizacin escribiremos%
A(x) 0 opt(x) donde 01. (.)
2eremos 3 casos%
.) *e satis!ace la desigualdad para alg4n ,-"
5) *e puede satis!acer la desigualdad (.) para cualquier ,- pre!i6ado"
3) No se puede acotar el error en la !orma (.)" +ecimos que el problema no es
aproximable"
Cuando se satis!ace (.) decimos que el problema es 0-aproximable"
$l resto de esta seccin es una serie de e6emplos"
1. JOB SCHEDULING
Consideremos m m7quinas iguales & n 6obs que requieren pi (=.,5,""",n) tiempo en
cualquiera de las m m7quinas" *e trata de asignar los 6obs a las m7quinas de !orma
que el tiempo total para hacer todos los 6obs sea m#nimo" $ste problema es NP-
hard (lo demostramos para m=5)" $l algoritmo aproximado es el siguiente"
8enemos a los 6obs en una lista ordenados de cualquier manera" Cada ez que una
m7quina queda disponible le asignamos el primer 6ob de la lista" *ea opt(x) el
m#nimo tiempo para realizar todos los 6obs usando este algoritmo" $l caso mas
!aorable ser#a que ninguna m7quina quedara parada como indica la !igura"
+e donde deducimos una cota in!erior
(ipi)9m opt(x)
.
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
Adem7s para cualquier i es obio que
pi opt(x)
Por otra parte sea s0 el instante cuando se inicia el 4ltimo 6ob & A(x) el instante
que termina"
Obseramos que antes del instante s0 todas las m7quinas deben est7r !uncionando
de donde deducimos
s0(i0 pi)9m
+e donde
A(x)=s0/p0 (i0 pi)9m / p0= (i pi)9m / (.- .9m)p0 opt(x) / (.-.9m)opt(x)
A(x) (5-.9m)opt(x)
+e manera que este algoritmo es (5-.9m):aproximable"
2. BIN PACKING
a.,""",an son n4meros no negatios que no superan a ." 'maginemos a los ai como
los pesos de items a cargar en camiones & que el limite de peso de un camin es ."
$l problema consiste en cargar los n items en un m#nimo n4mero de camiones"
$l siguiente algoritmo aproximado se llama firs fi" Cargamos los items a., a5,"""
en los camiones ;.,;5"""" $l item ai se carga en el primer ;0 donde quepa"
<lamemos leel(;0) al peso que contiene el camin ;0"
+educiremos una acotacin del tipo (.)" Primero, adirtamos la cota
a./"""/an1 opt(x)
*egundo, obseremos que no puede haber dos camiones no ac#os que tengan
leel .95 porque pasar#amos parte de carga de uno a otro"
+e manera que si cargamos en total 0 camiones debemos tener
leel(;i),.95 para todo i excepto un camion a lo sumo 5 leel(;i),. 5(a./"""
/an), 0-./" Como 0-./1=0 5a./"""/an1,0
5opt(x),A(x)
Asi este algoritmo es 5-aproximable"
!. NODE CO"E#
*e trata de hallar un m#nimo con6unto C= de ertices de un gra!o > tal que toda
rama de > sea incidente en un ?rtice de C="
+amos 5 e6emplos" $l primero es 5-aproximable" $n cambio, para el segundo no
existe 0 tal que sea 0-aproximable"
Algoritmo .
C=ac#o
@hile there is an edge (u,) add u and to C and delete u and !rom >"
$nd
+emostracin que el algoritmo es 5-aproximable%
5
A(x)
s0
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
*ea C= un minimo coer"
Obseremos que C95 es el n4mero de ramas elegidas por el algoritmo" Ademas
estas ramas son dis6untas" Ano de sus ertices por lo menos pertenece a C=" Asi
que C= C95 C 5C=
$6emplo de un algoritmo cu&o error porcentual es tan grande como se quiera%
Algoritmo 5
C=ac#o
@hile $ no es ac#o
$legir nodo de ma&or grado, agregarlo a C & suprimirlo de >
$nd
Obseremos que este algoritmo es intuitiamente me6or que el anterior,
*in embargo podemos construir un > tal que el error del algoritmo precedente
sea tan grande como se quiera" Construimos > de la siguiente manera" > contiene%
.) Bamas (ci,bi) (i=.,5,""",n)
5) Particionamos los bi en con6untos de 5 ertices & unimos cada par con un
nueo ?rtice a0, 0=.,5,""",Cn95D
3) Particionamos los bi en con6untos de 3 ertices & unimos cada terna con un
nueo ?rtice a0 , 0= Cn95D/., Cn95D/5,""", Cn95D/Cn93D
E) """,etc
5) Animos los ?rtices b.,""",bn-. con un nueo ?rtice a<(n)
Obseramos que el n4mero de ?rtices aFs es
<(n)= Cn95D/Cn93D/"""/Cn9n-.D (CaD= parte entera de a)
*e puede er que el > as# !ormado tiene a<(n) como ?rtice de ma&or grado" *i
suprimimos esta a<(n) de > resulta que otro ertice a0 es el de ma&or grado, etc"
<uego que suprimimos todos los aFs es necesario suprimir los n bFs para terminar
el cubrimiento seg4n el algoritmo" Por lo tanto A(x)=<(n)/n" Pero Opt(x)=n
porque los bFs son un cubrimiento m#nimo" As# el error relatio es <(n)9n que
crece como log5 n"
$. %SP
$l problema del ia6ante es el siguiente" +ado un gra!o completo Gn con n ?rtices
& una !uncin de!inida sobre sus ?rtices c%$B, hallar un circuito hamiltoniano
de m#nimo costo" +emostramos que no existe ning4n algoritmo 0-aproximable
para 8*P en general" $n cambio, si la distancia entre ciudades satis!ace la
propiedad triangular demostraremos que es aproximable"
%&'r&ma
$l 8*P no es aproximable a menos que P sea igual a NP"
+emostracin
Hostraremos que si A polinomial aproximara a 8*P entonces resoler#a el
problema IAH'<8ON CJC<$ (lo que implica que NP=P)"
*ea >=(2,$) un gra!o & de!inimos un costo para el gra!o completo dado por
3
Optimizacion Capitulo 5 - Algoritmos de Aproximacin

'

E j i para n
E j i para
d
ij
) , ( 5
) , ( .

*i existe un ciclo hamiltoniano el costo optimo es n"


*i no existe, el costo optimo es ma&or que n-. / 5/n, n(./)=n0
*upongamos que A es un algoritmo -approximable para el 8*P"
*i aplicado A da un ciclo de costo n entonces es hamiltoniano" $n caso contrario
nos dar7 un ciclo de costo ma&or n0" *i opt es el costo optimo & suponiendo que
8*P es aproximable debemos tener n09opt 10, es decir, n1opt > no es
Iamiltoniano" Por tanto, el algoritmo A nos permitiria decidir si > es
hamiltoniano
+e!inicin% <lamaremos 8*P al problema del ia6ante cuando la distancia entre
sus ?rtices cumple la propiedad triangular"
8eorema
8*P es NP-hard
+em" % <a misma que para 8*P
Para 8*P deduciremos dos algoritmos de aproximacin% el primero es 5-
aproximable & el segundo 395 : aproximable" $ste 4ltimo !ue descubierto
posteriormente al primero"
Primero, necesitamos algunos resultados de teor#a de gra!os%
+e!inicin% An multigrafo es un gra!o que admite m7s de una rama entre ?rtices"
Proposicin $n un gra!o (o multigra!o) la suma de los grados de sus ?rtices es
igual al doble del n4mero de ramas" (el grado de un ?rtice es el n4mero de ramas
que inciden en el ?rtice)"
+em% Por induccin
Corolario $n un gra!o el numero de ertices de grado impar es par"
+e!inicin% $n un multigra!o llamamos walk a una secuencia de ertices & ramas%
u.e.u5, u5 e5 u3, ,""",un en un/. donde ei es una cualquiera de las ramas entre los
ertices ui & ui/." +ecimos que el Kal0 es cerrado si u.=un/." An circuito
euleriano es un Kal0 cerrado donde aparecen todas las ramas del multigra!o
exactamente una ez cada una" (Adirtamos que en un circuito euleriano aparecen
todos los ?rtices por lo menos una ez cada uno)" An gra!o lo llamamos
euleriano si contiene un circuito euleriano"
%&'r&ma ($uler)
An multigra!o contiene un circuito euleriano sii es conexo & todos sus ?rtices
tienen grado par"
E
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
+emostracin%
'maginemos que el circuito recorre el gra!o entonces debe salir & entrar por cada
ertice" *e sigue que el grado de los ertices debe ser par" Por otra parte es obio
que el gra!o debe ser conexo"
+emostremos ahora que la condicin es su!iciente" Por induccin"
*ea u- cualquier ?rtice" Partiendo de u- entremos en otro ?rtice u." *algamos de
u. & pasemos a u5 lo que podemos hacer porque el ?rtice es par""" podemos
continuar as# usando el mismo argumento hasta que eentualmente entramos de
nueo en u-" *i este Kal0 cerrado contiene todas las ramas del gra!o el teorema
est7 demostrado" *i no, borremos las ramas usadas en este subcircuito &
consideremos las componentes conexas del gra!o que resta" Para cada una de estas
tenemos un circuito euleriano por induccin" LMuntemosL todos estos subcircuitos
& el teorema est7 demostrado"
'lustracin de construccin de circuito euleriano
+os algoritmos para 8*P
<ema .
*ea Gn con un costo c triangular de!inido sobre sus ramas"
*ea >=(2,$) un multigraph euleriano con los mismos ertices que Gn " *ea
c($)=(i,6)$ ci6" $xiste un ciclo hamiltoniano en Gn cu&o costo c() c($)" A lo
llamamos imbedded en el Kal0 euleriano"
+emostracin
Por hiptesis ha& un Kal0 euleriano K" *u costo es c($)" K se puede expresar en la
!orma %
K=K- i.K. i5"""Kn-.inKn
donde i.,""",in, !orman un camino hamiltoniano & los Ki son secuencias !ormadas
con N.,5,"""nO" Por la propiedad triangular c($)c()"
5
i.
u-
C.= .er subcircuito >% gra!o original
> menos ramas de C. C5 C3
Circuito euleriano
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
Algoritmo .
." encontrar un minimo spanning tree 8 en Gn
5" Creamos un multigraph > duplicando las ramas de 8
3" $ncontrar un Kal0 euleriano & un ciclo hamiltoniano embedded"
%&'r&ma
$l algoritmo . es 5-aproximable
+emostracin
8 es conexo & al doblar sus ramas > es euleriano"
*ea c- el costo minimo de un ciclo hamiltoniano"
;asta mostrar por el teorema que c($)5c-
8enemos que c($)= 5"c(8)
c(8) c- porque un ciclo hamiltoniano menos una rama es un spanning tree
Algoritmo 5 (Chriso!ides)
Obseracin% $n un gra!o completo con un n4mero par 5n de ?rtices ha& un
matching completo de n ramas &, por lo tanto, un m#nimo matching
completo"
*ea Gn un gra!o completo con n ?rtices con un costo c de!inido sobre sus ramas"
.) *ea 8 un m#nimo spanning tree de Gn"
5) *ea H un matching completo m#nimo del gra!o completo !ormado por los
?rtices de grado impar de 8"
3) *ea > el multigra!o constru#do con los n ?rtices cu&as ramas son la union de
las ramas de 8 & H & los costos de ramas dados para Gn"

%&'r&ma
> es euleriano" *ea un circuito hamiltoniano imbedded en un circuito euleriano
de > " $ntonces c()395 c- donde c- es el m#nimo costo de un circuito de
Iamilton en Gn"
+emostracin
$l numero de ertices de grado impar de 8 es par por corolario de proposicion"
Por lo tanto, ha& un matching completo m#nimo sobre los ?rtices impares" $n
cada uno de estos ertices incide una rama de H que sumada a las ramas de 8
resultan en grado par" Por lo tanto todos los ertices de > son pares"
Consideremos un circuito euleriano en > & sea un ciclo hamiltoniano imbedded"
Por el lema c()c($)=c(8)/c(H)
Ahora obseremos que si sacamos una rama a un ciclo halmiltoniano tenemos un
arbol" Por tanto debe ser
c(8)c- (=costo del ciclo hamilt minimo)
Besta que demostremos que
c(H) P c-
Q
Circuito hamiltoniano
embedded
in
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
Podemos escribir el ciclo hamiltoniano optimo - = ..5 """ 5m5m donde
.,""",5m son los ?rtices de grado impar de 8" Por la propiedad triangular%
c-= c(-) Cc(.,5)/ c(3,E) /"""/ c(5m-.,5m)D/
Cc(5 3)/ c(E,5)/"""/ c(5m-5,5m-.)/ c(5m,.)D
Obseremos que las 5 sumas entre corchetes son los costos de 5 matchings de los
ertices impares de 8" Pero cada uno de estos es que el costo del m#nimo
matching c(H) as# que c-5 c(H)
(. KNAPSACK
Becordemos el problema de GNAP*ACG" +ados enteros no negatios a.,""",an, G,
existe un subcon6unto de los aFs que sume GR
<lamamos GNAP*ACG +$C'*'ON al siguiente problema% dados enteros no negatios
c.,""",cn, K., """,Kn, G, @
existe PN.,5,"""nO tal que iP ci G & iP Ki @R
'nterpretamos la situacin como la de tener n items de alores ci & pesos Ki &
preguntamos si ha& un subcon6unto de items de peso total no ma&or que @ & alor
total no menor que G"
<lamamos GNAP*ACG OP8'H'SAC'TN al siguiente problema de optimizacin%
max cixi
su6eto a Kixi @ (.)
xi=-,. (i=.,5,""",n)
Hostremos a continuacin que GNAP*ACG OP8'H'SAC'TN es NP-hard, es decir
cualquier problema de NP es polinomialmente trans!ormable en el"
L&ma
GNAP*ACG +$C'*'ON es NP-completo"
+emostracin
8rans!ormamos GNAP*ACG en GNAP*ACG +$C'*'ON"
Consideremos el problema de si existe P tal que
iP ai G & iP aiG
C'r')ari'
GNAP*ACG OP8'H'SAC'TN es NP-hard"
+emostracin
8rans!ormamos GNAP*ACG +$C'*'ON en GNAP*ACG OP8'H'SAC'TN"
Obseramos que iP ciG & iP Ki@ sii el max de (.) no es menor que G"
Hostramos a continuacin que dado ,- existe un algoritmo polinomial que
soluciona toda instancia de GNAP*ACG OP8'H'SAC'TN con un error menor que "
U
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
Primero resolemos el problema en !orma exacta con un algoritmo
pseudopolinomial mediante programacin din7mica" +escribamos (.) como el
problema de elegir un subcon6unto *N.,5,""",nO tal que la suma de los valores ci
sea m#nima & la suma de los pesos pi no supere a G"
!6(0)% peso m#nimo de un subcon6unto de N.,5,""",6 O cu&a suma de alores = 0"
!i(0)= si no existe tal subcon6unto"
Asaremos las condiciones de borde !6(-)=- (6=.,5,""",n)" Adertimos la alidez de
la siguiente !orma de recurrencia"
Para cada 0=.,5,""",C (C=i ci) calculamos
!6(0)=

'

) (
) (
.
.
j j j
j
p k f w
k f
minimo
para 6=.,5,""",n
$l tiempo de e6ecucin del algoritmo es proporcional al n4mero de eces que
calculamos !, es decir, O(nC)" <lamando cmax =maxi ci como Cncmax as# que el
tiempo de e6ecucin es
O(n
5
cmax)"
+ado ,- emos como podemos conseguir una solucin aproximada reduciendo
el tiempo de e6ecucin" $n (.) sustitu#mos
ci por
1
]
1

k
c
i
(5)
donde 0 es un !actor de escala, por e6emplo, 0=.-
t
" +eterminaremos 0 de !orma
que el max de (.) quede determinado con un error relatio "
*ea *= el subcon6unto de N.,5,""",nO ptimo de (.)"
*ea *0 el subcon6unto de N.,5,""",nO ptimo de (.) con la sustitucin (5)
6*(0) c6 6*(0) 0
1
]
1

k
c
i
porque c60
1
]
1

k
c
i

6*(0) 0
1
]
1

k
c
i
6*= 0
1
]
1

k
c
i
porque 6*(0)
1
]
1

k
c
i
6*=
1
]
1

k
c
i
6*= 0
1
]
1

k
c
i
6*= (c6-0) porque 0
1
]
1

k
c
i
c6 - 0
=6*= c6 - 0*= 6*= c6 - 0n
*e deduce que 6*= c6 - 6*(0) c6 0n
= (6*= c6 - 6*(0) c6 )9 (6*= c6) 0n9cmax
V
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
<o que muestra que !i6ando 0 podemos obtener un error relatio pre!i6ado" A su
ez queda disminu#do el tiempo de e6ecucin en O(n
5
cmax90)"
*. +A,-SA%
*ea C.,C5,""",Cm m cl7usulas en las ariables booleanas x.,x5,""",,xn" *e trata de
asignar a las xFs alores -,. de !orma que sea m7ximo el n4mero de las cl7usulas
satis!echas" $ste problema es NP-hard porque *A8 se reduce a HAW-*A8 cuando el
m7ximo es m" Apelaremos a un m?todo probabil#stico para resoler HAW-*A8"
'maginemos que las xi son reemplazadas por ariables aleatorias independientes i
tal que PNi=-O= PNi=.O= P " *ea el n4mero aleatorio de clausulas satis!echas"
<a probabilidad que una cl7usula dada sea satis!echa es .-(.95)
C
donde Ces el
n4mero de literales que tiene la clausula" Por lo tanto, el n4mero esperado de
cl7usulas es
$NO =C.-(.95)
C
D (la suma se extiende a las m cl7usulas)" (.)
*e deduce que
$NO C.-(.95)
p
D m donde p=minc
*ea opt(x) elm7ximo del problema HAW *A8 para la instance x" Obiamente
opt(x)m" As# que,
$NO C.-(.95)
p
D Opt(x) (5)
Por lo tanto, si consideramos que reemplazar las xi por alores al azar es un
algoritmo resultar#a por (5) que este algoritmo es C.-(.95)
p
D : aproximable" *in
embargo, deseamos un algoritmo determinista" Para eso procedemos de la
siguiente manera"
'maginemos haber de!inido n4meros binarios para las primeras 0 xFs que
llamamos ., 5,""", 0 (i=-,.)" J reemplazamos el resto de las xFs por ariables
aleatorias 0/., 0/5, """,n" $l n4mero aleatorio de cl7usulas satis!echas en estas
condiciones indiquemoslo mediante (., 5,""", 0, 0/., 0/5, """,n)" Obseremos
que la esperanza de esta ariable se puede calcular de !orma parecida a (.)" Por
otra parte, tenemos lo siguiente%
E(., 5,""", 0, 0/., 0/5, """,n)= P E(., 5,""", 0, -, 0/5, """,n)/
P E(., 5,""", 0, ., 0/5, """,n) (3)
+e!inamos 0/. que sea - . seg4n cual sea ma&or de las dos EFs del segundo
miembro de (3)" As# que resulta%
E(., 5,""", 0, 0/., 0/5, """,n) E(., 5,""", 0, 0/., 0/5, """,n) (E)
Algoritmo
Partiendo de E()=E(., 5,""",n) dado por (.), calcular sucesiamente
E(., 5,""", 0, 0/., """,n) hasta (., 5,""", n)"
X
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
.5,""", n es la asignacion que da el algoritmo a las ariables x.,x5,""",,xn"
8eniendo en cuenta (5) & (E) resulta que el n4mero de cl7usulas satis!echas por
dicha asignacin (., 5,""", n) satis!ace%
(., 5,""", n) C.-(.95)
p
D Opt(x)
$s decir el algoritmo es C.-(.95)
p
D : aproximable"
Pracica -&) ca.i/)' -& a)0'rim's -& a.r'1imaci'n
$6ercicio -
Consideremos el problema del ia6ante" 'ndiquemos con Opt(x) el alor optimo
para la instancia x" *ea 2HP(x) el alor que resulta de aplicar el algoritmo del
ecino mas proximo" Hostrar una instancia x para la cual 2HP(x)9Opt(x)G para
cualquier G arbitrariamente grande
$6ercicio -".
*e tiene que cargar n items de peso ci en camiones de capacidad ; (ci;) usando
un minimo de camiones" Hostrar que si ci ,;93 el problema puede ser !ormulado
como un problema de matching (papa 5E5)"
$6ercicio.
Becordemos que CA;B'H'$N8O POB NO+O*, C<'YA$ & CM8O
'N+$P$N+'$N8$ son equialentes" Puede Ad trans!ormar el algoritmo 5 de la
seccion ! en algoritmos aproximados para C<'YA$ & CM8O 'N+$P$N+'$N8$"
Porque noR (papa E3-)
$6ercicio 5
An Iamilton Kal0 de un gra!o >=(2,$) es un Kal0 cerrado que isita cada nodo
por lo menos una ez" a) Hostrar que el Iamilton Kal0 es NP-hard" b) +ar un
algoritmo P -aproximable para este problema (papa E3.)
$6ercicio 3
8eorema .". (dorit 5)
$6ercicio E
<emma .". (dorit ..) ZRRR
$6ercicio 5
Hostrar que para n existe un gra!o bipartito con 5n ertices para el cual el
algoritmo de coloreo necesita n colores" Por otra parte mostrar que existe un
ordenamiento de los ertices para el cual el algoritmo necesita 5 colores (0orte
3X5)

$6ercicio Q
[ormulate a 5-!actor approximation algorithm !ot the !oloKing problem" >ien a
digraph Kith edege Keights, !ind a directed ac&clic subgraph o! maximum Keight"
$6ercicio . (0orte 3X-) RRR
$6ercicio V
.-
Optimizacion Capitulo 5 - Algoritmos de Aproximacin
*e tienen que cargar n items de peso ci en camiones de capacidad ; (ci;) usando
un minimo de camiones" *e usa el siguiente algoritmo (next !it)" *ean ;. ,
;5, """,;0 los camiones cargados hasta ahora & sean x. x5 """xi los items cargados
hasta ahora" *i xi/. cabe en ;0 se lo carga" *i no se cierra el camion ;0 & se carga
xi/. en ;0/." Hostrar que para next !it se tiene A(x) 5 OP8(W) :. (dorit EX)
..

You might also like