TSP Traveling Salesman’s Problem Università di Camerino

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture dati Mod B
Algoritmi e Strutture Dati
08 Febbraio 2008 BOZZA Laboratorio di ricerca operativa I grafi e il problema del cammino minimo a.a. 2007/2008 Calogero Vetro.
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This.
Il problema del minimo albero ricoprente in un grafo non cooperativo
Algoritmi e Strutture Dati (Mod. B)
CONOSCERE CONOSCERSI COMUNICARE
Il Problema del Commesso Viaggiatore
Informatica Generale Alessandra Di Pierro
Introduzione Cosa sono le reti di Petri?
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Problemi intrattabili e quantum computing
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Cammini minimi Algoritmo SPT.Acyclic
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Modelli e Algoritmi della Logistica
Grafi.
Modelli e Algoritmi per la Logistica
Algoritmi e Strutture Dati
grafi e reti Ottimizzazione su Reti - Network Optimization Testi :
Un esempio di problema di Ricerca Operativa Andrea Camilleri La prima indagine di Montalbano Sette Lunedì" RIngrazio Giampaolo Liuzzi per avermi indicato.
PROGRAMMAZIONE LINEARE
Elementi di Informatica di base
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Problemi facili, problemi difficili
Cammini minimi tra tutte le coppie
Euristiche: algoritmi costruttivi e di ricerca locale
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Rete di Hopfield applicata al problema del TSP Federica Bazzano
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Olimpiadi di Informatica 2010 Giornate preparatorie
Università degli Studi di Roma Tor Vergata
algoritmi approssimati
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
Algoritmi elementari su grafi
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Flusso di Costo Minimo Trasformazioni Equivalenti e Trasformazioni Inverse Viene data la seguente rete di flusso, in cui i valori riportati vicino agli.
Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR
Prof. Cerulli – Dott. Carrabs
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Complessità Computazionale
Algoritmi e Strutture Dati
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
OTTIMIZZAZIONE DI UN PERCORSO GRAFO CAMMINO MINIMO.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

TSP Traveling Salesman’s Problem Università di Camerino Dipartimento di Matematica e Informatica TSP Traveling Salesman’s Problem http://members.xoom.it/romeopruno/ppt/presentazioneSeminario.ppt Relatori Massimo Sciarra, Romeo Pruno

Nel 1859 il famoso matematico irlandese Sir William Rowan Hamilton pose il seguente problema: Egli prese un dodecaedro regolare di legno, ogni vertice del quale era contrassegnato con il nome di una città, e propose di trovare un itinerario lungo gli spigoli che, partendo da un punto A e passando per ciascuna città una ed una sola volta, permettesse poi di tornare al punto di partenza. Input Output

Cammino hamiltoniano Dato un grafo G = (V,A) con V insieme dei vertici ed A insieme degli archi, si definisce cammino hamiltoniano un cammino p = <v1, v2, …, vk> tale per cui: * k è pari a |V| cardinalità di V * vi ≠ vj ∀ i, j …Più semplicemente un cammino hamiltoniano tocca tutti i vertici del grafo uno ed una sola volta!

Circuito hamiltoniano Dato un grafo G = (V,A) e un insieme SA, S è l’insieme di archi di un ciclo hamiltoniano se e solo se: - in ogni nodo di G incidono esattamente due archi di S - S non contiene cicli di cardinalità inferiore a |V| …Un circuito hamiltoniano è semplicemente un cammino in cui l’ultimo vertice coincide con il primo!

Travelling Salesman’s Problem Il problema del “Commesso Viaggiatore” non è altro che un’estensione del ciclo hamiltoniano e definito come segue: Dato un grafo G = (V,A) V = (1,………,n) corrisponde ad un insieme di città. A = (i,j) corrisponde alle possibili strade che collegano coppie di città. Cij corrisponde al costo (distanza o tempo) ed è associato ad ogni elemento (i,j)A. Determinare un percorso chiuso (ciclo hamiltoniano) che passi per tutte le città una sola volta, in modo che il suo costo sia minimo (min Cij).

Definizione del problema linguaggio naturale TSP (Traveling Salesman’s Problem) Un commesso viaggiatore deve visitare un certo numero di città; conosce la lunghezza ( o il tempo o il costo, a seconda dei casi) dello spostamento necessario per recarsi da una città all’altra: vuole determinare il percorso più breve ( o più veloce o più economico) che gli permetta di partire da casa sua e di farvi ritorno dopo aver visitato ogni città una sola volta. Come può fare?

Considerazioni generali Il TSP è un problema che non ammette soluzione di complessità polinomiale TSPNP-completo NP è quella classe di linguaggi che possono essere verificati mediante un algoritmo di tempo non polinomiale Cioè la complessità computazionale dell’algoritmo non è funzione polinomiale della dimensione del problema stesso! ???? TSP  P

World-Record Traveling Salesman Problem for 3038 Cities Solved Una potenza di calcolo di 50 WorkStation per trovare la soluzione ottima, un anno e mezzo per battere il vecchio record di 2392 “città visitate” Branch & Bound http://nhse.cs.rice.edu/CRPC/newsletters/jan93/index.html

Algoritmo base Un algoritmo che sicuramente trova la soluzione ottimale, consiste nell’effettuare una ricerca esaustiva di tutti i cicli hamiltoniani, attraverso una procedura ricorsiva e poi determinare quello con il peso minore. Come detto in precedenza questo algoritmo troverà sicuramente la soluzione migliore ma impiegherà tantissimo tempo visto che la complessità è pari ad O((n-1)!), in quanto al primo passo ci sono n-1 scelte possibili, al secondo n-2... ed n-k al k-esimo. (Il numero di cicli hamiltoniani in un grafo completo con n nodi è pari a (n-1)! da qui si ricava che il numero di cicli hamiltoniani cresce esponenzialmente col numero dei nodi n = 11 cicli hamiltoniani = 3.628.800)

Procedura principale Procedure Percorri(i,som:integer;cammino:vet); . cammino[i]:=x; (*inseriamo il nodo x nel cammino*) costo:=costi[cammino[i-1],cammino[i]]; (*assegna i costi degli archi*) (*presi in considerazione*) som:=som+costo; (*aggiunta del peso dell'arco alla somma finora calcolata*) i:=i+1; (*incrementiamo l'indice del vet cammino per inserire un nuovo nodo *) if i<=n then (*controlliamo se abbiamo raggiunto la fine del vettore*) begin percorri(i,som,cammino); (*chiamata ricorsiva della procedura percorri*) i:=i-1; (*torniamo indietro di un passo all'interno del vettore cammino*) (*per considerare nuovi cicli*) som:=som-costo; (*togliamo il peso dell'arco eliminato nel passo precedente*) end else begin som:=som+costi[cammino[n],cammino[1]]; if som<=min then (*confrontiamo se la soluzione è migliore di quelle già trovate*) min:=som; for j:=1 to n do write(cammino[j],' '); (*stampa tutto il contenuto del vettore cammino*)

Albero di ricerca Soluzione 1 Soluzione 2

Come si può migliorare? Apportando alcune semplici modifiche è possibile evitare di esplorare alcune soluzioni Si inizia generando cammini completi, e si memorizza quello più corto generato fin ora Ogni altro cammino che si genera viene confrontato ad ogni passo con il più corto memorizzato Se il nuovo cammino è più lungo di quello memorizzato, la ricerca si ferma e si prende in considerazione un nuovo percorso

Albero di ricerca

Difetti Dà la sicurezza di trovare il cammino più corto (min Cij) ma nel caso peggiore impiega un tempo uguale all’algoritmo base Soluzione inadeguata per problemi di grosse dimensioni (tempo elevatissimo) Bisogna essere “fortunati” nel trovare subito un percorso minimo, cosi da avere meno confronti durante il cammino verso la soluzione **ottima ** Questo è un grande limite. In quanto l’”ottimizzazione del tempo” è vincolata dall’ordine con cui si esplorano le soluzioni: prima si trova il ciclo meno costoso e più si riduce il costo dell’elaborazione e quindi la complessità

Algoritmo Branch and Bound (dividi e limita) L’algoritmo base può essere ulteriormente migliorato utilizzando la tecnica detta branch & bound Branching = generazione di sottoinsiemi Bounding = scelta e confronto del limite inferiore Anche qui si ricorre ad una ricerca esaustiva di tutti i cicli hamiltoniani, solo che tale ricerca è effettuta su delle partizioni del grafo

Come funziona il B&B ? Si uniscono i percorsi trovati con eventuali modifiche Si cercano, in modo esaustivo dei cammini minimi nei sottografi Si divide il grafo iniziale in sottografi Soluzione ottima

Tecniche euristiche Il TSP è un problema cosi complesso che occorre costruire una tecnica che ci permetta di arrivare non alla soluzione ottima ma almeno ad una buona! Sono delle tecniche efficienti in quanto portano ad una soluzione, non sono efficaci perché la soluzione trovata non sempre è ottima Euristiche costruttive Costruiscono un circuito hamiltoniano Euristiche di miglioramento Partono da un circuito esistente e lo migliorano

Quando le usiamo? quando le dimensioni del problema sono eccessive quando i problemi devono essere risolti in tempi brevi - quando i dati del problema sono approssimati - quando si devono trattare problemi dinamici

Algoritmi euristici ALGORITMO GREEDY (EURISTICA COSTRUTTIVA) Prevede che ad ogni passo ci si sposti verso il vertice più vicino (utilizzando l’arco con il peso minore), tra quelli non ancora visitati, al vertice corrente 5 3 12 Soluzione trovata: 22 Soluzione ottima: 17 4 6 1 2 3 Complessità O(n2)

Algoritmi euristici ALGORITMO K-OPT (EURISTICA DI MIGLIORAMENTO) Tale algoritmo consiste nell’apportare alcune modifiche alla soluzione trovata con l’algoritmo precedente. Tali modifiche consistono nel sostituire alcuni archi del ciclo hamiltoniano trovato con altri archi per formarne uno nuovo di peso, ovviamente, minore. Si ripete l’operazione fino a trovare il ciclo hamiltoniano migliore.

Come funziona? (2-opt) Si aggiungono due nuovi archi Si parte da un ciclo hamiltoniano Si sceglie una coppia di archi non adiacenti e la si rimuove 7 1 15 Peso: 19 26 5 3 4 2

Pregi e difetti - Più k è grande e più ci avviciniamo alla soluzione ottima 2-opt 8% peggiore dell’ottima 3-opt 4% peggiore dell’ottima Più k è grande e più aumenta la complessità (O(nk))

ALGORITMO LIN – KERNIGHAN È difficile sapere quale k usare per realizzare il più buon compromesso tra complessità e qualità della soluzione L'algoritmo cambia il valore di k durante la sua esecuzione, decidendo ad ogni iterazione quale dovrebbe essere il valore di k. Ad ogni iterazione l'algoritmo esamina, per valori ascendenti di k, se un interscambio di collegamenti di k possono dare luogo ad un giro più corto. Questo continua fino a che non si trovano più scambi che migliorano il percorso trovato in precedenza.

A cosa serve il TSP? Il problema del TSP è una questione aperta anche nella vita di tutti i giorni, molti modelli matematici sono stati sviluppati utilizzando i principi fondamentali del ciclo Hamiltoniano. Di seguito poniamo alcuni dei possibili scenari applicativi del problema!

Ciclo di produzione delle schede elettroniche Minimizzare il percorso della punta (riportandola alla posizione di riposo), corrisponde a risolvere il problema del TSP applicato alla struttura del grafo che rappresenta l’insieme dei fori, pesato con le distanze geometriche che li separano Pianificazione delle consegne ai clienti Questo è un problema fondamentalmente di logistica la quale porre come soluzione un modello vicinissimo a quello del TSP, infatti l’azienda fornitrice deve fare il più lungo tragitto spendendo il meno possibile per quanto riguardano le spese di spedizione!

Links utili per approfondire Riviste scientifiche http://matematicamente.it http://computer.org http://acm.org Siti specializzati http://polito.it http://www.diap.polimi.it/~grabino/metodiemodelli http://polimi.it http://cs.sunisb.edu http://www.is-frankfurt.de/cosa/tsp/tsp.html Materiale generico http://nicoladimauro.it http://csep1.phy.ornl.gov/CSEP/MO/NODE28.html http://crmpa.it

University of Amsterdam Institute of Actuarial Science & Econometrics Bibliografia Graphs and Hypergraphs C.Berge, Dunod Paris, 1970 Algoritmi Thomas H. Cormen, Charles E. Leisserson, I Grafi e le loro applicazioni O.Ore, Zanichelli, MM2, 1963 "Extropy“Rivista, #9, vol.4, n.1, Summer 1992, Los Angeles Un ringraziamento speciale al University of Amsterdam Institute of Actuarial Science & Econometrics