La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il Problema del Commesso Viaggiatore. Avete mai pianificato un viaggio in piu tappe? Quale metodo avete usato per minimizzare la distanza totale percorsa?

Presentazioni simili


Presentazione sul tema: "Il Problema del Commesso Viaggiatore. Avete mai pianificato un viaggio in piu tappe? Quale metodo avete usato per minimizzare la distanza totale percorsa?"— Transcript della presentazione:

1 Il Problema del Commesso Viaggiatore

2 Avete mai pianificato un viaggio in piu tappe? Quale metodo avete usato per minimizzare la distanza totale percorsa?

3 Cartina alla mano non sembra cosi difficile...soprattutto per poche tappe

4 Mettetevi pero nei panni dello staff di Obama e provate a pianificare le tappe della campagna elettorale negli USA...

5 ?

6 Definiamo meglio il problema

7 Traveling Salesmans Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza da una città allaltra 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?

8 Caratteristiche del problema 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 allicosian game inventato dal matematico William Hamilton

9 Icosian Game (1857) Scopo: trovare un tour lungo gli spigoli di un dodecaedro

10 Icosian Game: Scacchiera Il tour deve passare una sola volta da ogni nodo E un caso molto particolare di TSP!

11 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 –...

12 Modelliamo e Studiamo TSP

13 Quali informazioni ci servono?

14 Citta= nodi AOSTA MILANO TORINO GENOVA

15 Distanze = archi pesati AOSTA MILANO TORINO GENOVA

16 Modello = Grafo Nodi=citta Archi=strade Pesi=distanze F G A B C D E

17 Percorso in grafo A,C,D,E,G,B = percorso con costo =12 F G A B C D E

18 Ciclo = Percorso chiuso A,C,D,E,B,A = ciclo con costo F G A B C D E

19 Ciclo hamiltoniano (Tour) E un ciclo che visita TUTTI i nodi UNA SOLA volta F G A B C D E

20 Percorso non hamiltoniano F G A B C D E Non visita tutti i nodi!

21 Percorso non hamiltoniano F G A B C D E A,C,F,D,E,G,E,...,G,E,B,A: G ed E visitati varie volte

22 TSP come problema sui grafi Dato un grafo G con archi pesati vogliamo calcolare un Ciclo Hamiltoniano di Costo Minimo

23 Esempio di grafo pesato AB C D Grafo non diretto = costo A,B=costo B,A

24 I Cammino Hamiltoniano AB C D A,C,D,B,A costo =12

25 II Cammino Hamiltoniano AB C D A,B,C,D,A costo =13

26 III Cammino Hamiltoniano AB C D A,C,B,D,A costo =16

27 Come si risolve TSP?

28 Soluzioni a TSP Trovare una soluzione esatta del problema TSP (cioe calcolare un tour minimo) e difficile anche per un elaboratore La difficolta e legata al numero di possibili percorsi che occorre esplorare per calcolare quello minimo

29 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

30 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...

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

32 In generale Grafo completo = esiste un arco per ogni coppia di nodi Il numero di cicli hamiltoniani in un grafo completo con n nodi è pari a (n-1)! Il numero di cicli hamiltoniani cresce esponenzialmente col numero dei nodi

33 Si puo veramente risolvere?

34 Si, estato calcolato nel 1954!

35 Si puo fare anche per molte piu citta! Es. 13,509 citta

36 Metodi di risoluzione per TSP

37 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 lelaboratore deve eseguire (algoritmo) Lo sviluppo di algoritmi per risolvere problemi come TSP e uno degli obiettivi principali dellInformatica

38 Algoritmo Algoritmo: sequenza di istruzioni che deve eseguire lelaboratore 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

39 Algoritmi per TSP Algoritmi esatti Applicabili solo a problemi con un numero di città relativamente basso Algoritmi euristici Producono soluzioni probabilmente buone, ma impossibili da provare essere ottimali

40 Un algoritmo esatto Generate & Test Per ogni permutazione P di [1...N] –calcola il costo di C dei pesi sugli archi del ciclo indotto da P – se P e minore dei precedenti calcolati memorizza il cammino in Min Alla fine Min contiene un ciclo minimo

41 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

42 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...

43 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 Lalgoritmo termina quando abbiamo visitato tutte le citta

44 Esempio Nearest Neighbour AB C D 4...

45 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 ponendo I=J La sequenza dei nodi marcati rappresenta il ciclo hamiltoniano

46 Osservazioni su NN E un algoritmo intuitivo Lalgoritmo 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 dellalgoritmo ottimale

47 Esistono molti altri algoritmi 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...

48 Sistemi per risolvere TSP Concorde: Nel 2004 ha calcolato un tour minimo attraverso citta in Svezia ( km) Idea: si calcola una soluzione con un algoritmo euristico e poi si controlla che sia ottimale

49 Uso del calcolo dei percorsi minimi Google map: Trenitalia: AMT:

50 Prima della pratica... un po di esercizi di riepilogo...

51 Quanti e quali cicli hamiltoniani contiene il seguente grafo? AB C D

52 Applicate lalgoritmo Nearest Neighbour al seguente grafo a partire dal nodo A F G A B C D E

53 Applicate lalgoritmo Nearest Neighbour al seguente grafo a partire dal nodo E F G A B C D E

54 Aggiungete pesi (qualsiasi) sugli archi in modo che la soluzione calcolata con lalgoritmo NN a partire dal nodo A non sia quella ottimale AB C D

55 . Disegnate un grafo nel piano Cartesiano (nodi=punti, pesi sugli archi=distanze tra i punti) per il quale NN non restituisce la soluzione ottimale

56 Provate a risolvere licosian game... Cioe a calcolare un tour nel seguente grafo


Scaricare ppt "Il Problema del Commesso Viaggiatore. Avete mai pianificato un viaggio in piu tappe? Quale metodo avete usato per minimizzare la distanza totale percorsa?"

Presentazioni simili


Annunci Google