l.l.A profile of Italian interest groups
3. The Creation of Consensus in the Final Run-Up to EMU
3.2. The Dini and Prodi Governments (1995-98)
annealing)
Según el Computational Science Education Project[C1],tal y como indica su nombre, el algoritmo conocido como recocido simulado (simulated annealing en inglés o SA) se basa en la analogía que puede establecerse entre el proceso mediante el cual un metal se enfría y solidifica formando una estructura cristalina de mínima energía, y la búsqueda del mínimo de un problema.
Para el Metaheuristic Network Project[M3] patrocinado por el Improving Human Potential Program de la Comisión Europea, el recocido simulado puede considerase el más antiguo de los algoritmos metaheurísticos y de los primeros en implementar una estrategia explícita que permitiese evitar los mínimos locales. Otros procedimientos de tipo metaheurístico son el Tabu Search (véase Glover[G2] y Laguna), Iterated Local Search, Evolutionary Algorithms y Ant Colony Optimization (véase Dorigo[D4] y Stützle).
El algoritmo del recocido simulado se basa en el desarrollado por Metropolis[M4] et al. en 1958 cuyo objetivo era determinar la configuración de equilibrio de un grupo de átomos a una temperatura dada. La aplicación de este algoritmo a problemas de optimización matemática fue planteada por vez primera por Pincus[P3] en 1970. Fueron Kirkpatrick[K3], Gerlatt y Vecchi quienes en 1983 propusieron y formularon sólidamente esta técnica para ser aplicada en problemas de optimización. El algoritmo emplea un método de búsqueda aleatoria y la idea fundamental es permitir que se acepten soluciones de peor calidad que la previa con el fin de evitar así los mínimos locales. La probabilidad de que esta situación se produzca se hace disminuir a medida que avanza el proceso de búsqueda del mínimo y una formulación propuesta para esa probabilidad es
exp f p T δ ⎛ = ⎜− ⎝ ⎠ ⎞ ⎟ (3.7.23)
donde δf es la variación de la función objetivo y T es el parámetro de control que recibe el nombre de temperatura del sistema por analogía con el proceso de recocido.
En la figura 3.7.4 se muestra la estructura básica del algoritmo de recocido simulado.
Evaluación Solución inicial
Estimación Temperatura Inicial
Generación Nueva Solución
Ajustar Temperatura Evaluación Nueva Solución
Actualización de Valores ¿Aceptación de la Nueva Solución? ¿Fin de la Búsqueda? Fin NO NO SI
Los aspectos básicos a tener en cuenta en esta técnica, los cuales se ampliarán a continuación, son:
• Generación de modificaciones aleatorias en las soluciones.
• Evaluación de las funciones del problema.
• La planificación del recocido, es decir, la temperatura inicial y las reglas que hacen que la temperatura descienda al avanzar el proceso de minimización.
El proceso de generación de nuevas soluciones a partir de las existentes debe introducir pequeñas modificaciones aleatorias y permitir que puedan darse todas las soluciones posibles. Así, Vanderbilt[V2] y Louie propusieron la generación de soluciones en problemas con variables de control continuas mediante la fórmula
1 i+ = +i
x x Qu (3.7.24)
donde u es un vector de números aleatorios en el intervalo
(
− 3, 3)
, de manera que la media sea cero y la varianza la unidad. Por otro lado, Q es una matriz que controla la distribución del tamaño del paso y debe ser recalculada al avanzar el proceso, con el consiguiente costo computacional.Otra posible formación del mismo proceso es la planteada por Parks[P4]: 1
i+ = +i
x x Du (3.7.25)
donde, en este caso, u es un vector de números aleatorios en el intervalo (-1,1) y D es una matriz diagonal que define la máxima variación permitida de cada variable y debe ser recalculada a lo largo del proceso.
En aquellos problemas en los que las variables de control son números enteros la obtención de nuevas soluciones puede realizarse empleando la siguiente fórmula
1 i+ = +i
donde u es un vector de números enteros aleatorios en el intervalo (-1,1).
Uno de los aspectos que caracteriza el método del recocido simulado es que no requiere el cálculo de ninguna derivada. Sólo necesita la evaluación de la función objetivo para cada una de las soluciones de prueba que son generadas.
En lo que se refiere a las restricciones del problema, cuando las condiciones sean de igualdad o cuando haya regiones de diseño disjuntas, el problema debe transformarse en uno de optimización incondicionada aplicando el método de la función penalty, añadiendo las restricciones violadas a la función objetivo aplicando esta fórmula
T 1 ( ) ( ) ( ) A f f T = + x x w cv x (3.7.27)
donde w es un vector que contiene coeficientes de ponderación no negativos y cuantifica la magnitud de las violaciones de las condiciones.
v
c
El esquema o planificación del recocido determina el movimiento “pendiente arriba” que se permite durante el proceso de búsqueda, y por lo tanto, es uno de los aspectos críticos para garantizar un funcionamiento eficiente del algoritmo. El esquema conceptual es el siguiente: La temperatura inicial debe ser lo suficientemente alta como para que el sistema esté “fundido” en su totalidad y debe ir descendiendo hacia el punto de solidificación al ir progresando la búsqueda.
El procedimiento estándar empleado habitualmente en los algoritmos de recocido simulado consiste en la generación a temperaturas decrecientes de cadenas homogéneas de Markov de longitud finita. Estas cadenas de Markov son series de cambios aleatorios en las variables de control. Los parámetros que deben tenerse en cuenta son:
• Temperatura inicial.
• Temperatura final o criterio de terminación.
• Longitud de las cadenas de Markov.
Kirkpatrick[K3], por ejemplo, propuso como temperatura inicial aquella para la que la probabilidad de que aumentase la función objetivo fuese del 80%.
Para establecer la temperatura final hay diversas alternativas: Fijar el número de valores de la temperatura a utilizar en el proceso, establecer a priori el número de soluciones a generar o terminar el algoritmo cuando no se mejore la solución según ciertos criterios.
El lo tocante a la longitud de las cadenas de Markov, lo habitual es que dependa del tamaño del problema y no del número de soluciones calculadas.
Por otro lado, la regla más simple para disminuir la temperatura es:
1 k
T+ =αTk (3.7.28)
donde α es un valor constante menor que uno, pero próximo a él. Esta formulación recibe el nombre de esquema de enfriamiento exponencial (Exponential Cooling Scheme o ECS) y fue propuesto por vez primera por Kirkpatrick[K4], Gerlatt y Vecchi tomando como valor α =0.95. Otros autores como Randelman[R1] y Grest han propuesto otros esquemas que han ofrecido resultados similares al anterior.
Los procesos computacionales que permiten generar y aceptar nuevas soluciones son muy simples, por lo que el mayor coste computacional reside, generalmente, en la evaluación de la función objetivo y de las condiciones del problema. Para reducir los tiempos de cálculo se debe trabajar en la paralelización del proceso de evaluación de las funciones del problema.