Il Problema del Commesso Viaggiatore

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Il Problema del

Commesso Viaggiatore

Traveling Salesman’s Problem (TSP)

• Un commesso viaggiatore deve visitare un certo numero di città

• Conosce la distanza da 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?

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

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

Modelliamo e Studiamo TSP

Le citta’... (nodi)

AOSTA

MILANO

TORINO

GENOVA

Le distanze... (archi pesati)

AOSTA

MILANO

TORINO

GENOVA

140

169

246

115 142

186

Modello

10

85

6

16

7

A

B

C D

Nodi=citta

Archi=strade

Pesi=distanze

GRAFO!

Percorso in un grafo

10

85

6

16

7

A

B

C D

A, D, B rappresenta un percorso da A a B con peso 16+5

TSP come problema sui grafi

Dato un grafo G con N nodi e archi pesatitrovare un percorso che sia:– un ciclo hamiltoniano (tour)

• inizia e finisce nello stesso node

• passa da tutti i nodi una sola volta

– con peso totale (somma dei pesi) minimo

Esempio

C

2

5 2

3

4

A B

D

4

...

Ciclo hamiltoniano

A,B,C,D,A: 2+4+3+2=11

Con questo percorso “visito” tutti i nodi!

2

5 6

3

4

A B

CD

4

Percorso non hamiltoniano

2

5 6

3

4

A B

CD

4

Percorso non hamiltoniano

2

5 6

3

4

A B

CD

4

Come si risolve TSP?

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

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

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

• ...

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

Metodi di risoluzione per TSP

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

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

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

Un algoritmo esatto

Generate & TestPer 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”

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=PMinD=S

Alla fine MinP contiene tour minimo

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

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’

Esempio Nearest Neighbour

2

5 2

3

4

A B

CD

4

...

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

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

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

• ...

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)

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

Quanti e quali cicli hamiltoniani contiene il seguente grafo?

2

5 6

3

A B

CD

4

Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo A

9

2

6

5

A B

CD

4

3

Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo D

9

2

6

5

A B

CD

4

3

Aggiungete i pesi agli archi in modo che la soluzione calcolata con l’algoritmo NN a partire

dal nodo A non sia quella ottimaleA B

CD

Provate a risolvere l’icosian game...

Il tour deve passare una sola volta da ogni nodo E’ un caso molto particolare di TSP!

Recommended