1 / 38

Il Problema del Commesso Viaggiatore

Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP). Un commesso viaggiatore deve visitare un certo numero di città C onosce la distanza da una città all’altra

karik
Télécharger la présentation

Il Problema del Commesso Viaggiatore

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Il Problema del Commesso Viaggiatore

  2. Traveling Salesman’s Problem (TSP) • Un commesso viaggiatore deve visitare un certo numero di città • Conosce la distanzada una città all’altra • Vuole determinare il percorso più breve che gli permetta di partire da casa sua e di farvi ritorno dopo aver visitato ogni città una sola volta. • Come può fare?

  3. Caratteristiche • TSP e’ uno dei problemi matematici piu’ studiati in informatica • Appartiene alla classe dei problemi difficili (NP-hard) • La prima formulazione risale al 1857 e al gioco icosian inventato dal matematico William Hamilton

  4. Forma generale TSP • La formulazione generale considera forme geometrie qualsiasi e distanze tra le citta’ • Venne introdotta tra gli anni ‘40 e ’50 • Nel corso degli anni ha trovato numerose istanziazioni interessanti: • logistica e trasporti • costruzione di circuiti stampati (pianificazione del percorso del trapano) • protocolli di routing • DNA sequencing • ...

  5. Modelliamo e Studiamo TSP

  6. Le citta’... (nodi) AOSTA MILANO TORINO GENOVA

  7. Le distanze... (archi pesati) AOSTA 186 MILANO 115 142 140 TORINO 246 169 GENOVA

  8. Modello A Nodi=citta 10 B 16 Archi=strade 8 5 7 Pesi=distanze C 6 D GRAFO!

  9. Percorso in un grafo A 10 B 16 8 5 7 C 6 D A, D, B rappresenta un percorso da A a B con peso 16+5

  10. TSP come problema sui grafi Dato un grafo G con N nodi e archi pesatitrovare un percorso che sia: • un ciclohamiltoniano (tour) • inizia e finisce nello stesso node • passa da tutti i nodi una sola volta • con peso totale (somma dei pesi) minimo

  11. A B 2 4 4 2 5 D 3 Esempio C ...

  12. A B 2 4 4 6 5 D 3 C Ciclo hamiltoniano A,B,C,D,A: 2+4+3+2=11 Con questo percorso “visito” tutti i nodi!

  13. Percorso non hamiltoniano A B 2 4 4 6 5 D 3 C

  14. Percorso non hamiltoniano A B 2 4 4 6 5 D 3 C

  15. Come si risolve TSP?

  16. Soluzioni a TSP • Trovare manualmente una soluzione esatta del problema TSP (cioe’ calcolare un tour minimo) e’ molto difficile • La difficolta’ e’ legata al numero di possibili percorsi che occorre esplorare per calcolare quello minimo

  17. Per capire la difficolta’ del problema... facciamo due conti • Negli USA ci sono 49 stati continentali + un distretto • Supponiamo che Obama programmi di fare un solo comizio in ogni stato

  18. Quanti percorsi devo considerare per calcolare il migliore? • Partendo da Washington, Obama ha 49 possibili scelte per la prima tappa • Fissata la prima tappa, rimangono 48 scelte per la seconda tappa • Fissata la seconda tappa, rimangono 47 scelte per la terza tappa • ...

  19. Il numero di possibili percorsi tra i quali trovare il piu’ breve e’ 49! = 49 * 48 * ... * 3 * 2 * 1 ... nell’ordine di 1062 cioe’ maggiore del numero di atomi di cui è composta la Terra

  20. Metodi di risoluzione per TSP

  21. Come si puo’ fare? • Per poter affrontare questo tipo di problemi dobbiamo necessariamente programmare delle soluzioni su uno o piu’ elaboratori • Per calcolare le soluzioni usiamo quindi dei programmi che rappresentano i passi che l’elaboratore deve eseguire (algoritmo) • Lo sviluppo di algoritmi per risolvere problemi come TSP e’ uno degli obiettivi principali dell’Informatica

  22. Algoritmo • Algoritmo: sequenza di istruzioni che deve eseguire l’elaboratore • Si scrivono usando i linguaggi di programmazione • Esempi di istruzioni: • memorizza ... in ... • confronta ... con ... • per ogni valore in ... esegui.... - ripeti ... fino a che ... diventa vera

  23. Algoritmi per TSP Algoritmi esattiApplicabili solo a problemi con un numero di città relativamente basso Algoritmi euristiciProducono soluzioni probabilmente buone, ma impossibili da provare essere ottimali

  24. Un algoritmo esatto Generate & Test Per ogni permutazione P di [1...N] • calcola la somma S dei pesi sugli archi del ciclo indotto da P • se S e’ minore dei precedenti calcolati memorizza il cammino in Min Alla fine Min contiene un ciclo “minimo”

  25. Raffinamento MinD=MAX_INT MinP=nullo Per ogni permutazione P=[i1,....,iN] di [1...N] • S=dist(i1,i2)+....+dist(iN,i1) • se S < MinD allora MinP=P MinD=S Alla fine MinP contiene tour minimo

  26. Problema • Abbiamo visto che per TSP con molte citta’ il numero di possibili percorsi puo’ essere astronomico! • Provate a pensare e scrivere un algoritmo euristico... quello che probabilmente usate nei vostri viaggi...

  27. Un Algoritmo Euristico Nearest Neighbour (NN) • Partendo da un nodo iniziale scelto a piacere, ci muoviamo sempre verso la citta’ piu’ vicina non ancora visitata • L’algoritmo termina quando abbiamo visitato tutte le citta’

  28. Esempio Nearest Neighbour A B 2 4 4 5 2 D 3 C ...

  29. Algoritmo Nearest Neighbour • I = nodo iniziale • Fino a che ho ancora nodi da visitare • Sia J il nodo non ancora visitato piu’ vicino ad I • marco J come visitato • proseguo la ricerca • La sequenza dei nodi marcati rappresenta il ciclo hamiltoniano

  30. Osservazioni su NN • E’ un algoritmo “intuitivo” • L’algoritmo Nearest Neighbour non da’ sempre la soluzione ottimale (cercare di ottenere un vantaggio immediato non sempre e’ la scelta migliore...) • Tuttavia e’ una buona approssimazione dell’algoritmo ottimale

  31. Esistono molti altri modi • Algoritmi basati su programmazione intera lineare (LIP) • si codifica il problema come un insieme di disequazioni ed una funzione costo • si usano euristiche per problemi di LIP • Algoritmi genetici • ...

  32. Sistemi per risolvere TSP • Concorde: http://www.tsp.gatech.edu/ • Nel 2004 ha calcolato un tour minimo attraverso24.978 citta’ in Svezia (72.500 km)

  33. Prima della pratica ... un po’ di esercizi di riepilogo...

  34. Quanti e quali cicli hamiltoniani contiene il seguente grafo? A B 2 6 5 4 D 3 C

  35. Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo A A B 9 4 6 2 3 D C 5

  36. Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo D A B 9 4 6 2 3 D C 5

  37. Aggiungete i pesi agli archi in modo che la soluzione calcolata con l’algoritmo NN a partire dal nodo A non sia quella ottimale A B D C

  38. Provate a risolvere l’icosian game... Il tour deve passare una sola volta da ogni nodo E’ un caso molto particolare di TSP!

More Related