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

Questo articolo esplora l’integrazione tra FlexSim e Google OR-Tools per ottimizzare l’assegnazione delle missioni agli AGV. Inoltre, dimostra 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, 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, una flotta di AGV deve prelevare prodotti in specifici punti della rete AGV. In seguito, dovrà 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, tutti i veicoli partono da un deposito comune per servire una serie di clienti e, successivamente, fanno ritorno al deposito. Il VRP può essere descritto attraverso un grafo composto da un insieme di nodi e archi:

  • I nodi rappresentano i clienti da raggiungere.
  • Gli archi indicano i collegamenti possibili tra i nodi.

L’obbiettivo del solver è trovare i percorsi migliori che minimizzino il costo totale (qui, 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, le missioni di picking/delivery vengono assegnate “al volo” non appena i prodotti vengono generati,. Di conseguenza, 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 che vi sia 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 della task di picking/delivery include due fattori: la distanza per raggiungere il punto di prelievo e quella tra il prelievo e la 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, possiamo svolgere numerosi scenari what-if, per confrontare diversi KPI (Key Performance Indicators). L’analisi considera il variare delle logiche di dispatching e della quantità di missioni da svolgere ogni 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. Questa soluzione consente di affrontare problemi complessi con approcci scalabili e personalizzabili.

Questa soluzione è versatile e si adatta a diverse realtà produttive. Tra queste:

  • linee di assemblaggio,
  • logistica interna,
  • magazzini automatizzati
  • trasporto merci su scala geografica,

Inoltre, la soluzione può soddisfare molte altre esigenze specifiche.

Logo flexcon