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à di Pisa
1 / 20
Problema
In un dodecaedro regolare è possibile partire da un vertice e, passando sugli
spigoli, toccare tutti i vertici una ed una sola volta e tornare al vertice di partenza?
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università 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
Università di Pisa
3 / 20
Icosian game
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università 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
Università di Pisa
5 / 20
Altri problemi
Ciclo del cavallo
È possibile muovere un cavallo su una scacchiera in modo da passare su tutte le
caselle della scacchiera e tornare alla casella iniziale?
Vedi anche: http://neamar.fr/Res/Icosien
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
6 / 20
Proprietà
Definizione
Un ciclo che passa su tutti i nodi di un grafo una ed una sola volta è detto ciclo
hamiltoniano.
Come si fa a stabilire se in un grafo esiste un ciclo hamiltoniano?
Vale una proprietà simile a quella dei cicli euleriani?
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università 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
Università 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 è 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
Università 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 è 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
Università di Pisa
8 / 20
Modello
Variabili: xij =
M. Passacantando
(
1 se arco (i, j) ∈ ciclo hamiltoniano,
0 altrimenti.
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
9 / 20
Modello
Variabili: xij =
(
1 se arco (i, j) ∈ ciclo hamiltoniano,
0 altrimenti.
min
X
cij xij
(i ,j)∈A
xij ∈ {0, 1}
M. Passacantando
TFA 2012/13
-
∀ (i, j) ∈ A
Corso di Ricerca Operativa
Università di Pisa
9 / 20
Modello
Variabili: xij =
(
1 se arco (i, j) ∈ ciclo hamiltoniano,
0 altrimenti.
min
X
cij xij
(i ,j)∈A
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
Università di Pisa
9 / 20
Modello
Variabili: xij =
(
1 se arco (i, j) ∈ ciclo hamiltoniano,
0 altrimenti.
min
X
cij xij
(i ,j)∈A
X
xij = 1
∀j ∈N
(1)
xij = 1
∀i ∈N
(2)
i ∈N\{j}
X
j∈N\{i }
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
Università di Pisa
9 / 20
Modello
Variabili: xij =
(
1 se arco (i, j) ∈ ciclo hamiltoniano,
0 altrimenti.
min
X
cij xij
(i ,j)∈A
X
xij = 1
∀j ∈N
(1)
xij = 1
∀i ∈N
(2)
i ∈N\{j}
X
j∈N\{i }
X
xij ≥ 1
∀ S ⊆ N,
S 6= ∅, N
(3)
(i ,j)∈A: i ∈S, j ∈S
/
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
Università 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
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
M. Passacantando
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
TFA 2012/13
1
5
2
4
-
Corso di Ricerca Operativa
3
Università 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
5
1
–
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
1
5
2
4
3
Il ciclo 1–2–3–4–5–1 costa 113.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
10 / 20
Metodi euristici
Algoritmo del nodo più 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 più 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
Università di Pisa
11 / 20
Metodi euristici
Algoritmo del nodo più 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 più vicino a u
aggiungi j in coda a C , poni u := j e torna al passo 2.
Esempio
1
2
3
4
5
1
–
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
Partendo dal nodo 1 si ottiene il ciclo
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
11 / 20
Metodi euristici
Algoritmo del nodo più 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 più vicino a u
aggiungi j in coda a C , poni u := j e torna al passo 2.
Esempio
1
2
3
4
5
1
–
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
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
Università di Pisa
11 / 20
Metodi euristici
Algoritmo del nodo più 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 più vicino a u
aggiungi j in coda a C , poni u := j e torna al passo 2.
Esempio
1
2
3
4
5
1
–
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
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
Università di Pisa
11 / 20
Metodi euristici
Algoritmo del nodo più 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 più vicino a u
aggiungi j in coda a C , poni u := j e torna al passo 2.
Esempio
1
2
3
4
5
1
–
2
11
–
3
21
15
–
4
36
25
27
–
5
31
24
34
29
–
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.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università 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, nello
stesso ordine in cui compaiono in CE
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
12 / 20
Metodi euristici
Esempio
Applichiamo l’algoritmo dell’albero al problema precedente:
1
31
11
36
21
24
5
34
25
29
15
4
M. Passacantando
2
TFA 2012/13
27
-
3
Corso di Ricerca Operativa
Università di Pisa
13 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
2. Raddoppiando gli archi di T si ottiene G ′ :
1
5
2
4
M. Passacantando
TFA 2012/13
-
3
Corso di Ricerca Operativa
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
2. Raddoppiando gli archi di T si ottiene G ′ :
1
5
2
4
3
3. Un ciclo euleriano su G ′ è dato dalla sequenza di nodi:
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
2. Raddoppiando gli archi di T si ottiene G ′ :
1
5
2
4
3
3. Un ciclo euleriano su G ′ è dato dalla sequenza di nodi: 2–1–2–3–2–4–2–5–2
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
2. Raddoppiando gli archi di T si ottiene G ′ :
1
5
2
4
3
3. Un ciclo euleriano su G ′ è 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
Università di Pisa
14 / 20
Metodi euristici
Esempio (segue)
1. L’albero di copertura di costo minimo T è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5}.
2. Raddoppiando gli archi di T si ottiene G ′ :
1
5
2
4
3
3. Un ciclo euleriano su G ′ è 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
Università di Pisa
14 / 20
Rilassamenti
Eliminando i vincoli di connessione, il problema diventa un problema di
assegnamento di costo minimo.
min
X
cij xij
(i ,j)∈A
X
xij = 1
∀j ∈N
xij = 1
∀i ∈N
i ∈N\{j}
X
j∈N\{i }
xij ∈ {0, 1} ∀ (i, j) ∈ A
Il valore ottimo di tale problema è una stima per difetto del valore ottimo del TSP.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
15 / 20
Rilassamenti
Se da un ciclo hamiltoniano eliminiamo un arco, otteniamo un cammino che passa
per tutti nodi. Questo cammino è un particolare albero di copertura.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
16 / 20
Rilassamenti
Se da un ciclo hamiltoniano eliminiamo un arco, otteniamo un cammino che passa
per tutti nodi. Questo cammino è un particolare albero di copertura.
Teorema
Se T è un albero di copertura di costo minimo, allora il suo costo è una stima per
difetto del valore ottimo del TSP.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
16 / 20
Rilassamenti
Esempio
L’albero di copertura di costo minimo sul grafo
1
31
11
36
21
24
5
34
25
29
15
4
27
è formato dagli archi:
M. Passacantando
2
TFA 2012/13
-
3
Corso di Ricerca Operativa
Università di Pisa
17 / 20
Rilassamenti
Esempio
L’albero di copertura di costo minimo sul grafo
1
31
11
36
21
24
5
34
25
29
15
4
è formato dagli archi:
{1, 2}, {2, 3}, {2, 4}, {2, 5} e costa 75.
M. Passacantando
2
TFA 2012/13
-
27
3
Corso di Ricerca Operativa
Università di Pisa
17 / 20
Rilassamenti
È possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costo
minimo.
Osservazione
Fissiamo un nodo r . Ogni ciclo hamiltoniano è formato da 2 archi incidenti sul
nodo r (che lo connettono ai nodi p e q) e da un cammino (che è un particolare
albero di copertura) che connette p e q.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
18 / 20
Rilassamenti
È possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costo
minimo.
Osservazione
Fissiamo un nodo r . Ogni ciclo hamiltoniano è formato da 2 archi incidenti sul
nodo r (che lo connettono ai nodi p e q) e da un cammino (che è un particolare
albero di copertura) che connette p e q.
Definizione
Un r –albero è 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
Università di Pisa
18 / 20
Rilassamenti
È possibile migliorare la stima inferiore ottenuta con l’albero di copertura di costo
minimo.
Osservazione
Fissiamo un nodo r . Ogni ciclo hamiltoniano è formato da 2 archi incidenti sul
nodo r (che lo connettono ai nodi p e q) e da un cammino (che è un particolare
albero di copertura) che connette p e q.
Definizione
Un r –albero è 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 è un r –albero.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
18 / 20
Rilassamenti
Teorema
Il costo dell’r –albero di costo minimo è una stima per difetto del valore ottimo del
TSP.
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
19 / 20
Rilassamenti
Teorema
Il costo dell’r –albero di costo minimo è una stima per difetto del valore ottimo del
TSP.
È facile risolvere il problema dell’r –albero di costo minimo?
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
19 / 20
Rilassamenti
Teorema
Il costo dell’r –albero di costo minimo è una stima per difetto del valore ottimo del
TSP.
È 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
Università di Pisa
19 / 20
Rilassamenti
Teorema
Il costo dell’r –albero di costo minimo è una stima per difetto del valore ottimo del
TSP.
È 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 è un albero di copertura di costo minimo e T ′ è un r –albero di costo
minimo, allora
costo(T ) ≤ costo(T ′ ),
cioè la stima fornita da T ′ non è mai peggiore di quella fornita da T .
M. Passacantando
TFA 2012/13
-
Corso di Ricerca Operativa
Università di Pisa
19 / 20
Rilassamenti
Esempio
Il 2–albero di costo minimo sul grafo
1
31
11
36
21
24
5
34
25
29
15
4
27
è formato dagli archi:
M. Passacantando
2
TFA 2012/13
-
3
Corso di Ricerca Operativa
Università di Pisa
20 / 20
Rilassamenti
Esempio
Il 2–albero di costo minimo sul grafo
1
31
11
36
21
24
5
34
25
29
15
4
27
è formato dagli archi:
{1, 2}, {2, 3} (incidenti sul nodo 2)
M. Passacantando
2
TFA 2012/13
-
3
Corso di Ricerca Operativa
Università di Pisa
20 / 20
Rilassamenti
Esempio
Il 2–albero di costo minimo sul grafo
1
31
11
36
21
24
5
34
2
25
29
15
4
27
3
è 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
Università di Pisa
20 / 20