Optimally
EN·DE·FR·ITDefault locale: EN
Contatto →

← Ambiti di competenza/Mobilità sostenibile · 2025

Ottimizzazione del ride-sharing elettrico autonomo, 31× più veloce della baseline Branch-and-Price pubblicata e con gap fino a 11× più stretti

Un MILP basato su eventi e incentrato su prelievi e rilasci (non sulla geografia), più un'euristica Adaptive Large Neighborhood Search — confrontato su 38 istanze standard e-ADARP con il Branch-and-Price di Su (2023)

31×

più veloce del Branch-and-Price di Su (2023) sulle istanze type-a con γ = 0,4 (tempo medio)

Gap 11× più stretto

vs B&P su type-r con γ = 0,1 (gap di ottimalità medio 0,27 % vs 3,02 %)

10×

di accelerazione dell'euristica ALNS rispetto al metodo esatto, con < 1 % di perdita sull'obiettivo

35 / 38

istanze risolte all'ottimo certificato con γ = 0,1, contro 33 / 38 della baseline B&P

Il ride-sharing su richiesta con flotte elettriche autonome è la nuova frontiera della mobilità urbana. Il problema di ottimizzazione è brutale: finestre temporali di prelievo e rilascio, dinamica della batteria, deviazioni verso le stazioni di ricarica, equità dei tempi di viaggio, tutto insieme, su istanze con decine di utenti e più stazioni di ricarica.

La tesi di master da noi co-supervisionata ha progettato una formulazione su grafo basata su eventi, che incentra il modello sugli eventi di prelievo e rilascio anziché sui luoghi (codificando implicitamente nella topologia i vincoli di capacità e di abbinamento), più un'euristica Adaptive Large Neighborhood Search che scala fino a dimensioni d'istanza in cui i metodi esatti si arrendono.

Il problema

Il Dial-a-Ride Problem elettrico e autonomo (e-ADARP) estende il DARP classico con la dinamica dello stato di carica della batteria, visite senza vincoli alle stazioni di ricarica e un costo multiobiettivo ponderato che bilancia la distanza totale percorsa con il tempo di viaggio in eccesso degli utenti. Le formulazioni basate sugli archi (Bongiovanni et al. 2019, Su 2023) gestiscono la dimensione del modello con la generazione di colonne, ma la combinatoria a livello di nodo (capacità del veicolo, finestre temporali, abbinamento tra prelievi e rilasci) produce enormi rilassamenti LP che il branch-and-price deve risolvere a ogni nodo.

Nella pratica servono sia un modello che colga la fisica reale, sia un'euristica che restituisca in pochi secondi piani utilizzabili sulle istanze più grandi, dove i metodi esatti si arenano.

Cosa abbiamo costruito

Abbiamo adattato la formulazione su grafo basata su eventi di Gaul et al. (2022), estesa ai veicoli elettrici da Stallhofer (2023) ma limitata a una sola visita di ricarica, al caso con visite non vincolate studiato da Su (2023). L'idea chiave: i nodi sono Q-uple che codificano quali utenti si trovano nel veicolo, ordinati in modo crescente; gli archi sono transizioni ammissibili tra eventi. La capacità del veicolo e l'abbinamento tra prelievo e rilascio sono codificati nella topologia stessa del grafo anziché come vincoli lineari espliciti, il che riduce drasticamente il rilassamento LP.

Abbiamo ulteriormente rafforzato la formulazione con controlli di compatibilità delle finestre temporali che tengono conto dei tempi di percorrenza (un passo avanti rispetto al pruning di Stallhofer, basato sulla compatibilità senza tempi di percorrenza), grazie ai quali è possibile eliminare a priori molti nodi-evento non ammissibili. Insieme alle disuguaglianze valide per i percorsi multi-fermata non ammissibili, il MILP risultante risolve con Gurobi le istanze type-a in decine di secondi e le istanze type-r in poche ore.

Sul fronte euristico abbiamo costruito un'Adaptive Large Neighborhood Search con un portafoglio di operatori di rimozione (casuale, distanza peggiore, correlata), operatori di inserimento (greedy, regret-k), adattamento dinamico dei pesi e un criterio di accettazione di tipo simulated annealing. La strategia per la soluzione iniziale usa la pre-risoluzione della regione ammissibile del caso più semplice γ = 0,1 come warm start per i casi più difficili γ = 0,4 e γ = 0,7.

Abbiamo effettuato il confronto con la baseline esatta Branch-and-Price e con l'euristica Deterministic Annealing di Su (2023) sui set di istanze standard di Bongiovanni e Ropke (type-a: scenari urbani; type-r: istanze realistiche; type-u: urbane con ricollocazione delle stazioni di ricarica).

Il risultato

Deliverable: una formulazione MILP basata su eventi per il Dial-a-Ride Problem elettrico e autonomo (e-ADARP), più un'euristica Adaptive Large Neighborhood Search, confrontate con la baseline Branch-and-Price pubblicata da Su (2023) su 38 istanze di test standard (type-a, type-r, type-u) con tre rapporti di carica della batteria a fine giornata (γ = 0,1; 0,4; 0,7).

Risultati del metodo esatto: accelerazione media di 31× rispetto al B&P con γ = 0,4 su type-a (28,82 s vs 910,33 s); gap di ottimalità medio 11× più stretto su type-r con γ = 0,1 (0,27 % vs 3,02 %); gap 5× più stretto sul caso più difficile, type-r con γ = 0,7 (1,24 % vs 6,44 %); 35 / 38 istanze risolte all'ottimo certificato con γ = 0,1, contro 33 / 38 del B&P. Risultati dell'euristica ALNS: accelerazione media di 10× rispetto al metodo esatto con una perdita inferiore all'1 % sull'obiettivo; su r8-96 (la più grande istanza type-r, 96 utenti) l'ALNS trova 1'026,08 in 2'058 s, mentre il metodo esatto basato su eventi impiega 18'000 s per un valore leggermente peggiore di 1'026,44 — una soluzione migliore in un tempo 9 volte inferiore.

Approfondimento tecnico

Il modello dietro il risultato.

Il modello

L'e-ADARP è un problema di instradamento multiobiettivo in cui la fisica della batteria si sovrappone a un classico problema di prelievo e consegna (pickup-and-delivery). Il fulcro è la riformulazione basata su eventi: invece di una variabile decisionale per ogni terna (veicolo, luogo, luogo), come avviene in una formulazione basata sugli archi, abbiamo una variabile per arco in un grafo di eventi in cui ogni nodo codifica già chi si trova nel veicolo. La capacità del veicolo (non più di Q utenti) e l'abbinamento prelievo-prima-del-rilascio diventano proprietà strutturali del grafo anziché vincoli lineari. Il MILP gestisce quindi solo gli aspetti globali: tempo, batteria e costo multiobiettivo.

Codifica dei nodi-evento. Ogni nodo v del grafo degli eventi è una Q-upla che registra nella posizione 1 l'ultimo evento di prelievo/rilascio e nelle posizioni 2..Q gli altri passeggeri presenti nel veicolo (in ordine crescente). Gli zeri riempiono i posti vuoti; un −1 finale indica gli stati presso una stazione di ricarica. Per costruzione la Q-upla non può contenere un passeggero già sceso, quindi la capacità del veicolo (al massimo Q passeggeri) e l'abbinamento prelievo-prima-del-rilascio sono codificati strutturalmente in V, non come vincoli.

Costo multiobiettivo e conservazione del flusso. L'obiettivo bilancia il costo di instradamento dei veicoli (∝ tempo di percorrenza) con il tempo di viaggio in eccesso R_i degli utenti, con pesi w_1, w_2 scelti dall'operatore. La conservazione del flusso stabilisce che in ogni nodo-evento diverso dal deposito a ogni arco entrante corrisponda un arco uscente. Insieme al vincolo esplicito «ogni utente servito esattamente una volta» (Σ_{δ^in(v), v ∈ V_i} x_a = 1), si ottiene un problema di flusso a costo minimo sul grafo degli eventi.

Vincoli temporali. L'istante di inizio servizio T_w dell'evento successivo deve essere almeno pari all'istante di inizio dell'evento precedente più il tempo di servizio e il tempo di percorrenza, con un big-M (l'orizzonte H) che disattiva il vincolo quando l'arco non è utilizzato. Il limite sul tempo di viaggio garantisce l'equità verso gli utenti: per ogni utente i, il tempo tra prelievo e rilascio non può superare il tempo di viaggio massimo p_i (così il sistema non può tenere qualcuno a bordo indefinitamente solo per ottimizzare i percorsi).

Dinamica dello stato di carica della batteria. Tra eventi che non sono di ricarica, lo SoC nel nodo successivo B_w è pari a B_v meno la scarica β_{(v,w)} = µ · t_{(v,w)} lungo l'arco. Nei nodi delle stazioni di ricarica (V_z) la batteria viene ricaricata di α · E_v, dove α è la velocità di ricarica ed E_v la durata della ricarica. Le versioni simmetriche con ≥ di entrambi i vincoli (omesse) fissano l'uguaglianza quando l'arco è utilizzato. Il vincolo di fine giornata B_v ≥ γG obbliga i veicoli a rientrare al deposito con almeno una frazione γ della capacità (il parametro principale del benchmark: γ = 0,7 è il caso difficile).

Tempo di viaggio in eccesso. R_i è la misura di equità verso l'utente: è la differenza tra il tempo effettivamente trascorso a bordo (T_rilascio − T_prelievo − tempo di servizio) e il tempo minimo t_{(i, n+i)} di un viaggio diretto. La minimizzazione della somma totale Σ R_i è il secondo obiettivo: senza di essa, l'ottimizzatore terrebbe volentieri qualcuno a bordo per ore pur di consolidare i viaggi.

Perché la formulazione basata su eventi vince. Il modello basato sugli archi (Bongiovanni 2019, Su 2023) ha una variabile per ogni terna (veicolo, luogo, luogo), ma la maggior parte di queste terne non è ammissibile (stato di capacità errato, violazione delle finestre temporali, violazione dell'abbinamento) e il solver deve scoprirlo durante il branch-and-bound. Il grafo degli eventi elimina gli stati non ammissibili già in fase di costruzione: i controlli di compatibilità tra finestre temporali e tempi di percorrenza scartano nodi che un modello basato sugli archi manterrebbe. Per le istanze type-a con Q = 6 si ottengono ~150-1'500 nodi e ~1'500-16'000 archi, una dimensione gestibile dal branch-and-cut di Gurobi.

Disuguaglianza valida per i percorsi non ammissibili. Per ogni utente i e ogni percorso di due archi P = (a, b) nel grafo degli eventi in cui i è a bordo, se il tempo di viaggio complessivo supera p_i, al massimo |P| − 1 = 1 degli archi può essere attivo. Aggiungere queste disuguaglianze fin dall'inizio (invece di aspettare che il branch-and-bound le scopra tramite tagli) rafforza sensibilmente il rilassamento LP sulle istanze type-r e type-u.

La formulazione basata su eventi è l'innovazione strutturale; l'ALNS è lo strato ingegneristico pronto per l'impiego che vi si appoggia. Sulle istanze piccole e medie (16-48 utenti, 2-5 veicoli) il MILP basato su eventi raggiunge l'ottimo dimostrato più rapidamente della baseline B&P pubblicata. Sulle istanze più grandi (96 utenti su type-r, 50 utenti su type-u) il MILP comincia a raggiungere i limiti di tempo con γ = 0,7, e subentra l'ALNS con soluzioni quasi ottime in tempi che vanno da pochi secondi a qualche minuto. Rispetto alla baseline Deterministic Annealing di Su (2023), l'ALNS trova nella maggior parte dei casi valori obiettivo uguali o migliori, al prezzo di un tempo reale leggermente superiore. Il risultato è un sistema a due livelli: usate il MILP esatto basato su eventi quando potete, ripiegate sull'ALNS quando non potete.

Benchmark

MILP basato su eventi vs Branch-and-Price di Su (2023) sulle istanze di benchmark type-r (banco di prova realistico Bongiovanni-Ropke, rapporto di carica della batteria a fine giornata γ = 0,7, l'impostazione più difficile). Ogni riga è un'istanza (veicoli, utenti). Valori obiettivo in unità ponderate (costo di percorrenza + tempo di viaggio in eccesso); gap in % rispetto al limite inferiore dimostrato. Limite di tempo 18'000 s. Un obiettivo più basso è migliore; un gap più basso è migliore.

IstanzaObiettivo basato su eventiGap EB (%)Tempo EB (s)Obiettivo B&P Su (2023)Gap B&P (%)Tempo B&P (s)
r5-60686,360,1018'000688,840,7018'000
r6-48508,100,002'364508,100,002'028
r6-60689,550,001'703689,550,006'605
r6-72765,250,4118'000788,834,9618'000
r7-56615,860,5218'000616,160,0014'247
r7-70756,310,0418'000765,491,4818'000
r7-84891,382,3918'0001'004,8121,6518'000
r8-64632,610,002'493632,610,0018'000
r8-80806,872,1918'000794,410,0015'051
r8-961'064,866,7418'0001'174,4935,6818'000
Media-1,2413'256-6,4414'593

Due tendenze. Primo, il MILP basato su eventi ottiene un gap di ottimalità medio 5× più stretto (1,24 % vs 6,44 %) su queste difficili istanze con γ = 0,7, e sulla più grande (r8-96) i gap sono di 6,74 % contro 35,68 %, con la soluzione basata su eventi migliore del 9,3 % nel valore obiettivo. Secondo, sulle istanze che entrambi i metodi risolvono all'ottimo (r6-48, r6-60, r8-64), il MILP basato su eventi è sistematicamente più veloce, talvolta di un fattore 7 (r8-64: 2'493 s contro 18'000 s del B&P). Il pruning strutturale in fase di costruzione del grafo rende di più sulle istanze con finestre temporali strette e molti utenti, proprio dove il B&P basato sugli archi è in difficoltà. Sulle istanze più semplici con γ = 0,1 (non mostrate), il divario è ancora più netto: in media 0,27 % per il metodo basato su eventi contro 3,02 % del B&P, un gap 11× più stretto.

Dalla documentazione

Figura 3 della tesi: un grafo degli eventi per n = 2 richieste di utenti, capacità del veicolo Q = 3, una stazione di ricarica. I nodi sono Q-uple che codificano quali utenti si trovano nel veicolo (ad es. (1, 0, 0) = utente 1 prelevato, due posti liberi; (2, 1, 0) = entrambi gli utenti a bordo; (4, 1, 0) = utente 2 sceso, utente 1 ancora a bordo). Gli archi sono transizioni ammissibili tra eventi. I vincoli di capacità e l'abbinamento prelievo-prima-del-rilascio sono codificati nella topologia stessa del grafo: non compaiono mai come vincoli lineari nel MILP.
Figura 3 della tesi: un grafo degli eventi per n = 2 richieste di utenti, capacità del veicolo Q = 3, una stazione di ricarica. I nodi sono Q-uple che codificano quali utenti si trovano nel veicolo (ad es. (1, 0, 0) = utente 1 prelevato, due posti liberi; (2, 1, 0) = entrambi gli utenti a bordo; (4, 1, 0) = utente 2 sceso, utente 1 ancora a bordo). Gli archi sono transizioni ammissibili tra eventi. I vincoli di capacità e l'abbinamento prelievo-prima-del-rilascio sono codificati nella topologia stessa del grafo: non compaiono mai come vincoli lineari nel MILP.
Formulazione matematica del Modello 1. L'obiettivo (3.1) è la somma ponderata del costo di instradamento e del tempo di viaggio in eccesso degli utenti. I vincoli (3.2)–(3.6) esprimono la conservazione del flusso sul grafo più il vincolo «ogni utente servito esattamente una volta». I vincoli (3.9)–(3.16) definiscono le finestre temporali, i limiti sul tempo di viaggio e le variabili di tempo di viaggio in eccesso R_i. I vincoli (3.17)–(3.25) gestiscono la dinamica dello stato di carica della batteria, compresa la ricarica presso le stazioni.
Formulazione matematica del Modello 1. L'obiettivo (3.1) è la somma ponderata del costo di instradamento e del tempo di viaggio in eccesso degli utenti. I vincoli (3.2)–(3.6) esprimono la conservazione del flusso sul grafo più il vincolo «ogni utente servito esattamente una volta». I vincoli (3.9)–(3.16) definiscono le finestre temporali, i limiti sul tempo di viaggio e le variabili di tempo di viaggio in eccesso R_i. I vincoli (3.17)–(3.25) gestiscono la dinamica dello stato di carica della batteria, compresa la ricarica presso le stazioni.
Tabelle 3 e 4 della tesi: dimensioni delle istanze dei benchmark type-a (urbane) e type-r (realistiche). Si noti come il grafo degli eventi rimanga gestibile: a5-50 (la più grande type-a) ha 1'700 nodi e 16'838 archi; r8-96 (la più grande type-r) ha 7'381 nodi e 74'306 archi. Una formulazione basata sugli archi sulla stessa istanza avrebbe un ordine di grandezza di variabili in più, perché ne assegna una a ogni terna (veicolo, luogo, luogo), comprese tutte quelle che abbiamo già eliminato grazie alla compatibilità tra finestre temporali e tempi di percorrenza.
Tabelle 3 e 4 della tesi: dimensioni delle istanze dei benchmark type-a (urbane) e type-r (realistiche). Si noti come il grafo degli eventi rimanga gestibile: a5-50 (la più grande type-a) ha 1'700 nodi e 16'838 archi; r8-96 (la più grande type-r) ha 7'381 nodi e 74'306 archi. Una formulazione basata sugli archi sulla stessa istanza avrebbe un ordine di grandezza di variabili in più, perché ne assegna una a ogni terna (veicolo, luogo, luogo), comprese tutte quelle che abbiamo già eliminato grazie alla compatibilità tra finestre temporali e tempi di percorrenza.
Figure 7 e 8: percorsi ottimali dei due veicoli sull'istanza a2-16 (16 utenti, 2 veicoli, γ = 0,7). Il percorso blu serve utenti concentrati per lo più nel quadrante in basso a destra; quello arancione gli utenti in alto a sinistra. I punti rossi sono stazioni di ricarica, con rettangoli azzurri attorno a quelle effettivamente utilizzate. Si tratta di un giro di 32 eventi calcolato interamente dal MILP basato su eventi in 4 secondi.
Figure 7 e 8: percorsi ottimali dei due veicoli sull'istanza a2-16 (16 utenti, 2 veicoli, γ = 0,7). Il percorso blu serve utenti concentrati per lo più nel quadrante in basso a destra; quello arancione gli utenti in alto a sinistra. I punti rossi sono stazioni di ricarica, con rettangoli azzurri attorno a quelle effettivamente utilizzate. Si tratta di un giro di 32 eventi calcolato interamente dal MILP basato su eventi in 4 secondi.

Tecniche

  • Formulazione su grafo basata su eventi
  • Programmazione lineare intera mista (B&C con Gurobi)
  • Adaptive Large Neighborhood Search
  • Portafoglio di operatori di rimozione/inserimento
  • Accettazione di tipo simulated annealing
  • Disuguaglianze valide per percorsi non ammissibili

Stack

  • Julia
  • Gurobi
  • Istanze di benchmark Bongiovanni-Ropke

Un problema simile?

Inviatecelo. In pochi giorni vedete una prima versione sui vostri dati.

Descrivete il vostro problema