13.07.2015 Views

7. Algoritmi esatti per il Vehicle Routing Problem

7. Algoritmi esatti per il Vehicle Routing Problem

7. Algoritmi esatti per il Vehicle Routing Problem

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!