de recocido simulado (SA) es un Meta-algoritmo de probabilidad genérico para el problema de la optimización global, a saber localizando una buena aproximación al grado óptimo global de una función dada en un espacio de búsqueda grande . Es de uso frecuente cuando el espacio de búsqueda es discreto (e., todos los viajes que visitan un sistema dado de ciudades). En casos favorables, el recocido simulado puede ser más eficaz que la enumeración exhaustiva del espacio de búsqueda.
El nombre y la inspiración vienen del recocido en metalurgia, una técnica que implica la calefacción y el enfriamiento controlado de un material para aumentar el tamaño de sus cristales y para reducir sus defectos . El calor hace los átomos llegar a ser unstuck de sus posiciones iniciales (un mínimo local de la energía interna ) y vagar aleatoriamente a través de estados de una energía más alta; el enfriamiento lento les da más oportunidades de encontrar configuraciones con una energía interna más baja que la inicial.
Por analogía con este proceso físico, cada paso del algoritmo del SA substituye la solución actual por un " al azar; nearby" solución, elegida con una probabilidad que depende de la diferencia entre los valores correspondientes de la función y de un global T del parámetro (llamado la temperatura del ), que se disminuye gradualmente durante el proceso. La dependencia es tal que la solución actual cambia casi aleatoriamente cuando el T es grande, pero cada vez más " downhill" como el T va a cero. El permiso para el " uphill" ¡los movimientos ahorran el método de el pegarse en los mínimos locales - que son la perdición un más codicioso methods.
El método fue descrito independiente por S. Vecchi en 1983, y por V. El método es una adaptación del algoritmo, un método de la Metrópoli-Hastings de Monte Carlo para generar los estados de la muestra de un sistema termodinámico, inventados por la metrópoli y otros N.
Descripción
En el método de recocido (SA) simulado, cada s del punto del espacio de
búsqueda es análogo a un estado de un cierto sistema físico, y el E ( s ) de la función que se reducirá al mínimo es análogo a la energía interna del sistema en ese estado. La meta es traer el sistema, de un
estado inicial del arbitrario, a un estado con la energía posible mínima.
La iteración básica
En cada paso, el SA heurístico considera de un cierto s vecino del del s del estado actual, y el Probabilistically decide entre la mudanza del
sistema a del s del del estado o permanecer puesto en el s del estado. Se eligen las probabilidades de modo que el sistema
tienda en última instancia a moverse a los estados de una energía más baja. Este paso se repite típicamente hasta que el sistema alcance un estado que sea
bastante bueno para el uso, o hasta el cómputo dado se ha agotado un presupuesto.
Los vecinos de un estado
Al usuario especifican a los vecinos de cada estado (el candidato del mueve ), generalmente en una manera específica a la aplicación. Por ejemplo, en el
problema de vendedor que viaja, cada estado se define típicamente como viaje particular (una permutación del de las ciudades que se visitarán); y uno podría definir a los vecinos de un viaje como esos viajes que se pueden obtener de él intercambiando cualquier par de ciudades consecutivas.
Probabilidades de la aceptación
La probabilidad de hacer la transición del estado actual
a un nuevos
del estado del candidato es especificada por un
, que depende del
y del
de los dos estados, y en un parámetro de tiempo
variable global llamó la temperatura del .
Un requisito esencial para la función de probabilidad es que debe ser diferente a cero cuando , significando que el sistema puede moverse al nuevo estado incluso cuando es el peor (tiene una energía más alta) que la actual. Es esta característica que evita que el método el pegarse en un mínimo local del - un estado que sea peor que el mínimo global, con todo mejor que cualesquiera de sus vecinos.
Por una parte, cuando va a cero, el debe tender a cero si , y a un valor positivo si . Que la manera, para los valores suficientemente pequeños de , el sistema favorecerá cada vez más los movimientos que van " downhill" (a los valores de una energía más baja), y evitar los que vayan " uphill". Particularmente, cuando se convierte en 0, el procedimiento reducirá al algoritmo codicioso - que hace el movimiento solamente si va cuesta abajo.
En la descripción original del SA, el fue definida como 1 cuando - es decir, el procedimiento movido siempre cuesta abajo cuando encontró una manera de hacer así pues, con independencia de la temperatura. Muchas descripciones y puestas en práctica del SA todavía toman esta condición como parte de la definición del método. Sin embargo, esta condición no es esencial para que el método trabaje, y uno puede sostener que es contraproducente y contrario a su alcohol.
La función de se elige generalmente de modo que la probabilidad de aceptar un movimiento disminuya cuando la diferencia el aumentar-que es, los pequeños movimientos ascendentes es más probable que los grandes. Sin embargo, este requisito no es terminantemente necesario, a condición de que se cumplen los requisitos antedichos.
Dado estas características, la evolución del estado depende crucial de la temperatura . En línea general, la evolución de es sensible a variaciones más gruesas de la energía cuando es grande, y a variaciones más finas cuando es pequeño.
El horario del recocido
Otra característica esencial del método del SA es que la
temperatura está reducida gradualmente mientras que procede la simulación. Inicialmente,
se fija a un elevado valor (o al infinito), y se disminuye en cada paso según un cierto horario - que del recocido del se pueda especificar por el usuario, pero debe terminar con
hacia el extremo del presupuesto asignado del tiempo. De esta manera, se
espera que el sistema vague inicialmente hacia una región amplia del espacio de búsqueda que contiene buenas soluciones, no haciendo caso de las pequeñas características de la función de la energía; entonces mandilar hacia las regiones de poca energía que llegan a ser más estrechas y más estrechas; y finalmente movimiento cuesta abajo según la pendiente más escarpada heurística.
Convergencia al grado óptimo
Puede ser demostrado que, para cualquie problema finito dado, la probabilidad que el algoritmo de recocido simulado termina con la
solución óptima global se acerca a 1 mientras que el horario de recocido es extendido. Este resultado teórico es, sin embargo, no particularmente provechoso, desde el
tiempo de recocido requerido para asegurar una probabilidad significativa del éxito excederá generalmente el tiempo requerido para una búsqueda completa del espacio de solución .
Pseudo-code
El pseudo-code
siguiente ejecuta el recocido simulado heurístico, como se describe anteriormente, a partir de el estado
s0 y continuación a un máximo de los pasos de
kmax o hasta un estado con la energía
emax o se encuentra menos. La llamada
neighbour debe generar a un vecino aleatoriamente elegido de un estado dado s; el
random de la llamada () debe volver un valor al azar en el
de la gama. El horario del recocido es definido por el
temp de la llamada (r), que debe rendir la temperatura al uso, dado la fracción
r del presupuesto del tiempo que se ha expendido hasta ahora.
s: = s0; e: = estado inicial del de E //, energía. k: = 0 cuentas de la evaluación de la energía del de //. mientras que < de k; del kmax y > de e; de // del emax mientras que sigue habiendo el tiempo y no bueno bastante: sn: = selección del de // de los vecinos alguÌn vecino. en: = cálculo del de E (sn) // su energía. si P (e, en, temp (k/kmax)) ¿> () el al azar del entonces // debe nosotros se mueve a él? s: = sn; e: = del en // sí, estado del cambio. k: = k + 1 de // un más hecho evaluación solución actual s // de la vuelta de vuelta del
Ahorrando la mejor solución vista
Como en cualquier Metaheuristic, uno debe no perder de vista la mejor solución vista hasta ahora, en una variable de estado separado. A saber:
s: = s0; e: = estado inicial del de E //, energía. sb: = s; eb: = " de la inicial del de e //; best" solución k: = 0 cuentas de la evaluación de la energía del de //. mientras que < de k; del kmax y > de e; de // del emax mientras que sigue habiendo el tiempo y no bueno bastante: sn: = selección del de // de los vecinos alguÌn vecino. en: = cálculo del de E (sn) // su energía. ¿ si en < entonces // del eb es éste un nuevo mejor? sb: = sn; eb: = del en // sí, excepto él. si P (e, en, temp (k/kmax)) ¿> () el al azar del entonces // debe nosotros se mueve a él? s: = sn; e: = del en // sí, estado del cambio. k: = k + 1 de // un más hecho evaluación vuelta de vuelta del de // del sb del que la mejor solución encontró.
Observar que el sb del paso: = sn sucede solamente en una pequeña fracción de los movimientos. Por lo tanto, esta variación en el método básico está generalmente digno de el coste, incluso si el estado-copiado es una operación costosa.
Selección de los parámetros
Para aplicar el método del SA a un problema específico, uno debe especificar los parámetros siguientes: el espacio de estado, el
E de la función de la energía (meta) () , el
neighbour del procedimiento del generador del candidato () , el
P de la función de probabilidad de la aceptación () , y el
temp del horario del recocido () . Estas opciones pueden tener un
impacto significativo en la eficacia del método. Desafortunadamente, no hay opciones de estos parámetros que sean buenos para todos los problemas, y no hay
manera general de encontrar las mejores opciones para un problema dado. De hecho, se ha observado que la aplicación del método del SA es más un arte que una ciencia. Las secciones siguientes dan algunas pautas generales.
Diámetro del gráfico de búsqueda
El recocido simulado se puede modelar como
caminata al azar en un gráfico de la búsqueda del, cuyas cimas son todas los estados posibles, y cuyos son bordes el candidato se mueven. Un requisito esencial para la función del
neighbour () es que debe proporcionar una
trayectoria suficientemente corta en este gráfico del estado inicial a cualquier estado que pueda ser el grado óptimo global. (Es decir el
diámetro del gráfico de búsqueda debe ser pequeño.) ¡En el ejemplo de vendedor que viaja arriba, por ejemplo, el espacio de búsqueda para las ciudades de
tiene
(quintillón de 2.5 ); con todo la función vecina del generador que intercambia dos ciudades consecutivas puede conseguir de cualquier estado (viaje) a cualquier otro estado en el
.
Probabilidades de transición
Para cada
del gráfico de búsqueda, uno define una probabilidad de transición del, que es la probabilidad que el algoritmo del SA moverá al