6.6 Varianti: TSP metrico e TSP asimmetrico¶
Parte 1 · Problemi di ottimizzazione combinatoria · Capitolo 6 · Capitolo 6: Problemi di routing · Dispensa, volume 1 (PDF) · Slide · Esercizi: Problemi di routing
6.6.1 Il problema del commesso viaggiatore metrico¶
Definizione 6.4: TSP metrico
Un'istanza del TSP è metrica se le sue distanze soddisfano la disuguaglianza triangolare
Il problema del commesso viaggiatore metrico (TSP metrico) è il TSP ristretto alle istanze metriche.
-
La disuguaglianza triangolare dice che andare direttamente da \(i\) a \(j\) non è mai più lungo che passare per una terza città \(k\).
-
L'istanza dell'Esempio 6.1 è metrica: tutte le \(5\cdot4\cdot3=60\) disuguaglianze triangolari valgono, alcune all'uguaglianza, per esempio \(d_{15}=9=d_{12}+d_{25}=5+4\). Nel disegno, l'arco diretto \(\{1,5\}\) (tratteggiato) è lungo quanto il cammino da \(1\) a \(5\) che passa per la città \(2\).
-
Le istanze ottenute da punti nel piano, con \(d_{ij}\) uguale alla distanza euclidea fra i punti, sono metriche (quando le distanze non sono arrotondate).
-
Diversi algoritmi euristici per il TSP si comportano bene, e alcuni di essi hanno una garanzia di prestazione, solo sulle istanze metriche.
6.6.2 Il problema del commesso viaggiatore asimmetrico¶
Definizione 6.5: Problema del commesso viaggiatore asimmetrico
Dati:
-
un insieme \(\mathscr{V} = \{1,2,\dots,n\}\) di \(n\) città,
-
per ogni coppia ordinata di città distinte \(i,j \in \mathscr{V}\), una distanza \(d_{ij} \in \Z_{\ge 1}\) dalla città \(i\) alla città \(j\), dove \(d_{ij}\) può differire da \(d_{ji}\),
il problema del commesso viaggiatore asimmetrico (ATSP) chiede di trovare un percorso chiuso che parte da una città, visita ogni altra città esattamente una volta e ritorna alla città di partenza, in modo che la distanza totale percorsa sia minima.
-
Le distanze asimmetriche nascono, per esempio, quando si percorrono strade a senso unico o in salita e in discesa.
-
La definizione di giro e della sua lunghezza \(L(\sigma)\) non cambia, ma ora il verso conta: un giro e lo stesso giro percorso all'indietro sono soluzioni diverse.
-
Il TSP è il caso particolare dell'ATSP in cui \(d_{ij}=d_{ji}\) per ogni \(i,j\).
-
Un'istanza dell'ATSP ha \(\frac{n!}{n}=(n-1)!\) giri distinti, il doppio del conteggio della Proposizione 6.2: la città di partenza continua a non cambiare il giro, ma il verso sì, quindi non dividiamo per \(2\).
-
L'istanza dell'Esempio 6.1, letta come istanza dell'ATSP, ha \(4!=24\) giri invece di \(12\).
6.7 Osservazioni¶
-
L'istanza più grande risolta all'ottimo, pla85900, ha \(85\,900\) punti che vengono da un problema di progettazione di chip. È stata risolta nel 2005–2006 con il codice Concorde; il giro ottimo, di lunghezza \(142\,382\,641\), è stato certificato nel 2009 da Applegate, Bixby, Chvátal, Cook, Espinoza, Goycoolea e Helsgaun.
-
Sulle mappe stradali di paesi reali, il record del 2025 è l'istanza korea81998, con \(81\,998\) bar della Corea del Sud.
-
Il TSP è fortemente NP-difficile (Capitolo 1 «Problemi di ottimizzazione combinatoria»). Christofides (1976) ha dato un algoritmo di approssimazione con rapporto \(\frac32\) per il TSP metrico.
6.8 Errori tipici¶
Attenzione
-
Contare \(n!\) giri. La città di partenza non cambia il giro e, nel caso simmetrico, nemmeno il verso: il numero di giri è \((n-1)!/2\).
-
Dimenticare l'arco di ritorno. La lunghezza di un giro comprende l'ultima distanza \(d_{\sigma_n \sigma_1}\), dall'ultima città di nuovo alla prima.
-
Scambiare due cicli per un giro. Due cicli disgiunti che insieme visitano ogni città una volta non sono un giro: un giro è un unico ciclo attraverso tutte le città.
-
Leggere il bound come un giro. Il valore \(17\) del bound dei due archi più corti non è la lunghezza di un giro; dice solo che nessun giro è più corto.
-
Usare la disuguaglianza triangolare senza verificarla. Le garanzie degli algoritmi euristici valgono solo per le istanze metriche.
6.9 In sintesi¶
In sintesi
-
Il TSP chiede un percorso chiuso più corto attraverso tutte le città; una soluzione è un ordinamento ciclico delle città, detto giro.
-
Un'istanza simmetrica con \(n\) città ha \((n-1)!/2\) giri, una asimmetrica \((n-1)!\); elencarli è possibile solo per \(n\) molto piccolo.
-
La nearest neighbour rule dà rapidamente un giro, senza garanzie; i due archi più corti di ogni città danno un lower bound sulla lunghezza ottima.
-
Il TSP metrico, con la disuguaglianza triangolare, è il caso in cui esistono garanzie di approssimazione.
Cruscotto dell'istanza del TSP (minimizzazione: il lower bound è un bound duale, l'upper bound è la lunghezza di un giro):
| Capitolo | Lower bound | Upper bound | Da |
|---|---|---|---|
| Questo capitolo | \(17\) | \(25\) | due archi più corti; nearest neighbour dalla città \(1\) |
| Questo capitolo, enumerazione | \(18\) | \(18\) | i \(12\) giri |
Esercizi su questo capitolo: Problemi di routing
Approfondimento: che cosa fa il corso su questo problema