il problema del commesso viaggiatore - pages.di.unipi.itpages.di.unipi.it/passacantando/tfa/cicli...

55
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa [email protected] M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universit` a di Pisa 1 / 20

Upload: trinhhuong

Post on 21-Feb-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Il problema del commesso viaggiatore

Mauro Passacantando

Dipartimento di InformaticaLargo B. Pontecorvo 3, [email protected]

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 1 / 20

Problema

In un dodecaedro regolare e possibile partire da un vertice e, passando suglispigoli, toccare tutti i vertici una ed una sola volta e tornare al vertice di partenza?

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 2 / 20

Icosian game

Grafo: nodi (=vertici del poliedro), archi(=spigoli del poliedro).

Trovare un ciclo che passa su tutti i nodi una ed una sola volta.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 3 / 20

Icosian game

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 4 / 20

Altri problemi

Per ognuno degli altri 4 solidi regolari

cercare un ciclo che passa su tutti i vertici una ed sola volta.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 5 / 20

Altri problemi

Ciclo del cavallo

E possibile muovere un cavallo su una scacchiera in modo da passare su tutte lecaselle della scacchiera e tornare alla casella iniziale?

Vedi anche: http://neamar.fr/Res/Icosien

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 6 / 20

Proprieta

Definizione

Un ciclo che passa su tutti i nodi di un grafo una ed una sola volta e detto ciclohamiltoniano.

Come si fa a stabilire se in un grafo esiste un ciclo hamiltoniano?

Vale una proprieta simile a quella dei cicli euleriani?

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 7 / 20

Problema del commesso viaggiatore (TSP)

Problema

Grafo (N ,A) completo; cij = costi sugli archi.Trovare un ciclo hamiltoniano di costo minimo.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 8 / 20

Problema del commesso viaggiatore (TSP)

Problema

Grafo (N ,A) completo; cij = costi sugli archi.Trovare un ciclo hamiltoniano di costo minimo.

Applicazioni

• trasporti, logistica: (N ′,A′) rete stradale. S ⊆ N ′, cerco ciclo di costo

minimo che passi su tutti i nodi di S . Il problema e un TSP sul grafo (N ,A),dove N = S , A = S × S , cij = costo cammino minimo da i a j sul grafo(N ′

,A′).

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 8 / 20

Problema del commesso viaggiatore (TSP)

Problema

Grafo (N ,A) completo; cij = costi sugli archi.Trovare un ciclo hamiltoniano di costo minimo.

Applicazioni

• trasporti, logistica: (N ′,A′) rete stradale. S ⊆ N ′, cerco ciclo di costo

minimo che passi su tutti i nodi di S . Il problema e un TSP sul grafo (N ,A),dove N = S , A = S × S , cij = costo cammino minimo da i a j sul grafo(N ′

,A′).

• scheduling

• produzione di circuiti integrati

• data analysis

• sequenze DNA

• . . . (vedi http://www.tsp.gatech.edu)

• applicazione “Concorde TSP” per iPhone/iPad

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 8 / 20

Modello

Variabili: xij =

{

1 se arco (i , j) ∈ ciclo hamiltoniano,

0 altrimenti.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 9 / 20

Modello

Variabili: xij =

{

1 se arco (i , j) ∈ ciclo hamiltoniano,

0 altrimenti.

min∑

(i ,j)∈A

cij xij

xij ∈ {0, 1} ∀ (i , j) ∈ A

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 9 / 20

Modello

Variabili: xij =

{

1 se arco (i , j) ∈ ciclo hamiltoniano,

0 altrimenti.

min∑

(i ,j)∈A

cij xij

xij ∈ {0, 1} ∀ (i , j) ∈ A

(1)-(2): per ogni nodo deve esistere un arco entrante e un arco uscente(3): eliminazione di sottocicli.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 9 / 20

Modello

Variabili: xij =

{

1 se arco (i , j) ∈ ciclo hamiltoniano,

0 altrimenti.

min∑

(i ,j)∈A

cij xij

i∈N\{j}

xij = 1 ∀ j ∈ N (1)

j∈N\{i}

xij = 1 ∀ i ∈ N (2)

xij ∈ {0, 1} ∀ (i , j) ∈ A

(1)-(2): per ogni nodo deve esistere un arco entrante e un arco uscente(3): eliminazione di sottocicli.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 9 / 20

Modello

Variabili: xij =

{

1 se arco (i , j) ∈ ciclo hamiltoniano,

0 altrimenti.

min∑

(i ,j)∈A

cij xij

i∈N\{j}

xij = 1 ∀ j ∈ N (1)

j∈N\{i}

xij = 1 ∀ i ∈ N (2)

(i ,j)∈A: i∈S, j /∈S

xij ≥ 1 ∀ S ⊆ N , S 6= ∅,N (3)

xij ∈ {0, 1} ∀ (i , j) ∈ A

(1)-(2): per ogni nodo deve esistere un arco entrante e un arco uscente(3): eliminazione di sottocicli.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 9 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Metodo greedy sugli archi

Dispongo gli archi in ordine crescente di costo.Seguendo l’ordine, inserisco un arco se vengono rispettati tutti i vincoli.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

1

2

34

5

Il ciclo 1–2–3–4–5–1 costa 113.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 10 / 20

Metodi euristici

Algoritmo del nodo piu vicino

1. Scegli un nodo i , poni u := i (nodo corrente), C := i (sequenza di nodi).

2. Se C contiene tutti i nodi allora STOP

3. Tra i nodi di N \ C trova il nodo j piu vicino a u

aggiungi j in coda a C , poni u := j e torna al passo 2.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 11 / 20

Metodi euristici

Algoritmo del nodo piu vicino

1. Scegli un nodo i , poni u := i (nodo corrente), C := i (sequenza di nodi).

2. Se C contiene tutti i nodi allora STOP

3. Tra i nodi di N \ C trova il nodo j piu vicino a u

aggiungi j in coda a C , poni u := j e torna al passo 2.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

Partendo dal nodo 1 si ottiene il ciclo

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 11 / 20

Metodi euristici

Algoritmo del nodo piu vicino

1. Scegli un nodo i , poni u := i (nodo corrente), C := i (sequenza di nodi).

2. Se C contiene tutti i nodi allora STOP

3. Tra i nodi di N \ C trova il nodo j piu vicino a u

aggiungi j in coda a C , poni u := j e torna al passo 2.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

Partendo dal nodo 1 si ottiene il ciclo 1–2–3–4–5–1 di costo 113.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 11 / 20

Metodi euristici

Algoritmo del nodo piu vicino

1. Scegli un nodo i , poni u := i (nodo corrente), C := i (sequenza di nodi).

2. Se C contiene tutti i nodi allora STOP

3. Tra i nodi di N \ C trova il nodo j piu vicino a u

aggiungi j in coda a C , poni u := j e torna al passo 2.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

Partendo dal nodo 1 si ottiene il ciclo 1–2–3–4–5–1 di costo 113.

Partendo dal nodo 5 si ottiene il ciclo

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 11 / 20

Metodi euristici

Algoritmo del nodo piu vicino

1. Scegli un nodo i , poni u := i (nodo corrente), C := i (sequenza di nodi).

2. Se C contiene tutti i nodi allora STOP

3. Tra i nodi di N \ C trova il nodo j piu vicino a u

aggiungi j in coda a C , poni u := j e torna al passo 2.

Esempio

1 2 3 4 51 – 11 21 36 312 – 15 25 243 – 27 344 – 295 –

Partendo dal nodo 1 si ottiene il ciclo 1–2–3–4–5–1 di costo 113.

Partendo dal nodo 5 si ottiene il ciclo 5–2–1–3–4–5 di costo 112.

24 11 23 27 29 35+79M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 11 / 20

Metodi euristici

Algoritmo dell’albero

1. Trova un albero di copertura di costo minimo T

2. Raddoppia tutti gli archi di T ottenendo il multigrafo G ′

3. Su G ′ trova un ciclo euleriano CE

4. Estrai da CE un ciclo hamiltoniano prendendo i nodi, senza ripetizione, nellostesso ordine in cui compaiono in CE

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 12 / 20

Metodi euristici

Esempio

Applichiamo l’algoritmo dell’albero al problema precedente:

1

2

34

5

112136

31

15

25

24

27

34

29

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 13 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

2. Raddoppiando gli archi di T si ottiene G ′:

1

2

34

5

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

2. Raddoppiando gli archi di T si ottiene G ′:

1

2

34

5

3. Un ciclo euleriano su G ′ e dato dalla sequenza di nodi:

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

2. Raddoppiando gli archi di T si ottiene G ′:

1

2

34

5

3. Un ciclo euleriano su G ′ e dato dalla sequenza di nodi: 2–1–2–3–2–4–2–5–2

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

2. Raddoppiando gli archi di T si ottiene G ′:

1

2

34

5

3. Un ciclo euleriano su G ′ e dato dalla sequenza di nodi: 2–1–2–3–2–4–2–5–2

4. Dal ciclo euleriano ricaviamo il ciclo hamiltoniano:

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Metodi euristici

Esempio (segue)

1. L’albero di copertura di costo minimo T e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5}.

2. Raddoppiando gli archi di T si ottiene G ′:

1

2

34

5

3. Un ciclo euleriano su G ′ e dato dalla sequenza di nodi: 2–1–2–3–2–4–2–5–2

4. Dal ciclo euleriano ricaviamo il ciclo hamiltoniano: 2–1–3–4–5–2 di costo 112.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 14 / 20

Rilassamenti

Eliminando i vincoli di connessione, il problema diventa un problema diassegnamento di costo minimo.

min∑

(i ,j)∈A

cij xij

i∈N\{j}

xij = 1 ∀ j ∈ N

j∈N\{i}

xij = 1 ∀ i ∈ N

xij ∈ {0, 1} ∀ (i , j) ∈ A

Il valore ottimo di tale problema e una stima per difetto del valore ottimo del TSP.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 15 / 20

Rilassamenti

Se da un ciclo hamiltoniano eliminiamo un arco, otteniamo un cammino che passaper tutti nodi. Questo cammino e un particolare albero di copertura.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 16 / 20

Rilassamenti

Se da un ciclo hamiltoniano eliminiamo un arco, otteniamo un cammino che passaper tutti nodi. Questo cammino e un particolare albero di copertura.

Teorema

Se T e un albero di copertura di costo minimo, allora il suo costo e una stima perdifetto del valore ottimo del TSP.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 16 / 20

Rilassamenti

Esempio

L’albero di copertura di costo minimo sul grafo

1

2

34

5

112136

31

15

25

24

27

34

29

e formato dagli archi:

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 17 / 20

Rilassamenti

Esempio

L’albero di copertura di costo minimo sul grafo

1

2

34

5

112136

31

15

25

24

27

34

29

e formato dagli archi:{1, 2}, {2, 3}, {2, 4}, {2, 5} e costa 75.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 17 / 20

Rilassamenti

E possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costominimo.

Osservazione

Fissiamo un nodo r . Ogni ciclo hamiltoniano e formato da 2 archi incidenti sulnodo r (che lo connettono ai nodi p e q) e da un cammino (che e un particolarealbero di copertura) che connette p e q.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 18 / 20

Rilassamenti

E possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costominimo.

Osservazione

Fissiamo un nodo r . Ogni ciclo hamiltoniano e formato da 2 archi incidenti sulnodo r (che lo connettono ai nodi p e q) e da un cammino (che e un particolarealbero di copertura) che connette p e q.

Definizione

Un r–albero e un insieme di n archi di cui

• 2 sono incidenti sul nodo r

• n − 2 formano un albero di copertura sui nodi diversi da r

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 18 / 20

Rilassamenti

E possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costominimo.

Osservazione

Fissiamo un nodo r . Ogni ciclo hamiltoniano e formato da 2 archi incidenti sulnodo r (che lo connettono ai nodi p e q) e da un cammino (che e un particolarealbero di copertura) che connette p e q.

Definizione

Un r–albero e un insieme di n archi di cui

• 2 sono incidenti sul nodo r

• n − 2 formano un albero di copertura sui nodi diversi da r

Teorema

Ogni ciclo hamiltoniano e un r–albero.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 18 / 20

Rilassamenti

Teorema

Il costo dell’r–albero di costo minimo e una stima per difetto del valore ottimo delTSP.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 19 / 20

Rilassamenti

Teorema

Il costo dell’r–albero di costo minimo e una stima per difetto del valore ottimo delTSP.

E facile risolvere il problema dell’r–albero di costo minimo?

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 19 / 20

Rilassamenti

Teorema

Il costo dell’r–albero di costo minimo e una stima per difetto del valore ottimo delTSP.

E facile risolvere il problema dell’r–albero di costo minimo?

SI, basta trovare

• 2 archi di costo minimo incidenti sul nodo r (ovvio)

• un albero di copertura di costo minimo sui nodi diversi da r (alg. Kruskal)

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 19 / 20

Rilassamenti

Teorema

Il costo dell’r–albero di costo minimo e una stima per difetto del valore ottimo delTSP.

E facile risolvere il problema dell’r–albero di costo minimo?

SI, basta trovare

• 2 archi di costo minimo incidenti sul nodo r (ovvio)

• un albero di copertura di costo minimo sui nodi diversi da r (alg. Kruskal)

Teorema

Se T e un albero di copertura di costo minimo e T ′ e un r–albero di costominimo, allora

costo(T ) ≤ costo(T ′),

cioe la stima fornita da T ′ non e mai peggiore di quella fornita da T .

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 19 / 20

Rilassamenti

Esempio

Il 2–albero di costo minimo sul grafo

1

2

34

5

112136

31

15

25

24

27

34

29

e formato dagli archi:

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 20 / 20

Rilassamenti

Esempio

Il 2–albero di costo minimo sul grafo

1

2

34

5

112136

31

15

25

24

27

34

29

e formato dagli archi:{1, 2}, {2, 3} (incidenti sul nodo 2)

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 20 / 20

Rilassamenti

Esempio

Il 2–albero di costo minimo sul grafo

1

2

34

5

112136

31

15

25

24

27

34

29

e formato dagli archi:{1, 2}, {2, 3} (incidenti sul nodo 2){1, 3}, {3, 4}, {4, 5} (albero di copertura sui nodi diversi da 2).di costo 103.

M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Universita di Pisa 20 / 20