13.6 Modelli PLI per il TSP metrico e asimmetrico¶
Parte 2 · Formulazioni dei problemi e loro proprietà · Capitolo 13 · Capitolo 13: Problemi di routing · Dispensa, volume 2 (PDF) · Slide · Esercizi: Problemi di routing
I problemi di questa sezione sono il problema del commesso viaggiatore asimmetrico (ATSP) e il TSP metrico, definiti nel Capitolo 6 «Problemi di routing», Sezione 6.6.
-
Dato l'insieme \(\mathscr{V}=\{1,2,\dots,n\}\) delle città e l'insieme \(A\) degli archi orientati, ogni arco \((i,j)\) ha la sua distanza \(d_{ij}\), che può differire da \(d_{ji}\). Introduciamo le seguenti \(n(n-1)\) variabili binarie:
\[ x_{ij}= \begin{cases} 1 & \text{se l'arco $(i,j)$ è percorso dal giro}\\[1.5ex] 0 & \text{altrimenti} \end{cases} \qquad \forall (i,j)\in A. \]
Usando queste variabili, un modello di programmazione lineare intera (PLI) per il problema del commesso viaggiatore asimmetrico (ATSP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}_{\mathrm{ATSP}}\).
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}_{\mathrm{ATSP}}\):
-
la funzione obiettivo lineare \(\eqref{obj:ATSP}\) minimizza la distanza totale percorsa lungo gli archi del giro, ciascun arco con la sua distanza;
-
i vincoli \(\eqref{out:ATSP}\) e \(\eqref{in:ATSP}\) garantiscono che da ogni città esca esattamente un arco e che in ogni città entri esattamente un arco (\(2n\) vincoli lineari);
-
i vincoli \(\eqref{SEC:ATSP}\) sono i vincoli di eliminazione dei sottogiri (\(2^{n-1}-n\) vincoli lineari);
-
infine, i vincoli \(\eqref{bin:ATSP}\) definiscono le variabili del modello PLI.
-
-
Il modello \(\mathrm{ILP}_{\mathrm{ATSP}}\) è il modello \(\mathrm{ILP}_{\mathrm{TSP}}^{\mathrm{DFJ}}\) con le distanze degli archi: la sua dimostrazione di correttezza, la Proposizione 13.2, non usa mai \(d_{ij}=d_{ji}\). Per lo stesso motivo anche il modello \(\mathrm{ILP}_{\mathrm{TSP}}^{\mathrm{MTZ}}\) è un modello PLI dell'ATSP.
-
Un giro e lo stesso giro percorso al contrario usano archi opposti: nell'ATSP sono soluzioni diverse, in generale di lunghezze diverse.
-
Il TSP metrico, definito nel Capitolo 6 «Problemi di routing», ha gli stessi modelli PLI del TSP: la disuguaglianza triangolare è una proprietà delle distanze, non un vincolo del modello. L'istanza dell'Esempio 13.1 è metrica, quindi i modelli \(\mathrm{ILP}_{\mathrm{TSP}}^{\mathrm{MTZ}}\) e \(\mathrm{ILP}_{\mathrm{TSP}}^{\mathrm{DFJ}}\) scritti per essa sono già modelli di un'istanza del TSP metrico.
Esempio 13.8: Modello \(\mathrm{ILP}_{\mathrm{ATSP}}\)
Consideriamo l'insieme \(\mathscr{V}=\{1,2,3,4\}\) di \(4\) città (\(n=4\)), con la matrice delle distanze asimmetrica
Per esempio, \(d_{13}=7\) e \(d_{31}=9\). Il modello \(\mathrm{ILP}_{\mathrm{ATSP}}\) per questa istanza dell'ATSP ha \(12\) variabili di arco, \(8\) vincoli di grado e \(4\) vincoli di eliminazione dei sottogiri, uno per ogni sottoinsieme \(S\subseteq\{2,3,4\}\) con almeno due città:
I due sottogiri \(1\to2\to1\) e \(3\to4\to3\), di lunghezza totale \(2+2+1+1=6\), soddisfano i vincoli di grado ma violano il vincolo \(x_{34}+x_{43}\le1\) di \(S=\{3,4\}\). Una soluzione ottima \(\tilde{\vet x}(\mathrm{ILP}_{\mathrm{ATSP}})\) è il giro \(\tilde\sigma=(1,2,3,4)\):
Il valore ottimo \(z(\mathrm{ILP}_{\mathrm{ATSP}})\) è \(2+4+1+2=9\), e il giro ottimo è unico. Lo stesso giro percorso al contrario, \((1,4,3,2)\), ha lunghezza \(7+1+7+2=17\).
13.7 Errori tipici¶
Attenzione
-
Scrivere i vincoli MTZ per la città \(1\). I vincoli (13.1d) si scrivono solo per le coppie di città diverse dalla città \(1\): la città \(1\) non ha variabile di posizione.
-
Usare un big-M minore di \(n-1\). Scritto come \(u_i-u_j+Mx_{ij}\le M-1\), il vincolo con \(M<n-1\) taglia giri ammissibili: quando \(x_{ij}=0\) richiede \(u_i-u_j\le M-1<n-2\), mentre due posizioni possono differire di \(n-2\); \(M=n-1\) è il più piccolo valore valido.
-
Prendere \(S=\mathscr{V}\) nei vincoli di eliminazione dei sottogiri. Un giro usa \(|\mathscr{V}|\) archi dentro \(\mathscr{V}\): il vincolo taglierebbe ogni giro. Gli insiemi \(S\) sono sottoinsiemi propri delle città, con almeno due città.
-
Fidarsi del bound MTZ. Per la Proposizione 13.3, molte soluzioni frazionarie del rilassamento di assegnamento sono ammissibili per il rilassamento MTZ: la formulazione compatta non è forte.
-
Elencare tutti i vincoli di eliminazione dei sottogiri. Il loro numero è \(2^{n-1}-n\): non si scrivono tutti insieme, ma si aggiungono quando sono violati.
-
Identificare un giro con il suo inverso nell'ATSP. Con distanze asimmetriche i due versi di un giro sono soluzioni diverse: nell'Esempio 13.8 hanno lunghezze \(9\) e \(17\).
-
Aggiungere la disuguaglianza triangolare come vincolo. Nel TSP metrico la disuguaglianza triangolare vale per i dati \(d_{ij}\); le variabili del modello sono le stesse del TSP.
13.8 In sintesi¶
In sintesi
-
I due modelli hanno le stesse variabili di arco \(x_{ij}\) e gli stessi vincoli di grado; differiscono nel modo in cui vietano i sottogiri.
-
Il modello MTZ aggiunge \(n-1\) variabili di posizione e \((n-1)(n-2)\) vincoli: è compatto, ma il suo rilassamento è debole.
-
Il modello DFJ aggiunge \(2^{n-1}-n\) vincoli di eliminazione dei sottogiri: il rilassamento è più forte, e i vincoli si generano quando servono.
-
Entrambi i modelli sono corretti: una soluzione intera è ammissibile se e solo se i suoi archi formano un unico giro.
-
Entrambi i modelli sono scritti sugli archi, quindi sono anche modelli dell'ATSP: il modello \(\mathrm{ILP}_{\mathrm{ATSP}}\) è il modello DFJ in cui è ammesso \(d_{ij}\neq d_{ji}\). Il TSP metrico ha gli stessi modelli del TSP.
-
Dal modulo Programmazione lineare intera, il Capitolo 8 «Branch-and-cut» mostra come i vincoli di eliminazione dei sottogiri si aggiungono solo quando sono violati.
Quadro riassuntivo dell'istanza del capitolo. Lower bound sul valore ottimo \(18\) calcolati in questo capitolo:
| Bound | Valore | Da |
|---|---|---|
| Rilassamento di assegnamento | \(16\) | \(z(\mathrm{LP}\text{-}0_{\mathrm{TSP}})\) |
| Rilassamento MTZ | \(17\) | \(z(\mathrm{LP}_{\mathrm{TSP}}^{\mathrm{MTZ}})\) |
| Rilassamento DFJ | \(18\) | \(z(\mathrm{LP}_{\mathrm{TSP}}^{\mathrm{DFJ}})\) |
| Valore ottimo | \(18\) | giro \(\sigma=(1,3,5,2,4)\) |
Esercizi su questo capitolo: Problemi di routing