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