Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino

L'articolo descrive come implementare WMS-system, ci siamo trovati di fronte alla necessità di risolvere un problema di clustering non standard e quali algoritmi abbiamo utilizzato per risolverlo. Ti racconteremo come abbiamo applicato un approccio sistematico e scientifico alla risoluzione del problema, quali difficoltà abbiamo incontrato e quali lezioni abbiamo imparato.

Questa pubblicazione inizia una serie di articoli in cui condividiamo la nostra esperienza di successo nell'implementazione di algoritmi di ottimizzazione nei processi di magazzino. Lo scopo della serie di articoli è quello di far conoscere al pubblico i tipi di problemi di ottimizzazione delle operazioni di magazzino che si presentano in quasi tutti i magazzini di medie e grandi dimensioni, nonché di raccontare la nostra esperienza nella risoluzione di tali problemi e le insidie ​​incontrate lungo il percorso . Gli articoli saranno utili a chi lavora nel settore della logistica di magazzino, implementarli WMS-sistemi, nonché programmatori interessati alle applicazioni della matematica nel mondo degli affari e all'ottimizzazione dei processi in un'impresa.

Collo di bottiglia nei processi

Nel 2018 abbiamo completato un progetto da implementare WMS-sistemi presso il magazzino della società “Trading House “LD” a Chelyabinsk. Abbiamo implementato il prodotto “1C-Logistics: Warehouse Management 3” per 20 posti di lavoro: operatori WMS, magazzinieri, carrellisti. Il magazzino medio è di circa 4mila m2, il numero di celle è 5000 e il numero di SKU è 4500. Il magazzino immagazzina valvole a sfera di nostra produzione di diverse dimensioni da 1 kg a 400 kg. L'inventario nel magazzino viene immagazzinato in lotti, poiché è necessario selezionare le merci secondo FIFO.

Durante la progettazione degli schemi di automazione dei processi di magazzino, ci siamo trovati di fronte al problema esistente di uno stoccaggio non ottimale delle scorte. Le specifiche delle gru di stoccaggio e stivaggio sono tali che una cella di stoccaggio unitaria può contenere solo articoli di un lotto. I prodotti arrivano al magazzino quotidianamente e ogni arrivo costituisce un lotto separato. In totale, dopo 1 mese di funzionamento del magazzino, vengono creati 30 lotti separati, nonostante ciascuno debba essere conservato in una cella separata. Spesso i prodotti vengono selezionati non in pallet interi, ma in pezzi e, di conseguenza, nella zona di selezione dei pezzi in molte celle si osserva la seguente immagine: in una cella con un volume superiore a 1 m3 ci sono diversi pezzi di gru che occupano meno del 5-10% del volume cellulare.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino Fig 1. Foto di diversi articoli in una cella

È chiaro che la capacità di stoccaggio non viene utilizzata in modo ottimale. Per immaginare l'entità del disastro, posso fornire delle cifre: in media, ci sono da 1 a 3 celle di tali celle con un volume superiore a 100 m300 con saldi “minuscoli” durante diversi periodi di funzionamento del magazzino. Poiché il magazzino è relativamente piccolo, durante i periodi di maggiore affluenza di magazzino questo fattore diventa un “collo di bottiglia” e rallenta notevolmente i processi di magazzino.

Idea per la soluzione del problema

È nata un'idea: i lotti di avanzi con le date più vicine dovrebbero essere ridotti a un unico lotto, e tali avanzi con un lotto unificato dovrebbero essere collocati insieme in modo compatto in una cella, o in più celle, se in una non c'è abbastanza spazio per accogliere il intera quantità di avanzi.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino
Fig.2. Schema per comprimere i residui nelle cellule

Ciò consente di ridurre notevolmente lo spazio occupato nel magazzino che verrà utilizzato per il posizionamento della nuova merce. In una situazione in cui la capacità del magazzino è sovraccarica, tale misura è estremamente necessaria, altrimenti potrebbe semplicemente non esserci abbastanza spazio libero per accogliere nuove merci, il che porterà ad un arresto dei processi di posizionamento e rifornimento del magazzino. In precedenza prima dell'implementazione WMS-i sistemi eseguivano questa operazione manualmente, il che era inefficace, poiché il processo di ricerca dei residui idonei nelle cellule era piuttosto lungo. Ora, con l’introduzione di un sistema WMS, abbiamo deciso di automatizzare il processo, velocizzarlo e renderlo intelligente.

Il processo di risoluzione di tale problema è diviso in 2 fasi:

  • nella prima fase troviamo gruppi di lotti vicini per data di compressione;
  • nella seconda fase, per ciascun gruppo di lotti si calcola la collocazione più compatta della merce rimanente nelle celle.

Nel presente articolo ci concentreremo sulla prima fase dell'algoritmo e lasceremo la trattazione della seconda fase per il prossimo articolo.

Cerca un modello matematico del problema

Prima di sederci a scrivere codice e reinventare la nostra ruota, abbiamo deciso di affrontare questo problema scientificamente, vale a dire: formularlo matematicamente, ridurlo a un noto problema di ottimizzazione discreta e utilizzare efficaci algoritmi esistenti per risolverlo, o prendere questi algoritmi esistenti come base e modificarli in base alle specificità del problema pratico da risolvere.

Poiché dalla formulazione commerciale del problema risulta chiaramente che abbiamo a che fare con gli insiemi, formuleremo tale problema in termini di teoria degli insiemi.

lasciare Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino – l'insieme di tutti i lotti della rimanenza di un determinato prodotto in un magazzino. Permettere Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino – data la costante dei giorni. Permettere Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino – un sottoinsieme di lotti, dove la differenza di date per tutte le coppie di lotti nel sottoinsieme non supera una costante Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. Dobbiamo trovare il numero minimo di sottoinsiemi disgiunti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino, tale che tutti i sottoinsiemi Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino presi insieme ne darebbero molti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino.

In altre parole, dobbiamo trovare gruppi o cluster di partiti simili, dove il criterio di somiglianza è determinato dalla costante Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. Questo compito ci ricorda il noto problema del clustering. È importante dire che il problema in esame differisce dal problema del clustering in quanto il nostro problema ha una condizione strettamente definita per il criterio di somiglianza degli elementi del cluster, determinata dalla costante Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino, ma nel problema del clustering non esiste tale condizione. È possibile trovare la dichiarazione del problema del clustering e le informazioni su questo problema qui.

Siamo quindi riusciti a formulare il problema e a trovare un problema classico con una formulazione simile. Ora è necessario considerare algoritmi noti per risolverlo, in modo da non reinventare la ruota, ma prendere le migliori pratiche e applicarle. Per risolvere il problema del clustering, abbiamo considerato gli algoritmi più diffusi, vale a dire: Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino-significa, Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino-mezzi, algoritmo per l'identificazione delle componenti connesse, algoritmo del minimo spanning tree. È possibile trovare una descrizione e un'analisi di tali algoritmi qui.

Per risolvere il nostro problema, algoritmi di clustering Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino-significa e Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino-i mezzi non sono affatto applicabili, poiché il numero di cluster non è mai noto in anticipo Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino e tali algoritmi non tengono conto del vincolo di giorni costanti. Tali algoritmi furono inizialmente scartati dalla considerazione.
Per risolvere il nostro problema, l'algoritmo per l'identificazione dei componenti connessi e l'algoritmo dell'albero di copertura minimo sono più adatti, ma, come si è scoperto, non possono essere applicati "frontalmente" al problema da risolvere e ottenere una buona soluzione. Per spiegare questo, consideriamo la logica di funzionamento di tali algoritmi in relazione al nostro problema.

Considera il grafico Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino, in cui i vertici sono l'insieme dei partiti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzinoe il bordo tra i vertici Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino и Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino ha un peso pari alla differenza di giorni tra lotti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino и Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. Nell'algoritmo per l'identificazione dei componenti collegati, viene specificato il parametro di input Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzinoDove Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzinoe nel grafico Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino tutti i bordi per i quali il peso è maggiore vengono rimossi Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. Solo le coppie di oggetti più vicine rimangono connesse. Lo scopo dell'algoritmo è selezionare tale valore Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino, in cui il grafico “si sfalda” in più componenti connesse, dove le parti appartenenti a queste componenti soddisferanno il nostro criterio di similarità, determinato dalla costante Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. I componenti risultanti sono cluster.

L'algoritmo dell'albero di copertura minimo si basa innanzitutto su un grafico Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino albero ricoprente minimo, e poi rimuove sequenzialmente gli archi con il peso più alto finché il grafo “si divide” in più componenti connesse, dove anche le parti appartenenti a queste componenti soddisferanno il nostro criterio di similarità. I componenti risultanti saranno cluster.

Quando si utilizzano tali algoritmi per risolvere il problema in esame, può verificarsi una situazione come nella Figura 3.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino
Fig 3. Applicazione degli algoritmi di clustering al problema da risolvere

Supponiamo che la nostra costante per la differenza tra i giorni batch sia 20 giorni. Grafico Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino è stato raffigurato in forma spaziale per facilitare la percezione visiva. Entrambi gli algoritmi hanno prodotto una soluzione a 3 cluster, che può essere facilmente migliorata combinando tra loro i lotti inseriti in cluster separati! È ovvio che tali algoritmi necessitano di essere modificati per adattarsi alle specificità del problema da risolvere, e la loro applicazione nella sua forma pura alla soluzione del nostro problema darà scarsi risultati.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino
Quindi, prima di iniziare a scrivere codice per algoritmi grafici modificati per il nostro compito e a reinventare la nostra bicicletta (nelle cui sagome potevamo già distinguere i contorni delle ruote quadrate), abbiamo deciso, ancora una volta, di affrontare questo problema scientificamente, vale a dire: cercare di ridurlo ad un altro problema discreto di ottimizzazione, nella speranza che gli algoritmi esistenti per risolverlo possano essere applicati senza modifiche.

Un'altra ricerca per un problema classico simile ha avuto successo! Siamo riusciti a trovare un problema di ottimizzazione discreta, la cui formulazione coincide 1 in 1 con la formulazione del nostro problema. Questo compito si è rivelato essere impostare il problema della copertura. Presentiamo la formulazione del problema in relazione alle nostre specificità.

Esiste un insieme finito Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino e famiglia Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino di tutti i suoi sottoinsiemi disgiunti di partiti, in modo tale che la differenza nelle date per tutte le coppie di partiti di ciascun sottoinsieme Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino dalla famiglia Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino non supera le costanti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino. Una copertura è chiamata famiglia Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino della potenza minore, i cui elementi appartengono Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino, tale che l'unione degli insiemi Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino dalla famiglia Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino dovrebbe dare l'insieme di tutte le parti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino.

È possibile trovare un'analisi dettagliata di questo problema qui и qui. Si possono trovare altre opzioni per l'applicazione pratica del problema della copertura e delle sue modifiche qui.

L'algoritmo per risolvere il problema

Abbiamo deciso il modello matematico del problema da risolvere. Ora diamo un'occhiata all'algoritmo per risolverlo. Sottoinsiemi Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino dalla famiglia Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino possono essere facilmente reperiti con la seguente procedura.

  1. Organizzare i lotti da un set Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino in ordine decrescente delle loro date.
  2. Trova le date minime e massime del batch.
  3. Per ogni giorno Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino dalla data minima alla massima, trova tutti i batch le cui date differiscono Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino non più di Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino (quindi il valore Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino È meglio prendere il numero pari).

Logica del procedimento per formare una famiglia di insiemi Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino a Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino giorni è presentato nella Figura 4.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino
Fig.4. Formazione di sottoinsiemi di partiti

Questa procedura non è necessaria per tutti Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino esamina tutti gli altri batch e controlla la differenza nelle loro date o rispetto al valore corrente Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino spostati a sinistra o a destra finché non trovi un batch la cui data è diversa da Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino di più della metà del valore della costante. Tutti gli elementi successivi, quando ci sposteremo sia a destra che a sinistra, non ci interesseranno, poiché per loro la differenza di giorni non farà altro che aumentare, poiché gli elementi nell'array erano inizialmente ordinati. Questo approccio farà risparmiare tempo in modo significativo quando il numero di feste e la diffusione delle loro date sono significativamente elevati.

Il problema della copertura del set è Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino-difficile, il che significa che non esiste un algoritmo veloce (con tempo operativo pari a un polinomio dei dati di input) e accurato per risolverlo. Pertanto, per risolvere il problema della copertura dell'insieme, è stato scelto un algoritmo veloce e greedy, che, ovviamente, non è accurato, ma presenta i seguenti vantaggi:

  • Per problemi di piccole dimensioni (ed è proprio il nostro caso), calcola soluzioni abbastanza vicine all'ottimale. Man mano che la dimensione del problema aumenta, la qualità della soluzione peggiora, ma sempre piuttosto lentamente;
  • Molto facile da implementare;
  • Veloce, poiché la stima del tempo di esecuzione lo è Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino.

L'algoritmo greedy seleziona gli insiemi in base alla seguente regola: in ogni fase viene selezionato un insieme che copre il numero massimo di elementi non ancora coperti. È possibile trovare una descrizione dettagliata dell'algoritmo e del suo pseudocodice qui.

Non è stato effettuato un confronto dell'accuratezza di un tale algoritmo greedy sui dati di test del problema da risolvere con altri algoritmi noti, come l'algoritmo greedy probabilistico, l'algoritmo delle colonie di formiche, ecc. È possibile trovare i risultati del confronto di tali algoritmi su dati casuali generati al lavoro.

Implementazione e implementazione dell'algoritmo

Questo algoritmo è stato implementato nel linguaggio 1S ed è stato incluso in un'elaborazione esterna denominata "Residue Compression" a cui era collegato WMS-sistema. Non abbiamo implementato l'algoritmo nel linguaggio C ++ e usarlo da un componente nativo esterno, che sarebbe più corretto, poiché la velocità del codice è inferiore C++ volte e in alcuni esempi anche decine di volte più veloce della velocità di un codice simile 1S. Sulla lingua 1S L’algoritmo è stato implementato per risparmiare tempo di sviluppo e facilitare il debug presso la base di produzione del cliente. Il risultato dell'algoritmo è presentato nella Figura 5.

Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino
Fig.5. Lavorazione per “comprimere” i residui

La Figura 5 mostra che nel magazzino specificato, i saldi attuali delle merci nelle celle di stoccaggio sono divisi in cluster, all'interno dei quali le date dei lotti di merci differiscono l'una dall'altra di non più di 30 giorni. Poiché il cliente produce e immagazzina in magazzino valvole a sfera metalliche, la cui durata di conservazione è calcolata in anni, tale differenza di data può essere trascurata. Si noti che tale elaborazione è attualmente utilizzata sistematicamente nella produzione e negli operatori WMS confermare la buona qualità del clustering dei partiti.

Conclusioni e seguito

L'esperienza principale che abbiamo acquisito risolvendo un problema così pratico è la conferma dell'efficacia dell'utilizzo del paradigma: la matematica. dichiarazione problema Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino famoso tappetino. modello Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino famoso algoritmo Matematica discreta nell'implementazione di un sistema WMS: raggruppamento di lotti di merci in un magazzino algoritmo tenendo conto delle specificità del problema. L'ottimizzazione discreta esiste da più di 300 anni e durante questo periodo le persone sono riuscite a considerare molti problemi e ad accumulare molta esperienza nel risolverli. Prima di tutto, è più consigliabile rivolgersi a questa esperienza, e solo allora iniziare a reinventare la propria ruota.

Nel prossimo articolo continueremo la storia sugli algoritmi di ottimizzazione e vedremo quello più interessante e molto più complesso: un algoritmo per la “compressione” ottimale dei residui cellulari, che utilizza come input i dati ricevuti dall'algoritmo di clustering batch.

Preparato l'articolo
Roman Shangin, programmatore del dipartimento progetti,
Prima azienda BIT, Chelyabinsk

Fonte: habr.com

Aggiungi un commento