Temperatura inicial en algoritmo de recocido simulado

14

He realizado algunas pruebas de diferentes temperaturas iniciales en mi algoritmo de recocido de simulación y noté que la temperatura inicial tiene un efecto en el rendimiento del algoritmo.

¿Hay alguna forma de calcular una buena temperatura inicial?

Indefinido
fuente
2
La temperatura inicial tiene mucho que ver con el dominio del problema y otros parámetros que está utilizando para la parte de descenso del gradiente del algoritmo. ¿Puedes dar más contexto?
dhj

Respuestas:

9

Como señaló Thomas Klimpel en los comentarios, a menudo se usa una cierta probabilidad de aceptación, que es igual a 0.8 . El siguiente es un método iterativo simple para encontrar una temperatura inicial adecuada, propuesto por Ben-Ameur en 2004 [1]. A continuación, t es una transición estrictamente positiva, maxt y mint son los estados después y antes de la transición, δt la diferencia de costo mimaxt-mimint y La probabilidad de generar una transicióncuando los estados de energía se distribuyen de conformidad con la distribución estacionariaπmint1El |norte(mint)El |t

πyo=El |norte(yo)El |Exp(-miyo/ /T)jEl |norte(j)El |Exp(-mij/ /T)
, donde denota el conjunto de vecinos de .inorte(yo)yo

Finalmente, es la probabilidad de aceptar una transición positiva . Ahora, podemos tener una estimación de la probabilidad de aceptación basada en un conjunto "aleatorio" de transiciones positivas:t chi chi ( T ) SExp(-δt/ /T)tχ^χ(T)S

χ^(T)=tSπmint1|N(mint)|exp(δt/T)tSπmint1|N(mint)|=tSexp(Emaxt/T)tSexp(Emint/T).

Queremos encontrar una temperatura tal que , donde es la probabilidad de aceptación que deseamos. χ ( T 0 ) = χ 0 χ 0] 0 , 1 [T0χ(T0)=χ0χ0]0,1[

T0 se calcula mediante un método iterativo. Se generan algunos estados y un vecino para cada estado. Esto nos da un conjunto de transiciones . La energía y correspondiente a los estados del subconjunto se almacenan. Luego se elige un valor para , que puede ser cualquier valor positivo. se encuentra con la fórmula recursivaE max t E min t S T 1 T 0SEmaxtEmintST1T0

, dondepes un número real1.

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
p1

χ^(Tnorte)χ0 0TnT0


[1] Ben-Ameur, Walid. "Calcular la temperatura inicial del recocido simulado". Optimización computacional y aplicaciones 29, no. 3 (2004): 369-385.

Juho
fuente
3

Este es un tema muy avanzado relacionado con obtener optimismos muy ajustados. Según tengo entendido, la temperatura inicial generalmente se considera parte de una estrategia de "programa de temperatura" para la cual hay una investigación profunda. en otras palabras, tanto la condición de temperatura inicial como el algoritmo de disminución de temperatura (que no menciona) afectan los resultados generales de optimización. Las estrategias simples o la heurística para ambos a menudo producen resultados buenos o "suficientemente buenos".

Sin embargo, hay al menos un documento que estudia la temperatura inicial solo. [1] La conclusión es que, a menos que esté haciendo un trabajo muy avanzado, tratar la temperatura inicial como un parámetro del problema e iterar sobre diferentes temperaturas iniciales como parte de la optimización general [después de descubrir que sí afecta los resultados] es muy razonable y Una práctica probablemente extendida.

o, incluso, simplemente elegir una temperatura inicial que dé buenos resultados también es común (parecería algo sorprendente y no es frecuente que los resultados de optimización de la instancia del problema varíen sustancialmente de un "mejor" parámetro de temperatura inicial encontrado por prueba y error) . como señaló dhj, algunos problemas serán más sensibles que otros a la temperatura inicial.

[1] Cálculo de la temperatura inicial de recocido simulado Ben-Ameur 2004

[2] Un programa de recocido simulado eficiente: Derivation Lam & Delosme

[3] Control de temperatura para recocido simulado Munakata y Nakamura

vzn
fuente