• No se han encontrado resultados

3.4 Métodos de optimización

3.4.2 Programación matemática Problemas no lineales

3.4.2.5 Métodos de perturbaciones Recocido simulado

El algoritmo conocido como recocido simulado (Simulated Annealing o SA) o método de perturbaciones 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.

El recocido simulado puede considerarse el más antiguo de los algoritmos metaheurísticos y de los primeros en implementar una estrategia explícita para evitar los mínimos locales.

El algoritmo del recocido simulado se basa en el desarrollado por Metropolis [M2]

et al. 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

Gerlatt y Vecchi quienes 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:

f T p e δ − = (3.22)

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.4.2.5.1 se muestra la estructura básica del algoritmo de recocido simulado.

¿Fin de la búsqueda? SÍ NO

Evaluación Solución Inicial Estimación Temperatura Inicial

Generación Nueva Solución Evaluación Nueva Solución

Actualización de Valores Ajustar Temperatura Fin ¿Aceptación de la Nueva Solución? NO SÍ

Figura 3.4.2.5.1. Estructura básica del algoritmo de recocido simulado.

⎯ 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:

xi 1+ = + ⋅xi Q u (3.23)

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.

Otra posible formulación del mismo proceso es la planteada por Parks [P4]:

xi 1+ = + ⋅xi D u (3.24)

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:

xi 1+ = +xi u (3.25)

donde u es un vector de números enteros aleatorios en el intervalo (-1,1).

El método del recocido simulado 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.

Cuando las condiciones del problema 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:

( )x ( )x w c xT ( ) A v 1 f f T = + ⋅ ⋅ (3.26)

donde w es un vector que contiene coeficientes de ponderación no negativos y cv

cuantifica la magnitud de las violaciones de las condiciones.

El esquema o planificación del recocido determina el movimiento, “pendientes 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 cuando progresa 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 finalización. ⎯ Longitud de las cadenas de Markov.

⎯ Regla para disminuir la temperatura.

Kirkpatrick [K2], 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.

Habitualmente, la longitud de las cadenas de Markov depende 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:

k

k T

T +1=α⋅ (3.27)

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 [K3], 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.

Documento similar