7. Algoritmi esatti per il Vehicle Routing Problem
7. Algoritmi esatti per il Vehicle Routing Problem
7. Algoritmi esatti per il Vehicle Routing Problem
Trasformi i suoi PDF in rivista online e aumenti il suo fatturato!
Ottimizzi le sue riviste online per SEO, utilizza backlink potenti e contenuti multimediali per aumentare la sua visibilità e il suo fatturato.
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 1<strong>Algoritmi</strong> <strong>esatti</strong> <strong>per</strong> <strong>il</strong> VRPI metodi <strong>esatti</strong> <strong>per</strong> la risoluzione ottima del VRP sono classificati inbase al tipo di matrice dei costi [c ij ] che puó essere:Simmetrica: c ij = c ji , ∀(i,j) ∈ A;Asimmetrica: c ij ≠ c ji , <strong>per</strong> qualche arco (i,j) ∈ A.Nel caso simmetrico, definiamo G = (V,E) un grafo non orientatodove:V = {0}∪V ′ è l’insieme dei vertici;{0} è <strong>il</strong> deposito;V ′ è l’insieme dei clienti;E rappresenta l’insieme dei lati;Ad ogni lato e = (i,j) = (j,i) ∈ E è associato un costo c ij .Analogamente <strong>per</strong> <strong>il</strong> caso asimmetrico definiamo un grafo orientatoG = (V,A) dove:A rappresenta l’insieme degli archi;Ad ogni lato a = (i,j) ∈ A è associato un costo c ij .Sia q i > 0 la richiesta del cliente i, ∀i ∈ V ′ .Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 2Consideriamo che la matrice dei costi soddisfi le seguenti proprietà:1. Costi non negativi:c ij ≥ 0, ∀i ∈ V, ∀j ∈ V;2. Vale la triangle inequality:c ik +c kj ≥ c ij , ∀i ∈ V, ∀j ∈ V, ∀k ∈ V;Se <strong>il</strong> problema parte da una rete (ad esempio stradale o di telecomunicaizoni),la matrice dei costi è generalmente costruita in una fase dipreprocessing calcolandoc ij = lunghezza cammino minimo da i a j, ∀i ∈ V, ∀j ∈ V.Sia data una flotta di M veicoli identici di capacità Q, situati al deposito0.In letteratura sono state presentate diverse formulazioni matematiche<strong>per</strong> <strong>il</strong> VRP che possono essere classificate in:Formulazioni <strong>Vehicle</strong>-Flow,Formulazioni Commodity-Flow,Formulazioni Set-Partitioning.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 3Formulazione <strong>Vehicle</strong> Flow a 2-indiciSia Φ = {S : S ⊆ V ′ ,|S| ≥ 2,|S| ≤ |V|−2} l’insieme dei possib<strong>il</strong>iinsiemi S contenenti un certo numero di clienti.Per ogni S ∈ Φ siaS l’insieme complementare dei vertici: S = V \S.Sia inoltre q(S) = ∑ i∈Sq i la domanda dell’insieme S ⊆ V ′ .Sia r(S) <strong>il</strong> numero minimo di veicoli necessari <strong>per</strong> servire l’insieme diclienti S ∈ Φ:Trovare <strong>il</strong> valore esatto di r(S) implica risolvere un Bin Packing<strong>Problem</strong> (BPP) con capacità del bin uguale a Q e pesi degli oggettiuguali alle domande dei clienti q i ;Normalmente si approssima <strong>il</strong> valore esatto con <strong>il</strong> lower bound:r(S) =⌈ ⌉ q(S).QConsideriamo inizialmente <strong>il</strong> caso asimmetrico (più generale).Per ogni lato {i,j} ∈ A si consideri la variab<strong>il</strong>e decisionale:x ij =∀i ∈ V, ∀j ∈ V.{ 1 se <strong>il</strong> lato (i,j) é in soluzione;0 altrimentiMetodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 4La formulazione 2-indici del VRP (TI) è la seguente:z(TI) = Min ∑ ∑c ij x ij (1)i∈V j∈Vs.t. ∑ x ij = 1, ∀j ∈ V ′ (2)i∈V∑x ij = 1, ∀i ∈ V ′ (3)j∈V∑x i0 = M, (4)i∈V∑x 0j = M, (5)j∈V∑∑x ij ≥ r(S), ∀S ∈ Φ (6)i∈S j∈Sx ij ∈ {0,1}, ∀i,j ∈ V (7)I vincoli di tipo (6) sono definiti Capacity Cut Constraints (vincoli dicapacità).Il numero di questo tipo di vincoli è esponenziale (in tutto 2 n ). Datoinfatti un grafo con n nodi, esistono ( n k) = n! insiemi S di cardinalità|S| =k!(n−k)!k.Dato che <strong>per</strong> ogni cliente ho un arco entrante e uno uscente ho che(6) è equivalente a (8):∑∑x ij ≥ r(S), ∀S ∈ Φ (8)i∈Sj∈SMetodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 5Esiste una formulazione equivalente <strong>per</strong> i vincoli di capacità.Per ogni j ∈ S valgono (2) e (3), <strong>per</strong> cui:∑x ij = 1, ∀j ∈ S,∀S ∈ Φi∈V∑x ij + ∑ x ij = 1, ∀j ∈ S,∀S ∈ Φi∈S i∈Sottengo:⎛ ⎞∑⎝ ∑ x ij + ∑ x ij⎠ = |S|, ∀S ∈ Φj∈S i∈S i∈S∑∑x ij + ∑ ∑x ij = |S|, ∀S ∈ Φj∈S i∈S j∈S i∈S∑∑x ij = |S|− ∑ ∑x ij , ∀S ∈ Φj∈S i∈S j∈Si∈Sconsiderando (8) ho che:∑∑x ij ≤ |S|−r(S), ∀S ∈ Φj∈S i∈SQuesti ultimi vincoli sono definiti Generalized Subtour EliminationConstraints.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 6Nel caso simmetrico la formulazione può essere semplificata come:z(TI ′ ) = Min ∑ e∈Es.t. ∑e∈δ(i)∑e∈δ(0)∑e∈δ(S)c e x e (9)x e = 2, ∀j ∈ V ′ (10)x e = 2M, (11)x e ≥ 2r(S), ∀S ∈ Φ (12)x e ∈ {0,1}, ∀e ∈ E \δ(0) (13)x e ∈ {0,1,2}, ∀e ∈ δ(0) (14)dove δ(i) è l’insieme di lati incidente in i, ∀i ∈ V.La formulazione TI vale <strong>per</strong> matrici dei costi simmetriche ed asimmetriche.AncheinquestocasoiCapacityCutConstraintspossonoessereespressicome Generalized Subtour Elimination Constraints:∑e∈E(S)x e ≤ |S|−r(S), ∀S ∈ Φ (15)dove E(S) esprime l’insieme di lati interni all’insieme S: E(S) = {e =(i,j) : i ∈ S,j ∈ S}.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 7Lower bound basato sulla formulazione 2-indici: b-matchingRimovendo dalla formulazione TI i vincoli di capacità (6) si ottiene<strong>il</strong> seguente lower bound LB1 (problema di b-matching):z(LB1) = Min ∑ i∈V∑c ij x ijj∈Vs.t. ∑ x ij = 1, ∀j ∈ V ′i∈V∑x ij = 1, ∀i ∈ V ′j∈V∑x i0 = M,i∈V∑x 0j = M,j∈Vx ij ∈ {0,1}, ∀i,j ∈ Vche può essere risolto in tempo polinomiale con complessità O(n 4 ).Si noti che una soluzione di LB1 può risultare non ammissib<strong>il</strong>e <strong>per</strong> <strong>il</strong>VRP in quanto:(i) la domanda associata ad un ciclo contenente <strong>il</strong> deposito può eccederela capacità Q;(ii) alcuni cicli possono risultare disconnessi dal deposito.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 8Lower bound basato sulla formulazione 2-indici: k-treeRimovendo dallaformulazione TI i vincoli (2) (3) er<strong>il</strong>assando<strong>il</strong>righthand-sidedei vincoli di capacità (6) ad 1, si ottiene <strong>il</strong> seguente lowerbound LB2:z(LB2) = Min ∑ i∈V∑c ij x ijj∈Vs.t. ∑ x i0 = M,i∈V∑x 0j = M,j∈V∑∑x ij ≥ 1, ∀S ∈ Φi∈Sj∈Sx ij ∈ {0,1}, ∀i,j ∈ Vla cui soluzione consiste nella determinazione di un albero ricoprente dicosto minimo con <strong>il</strong> vincolo aggiuntivo che <strong>il</strong> vertice 0 abbia 2M latiincidenti (k-tree). Un k-tree può essere calcolato in tempo O(n 3 ).In questo caso i vincoli di capacità impongono solo la connessione ditutti i veritici nel grafo.Si noti che una soluzione di LB2 può risultare non ammissib<strong>il</strong>e <strong>per</strong> <strong>il</strong>VRP in quanto:(i) la domanda associata ad un sottoalbero che si dirama dal vertice 0può eccedere la capacità Q;(ii) alcuni vertici possono avere grado diverso da 2.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 9Formulazione Set-PartitioningR: insieme degli indici di tutte le route ammissib<strong>il</strong>i;a ij : coefficiente binario uguale a 1 se la route j ∈ R contiene <strong>il</strong>cliente i ∈ V ′ , 0 altrimenti;ĉ j : costo della route j ∈ R;Per ogni route j ∈ R si consideri la variab<strong>il</strong>e decisionale:y j ={ 1 se la route j viene scelto nella soluzione;0 altrimenti.La formulazione Set Partitioning del VRP (SP) é la seguente:z(SP) = Min ∑ ĉ j y j (16)j∈Rs.t. ∑ ij y j = 1,∀i ∈ Vj∈Ra ′ (17)∑y j = M (18)j∈Ry j ∈ {0,1}, ∀j ∈ R (19)LaformulazioneSet-Partitioningbensiadattaamodellarevincolisulleroute di tipo diverso fra i quali, ad esempio, le time windows.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 10Formulazione commodity-flow di tipo 2-CommoditySi consideri <strong>il</strong> grafo ˜G = (Ṽ,Ẽ) (˜G = (Ṽ,Ã)) ottenuto da G aggiungendo<strong>il</strong> nodo n+1 che è una copia del nodo 0 di G.In questa formulazione o rappresenta <strong>il</strong> deposito di partenza e n+1<strong>il</strong> deposito di arrivo (eventualmente distinti).Si ha:Ṽ = V ∪{n+1},V ′ = Ṽ \{0,n+1},Ẽ = E ∪{{i,n+1},i ∈ V ′ },(Ã = A∪{(i,n+1),i ∈ V ′ }),c i,n+1 = c 0i , ∀i ∈ V ′ ,c 0,n+1 = c n+1,0 = 0.La formulazione 2-commodity usa due variab<strong>il</strong>i di flusso, f ij e f ji , <strong>per</strong>rappresentare un lato (i,j) ∈ Ã di una soluzione ammissib<strong>il</strong>e del VRP.Le variab<strong>il</strong>i di flusso definiscono due circuiti distinti:un circuito dal vertice 0 al vertice n+1 rappresentante <strong>il</strong> carico delveicolo;un circuito dal vertice n + 1 al vertice 0 rappresentante lo spazioresiduo del veicolo.Esempio: singola route <strong>per</strong> 3 clienti con veicolo di capacità Q = 15.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 11q 2 = 711 24q 8 = 384 119 q 9 = 4P αP β1411500Deposito inizialen+1Deposito finaleCircuito P α : carico del veicolo.Circuito P β : spazio residuo.Su ogni lato si ha f ij +f ji = Q = 15.Si noti che f 08 rappresenta <strong>il</strong> carico con <strong>il</strong> quale <strong>il</strong> veicolo lascia <strong>il</strong> depositoedèpariallasomma delle domande dei clienti associatialla route.Analogamente f n+1,9 rappresenta la capacità del veicolo.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 12Formulazione 2-Commodityz(TC) = Min ∑ i∈Ṽs.t. ∑ j∈Ṽ∑∑c ij x ij (20)j∈Ṽ(f ji −f ij ) = 2q i ∀i ∈ V ′ (21)j∈V ′ f 0j = q(V ′ ) (22)∑j∈V ′ f j0 = MQ−q(V ′ ) (23)∑j∈V ′ f n+1,j = MQ (24)f ij +f ji = Qx ij , ∀(i,j) ∈∑à (25)x ij = 1, ∀i ∈ V ′ (26)j∈Ṽ∑x ji = 1, ∀i ∈ V ′ (27)j∈Ṽf ij ≥ 0, ∀(i,j) ∈ à (28)x ij ∈ {0,1}, ∀(i,j) ∈ à (29)Si noti che mentre la formulazione TI contiene un numero esponenzialedi vincoli di tipo (3), la formulazione 2-commodity (TC) ha unnumero polinomiale di vincoli.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 13Lower bound basato sulla formulazione 2-commodity (L3)Un valido lower bound al VRP puó essere ottenuto dal r<strong>il</strong>assamentolineare della formulazione TC:0 ≤ x ij ≤ 1, ∀(i,j) ∈ ÃIl lower bound risultante puó essere riscritto in funzione delle solevariab<strong>il</strong>i {f ij } ut<strong>il</strong>izzando i vincoli (25):f ij +f ji = Qx ij , ∀(i,j) ∈ ÃIl lower bound LB3 risultante è <strong>per</strong>ciò <strong>il</strong> seguente:z(LB3) = Min 1 ∑∑c ij (f ij +f ji )Qi∈Ṽs.t. ∑ j∈Ṽ∑j∈Ṽ(f ji −f ij ) = 2q i , ∀i ∈ V ′j∈V ′ f 0j = q(V ′ )∑f j0 = MQ−q(V ′ )j∈V∑′ f n+1j = MQj∈V∑′ (f ij +f ji ) = 2Q, ∀i ∈ V ′j∈Ṽf ij ≥ 0,f ji ≥ 0,∀(i,j) ∈ ÃMetodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 14Miglioramento del lower bound LB3Il lower bound z(LB3) puó essere migliorato aggiungendo alla formulazioneLB3 dei validi piani di taglio (valid inequalities) ut<strong>il</strong>izzando unalgoritmo di tipo cutting plane.Sia x una soluzione ammissib<strong>il</strong>e di LB3 e si ponga x ij = (f ij +f ji )/Q, ∀(i,j) ∈ Ã.Sia G(x) =x ij > 0}.(V,Ã(x)) <strong>il</strong> grafo si supporto dove Ã(x) = {(i,j) ∈ Ã :Vincoli “semplici”f ij +f ji ≤ Q, ∀(i,j) ∈ ÃVincoli di flussoIn ogni soluzione ammissib<strong>il</strong>e, x ij = 1 significa che <strong>il</strong> lato (i,j) appartienead una route ammissib<strong>il</strong>e.Se <strong>il</strong> veicolo viaggia da i a j:- f ij è <strong>il</strong> carico del veicolo, allora f ij ≥ q j ;- f ji è la capacità residua del veicolo dopo che <strong>il</strong> veicolo ha scaricato q iunità in i, allora f ji ≥ q i .Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 15In ogni soluzione ammissib<strong>il</strong>e al CVRP si ha <strong>per</strong>ciò:}f ij ≥ q j x ij,∀(i,j) ∈f ji ≥ q i x Ãijovvero, usando le equazioni f ij +f ji = Qx ij , ∀(i,j) ∈Ã si ha:(Q−q j )f ij −q j f ji ≥ 0(Q−q i )f ji −q i f ij ≥ 0},∀(i,j) ∈ ÃVincoli di capacitàIn una soluzione x di LB3 i vincoli di capacità possono essere violati,di conseguenza i seguenti vincoli:1 ∑Qi∈S∑(f ij +f ji ) ≥ 2⌈q(S)/Q⌉, ∀S ∈ Φ,j∈¯Sottenuti da (3) sostituendo x ij con (f ij +f ji )/Q, possono essere ut<strong>il</strong>izzati<strong>per</strong> migliorare <strong>il</strong> lower bound z(LB3).Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 16Esempio di calcolo di LB3n=21 clienti, M =4 veicoli di capacità Q=60.La soluzione ottima di LB3 su una data istanza è la seguente:140.37845 1.630.3712 120.070.301121.703 70.300.05 6 21 Demand4 71.521.278 8 0.431 9 0.08 0.4810 50.6711 6 0.1511253.0049.003 70.7813 141.100.420.931.22 13 131.22 0.781.35 1.30 0.3715 3 16 921 170.100.53 0.120.70 0.8518 10 19 925 20 0.380.701.151.47 21 1822 0.1525200211732.0016 90 51.0019 97(a) Grafo di supporto, z(LB3) = 309.97(b) DettagliMetodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 17La figura mostra che <strong>il</strong> lato {2,3} non soddisfa i vincoli “semplici” inquanto f 23 +f 32 > 60.Inoltre i lati {16,19} e {17,20} non soddisfano i corrispondenti vincolidi flusso in quanto f 1916 e f 2017 sono uguali 0.Dopo l’aggiunta ad LB3 di 16 vincoli “semplici” e 34 vincoli di flussoviolati, la soluzione diventa:1.0014 5840.500.471121.003 70.50 1.006 21 Demand0.03 4 70.881.001.008 81 9 0.15 1.0010 50.8511 612 1213 141.000.231.001.001.001.00 13 131.000.630.25 1.001.0015 3 16 921 17 1.000.63 0.250.37 0.7525201.0018 10 19 90.500.501.007 21 1822 0.50Sed <strong>il</strong> lower bound diventa uguale a z(LB3) = 350.32.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 18Un esempio di vincolo di capacità violato è dato dall’insieme S ={18,19,20,21,22}dove ∑ ∑i∈S j∈S (f ij+f ji ) = 3.0,mentre⌈q(S)/Q⌉ =⌈69/60⌉ = 2.Dopo l’aggiunta di 142 vincoli di capacitá la soluzione diventa:1123 714845476 21 Demand198810 512 1211 6131413 13211715 3 16 918 10 19 9252072221 18di costo 375.00 che risulta intera ed è <strong>per</strong>ciò anche la soluzione ottimadel problema.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 19Branch and CutSi divide <strong>il</strong> problema in sottoproblemi in cui una o più variab<strong>il</strong>i hannoun valore fissato.Come in un Branch and Bound classico, <strong>per</strong> ogni sottoproblema sicalcolano<strong>il</strong>owerboundpropostiesieffettuaunadelleseguentidecisioni:1. Si taglia <strong>il</strong> nodo <strong>per</strong>chè non promettente;2. Si torna indietro <strong>per</strong>chè si è trovato una soluzione ammissib<strong>il</strong>e;3. Si ramifica ulteriormente.Ad ogni nodo si possono aggiungere piani di taglio <strong>per</strong> ridurre lo spaziodelle soluzioni ammissib<strong>il</strong>i.La tecnica risultante è di tipo Branch and Bound con l’aggiunta ditali piani di taglio.Il modo ut<strong>il</strong>izzato <strong>per</strong> ramificare è definito strategia di branching.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione
<strong>7.</strong> <strong>Algoritmi</strong> Esatti <strong>per</strong> <strong>il</strong> VRP 20Strategie di branchingUna possib<strong>il</strong>e strategia di branching é <strong>il</strong> branching su lato: scelto unlato (i,j) ∈ A si generano due nodi, uno dove si impone x ij = 1, l’altrodove si impone x ij = 0.0x ij = 1 1 2 x ij = 0Generalmente,calcolato<strong>il</strong>lowerbound, vienesceltaunlatocherisultaessere in soluzione nel lower bound con valore frazionario.E’ comunque di fondamentale importanza conoscere una buona soluzioneeuristica al problema al fine di ridurre i tempi di esecuzione deimetodi di tipo branch and bound.Metodi di Ottimizzazione <strong>per</strong> la Logistica e la Produzione