Température initiale dans l'algorithme de recuit simulé

14

J'ai fait quelques tests de différentes températures initiales dans mon algorithme de recuit de simulation et j'ai remarqué que la température de départ a un effet sur les performances de l'algorithme.

Existe-t-il un moyen de calculer une bonne température initiale?

Indéfini
la source
2
La température initiale a beaucoup à voir avec le domaine du problème et d'autres paramètres que vous utilisez pour la partie descente de gradient de l'algorithme. Pouvez-vous donner plus de contexte?
dhj

Réponses:

9

Comme l'a souligné Thomas Klimpel dans les commentaires, une certaine probabilité d'acceptation est souvent utilisée, qui est égale à . Voici une méthode itérative simple pour trouver une température initiale appropriée, proposée par Ben-Ameur en 2004 [1]. Dans ce qui suit, est une transition strictement positive, et sont les états après et avant la transition, la différence de coût et la probabilité de générer une transition lorsque les états d'énergie sont distribués conformément à la distribution stationnaire0.8tmin t δ t E max t - E min t π min t 1maxtmintδtEmaxtEminttπmint1|N(mint)|t

N(i)i

πi=|N(i)|exp(Ei/T)j|N(j)|exp(Ej/T)
, où désigne l'ensemble des voisins de .N(i)i

Enfin, est la probabilité d'accepter une transition positive . Maintenant, nous pouvons avoir une estimation de la probabilité d'acceptation basée sur un ensemble "aléatoire" de transitions positives:t χ χ ( 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).

Nous voulons trouver une température telle que , où est la probabilité d'acceptation que nous désirons. χ ( T 0 ) = χ 0 χ 0] 0 , 1 [T0χ(T0)=χ0χ0]0,1[

S E max t E min t S T 1 T 0T0 est calculé par une méthode itérative. Certains états et un voisin pour chaque état sont générés. Cela nous donne un ensemble de transitions . Les énergies et correspondant aux états du sous-ensemble sont stockées. Ensuite, une valeur pour est choisie, qui peut être n'importe quelle valeur positive. est alors trouvé avec la formule récursiveSEmaxtEmintST1T0

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
, où est un nombre réel .p1

Lorsque se rapproche de nous pouvons arrêter. est maintenant une bonne approximation de la température initiale souhaitée . Pour plus d'explications, de preuves et de discussions, veuillez consulter la première section de l'article original [1].χ^(Tn)χ0TnT0


[1] Ben-Ameur, Walid. "Calcul de la température initiale du recuit simulé." Optimisation informatique et applications 29, no. 3 (2004): 369-385.

Juho
la source
3

il s'agit d'un sujet très avancé concernant l'obtention d'objectifs très serrés. à ma connaissance, la température initiale est généralement considérée comme faisant partie d'une stratégie de "programme de température" pour laquelle il y a des recherches approfondies. en d'autres termes, la condition de température initiale et l'algorithme de décroissance de la température (que vous ne mentionnez pas) affectent les résultats globaux d'optimisation. des stratégies ou des heuristiques simples donnent souvent des résultats bons ou «assez bons».

il existe cependant au moins un article qui étudie la température initiale seule. [1] l'essentiel est qu'à moins que vous ne fassiez un travail très avancé, le traitement de la température initiale comme paramètre du problème et l'itération sur différentes températures initiales dans le cadre de l'optimisation globale [après avoir constaté qu'elle affecte effectivement les résultats] est très raisonnable et une pratique probablement répandue.

ou, même simplement choisir une température initiale qui donne de bons résultats est également courant (il semblerait quelque peu surprenant et il n'est pas souvent que les résultats d'optimisation d'instance de problème varient considérablement d'un "meilleur" paramètre de température initiale trouvé par essais et erreurs) . comme l'a souligné dhj, certains problèmes seront plus sensibles que d'autres à la température initiale.

[1] Calcul de la température initiale de recuit simulé Ben-Ameur 2004

[2] Un calendrier de recuit simulé efficace: dérivation Lam & Delosme

[3] Contrôle de température pour recuit simulé Munakata & Nakamura

vzn
la source