Vai al contenuto
Ingegneria Logistica

Trasporti: flussi, giri di consegna e algoritmo dei risparmi

Problema dei trasporti, commesso viaggiatore ed euristiche, risparmio di Clarke e Wright dimostrato con esempio, finestre temporali, economie del carico completo.

Il trasporto è spesso la voce più grande dei costi logistici. Le decisioni vanno dalla scelta del modo (strada, ferrovia, mare, aria) alla pianificazione dei flussi tra origini e destinazioni, fino al giro quotidiano di un furgone che consegna a trenta clienti. In questa lezione vediamo il problema dei trasporti come programmazione lineare, il problema del commesso viaggiatore e la sua difficoltà, l’algoritmo dei risparmi con la dimostrazione del risparmio e un esempio, e le economie del carico completo.

Il problema dei trasporti

Si hanno stabilimenti con capacità a_i, clienti con domande b_j e costi unitari c_{ij} per spedire da i a j. Si cercano le quantità x_{ij} \ge 0 che minimizzano il costo totale:

    \[ \min\sum_{i,j}c_{ij}x_{ij}\qquad\text{con}\quad\sum_jx_{ij} \le a_i,\quad\sum_ix_{ij} = b_j \]

È un problema di programmazione lineare con una struttura speciale: se capacità e domande sono intere, esiste sempre una soluzione ottima intera, e algoritmi dedicati la trovano molto in fretta anche con migliaia di origini e destinazioni.

Il giro di consegne

Un furgone parte dal deposito, visita un insieme di clienti e torna: in che ordine? È il problema del commesso viaggiatore (TSP). Con n clienti i giri possibili sono (n - 1)!/2: con 20 clienti più di 6\cdot 10^{16}, impossibili da enumerare. Il problema è NP-difficile: non si conosce un algoritmo che lo risolva esattamente in tempo polinomiale. Si usano allora:

  • algoritmi esatti con tecniche di taglio, che risolvono istanze di migliaia di punti in tempi accettabili;
  • euristiche costruttive (il vicino più prossimo: andare sempre al cliente non visitato più vicino), veloci ma con giri del 20-25 % più lunghi dell’ottimo;
  • euristiche di miglioramento (2-opt: togliere due archi che si incrociano e ricollegare i percorsi senza incrocio), che si avvicinano all’ottimo di pochi punti percentuali.

L’algoritmo dei risparmi

Con più veicoli di capacità limitata (problema di instradamento dei veicoli, VRP) l’euristica classica è quella dei risparmi di Clarke e Wright (1964). Si parte servendo ogni cliente con un viaggio separato, andata e ritorno dal deposito, e si uniscono i giri a coppie.

Algoritmo dei risparmi
A sinistra il deposito 0 serve i clienti A e B con due viaggi separati, di lunghezza 2 per 10 più 2 per 12, cioè 44. A destra un solo giro 0, A, B, 0 lungo 10 più 5 più 12, cioè 27. Il risparmio è 17, uguale alla somma delle distanze dei due clienti dal deposito meno la loro distanza reciproca.

Teorema. Unire in un solo giro i viaggi verso i clienti i e j fa risparmiare

    \[ s_{ij} = d_{0i} + d_{0j} - d_{ij} \]

dove d sono le distanze e 0 è il deposito.

Dimostrazione. Separati, i due viaggi percorrono 2d_{0i} + 2d_{0j}. Il giro unico 0, i, j, 0 percorre d_{0i} + d_{ij} + d_{j0}. La differenza è d_{0i} + d_{0j} - d_{ij}. Per la disuguaglianza triangolare d_{ij} \le d_{0i} + d_{0j}, quindi il risparmio non è mai negativo. ∎

Esempio. Con d_{0A} = 10, d_{0B} = 12, d_{AB} = 5 km: separati 44 km, uniti 27 km, risparmio 10 + 12 - 5 = 17. L’algoritmo calcola i risparmi di tutte le coppie, li ordina dal più grande, e unisce i giri corrispondenti se i due clienti sono agli estremi di giri diversi e il carico unito non supera la capacità del veicolo. I clienti lontani dal deposito e vicini tra loro hanno risparmi grandi e finiscono nello stesso giro, che è proprio ciò che l’intuizione suggerisce. Il risultato è in genere entro il 5-10 % dell’ottimo, e si migliora con le euristiche locali.

I sistemi reali aggiungono finestre temporali (il cliente riceve solo dalle 8 alle 12), tempi di scarico, limiti di orario degli autisti, traffico variabile durante il giorno; i programmi di pianificazione dei giri usano metaeuristiche e calcolano le soluzioni in pochi minuti ogni mattina.

Le economie del carico

Il costo di un viaggio dipende poco da quanto è pieno il mezzo: autista, carburante, pedaggi e ammortamento si pagano comunque. Il costo per unità trasportata è quindi circa F/q + c, con F il costo fisso del viaggio, q il carico e c un piccolo costo variabile per unità: decresce con il carico. Da qui le strategie di consolidamento: raggruppare piccole spedizioni in carichi completi (piattaforme di consolidamento, trasporto groupage), programmare le consegne in giorni fissi per zona, evitare i viaggi di ritorno a vuoto cercando carichi di ritorno. Le stesse economie valgono per le emissioni (lezione sulla sostenibilità).

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x