Quando si seleziona un vicino, è necessario considerare la temperatura dell'algoritmo? Quindi, per esempio, se la temperatura è alta quando si sceglie un vicino dovrebbe essere permutata la permutazione? O la temperatura influisce solo sulla probabilità di accettazione?Selezione del vicino nell'algoritmo di ricottura simulata
risposta
Quest'ultimo è vero: solo la probabilità di accettazione è influenzata dalla temperatura. Più alta è la temperatura, più mosse "cattive" vengono accettate per sfuggire all'ottima locale. Se preselezioni i vicini con bassi valori di energia, fondamentalmente contraddirai l'idea di Simulated Annealing e la trasformerai in una ricerca avida.
Pseudocodice da Wikipedia:
s ← s0; e ← E(s) // Initial state, energy.
sbest ← s; ebest ← e // Initial "best" solution
k ← 0 // Energy evaluation count.
while k < kmax and e > emax // While time left & not good enough:
T ← temperature(k/kmax) // Temperature calculation.
snew ← neighbour(s) // Pick some neighbour.
enew ← E(snew) // Compute its energy.
if P(e, enew, T) > random() then // Should we move to it?
s ← snew; e ← enew // Yes, change state.
if enew < ebest then // Is this a new best?
sbest ← snew; ebest ← enew // Save 'new neighbour' to 'best found'.
k ← k + 1 // One more evaluation done
return sbest // Return the best solution found.
Ho anche avuto la stessa domanda, ma penso che la risposta da un altro post Basics of Simulated Annealing in Python suggerisce T può essere correlato alla scelta di vicini di casa è abbastanza ragionevole.
La scelta dei vicini dipenderà anche dal problema. Il motivo principale per limitare il vicinato è che, una volta trovata una soluzione decente, anche se in seguito si passa a una soluzione peggiore, almeno si resta nei paraggi. L'intuizione è che la maggior parte delle funzioni obiettive sono alquanto lisce, quindi buone soluzioni si troveranno vicino ad altre buone soluzioni. Quindi hai bisogno di un quartiere abbastanza piccolo da tenerti vicino a soluzioni valide, ma abbastanza grande da permetterti di trovarli rapidamente. Una cosa che puoi provare è diminuire il vicinato nel tempo (ad esempio, renderlo proporzionale alla temperatura). - hunse 4 novembre 13 alle 20:58
Ecco la descrizione di wikipedia che afferma che la temperatura dovrebbe essere calcolata per alcuni problemi.
generazione candidato efficiente
una dichiarazione più precisa della euristica è che si dovrebbe provare primi stati candidati s'per la quale P (E (s), E (s'), T) è grande. Per la funzione di accettazione "standard" P sopra, significa che E (s ') - E (s) è nell'ordine di T o meno. Così, nell'esempio commesso viaggiatore sopra, si potrebbe usare un vicino di casa() funzione che scambia due città casuali, dove la probabilità di scegliere una coppia di città svanisce come la loro distanza aumenta oltre T.
Questo implica quella Temperatura può essere un fattore rilevante per determinare il vicino.
lettura più utili su come scrivere funzioni prossimo: How to efficiently select neighbour in 1-dimensional and n-dimensional space for Simulated Annealing
- 1. Principi di ricottura simulata in Python
- 2. Ricottura simulata in R: tempo di funzionamento GenSA
- 3. Come progettare la funzione di probabilità di accettazione per la ricottura simulata con costi distinti multipli?
- 4. XNA - Neve simulata
- 5. Xcode Posizione simulata di default
- 6. configurazione simulata nei test di Grails
- 7. Dati di selezione del campo di selezione della giada
- 8. Questa coda simulata puramente funzionale è valida?
- 9. Come per ruotare l'immagine per interpolazione del vicino più vicino Utilizzo di Matlab
- 10. come impostare la selezione di selezione all'interno del testo
- 11. Trovare il pixel migliore del vicino
- 12. Python -. Individuazione del timestamp più vicino
- 13. Testo dissolvenza vicino alla fine del div?
- 14. Dilemma di selezione del modello di progettazione
- 15. Rendering vicino più vicino a Canvas
- 16. Algoritmo di interpolazione vicino più vicino in MATLAB
- 17. Impedire l'apertura del menu di selezione
- 18. jQuery evento di selezione del testo
- 19. Schermata di selezione del genere Apple Music
- 20. Errore di modifica del testo: TextView non supporta la selezione del testo. Selezione annullata
- 21. Selezione del testo Evidenziazione eccessiva
- 22. Spock che verifica un'eccezione generata da simulazione con interazione simulata
- 23. vicina Vicino di ricerca: pitone
- 24. problema algoritmo di selezione
- 25. Quartiere completato più vicino
- 26. 'Più vicino' zoom
- 27. Metrica dimensione simulata Xcode - differenza tra l'impostazione Freeform e None
- 28. Scelta idonea della struttura dati e dell'algoritmo per la ricerca veloce del vicino più vicino di k in 2D
- 29. Perché gli alberi KD sono così dannatamente lenti per la ricerca del vicino più vicino nei set di punti?
- 30. Come funziona la ricerca vicino più vicino al KD-tree?
Dato che pseudo codice, non è definito come vicino di casa viene calcolato. Pertanto, non è dimostrato che la temperatura non faccia parte del calcolo. – John