Informática20-1-2008 12:28

Así está mi cerebro, pero sin el simulado. Y eso que ha tenido tiempo de enfriarse un poco a lo largo de este fin de semana… Este post se gestó en estado de ebullición cerebral pero, ya que estaba escrito, publiquémoslo.

Esto del recocido es una de las metáforas curiosas que reinan en el mundo de la metaheurística; no es la única, comparte protagonismo con los algoritmos genéticos, los cúmulos de partículas y las colonias de hormigas…

Traducido también como enfriamiento simulado, el simulated annealing consiste en imitar el proceso del recocido industrial: se calienta un metal y se enfría lentamente para que las moléculas tengan tiempo de configurarse óptimamente; por lo visto, los cristales que se forman así son más perfectos y se reduce la energía interna. Esta idea inspira, en pocas palabras, un algoritmo que busca un valor lo más cercano posible al óptimo global de una función.

La manera más simple de buscar el óptimo podría ser aplicar búsqueda local a partir de una solución cualquiera. Imaginemos una función que queremos, por ejemplo, minimizar; elegimos un valor al azar, y nos dejamos caer siguiendo menos el gradiente hasta alcanzar un mínimo y quedar parados en un valle. ¿Cuál es el problema? Que lo más seguro es que acabemos en un mínimo local, si no tenemos la suerte de elegir caer por la pendiente adecuada.

Ahora imaginemos que estamos aplicando búsqueda local pero que, de vez en cuando, elegimos soluciones «peores», es decir, que no minimizan la función. Esto haría que pudiéramos saltar montañas enteras, para acabar en un valle mucho más profundo que en el que nos encontramos. El problema es ahora que saltar mucho puede ser también perjudicial, pues el algoritmo no se centra en mejorar exhaustivamente una solución, que es al fin y al cabo el objetivo de todo esto, conseguir un mínimo lo suficientemente bueno. ¿Qué se hace? Aquí entra en juego el recocido. Se usa un parámetro, llamado metafóricamente temperatura, que va descendiendo, es decir, enfriándose. Cuando la temperatura es alta, hay también una alta probabilidad de aceptar soluciones en principio «malas»; cuando es baja, la probabilidad de aceptar una solución peor es casi nula. Lo normal es que la probabilidad de aceptar una solución siga una distribución de Boltzmann; a efectos prácticos, significa que dicha probabilidad desciende exponencialmente.

Supongamos que la bola verde marca la solución inicial, que vamos mejorando a lo largo de la flecha 1; sin embargo, en un momento dado decidimos aceptar la solución que está arriba del todo, de calidad pésima si lo que queremos es minimizar. Sin embargo, esta solución nos lleva a un mínimo mejor que el que nos esperaba por el otro camino, con lo que quedaríamos más contentos que unas pascuas cuando termine de ejecutarse el algoritmo.

Simulated annealing

Y esto es todo, aquí acaba el primer capítulo de metaheurísticas divulgativas.

Vicisitudes12-1-2008 19:18

Cuántas veces habré tenido que escuchar lo contentos que tenemos que estar por vivir en Málaga. Parece que cada día deberíamos dar gracias a la providencia, pues no hay sitio donde se coma y se viva mejor que aquí. Lo mejor es que no lo dicen de boquilla: según esta encuesta del Eurobarómetro, los malagueños son los españoles más satisfechos de vivir en su ciudad, hasta un 96% está de acuerdo en que esto es jauja. Deben estar en la gloria con su Semana Santa, su Feria, sus prístinas playas y a saber cuántas cosas más. Se deben haber habituado ya a paisajes como éste, que por otra parte, son de lo más corriente:

Heimat percudida

Tengo paisanos que no tienen inconveniente en subir latas de cervezas a las laderas de Gibralfaro, pero que una vez vacías, no atinan a bajarlas y tirarlas a una papelera o un contenedor. No sabía que las latas pesaran menos cuesta arriba y llenas que cuesta abajo y vacías. Lo mismo se repite en la parada cabecera de la universidad y en la parada del Parque Tecnológico, es un fenómeno muy extendido por toda esta ciudad. Debo parecer un bicho raro, quejándome porque me asquea salir a la calle y ver la acera llena de mugre, cartones y restos de comida. Propongo una multa de 100 euros por cada «accidente», y subirla 10 euros por cada semana que pase sin pagar; la gente es puerca y no aprende de otra manera. Pero tranquilos, que nunca me veréis de alcaldesa…

ecoestadistica.com