Traveling Salesman Problem An Ant Colony Optimization algorithm to find a path... Progetto: sviluppare un algoritmo che risolva il TSP Modulo: Algoritmi e ottimizzazione (M08002) Corso: Algoritmi (C08003) Studente: Nicola Vermes Data: semestre estivo 2009 SUPSI-DTI I3A
Algoritmo sviluppato e sue particolarità Ant Colony Optimization * Localsearch: 2-opt con candidate lists * Particolarità: In fase di exploration è inclusa anche la città che sarebbe scelta in fase di exploitation l’algoritmo è leggermente più greedy Parametri (alcuni dinamici) Utilizzo delle candidate lists già in ACO 02/01/2019 Traveling Salesman Problem
Candidate lists applicate ad ACO e 2-opt L’utilizzo delle candidate lists nella fase di exploitation dell’ACO crea, alla fine del processo costruttivo, dei tour che già rispettano fortemente le candidate lists Il 2-opt con le candidate lists risulta ovviamente più rapido: per ognuna delle N città, vengono provati solo M scambi (N nro. tot. di città; M nro. città in CL) La seconda città viene scelta tra quelle nella candidate lists della prima 02/01/2019 Traveling Salesman Problem
Localsearch 2-opt con candidate lists La città B risulterà dunque nella candidate list della città A Si crea quindi un “arco candidato”, tra A-B (arco verde) Non è invece detto che la città [B+1] sia nella candidate list della città [A+1] (arco rosso) Si potrebbe implementare un sistema che consideri solamente doppie copie di città entrambe in candidate list l’una con l’altra 02/01/2019 Traveling Salesman Problem
Prove e altri algoritmi testati in fase di sviluppo Ant Colony con una sola formica per iterazione, solo aggiornamento locale e altre differenze (con LS risultati ~ 3%) SA e ILS, in seguito scartati perché non sarebbe utile applicarli all’ACO (“distruggono” la soluzione iniziale, sarebbe tempo perso) Varie LS: 3-opt, one-shift (lente anche con CL o comunque non performanti) ILS: mutazioni come one-shift, scambio random; intensificazioni con 2-opt, 3-opt con/senza CL Il difetto di queste tecniche risiede nel tempo che necessitano per dare buoni risultati: in soli 3 minuti l’ACO è maggiormente performante 02/01/2019 Traveling Salesman Problem
Traveling Salesman Problem Conclusioni L’Ant Colony Optimization è un ottimo algoritmo per risolvere il TSP Vi sono diverse opzioni d’implementazione dell’algoritmo, piccole differenze, approcci diversi e svariati parametri da impostare: da questo punto di vista risulta un algoritmo non sempre facile da ottimizzare È un approccio affascinante, poiché viene implementato un sistema che si migliora e impara nel tempo 02/01/2019 Traveling Salesman Problem