Temperatura iniziale in algoritmo di ricottura simulato


14

Ho eseguito alcuni test su diverse temperature iniziali nel mio algoritmo di ricottura di simulazione e ho notato che la temperatura iniziale influisce sulle prestazioni dell'algoritmo.

Esiste un modo per calcolare una buona temperatura iniziale?


2
La temperatura iniziale ha molto a che fare con il dominio problematico e altri parametri che stai usando per la parte di discesa gradiente dell'algoritmo. Puoi dare più contesto?
dhj

Risposte:


9

Come notato da Thomas Klimpel nei commenti, viene spesso utilizzata una certa probabilità di accettazione, che è pari a dire . Quello che segue è un semplice metodo iterativo per trovare una temperatura iniziale adatta, proposta da Ben-Ameur nel 2004 [1]. Di seguito, è una transizione strettamente positiva, e \ min_t sono gli stati dopo e prima della transizione, \ delta_t la differenza di costo E _ {\ max_t} - E _ {\ min_t} e \ pi _ {\ min_t} \ dfrac {1} {| N (\ min_t) |} la probabilità di generare una transizione t quando gli stati energetici sono distribuiti in conformità con la distribuzione stazionariat max t min t δ t E max t - E min t π min t 10.8tmaxtmintδtEmaxt-Eminttπmint1|N(mint)|t

πio=|N(io)|exp(-Eio/T)Σj|N(j)|exp(-Ej/T)
, dove N(io) indica l'insieme dei vicini di io .

Infine, exp(-δt/T) è la probabilità di accettare una transizione positiva t . Ora, possiamo avere una stima χ^ della probabilità di accettazione χ(T) basata su un insieme "casuale" S di transizioni positive:

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

Vogliamo trovare una temperatura tale che , dove è la probabilità di accettazione che desideriamo. χ ( T 0 ) = χ 0 χ 0] 0 , 1 [T0χ(T0)=χ0χ0]0,1[

T0 è calcolato con un metodo iterativo. Vengono generati alcuni stati e un vicino per ogni stato. Questo ci dà un insieme di transizioni . Le energie e corrispondenti agli stati del sottoinsieme vengono memorizzate. Quindi viene scelto un valore per , che può essere qualsiasi valore positivo. viene quindi trovato con la formula ricorsivaE max t E min t S T 1 T 0SEmaxtEmintST1T0

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
, dove è un numero reale .p1

Quando si avvicina a possiamo fermarci. è ora una buona approssimazione della temperatura iniziale desiderata . Per ulteriori spiegazioni, prove e discussioni, consultare la prima sezione del documento originale [1].χ^(Tn)χ0TnT0


[1] Ben-Ameur, Walid. "Calcolo della temperatura iniziale della ricottura simulata." Ottimizzazione computazionale e applicazioni 29, n. 3 (2004): 369-385.


3

questo è un argomento molto avanzato relativo all'ottenimento di ottimum molto rigorosi. da quanto ho capito, la temperatura iniziale è generalmente considerata parte di una strategia di "pianificazione della temperatura" per la quale vi sono alcune ricerche approfondite. in altre parole, sia la condizione di temperatura iniziale che l'algoritmo di decadimento della temperatura (che non menzionate) influenzano i risultati complessivi di ottimizzazione. strategie semplici o euristiche per entrambi spesso danno risultati buoni o "abbastanza buoni".

esiste tuttavia almeno un documento che studia solo la temperatura iniziale. [1] la linea di fondo è che, a meno che tu non stia facendo un lavoro molto avanzato, considerare la temperatura iniziale come un parametro del problema e iterare su diverse temperature iniziali come parte dell'ottimizzazione generale [dopo aver scoperto che influisce effettivamente sui risultati] è molto ragionevole e una pratica probabilmente molto diffusa.

o, anche solo la scelta di una temperatura iniziale che dà buoni risultati è anche comune (sembrerebbe in qualche modo sorprendente e non è frequente che i risultati dell'ottimizzazione dell'istanza del problema variano sostanzialmente da un "migliore" parametro di temperatura iniziale trovato da tentativi ed errori) . come ha sottolineato il dhj, alcuni problemi saranno più sensibili di altri alla temperatura iniziale.

[1] Calcolo della temperatura iniziale della ricottura simulata Ben-Ameur 2004

[2] Un programma di ricottura simulato efficiente: Derivation Lam & Delosme

[3] Controllo della temperatura per ricottura simulata Munakata & Nakamura


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.