Pianificazione e ottimizzazione:
un caso studio con OR-Tools e FlexSim per flotte AGV

Questo articolo affronta come l’integrazione tra FlexSim e Google OR-Tools possa ottimizzare l’assegnazione delle missioni agli AGV, dimostrando le potenzialità di FlexSim nell’affrontare problemi complessi con soluzioni avanzate e personalizzabili. Se vuoi scoprire come ottimizzare la tua flotta di AGV o approfondire le nostre soluzioni personalizzate per il tuo business, contattaci.


L’immagine mostra il modello della rete AGV ottimizzato attraverso Flexsim, con l’integrazione avanzata di Google OR-Tools.

Google OR-Tools (Optimization Tools) è una suite open-source sviluppata da Google per la risoluzione di problemi di ottimizzazione. È particolarmente utile per affrontare problemi complessi di ottimizzazione come problemi di pianificazione e scheduling (determinare l’assegnazione di risorse, tempi, e priorità in modo efficiente), la pianificazione di itinerari, il bin-packing ecc.

Questa suite è compatibile con diversi linguaggi di programmazione, tra cui Python. Grazie alla connessione tra FlexSim e Python, possiamo sfruttare gli strumenti di Google OR-Tools per ottimizzare l’assegnazione di una serie di missioni a una flotta di AGV. Uno dei vantaggi di OR-Tools, infatti, consiste nella possibilità di ottimizzare il Vehicle Routing Problem (VRP). Questo strumento permette di pianificare i percorsi di un insieme di veicoli per consegnare beni o servizi a un gruppo di clienti. Ciò consente di minimizzare i costi, come la distanza percorsa, il tempo o il carburante. Infine, il sistema garantisce il rispetto di eventuali vincoli.

Ottimizzazione di flotte di AGV con FlexSim e OR-Tools nel modello di simulazione

Nel modello di simulazione sviluppato in FlexSim abbiamo una flotta di AGV che deve andare a prendere dei prodotti in determinati punti della rete AGV e portarli a destinazione in altrettanti punti anch’essi situati sulla rete.

I prodotti vengono generati a intervalli di tempi randomici e i punti di origine e destinazione delle merci sono assegnati in maniera casuale. Il solver per il VRP di OR-Tools viene usato come metodo per distribuire le tasks di pick e delivery ai nostri veicoli.
Nel VRP classico, abbiamo un deposito da cui tutti i veicoli partono per servire una serie di clienti, facendo poi ritorno al deposito.  Il VRP può essere descritto usando un grafo fatto da un insieme di nodi ed archi. I nodi rappresentano i clienti che devono essere raggiunti dai veicoli e gli archi rappresentano i possibili collegamenti. L’obbiettivo del solver è quello di trovare i percorsi migliori che minimizzino il costo totale (nel nostro caso la distanza percorsa).

Adattamento del problema degli AGV per OR-Tools

Nel modello FlexSim, non abbiamo un vero e proprio punto di deposito comune a tutti i veicoli. Infatti, poiché le missioni di picking/delivery vengono assegnate “al volo” non appena i prodotti vengono generati, gli AGVs iniziano a svolgere le missioni dal punto nella rete in cui si trovano quando la task viene creata ed assegnata.

Inoltre, poiché stiamo usando AGV con capacità di trasporto pari a un prodotto per volta, l’AGV prenderà il prodotto e lo porterà direttamente a destinazione, richiedendo un ordinamento dei nodi.

Quindi, si è reso necessario adattare il problema degli AGV a un formato risolvibile da OR-Tools.

In particolare, la posizione che l’AGV occupa sulla rete nel modello, rappresenta un nodo nella rappresentazione come grafo del VRP. Anche il punto in cui l’AGV termina la task di picking/delivery è assimilabile ad un nodo. Poiché il VRP assume l’esistenza di un deposito comune per i veicoli, in FlexSim la distanza tra la posizione in cui l’AGV si trova quando gli viene assegnata la task e il deposito viene considerata nulla. In questo modo, il costo in termini di distanza tra la posizione corrente dell’AGV e il deposito è nullo.

Così, permettiamo all’AGV di iniziare a svolgere la task da qualsiasi punto della rete senza un costo aggiuntivo. Usando però come vincolo che l’AGV debba attraversare il nodo corrispondente alla sua posizione corrente.

Semplificazione del problema per OR-Tools

Poiché l’AGV non appena prende un prodotto lo deve portare immediatamente a destinazione, ogni task di picking/delivery viene trattata in un singolo nodo nello schema a grafo del VRP, invece di avere due nodi differenti corrispondenti al punto di prelievo e consegna della merce.

Questo permette di semplificare il problema che il solver deve risolvere.
Il costo per andare da un punto della rete AGV al nodo corrispondente alla task di picking/delivery tiene conto sia della distanza per raggiungere il punto di prelievo che della distanza che separa quest’ultimo dal punto di consegna.

Dopo aver adattato il modello FlexSim per renderlo risolvibile tramite il solver di OR-Tools e aver testato la regola di dispatching fornita dal solver, si è deciso di confrontarla con altre due possibili modalità di dispatching:

  • la modalità “Closest” in cui l’AGV, che si è liberato, svolge come task successiva quella il cui punto di origine del prodotto da prelevare è il più vicino alla sua posizione attuale;
  • la modalità “FIFO” (First In First Out), che assegna i compiti in base all’ordine di arrivo;

Usando l’Experimenter in FlexSim, che ci permette di svolgere numerosi scenari what-if, possiamo confrontare diversi KPI (Key Performance Indicators) al variare delle logiche di dispatching e al variare della quantità di missioni da svolgere all’ora. In particolare, sono stati analizzati i seguenti KPI:


 AvgTaskTime (Tempo di completamento della task)

Questa metrica misura il tempo totale impiegato da un AGV per completare una missione di picking/delivery. Il tempo viene analizzato dal momento dell’assegnazione fino alla consegna del prodotto.



Il VRP solver ha dimostrato prestazioni eccellenti in scenari a bassa domanda. Infatti, logiche come “Closest” e FIFO, in scenari a bassa domanda con molti AGV non utilizzati, assegnano le missioni agli AGV liberi. Tuttavia, questi possono dover percorrere distanze molto lunghe per completare la task, impiegando così più tempo. Al contrario, il VRP solver mira a minimizzare la distanza percorsa. Quindi attende e assegna la missione a un AGV che si troverà più vicino al punto di picking, lasciando inutilizzati gli AGV più lontani.


AvgWorkStaytime (Tempo di permanenza del prodotto nel sistema) 

Questa metrica rileva il tempo totale che un prodotto trascorre nel sistema, dalla sua generazione alla sua consegna. In pratica, misura quanto a lungo un prodotto “attende” prima di essere portato a destinazione.



La strategia “Closest” ha ottenuto risultati migliori rispetto al VRP solver in questa metrica. Sebbene controintuitivo, ciò si spiega con il fatto che il VRP solver è focalizzato sulla minimizzazione della distanza percorsa dagli AGVs. Questo può ritardare l’assegnazione di alcune missioni per minimizzare la distanza complessiva percorsa, allungando così il tempo di permanenza del prodotto prima della consegna. Il solver inoltre rianalizza lo stato del sistema e ricalcola la soluzione ottimale. Questo ogni volta che un nuovo prodotto viene generato. Quindi potrebbe succedere che prodotti generati prima, siano portati a destinazione più tardi rispetto a prodotti più recenti.


AvgAGVUtilization (Utilizzazione media degli AGV) 

Questa metrica valuta quanto efficientemente gli AGV sono stati utilizzati.



In scenari a bassa domanda, il VRP solver ha mostrato un’eccellente capacità di ottimizzazione, lasciando alcuni AGV inattivi fino a quando non strettamente necessari, riducendo così i viaggi a vuoto. Al contrario, le strategie “Closest” e “FIFO” impegnano subito un AGV inutilizzato non appena arriva una missione non assegnata. In molti casi, potrebbe essere più conveniente aspettare che un AGV più vicino al nodo della task si liberi per gestire la missione.


ThroughputPerHour (Produzione oraria) 

Indica la quantità di missioni completate per ora, misurando la capacità degli AGV di gestire il flusso di lavoro.



Se il sistema gestisse bene la mole di missioni, il throughput medio sarebbe pari al numero di domande orarie. In scenari di alta domanda, sia il VRP solver che la strategia “Closest” non riescono a gestire completamente tutta la mole di missioni. La strategia FIFO ha mostrato invece le peggiori performance a causa dei ritardi accumulati.


Applicazioni

L’ottimizzazione delle missioni di AGV con FlexSim e OR-Tools dimostra come sia possibile sfruttare al massimo le potenzialità di FlexSim per affrontare problemi complessi con soluzioni scalabili e personalizzabili.

Questa soluzione è versatile e applicabile a diverse realtà produttive, come linee di assemblaggio, logistica interna, magazzini automatizzati, trasporto merci su scala geografica e molte altre esigenze.


Logo flexcon