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