Professional Documents
Culture Documents
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
) , ( .
'
) (
) (
.
.
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)
..