You are on page 1of 8

Optimizacin Captulo7 Recocido Simulado

Simulated Annealing - Threshold algorithms (threshold = umbral)


El algoritmo de recocido simulado (Simulated Annealing Algorithm - SAA) pertenece a
una clase de Algoritmos de us!ueda local ("ocal Search Algorithms "SA) comunmente
llamada Algoritmos de #mral ($hreshold Algorithm - $A)% &a' dos razones por las
cuales los $A resultan interesantes dentro de los "SA(
)) parecen andar ien en una amplia gama de prolemas reales (practicos)
*) algunos $A+ como el SAA+ tienen caracteristicas !ue permiten hacer un analisis de la
con,ergencia%
Esqueleto de un TA
Sea (S+c) una instancia de un prolema de optimizacion cominatoria+ donde(
S es el con-unto de soluciones .actiles
c es la .uncion costo (a ,alores reales positi,os)
El prolema es hallar un i en S !ue minimize c%
/ara implementar un $A son necesarios ademas(
#na .uncion entorno 0 de S en partes de S%
#na sucesion t1 (los llamados threshold)
"a manera de elegir los t1 ' el criterio de aceptacion de una nue,a solucion de.inen 2 tipos
de $A(
3ado i en S en la iteracion 1
4enero - en 0(i)
#tilizo los ,alores c(-) c(i) ' t1 para decidir aceptar o no la solucion -
Local Search Improvement (me-ora continua)( t1 5 6 (para todo 1)
Si c(-) c(i) 7 t1 5 6 entonces acepto -

Threshold Accepting (umral de aceptacion)( se .i-a la sucesion t1 tal !ue t1 t18)+ t1 9 6+
' t1 tiende a 6 cuando 1 tiende a in.inito%
Si c(-) c(i) 7 t1 entonces acepto -
En este caso+ todas las soluciones !ue disminu'en el costo son aceptadas+ ' las !ue
incrementan el costo son aceptadas en .orma limitada% A medida !ue aumenta 1 (progresa
el algoritmo) solo se aceptan incrementos pe!ue:os+ hasta !ue e,entualmente solo se
aceptan me-oras%
Simulated Annealing (recocido simulado)( los t1 se toman como en el threshold accepting
pero el criterio de aceptacion es proailistico
Si c(-) c(i) 6 entonces acepto -
)
Optimizacin Captulo7 Recocido Simulado
Si c(-) c(i) 9 6 entonces acepto - con proailidad e;p <(c(i) c(-)) = t1>
(en la iteracion 1 se genera un numero al azar r ' se acepta - si r 7 e;p <(c(i) c(-)) = t1>)
En este caso+ cada ,ecino de una solucion tiene una proailidad positi,a de reemplazar a
la solucion actual% "os t1 se eligen de .orma tal !ue a medida !ue a,anzan las iteraciones+
aceptar soluciones con grandes incrementos en el costo es menos proale (pero sigue
e;istiendo una proailidad positi,a de aceptarlos)%
Analogia Fisica
El metodo del recocido se utiliza en la industria para otener materiales mas resistentes+ o
mas cristalinos+ en general+ para me-orar las cualidades de un material%
El proceso consiste en ?derretir@ el material (calentarlo a mu' alta temperatura)% En esa
situacion+ los atomos ad!uieren una distriucion ?azarosa@ dentro de la estructura del
material ' la energia del sistema es ma;ima% "uego se hace descender la temperatura mu'
lentamente por etapas+ de-ando !ue en cada una de esas etapas los atomos !ueden en
e!uilirio (es decir+ !ue los atomos alcancen una con.iguracion optima para esa
temperatura)% Al .inal del proceso+ los atomos .orman una estructura cristalina altamente
regular+ el material alcanza asi una ma;ima resistencia ' la energia del sistema es minima%
E;perimentalmente se compruea !ue si la temperatura se hace descender ruscamente o
no se espera su.iciente tiempo en cada etapa+ al .inal la estructura del material no es la
optima%
"a rama de la Aisica llamada Becanica Estadistica se encargo de desarrollar una serie de
metodos para estudiar el comportamiento de grandes cantidades de atomos de un sistema%
3eido a !ue en promedio+ en un sistema ha' )6
*2
atomos por cm
2
+ solamente puede
estudiarse el comportamiento mas proale del sistema en e!uilirio a una dada
temperatura% "a e;perimentacion mostro !ue los atomos de un sistema en un proceso de
recocido se comportan segCn el .actor de proailidad de Doltzman% En )EF2 Betropolis
modelo el proceso de recocido( en cada paso del algoritmo se le da al atomo un
desplazamiento azaroso ' se mide el camio de energia E% Si E 6 se acepta el
desplazamiento% Si E 9 6+ se acepta el desplazamiento con proailidad e;p (-E = $%G)+
donde $ es la temperatura del sistema ' G es la constante de Doltzman%
The simulated annealing method (El metodo del ecocido Simulado)
Sea S el con-unto de soluciones posiles del sistema (a las !ue identi.icamos con los
di.erentes ?estados del sistema@) ' tenemos dada una .uncion costo sore los elementos de
S (a la !ue identi.icamos con la ?energia del sistema@)% Se !uiere encontrar un elemento en
S !ue minimize la .uncion costo (analogamente+ se trata de encontrar un estado en el cual
la energia del sistema sea minima)% Asumimos !ue los estados del sistema tienen la
.uncion de distriucion de proailidad de Doltzman+ i%e%+ la proailidad de !ue el
sistema se encuentre en el estado - es(
/ (-) 5 ()=Ht) e;p <- c(-) = t>
3onde Ht 5 e;p <- c(i) = t> (suma sore todos los elementos i de S)
t es la temperatura del sistema ' c(i) es el costo de la solucion i%
*
Optimizacin Captulo7 Recocido Simulado
Sea SI el sucon-unto de S de las soluciones !ue minimizan c (gloalmente+ es decir
soluciones optimas del prolema)% /ara t su.icientemente chico(
e;p <- c(-I) = t> 99 e;p <- c(-) = t>
para todo - J5 -I
Entonces(
/ (-) 5 e;p <- c(-) = t> = KSI e;p <- c(-I) = t>L 5 6 si - J5 -I
)=SI si - 5 -I
(Esto se otiene de tomar t tendiendo a 6)
/or lo tanto( / (-I) 5 ) (suma sore todos los -I en SI)%
Simulated Annealing Algorithm (Algoritmo de ecocido Simulado)
Mersion monotona
El algoritmo se di,ide en etapas% A cada etapa le corresponde una temperatura menor !ue
la !ue tenia la etapa anterior (a esto hace re.erencia la monotonia( despues de cada etapa la
temperatura a-a+ se en.ria el sistema)% /or lo tanto hace .alta un criterio de camio de la
temperatura (?cuanto tiempo@ se espera en cada etapa para dar lugar a !ue el sistema
alcance su ?e!uilirio termico@)%
3atos iniciales ' parametros a ser de.inidos para poder inicializar el algoritmo(
Temperatural inicial (T0)
"a temperatura inicial $6 dee ser una temperatura !ue permita casi (o todo) mo,imiento+
es decir !ue la proailidad de pasar del estado i al - (en 0(i)) sea mu' alta+ sin importar la
di.erencia c(-) c(i)% Esto es !ue el sistema tenga un alto grado de liertad% En prolemas
como $S/+ donde el input son los nodos de un gra.o ' las soluciones posiles son distintas
.ormas de recorrer estos nodos+ pude tomarse $6 proporcional a la raiz cuadrada de la
cantidad de nodos% En general se toma un ,alor $6 !ue se cree su.icientemente alto ' se
oser,a la primera etapa para ,eri.icar !ue el sistema tenga un grado de liertad ' en
.uncion de esta oser,acion se a-usta $6%
Solucion inicial (i6)
En todas las ,ersiones+ el sistema dee ser ?derretido@ antes de implementar el algoritmo%
Esto es !ue la solucion .actile incial !ue llamamos i6 deeria ser una solucion
tomada al azar del con-unto de soluciones .actiles% En algunos prolemas esto puede
hacerse utilizando pseudo-random numers pro,istos por una ma!uina (e-emplo de
esto es el andNidth prolem)% /ero en muchos casos 'a es prolemOtico encontrar
una solucion+ por lo !ue es imposile tomar una al azar% En estos casos se implementa
un algoritmo ?greed'@ tipo local search para uscar una solucion .actile ' se toma
esta como i6 (e-emplo de esto es el $S/)%
Funcion entorno (N)
2
Optimizacin Captulo7 Recocido Simulado
Factor de enfriamiento
$ne;t 5 $ (.actor de en.riamiento geometrico+ 7 )+ mu' cercano a ))
$ne;t 5 ) = () 8 $) (donde es un real positi,o cercano a cero)
Criterio de cambio de la temperatura
Se usan dos parametros( G 5 cantidad de iteraciones !ue estamos dispuestos a hacer en
cada etapa (e!ui,alente a la cantidad de tiempo !ue ,amos a esperar a !ue el sistema
alcance su e!uilirio termico para una dada temperatura $)P A 5 cantidad de aceptaciones
!ue se permiten hacer en cada etapa%
A medida !ue $ disminu'e se supone !ue al sistema le resulta mas di.icil alcanzar un
e!uilirio por!ue es mas di.icultoso el mo,imiento+ entonces ha' !ue esperar mas tiempo+
esto se traduce en aumentar G%
Parametro de aumento de K (+ se usan ,alores alrededor de )+6F)
Criterio de STOP
a) "und' and Bees( si el algoritmo se detiene cuando $ 7 = <ln (QS ))=>
3onde QS es el cardinal del con-unto de soluciones (dee tenerse un metodo de estimar
este ,alor)%
Entonces+ si i es la solucion !ue da el algoritmo e iI en un optimo gloal+
/(Rc(i) c(iI)R 7 ) 5
) En general se utiliza un parametro de congelamiento (.rozen( ARH0)% Como a medida
!ue disminu'e la temperatura+ aumenta el parametro G ' A permanece constante+ la
proporcion A=G se hace pe!ue:a% Asumimos !ue si A=G 7 ARH0 el sistema esta congelado
(la cantidad de aceptaciones respecto de la cantidad de iteraciones es mu' chica+ esto da la
idea de !ue camiar de con.iguracion es mu' di.icil)%

El algoritmo(
)% i 5 i6
*% $ 5 $6
2% G 5 G6
S% Nhile (condicion de S$O/)
F% Nhile (1 7 G TT a 7 A)
U% generar - en 0(i)
7% i. (c(-) c(i) 7 6)
V% i 5 -
E% a 5 a 8 )
)6% else
))% generar un numero r al azar (pseudo-random numer)
)*% i. (r 7 e;p <(c(i) c(-))=$>)
)2% i 5 -
)S% a 5 a 8 )
)F% 1 5 1 8 )
)U% $ 5 $
)7 G 5 G
S
Optimizacin Captulo7 Recocido Simulado
)V% 1 5 6
)E% a 5 6
*6% mostrar i+ c(i)
Mersion no monotona (.ast cooling)
Se utiliza un factor de calentamiento !ue permite en.riar mas rapidamente el sistema% Esto
es+ elegir un .actor de en.riamiento menor ' considerar !ue si en una etapa dada+ con
una temperatura $+ el algoritmo no alcanza a realizar A aceptaciones es por!ue el sistema
se en.rio ?demasiado rapido@ ' entonces en la siguiente etapa se multiplica $ por un .actor
de calentamiento () 7 7 *+ ,alores clasicos( ma'ores a )+*F)% Wmaginar !ue en una
etapa se alcanzo un minimo local ' la temperatura $ es mu' a-a+ entonces la proailidad
de poder salir del minimo es tamien mu' a-a+ por eso se aumenta un poco la temperatura
para !ue en la siguiente etapa la proailidad de ?salir@ del minimo local sea ma'or%
En este caso el algoritmo !ueda asi(
)% i 5 i6
*% $ 5 $6
2% G 5 G6
S% Nhile (condicion de S$O/)
F% Nhile (1 7 G TT a 7 A)
U% generar - en 0(i)
7% i. (c(-) c(i) 7 6)
V% i 5 -
E% a 5 a 8 )
)6% else
))% generar un numero r al azar (pseudo-random numer)
)*% i. (r 7 e;p <(c(i) c(-))=$>)
)2% i 5 -
)S% a 5 a 8 )
)F% 1 5 1 8 )
)U% i. (a 5 A)
)7% $ 5 $
)V% else (1 5 G)
)E% $ 5 $
*6% G 5 G
*)% 1 5 6
**% a 5 6
*2% mostrar i+ c(i)
Aplicaciones
!and"idth #roblem (!$#)% 3ado 4 un gra.o con 0 nodos ' B ramas+ un eti!uetado de
4 es una numeracion de los 0 ,ertices% 0otar !ue ha' 0J eti!uetados posiles%
3ado un eti!uetado s de 4+ sea As la matriz de ad'acencia ,ertice-,ertice de 4+ entonces
As es una matriz de 0;0+ simetrica ' inaria% 3e.inimos el ancho de anda de As como la
ma;ima distancia de un ) a la diagonal+ es decir(
h(As) 5 ma; Ki - = ai- 5 )+ i7-L 5 ma; KRi -R = ai- 5 )L
F
Optimizacin Captulo7 Recocido Simulado
X de.inimos el ancho de anda de 4 como el minimo ancho de anda sore todos los
eti!uetados posiles de 4(
h(4) 5 min Kh(As) = s es un eti!uetado de 4L
El DY/ consiste en encontrar un eti!uetado de 4 !ue minimice la .uncion h% En los
terminos 'a ,istos( el con-unto S es el con-unto de eti!uetados posiles+ la .uncion costo es
la .uncion h !ue ,a de S en los enteros+ ' lo !ue se !uiere es encontrar un s en S tal !ue
h(As) sea minima%
#n prolema clasico es resol,er ecuaciones del tipo A; 5 + donde A es una matriz
cuadrada simetrica ' rala (esto ocurre cuando la matriz A es la matriz de ad'acencia de un
4ra.o en el !ue 0 99 B)% "os procesos directos tienen comple-idad O(n
2
) mientras !ue
e;isten procesos para matrices de anda (and sol,ers) con comple-idad O(nD
*
) donde D
es el ancho de anda de la matriz A%
3e.inicion de entorno )( 0(s) 5 KsZ = sZ se otiene de s intercamiando dos .ilas ' las
correspondientes dos columnas de la matriz AsL
3espues de la e;perimentacion se ,io !ue considerando otra de.inicion de entorno el
algoritmo otenia los mismos ,alores en menos tiempo%
3e.inicion de entorno *( 0(s) 5 KsZ = sZ se otiene de s intercamiando una .ila o.ensi,a
con una .ila cual!uiera ' las correspondientes dos columnas de la matriz AsL
3onde una .ila o.ensi,a es una .ila en la cual ha' un ) !ue realiza el ancho de anda de
As%
TS#% 3ada una instancia del prolema del ,ia-ante+ con 0 ciudades+ ' la posiilidad de ir
de una a otra+ ' un costo asociado al ,ia-e entre cuales!uiera dos ciudades% El prolema es
hallar un circuito hamiltoniano de minimo costo% Este prolema puede resol,erse
utilizando un algoritmo de recocido%
Gir1patric1 et al% testearon el algoritmo aplicado al $S/% #na de las prueas !ue realizaron
.ue distriu'endo S66 ciudades dentro de un cuadrado di,idido en E sectores% El costo de
,ia-ar entre dos ciudades es proporcional a la distancia entre ellas (.i-ado un sistema
catersiano para todo el sistema+ la distancia entre dos ciudades es la suma de la di.erencia
de las pro'ecciones sore cada e-e)% Es necesaria una solucion inicial S6+ otenida
aplicando un algoritmo ?greed'@( partiendo de una ciudad ir a la mas cercana !ue aun no
ha'a sido ,isitada% X desde la ultima ciudad (cuando no !uede ninguna por ,isitar)+ ,ol,er
a la primera%
Ahora es necesario tener una de.inicion de entorno( dada una numeracion de las 0
ciudades+ un circuito hamiltoniano puede representarse como una tira de 08) numeros (a)+
a*+ a2+ %%% + a0+ a))+ donde en circuito es ir de a) a a*+ de a* a a2+ %%% + ' de a0 a a)% "os ,ecinos
del circuito se otienen de intercamiar cuales!uiera dos ciudades de lugar en la tira
(oser,ar !ue la nue,a tira sigue descriiendo un circuito hamiltoniano)%
U
Optimizacin Captulo7 Recocido Simulado
Ane&o' (n e)emplo simple
[ueremos hallar el ma;imo de .(;)5;
2
-U6;
*
8E66;8)66 entre ;56 ' ;52)% 3escriiremos
como resol,eriamos este prolema por SA% 3iscretizamos el rango de ,alores de ; con
,ectores inarios de F componentes entre 66666 ' )))))% Estos 2* ,ectores constitu'en S
las soluciones .actiles del prolema% /ara cada iS de.inimos 0(i)5K-( - resulta de
camiar una componente de iL es decir 0(i) tiene F elementos%
"e damos un valor inicial a T intuiti,amente+ por e-emplo+ $6 5)66 o F66 ' en cada
iteracion del algoritmo lo reduciremos en )6\+ es decir+ $1 5 6%E $1-) (cooling schedule)%
Cada iteracion consiste de lo siguiente(
3ada una solucion i elegir - al azar de 0(i) ' reemplazar - por i a menos !ue
Rechazar - si .(-).(i) ' 9e;pK(.(-)-.(i))=$1 L (donde es un numero al azar en (6+))
Valores de
la funcion 0 0 100 10000 16 3236
1 1 941 10001 17 2973
10 2 1668 10010 18 2692
11 3 2287 10011 19 2399
100 4 2804 10100 20 2100
101 5 3225 10101 21 1801
110 6 3556 10110 22 1508
111 7 3803 10111 23 1227
1000 8 3972 11000 24 964
1001 9 4069 11001 25 725
1010 10 4100 optimo 11010 26 516
1011 11 4071 11011 27 343
1100 12 3988 11100 28 212
1101 13 3857 11101 29 129
1110 14 3684 11110 30 100
1111 15 3475 11111 31 131
tabla 2
T bit vecino(! f(vecino! delta f cambiar"
10011
100 1 11 2287 112 no 10011
90 3 10111 1227 1172 no 10011
81 5 10010 2692 #0 si 10010
73 2 11010 516 2176 no 10010
66 4 10000 3236 #0 si 10000
59 3 10100 2100 1136 no 10000
tabla 3
T bit vecino f(vecino! delta f cambiar" vector
10011
500 1 11 2287 112 si 11
450 3 111 3803 #0 si 111
405 5 110 3556 247 si 110
364 2 1110 3684 #0 si 1110
328 4 1100 3988 #0 si 1100
295 3 1000 3972 16 si 1000
266 4 1010 4100$ #0 si 1010
239 5 1011 4071 29 si 1011
215 1 11011 343 3728 no 1011
7
Optimizacin Captulo7 Recocido Simulado
En la tala * mostramos F iteraciones partiendo de un $ inicial igual a )66% El algoritmo
llega a )6666 ' no puede salir de la atraccion de dicho ,alor en las pro;imas F6
iteraciones% El ,alor )6666 (;5)U) es un ma;imo relati,o dentro del entorno 0()6666)%
Esto muestra !ue el ,alor inicial de $ es mu' a-o para sacarlo de la trampa en !ue cae
partiendo de )66))% En la tala 2 mostramos E iteraciones partiendo de un $ inicial de F66
' se llega al optimo )6)6 (;5)6) en la iteracion 7% En las )F6 iteraciones restantes el ,alor
,isitado .ue el optimo o uno de sus ,ecinos% Esto muestra la importancia de acertarla en $6
/arOmetros para un planteo general
)) "a codi.icacion + la de.inicion del entorno ' la solucion inicial
*) El ,alor inicial de $6 ' el .actor de en.riamiento %
2) /ara camiar la temperatura se consideran dos parametros
G5 numero de iteraciones
A5 numero de iteraciones en !ue se acepta un camio
S) Aactor de calentamiento %
S) Si la .raccion A=G7 AROHE0 se detiene el algoritmo%
E-emplo( TS#
Codi.icacion "as n ciudades las numeramos de ) a n% "as nJ permutaciones son las
posiles soluciones% Sea i una permutacion 0(i)5K-( - resulta de i intercamiando dos
ciudades% #na solucion inicial la podemos otener por el algoritmo amicioso%
E-emplo ( Ancho de banda
Sea A una matriz cuadrada ' simetrica de n por n cu'os elementos son ceros o unos%
3e.inimos el ancho de anda N5Ki--( ai-5)L% Se trata de minimizar N intercamiando
.ilas ' correspondientes columnas% Es decir+ consideramos inicialmente !ue las .ilas '
columnas estan numeradas )+*+%%%+n% Se trata de hallar una permutacion de .ilas ' la misma
permutacion de columnas !ue haga minimo N%
"as permutaciones de )+*+%%%+n son las posiles soluciones% 3e.inimos el ,ecino de una
permutacion al !ue se otiene intercamiando dos .ilas ' las correspondientes columnas%
#A*TI*A
Considerar el prolema 1napsac1 siguiente% Se tienen n items con ,alores , )+ , *+%%%+ ,n '
pesos (enteros) p )+ p *+%%%+ pn ' un entero /% Se trata de hallar un sucon-unto de los items
cu'a suma de ,alores es mO;imo ' cu'a suma de pesos no e;ceda /%
3e.inir un algoritmo por simulated annealing ' programarlo para este prolema%
(Greher)77)
V