il problema del commesso viaggiatore - pages.di.unipi.itpages.di.unipi.it/passacantando/tfa/cicli...
Embed Size (px)
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