Cercare il percorso minimo Ant Colony Optimization



Documenti analoghi
Intelligenza collettiva Swarm intelligence

Cercare il minimo di una funzione: Particle swam optimization

Classi di Problemi Università degli Studi di Milano

Problemi, istanze, soluzioni

PROBLEMA DEL COMMESSO VIAGGIATORE

Il problema del commesso viaggiatore: da Ulisse alla Logistica integrata. Luca Bertazzi

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Algoritmi Euristici. Molti problemi reali richiedono soluzioni algoritmiche

Algoritmi di ricerca locale

Tecniche euristiche Ricerca Locale

RICERCA OPERATIVA (a.a. 2018/19)

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Laboratorio di Algoritmi

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Laboratorio di Algoritmi

Intelligenza collettiva Swarm intelligence. Swarm Intelligence. Intelligenza collettiva emergente in gruppi di agenti (semplici).

Problemi intrattabili e quantum computing

Algoritmi e giochi combinatori

OTTIMIZZAZIONE NON LINEARE

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

trovare un percorso senza collisioni per passare da una configurazione ad un altra del sistema robotico

Problema del cammino minimo

Il problema del commesso viaggiatore

Cammini minimi fra tutte le coppie

2.2 Alberi di supporto di costo ottimo

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Certificati dei problemi in NP

Euristiche per il Problema del Commesso Viaggiatore

Parte III: Algoritmo di Branch-and-Bound

Metodi di Ottimizzazione

Possibile applicazione

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare:

x + 2y = 0 Soluzione. La retta vettoriale di equazione cartesiana x + 2y = 0.

Tecniche euristiche greedy

5.1 Metodo Branch and Bound

SWARM INTELLIGENCE. Tuesday, 6 March, 12

I Appello Ricerca Operativa 2 bis Compito A

Il metodo dei Piani di Taglio (Cutting Planes Method)

5.5 Programmazione quadratica (PQ)

Constraint Satisfaction Problems

Il problema del commesso viaggiatore e problemi di vehicle routing

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Algoritmi e Strutture Dati. Luciano Gualà

Università degli Studi di Udine Corso di Laurea in Ingegneria Gestionale (V.O.) Prova scritta di Ricerca Operativa 10 giugno 2003

PIANIFICAZIONE DEI TRASPORTI

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

AMPL Problemi su Reti

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Marco Montali Outline

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

Ant Colony Optimization (ACO) e Swarm Intelligence

Uso dell algoritmo di Quantizzazione Vettoriale per la determinazione del numero di nodi dello strato hidden in una rete neurale multilivello

Laboratorio di Bioimmagini A.A

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Algoritmi euristici. Parte I: metodi classici

RICERCA OPERATIVA (a.a. 2003/04) Nome Cognome:

2.2 Alberi di supporto di costo ottimo

Apprendimento con Rinforzo

Lezione 5, 5/11/2014

Problema del Job Shop

Problema del trasporto

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

METODI DELLA RICERCA OPERATIVA

Fondamenti di Informatica

Algoritmi e Strutture Dati. Luciano Gualà

2.2 Alberi di supporto di costo ottimo

Algoritmo basato su cancellazione di cicli

28 giugno 2018, es.1) Programmazione lineare

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD

Algoritmi e Strutture Dati

Fondamenti di Informatica

Esame di Ricerca Operativa del 14/09/18

Laboratorio di Algoritmi e Strutture Dati

Università Ca Foscari Venezia

Esame di Ricerca Operativa del 11/1/19

Ricerca con avversari

Come Google ordina le pagine web

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

2. Si definisca un algoritmo euristico di tipo greedy per determinare una buona soluzione ammissibile del problema;

Grafo per n/m/g/c max r i =0

Richiami di inferenza statistica. Strumenti quantitativi per la gestione. Emanuele Taufer

Differenze divise. Polinomio di interpolazione nella forma di Newton. Proprietà. Se n=0. Simmetria. Ricorsività. Abbiamo un solo punto

Richiami di inferenza statistica Strumenti quantitativi per la gestione

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

3 Ricerca per Giochi e CSP

12.1 IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

TSP Ricerca Locale. Riccardo Mondani Martina Alberti

Esercizio 1. Variabili decisionali:

Programmazione a numeri interi: il metodo del Branch and Bound

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

7.1 Progettare un algoritmo per costruire ciclo euleriano di un grafo non orientato.

Laboratorio di Matematica e Informatica 1

Transcript:

Cercare il percorso minimo Ant Colony Optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 4 Aprile 2011 L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 1 / 12

Sommario Sommario 1 Il commesso viaggiatore (TSP) L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 2 / 12

Il problema Supponiamo di essere un commesso viaggiatore che deve visitare n città ritornando poi a quella iniziale. Quale ordine di visita scegliamo? Naturalmente lo scopo è quello di minimizzare la distanza percorsa (e quindi il costo). Questo problema è noto in letteratura come Travelling Salesman Problem (TSP), e come (forse) vedrete a lezione è un problema piuttosto complesso. L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 3 / 12

Quanti percorsi? Una analisi formale del problema richiederebbe alcune basi di teoria della complessità, quindi vediamo il tempo richiesto per affrontare il problema in maniera naïve. Supponiamo di dover visitare n città, come possiamo definire un percorso? Un idea è quella di elencare l ordine di visita delle città. Ad esempio per visitare Londra, Parigi e Milano ho le possibilità: Londra Parigi Milano Londra Milano Parigi Parigi Milano Londra Parigi Londra Milano Milano Parigi Londra Milano Londra Parigi L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 4 / 12

Quanti percorsi? Un percorso su n città è quindi una permutazione delle n città. Se volessi valutare il costo di ogni percorso per trovare il migliore quanti percorsi dovrei controllare? L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 5 / 12

Quanti percorsi? Un percorso su n città è quindi una permutazione delle n città. Se volessi valutare il costo di ogni percorso per trovare il migliore quanti percorsi dovrei controllare? Dovrei controllare n! percorsi (decisamente troppi!!) L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 5 / 12

Le formiche Le formiche sono piuttosto abili nel costruire percorsi utilizzando solo informazioni locali (anche se alcune specie conoscono la geografia del luogo...). Per costruire questi percorsi una formica rilascia un particolare marcatore chimico (feromoni) che attira le altre. Quando una formica esplora una zona in cerca di cibo, lascia una traccia. Se trova il cibo e torna indietro rinforza la traccia. I feromoni evaporano, quindi, tracce corte avranno più feromoni di tracce lunghe. L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 6 / 12

Le formiche Le altre formiche saranno attratte dalla traccia seguendola e rinforzandola. Quindi dopo un certo tempo un grande numero di formiche utilizzeranno quel percorso. Dato che una formica sceglie in maniera probabilistica il percorso da seguire (ci sono molte tracce ed ogni formica è solo attratta), se ci sono molte formiche, dopo un po il percorso scelto tenderà ad essere molto buono (idealmente ottimo). L algoritmo Ant Colony Optimization (ACO) è stato sviluppato da Dorigo ed è utilizzato per trovare cammini quasi-ottimi (non ho naturalmente la garanzia di avere l ottimo). L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 7 / 12

Le formiche Supponiamo che una formica k si trovi nel nodo i al tempo t e che possa dirigersi in uno dei nodi dell insieme N k i, questa formica si dirigerà al nodo j con la probabilità seguente: P k i,j (t) = ( τi,j (t) ) α ( ηi,j (t) ) β ( τi,j (t) ) α ( ηi,j (t) ) (1) β j N k i dove τ i,j è la quantità di feromone nell arco (i, j), η i,j (t) è dell informazione euristica conosciuta a priori, α è un parametro che controlla l effetto dei feromoni e β è un parametro che controlla l effetto dell informazione euristica. Nel TSP si pone { 1/d i,j se i j η i,j = 0 altrimenti dove d i,j è il costo per muoversi da i a j L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 8 / 12

Le formiche La traccia di feromoni sull arco (i, j) viene aggiornata come segue dove τ i,j (t) = ρ τ i,j (t 1) + n k=1 k i,j (t) (2) { Q k i,j (t) = L k (t) se l arco (i, j) è scelto dalla formica k 0 altrimenti dove ρ è il coefficiente di evaporazione del feromone (0 < ρ < 1), n è il numero di formiche, Q è la costante di aggiornamento per il feromone e L k (t) un costo associato con la distanza percorsa dalla formica k al tempo t (in genere conviene normalizzare il valore in maniera tale che per la formica che ha fatto il percorso minore L k (t) sia vicino allo 0). L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 9 / 12

Le formiche Fatte queste premesse l algoritmo procede come segue: ACO Inizializza i parametri e le n formiche while condizione do t t + 1 for i = 1 to n do Posiziona la formica i in un nodo iniziale a caso for j = 2 to numero città do muovi la formica i di un nodo utilizzando la formula 1 tieni traccia della mossa effettuata end for end for Aggiorna i feromoni utilizzando la formula 2 Tieni traccia della soluzione migliore trovata end while L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 10 / 12

Esercizio Scrivere un programma in MATLAB che utilizzi il sistema sopra descritto per trovare il percorso minimo fra 20 punti con coordinate (x, y) generate a caso tra 0 e 100. Utilizzate la distanza euclidea come costo. Plottate il costo medio dei percorsi col passare del tempo e l evoluzione dei percorsi (per ogni iterazione plottate solo il percorso migliore trovato). Nota: dato che il programma è piuttosto lungo sarebbe opportuno definire diverse funzioni per le varie parti (Inizializzazione, movimento delle formiche, calcolo dei costi, aggiornamento della traccia di feromoni). L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 11 / 12

Esercizio Il posizionamento delle formiche è piuttosto semplice: mi basterà per ogni formica scegliere un nodo iniziale a caso. Si noto che ogni formica deve percorrere tutti i nodi, quindi mi servirà una matrice (numero dei nodi) (numero delle formiche). Le formiche verranno mosse una alla volta, ed ogni formica completerà tutto il percorso. Conviene fare una copia locale della matrice dei feromoni e settare di volta in volta le degli 0 per le posizioni che ho già visitato. Dopo che tutte le formiche si sono mosse calcolo la lunghezza del percorso, e tengo traccia del minimo. La lunghezza del percorso calcolato verrà poi usata per aggiornare la traccia del feromone L. Albergante (Univ. of Milan) PSO 4 Aprile 2011 12 / 12