Dispatch Algorithm per la logistica - Assegnazioni di lotti

1

In sostanza, sto cercando di implementare un algoritmo che invia i driver per consegnare i lotti (un batch è una raccolta di ordini). L'algoritmo prende tutti i lotti e tutti i driver disponibili, quindi invia un driver che si adatta di più al lotto. Ora, cosa rende un autista il migliore per fare un lotto? Ciò dipende da quanto segue: La distanza dal conducente al lotto e la quantità di oggetti che l'autista può trasportare (Un conducente può essere in bicicletta, alcuni saranno in una moto, alcuni in una macchina e altri in un furgone). Ad esempio, supponiamo che un batch sia in attesa nella posizione x, l'autista 1 (in una moto) è a 1 miglio di distanza dalla posizione x e l'autista 2 (in un'auto) è a 3 miglia di distanza dalla posizione x. L'algoritmo fornisce al driver 1 il batch perché è più vicino al batch. Ora se il gruppo ha un gruppo di articoli / ordini, diciamo 20 articoli. Darà l'autista 2 perché ha un'auto che dovrebbe essere in grado di contenere il lotto. Ho un metodo / funzione che prende le posizioni (latitudine e longitudine) sia del guidatore che dell'ordine e restituisce la distanza tra loro. Ho anche un metodo / funzione che gestisce la capacità dell'ordine di un driver.

Sono curioso di sapere come eseguire l'abbinamento (preferibilmente un algoritmo), esiste una soluzione ampiamente accettata che fa qualcosa di simile in modo scalabile?

PS: Se sei curioso di sapere come lo faccio attualmente, in pratica mostro tutti i driver dello stesso elenco di batch, possono dare un'occhiata a ciò che ogni batch contiene e accetta su quale lavoro lavoreranno.

    
posta Tommy Adey 06.02.2015 - 20:02
fonte

0 risposte

Leggi altre domande sui tag