Metaeuritische Applicate ad un Problema di Zaino Claudio Graffone, Giovanni Peditto e Yary Ribero Gruppo 7 Best Bin Last
Metaeuritische Applicate ad un Problema di Zaino Valutazione dell'Ottimo Abbiamo definito uno scarto percentuale dall'ottimo Ed abbiamo calcolato media e varianza su tutte le istanze a meno dei tre risultati migliori e peggiori.
Metaeuritische Applicate ad un Problema di Zaino Inizializzazione Dopo aver provato inizializzazioni basate sul volume, la migliore è risultata quella che prevede scores crescenti in base alla posizione dell'oggetto nella soluzione.
Metaeuritische Applicate ad un Problema di Zaino Il codice d'inizializzazione
Metaeuritische Applicate ad un Problema di Zaino La funzione di Short Term Update Per quanto stabilito dal metodo Best Bin Last, prendiamo per ultimi i bins più promettenti, cioé consideriamo i primi k bins con lo spazio residuo più grande. Agli oggetti presenti in questi bins incrementiamo lo score di un valore alfa.
Metaeuritische Applicate ad un Problema di Zaino Il valore di k Abbiamo trovato che il metodo da soluzioni ottimali per una finestra di ampiezza k compresa tra 3 ed un quinto dei bins disponibili per il problema. Valori superiori cambiano gli scores di molti oggetti cambiando eccessivamente le carte in tavola.
Metaeuritische Applicate ad un Problema di Zaino Il valore alfa Con alfa statico o monotono non trovavamo modo di scendere al di sotto di una soglia ragionevole (~1,51%). Imponendo alfa casuale tra 0,05 e 1 i risultati sono migliorati di molto.
Metaeuritische Applicate ad un Problema di Zaino Il codice d'aggiornamento a breve termine
Metaeuritische Applicate ad un Problema di Zaino L'aggiornamento a lungo termine L'aggiornamento a lungo termine assegna scores tendezialmente migliori agli oggetti ai primi posti della soluzione attuale, a meno di una variabile casuale che aumenta le possibilità di trovare nuovi ottimi nel caso ci trovassimo in un buon intorno.
Metaeuritische Applicate ad un Problema di Zaino Reverse Simulated Annealing Per introdurre un po' di varianza nelle reinizializzazioni, abbiamo fatto nostra la filosofia dell'algortimo simulated annealing. L'inversione sta nel fatto che nel nostro caso la temperatura si alza ponendo rimedio al congelamento degli scores a lungo termine.
Metaeuritische Applicate ad un Problema di Zaino La Temperatura del sistema Abbiamo sperimentalmente ricavato che, partendo da 0, è inutile salire sopra 20. Sempre sperimentalmente, abbiamo ricavato che il passo migliore è 0.2: all'inizio è meglio far lavorare il programma nell'intorno del primo ottimo che trova.
Metaeuritische Applicate ad un Problema di Zaino L'aggiornamento a lungo termine
Metaeuritische Applicate ad un Problema di Zaino Criteri d'arresto I N. max di iterazioni: 10000 N. max di iterazioni non miglioranti: 2500 Temperatura massima: 20
Metaeuritische Applicate ad un Problema di Zaino Criteri d'arresto II Questi tre criteri, combinati assieme, riducono notevolmente il numero di iterazioni a vuoto e permettono di continuare a lungo l'analisi dei soli problemi che producono, di tanto in tanto, nuove soluzioni ottime.
Metaeuritische Applicate ad un Problema di Zaino Risultati I Il nostro algoritmo tende ad essere particolarmente efficace con istanze del problema che hanno numerosi oggetti. 3 istanze non sono mai scese al di sotto del 5% dall'ottimo: 3_A_0_3, 3_A_0_4 e 3_A_0_5 e sono state sempre scelte per essere scartate dalla media finale.
Metaeuritische Applicate ad un Problema di Zaino Risultati II Il programma, al netto dell'aggiornamento a lungo termine, ha una distanza dal LB pari a ~1,65% Valore dal quale ci siamo allontanati poco prima di introdurre l'algoritmo del Simulated Annealing inverso.
Metaeuritische Applicate ad un Problema di Zaino Risultati III Aggiungendo l'algoritmo Simulated Annealing inverso, abbiamo ottenuto ottimi oscillanti tra i valori 1,26-1,30% Con un minimo assoluto pari a 1,252%