Presentazione

Il simulated annealing è un algoritmo di ricerca locale che accetta sempre di muoversi verso soluzioni migliori, mentre percorre strade verso soluzioni "peggiori" con una probabilità che dipende da un parametro detto T.
Tale parametro rappresenta la temperatura, e cala secondo una certa funzione durante l'esecuzione.
In questo modo, scelte "errate" verranno compiute con probabilità maggiore nei primi passi rispetto a quelli successivi.

Il problema

L'algoritmo è stato applicato al problema di trovare, se possibile, quando accendere una serie di frigoriferi collegati a dei generatori, affinché il costo finale sia minimo.
Ogni frigorifero ha un consumo, un certo periodo in cui deve stare acceso, uno o più generatore a cui collegarsi.
I generatori hanno una potenza massima.
Il problema viene rappresentato attraverso una rete di vincoli ed analizzato dal programma sviluppato.

Il programma

Il programma è stato sviluppato in Java e viene distribuito attraverso il file Energia.jar.

Relazione

Nella relazione è possibile trovare informazioni più dettagliate riguardo al problema, alla sua astrazione, al programma sviluppato e i risultati ottenuti dallo studio di due classi di problemi.

Download

Energia.jar
Relazione