{"id":37108,"date":"2019-10-31T22:15:47","date_gmt":"2019-10-31T19:15:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\/"},"modified":"2019-10-31T22:15:47","modified_gmt":"2019-10-31T19:15:47","slug":"diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn questo articolo parleremo di come abbiamo affrontato il problema della mancanza di celle libere in magazzino e dello sviluppo di un algoritmo di ottimizzazione discreta per risolvere tale problema. Racconteremo come abbiamo \"costruito\" il modello matematico del problema di ottimizzazione e delle difficolt\u00e0 inesperate che abbiamo incontrato nell'elaborazione dei dati di input per l'algoritmo.<\/p>\n<p>Se siete interessati alle applicazioni della matematica nel business e non temete trasformazioni rigorose delle formule a livello di quinta elementare, benvenuti sotto il tag!<\/p>\n<p>L'articolo sar\u00e0 utile a coloro che implementano <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>Parte introduttiva<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Questa pubblicazione continua un ciclo di articoli in cui condividiamo la nostra esperienza di successo nell'implementazione di algoritmi di ottimizzazione nei processi di magazzino.<\/h4>\n<p>\nviene descritta la specificit\u00e0 del magazzino in cui abbiamo implementato <\/p>\n<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">articolo precedente<\/a><\/noindex> il sistema, e viene anche spiegato perch\u00e9 abbiamo dovuto affrontare il problema della clustering delle partite di rimanenti prodotti durante l'implementazione del <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>sistema, e come lo abbiamo fatto. <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>Quando abbiamo finito di scrivere l'articolo sugli algoritmi di ottimizzazione, era molto lungo, quindi abbiamo deciso di suddividere il materiale accumulato in 2 parti:<\/p>\n<p>Nella prima parte (questo articolo) parleremo di come abbiamo \"costruito\" il modello matematico del problema, e delle grandi difficolt\u00e0 inaspettate che abbiamo incontrato nell'elaborazione e trasformazione dei dati di input per l'algoritmo.<\/p>\n<ul>\n<li>Nella seconda parte esamineremo in dettaglio l'implementazione dell'algoritmo nel linguaggio<\/li>\n<li>, faremo un esperimento computazionale e riassumeremo l'esperienza che abbiamo acquisito durante l'implementazione di tali \"tecnologie intelligenti\" nei processi aziendali del cliente. <i>C++<\/i>Come leggere l'articolo. Se hai letto l'articolo precedente, puoi passare direttamente al capitolo \"Panoramica delle soluzioni esistenti\", altrimenti, la descrizione del problema risolto si trova nel riquadro qui sotto.<\/li>\n<\/ul>\n<p>\nDescrizione del problema risolto nel magazzino del cliente<\/p>\n<p><b class=\"spoiler_title\">Collo di bottiglia nei processi<\/b><\/p>\n<h4>Nel 2018 abbiamo realizzato un progetto per l'implementazione<\/h4>\n<p>\nNel 2018 abbiamo realizzato un progetto di implementazione <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>-sistemi nel magazzino \"Casa commerciale 'LD' a Chelyabinsk. Implementato il prodotto '1C-Logistica: Gestione del Magazzino 3' su 20 postazioni di lavoro: operatori, magazzinieri, autisti di carrelli elevatori. <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>Il magazzino \u00e8 di dimensioni medie, circa 4.000 m\u00b2, con 5.000 scaffali e 4.500 SKU. Nel magazzino sono stoccati rubinetti sferici prodotti internamente di varie dimensioni, da 1 kg a 400 kg. Le scorte sono conservate per lotti, poich\u00e9 esiste la necessit\u00e0 di selezionare i prodotti secondo il metodo FIFO.<\/p>\n<p>Durante la progettazione degli schemi di automazione dei processi di magazzino, ci siamo imbattuti in un problema esistente di stoccaggio non ottimale delle scorte. La specificit\u00e0 di stoccaggio e disposizione dei rubinetti \u00e8 tale che in un'unit\u00e0 di stoccaggio pu\u00f2 trovarsi solo una nomenclatura di un lotto (vedi fig. 1). I prodotti arrivano in magazzino quotidianamente e ogni arrivo rappresenta un lotto separato. Di conseguenza, in un mese di attivit\u00e0 del magazzino si creano 30 lotti distinti, ognuno dei quali deve essere conservato in un'unit\u00e0 separata. I prodotti vengono spesso estratti non in pallet interi, ma singolarmente, e di conseguenza nella zona di prelievo molte unit\u00e0 presentano la seguente situazione: in un'unit\u00e0 con volume superiore a 1 m\u00b3 si trovano diversi rubinetti, che occupano meno del 5-10% del volume dell'unit\u00e0. <\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Foto di pi\u00f9 pezzi in un'unit\u00e0<\/i><\/p>\n<p>Si evidenzia un utilizzo non ottimale delle capacit\u00e0 di magazzino. Per rappresentare la portata del problema, posso fornire delle cifre: in media, queste unit\u00e0 di volume superiore a 1 m\u00b3 con \"scorte minime\" conteggiate in vari periodi di lavoro del magazzino oscillano tra 100 e 300 unit\u00e0. Dato che il magazzino \u00e8 relativamente piccolo, durante i periodi di alta attivit\u00e0 questo fattore diventa un \"collo di bottiglia\" che rallenta notevolmente i processi di ricezione e spedizione.<\/p>\n<h4>Idea per risolvere il problema<\/h4>\n<p>\n\u00c8 emersa l'idea di riunire i lotti di scorte con date di scadenza pi\u00f9 vicine in un unico lotto e di collocare queste scorte con lotto uniformato in modo compatto insieme in un'unit\u00e0, o in diverse unit\u00e0 se lo spazio in una non fosse sufficiente a contenere tutte le scorte. Un esempio di tale \"compressione\" \u00e8 illustrato nella figura 2.<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Schema di compressione delle scorte nelle unit\u00e0<\/i><\/p>\n<p>Questo permette di ridurre significativamente gli spazi di magazzino occupati, che verranno utilizzati per la nuova merce da collocare. In caso di sovraccarico delle capacit\u00e0 di stoccaggio, questa misura diventa estremamente necessaria, altrimenti potrebbe semplicemente non esserci spazio sufficiente per collocare la nuova merce, il che porter\u00e0 all'arresto dei processi di stoccaggio e rifornimento e, conseguentemente, all'arrivo e partenza. Prima dell'implementazione del sistema WMS, tale operazione veniva eseguita manualmente, risultando poco efficace, poich\u00e9 il processo di ricerca dei giacenze adatte negli scaffali era piuttosto lungo. Ora, con l'implementazione del sistema WMS, abbiamo deciso di automatizzare, accelerare e rendere intelligente questo processo.<\/p>\n<p>Il processo di risoluzione di questo compito \u00e8 suddiviso in 2 fasi: <\/p>\n<ul>\n<li>nella prima fase, troviamo gruppi di lotti vicini per data da comprimere (questo compito \u00e8 dedicato <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">l'articolo precedente<\/a><\/noindex>);<\/li>\n<li>nella seconda fase calcoliamo per ogni gruppo di lotti la collocazione pi\u00f9 compatta possibile delle giacenze nei pallet. <\/li>\n<\/ul>\n<p>\nNell'articolo attuale ci concentreremo sulla seconda fase dell'algoritmo.<\/p>\n<h4>Panoramica delle soluzioni esistenti<\/h4>\n<p>\nPrima di passare alla descrizione degli algoritmi che abbiamo sviluppato, \u00e8 opportuno fare una breve panoramica dei sistemi gi\u00e0 esistenti sul mercato <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>, nei quali \u00e8 implementata una funzionalit\u00e0 simile di compressione ottimale.<\/p>\n<p>In primo luogo, \u00e8 necessario sottolineare il prodotto \"1C: Enterprise 8. WMS Logistica. Gestione del Magazzino 4\", che appartiene e viene distribuito dalla societ\u00e0 1C ed \u00e8 relativo alla quarta generazione <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>-sistemi, sviluppati dalla societ\u00e0 AXELOT. In questo sistema \u00e8 dichiarata la funzionalit\u00e0 di compressione, che \u00e8 destinata a unire giacenze di merce disperse in un unico pallet. Vale la pena specificare che la funzionalit\u00e0 di compressione in un tale sistema include anche altre possibilit\u00e0, come la correzione della collocazione dei prodotti nei pallet secondo le loro classi ABC, ma su queste non ci soffermeremo. <\/p>\n<p>Analizzando il codice del sistema \u00ab1C: Impresa 8. WMS Logistica. Gestione del magazzino 4\u00bb (che in questa parte funzionale \u00e8 aperto), si pu\u00f2 concludere quanto segue. L'algoritmo di compressione delle rimanenze realizza una logica lineare piuttosto primitiva e non si pu\u00f2 parlare di una compressione \u00abottimale\u00bb. Ovviamente, non prevede la clustering delle partite. Alcuni clienti che hanno implementato un sistema simile si sono lamentati dei risultati della pianificazione della compressione. Ad esempio, spesso nella pratica, durante la compressione si verificava questa situazione: si pianificava di spostare 100 pezzi di merce da una cella a un'altra, dove c'era 1 pezzo di merce, mentre sarebbe stato ottimale, in termini di spesa di tempo, fare il contrario.<\/p>\n<p>Anche la funzionalit\u00e0 di compressione delle rimanenze di merci nelle celle \u00e8 stata dichiarata in molti sistemi esteri, <i>sistemi WMS, operano nel settore della logistica di magazzino o produttiva, cos\u00ec come a programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi in azienda.<\/i>ma, sfortunatamente, non abbiamo n\u00e9 feedback reali sull'efficacia del lavoro degli algoritmi (\u00e8 un segreto commerciale), n\u00e9 tantomeno una comprensione della profondit\u00e0 della loro logica (software proprietario con codice chiuso), quindi non possiamo esprimere un giudizio.<\/p>\n<h4>Ricerca di un modello matematico del problema<\/h4>\n<p>\nPer progettare algoritmi di qualit\u00e0 per risolvere il problema, \u00e8 necessario prima formulare chiaramente il problema in modo matematico, cosa che faremo.<\/p>\n<p>Ci sono molte celle <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, in cui si trovano le rimanenze di un certo prodotto. D'ora in poi, queste celle saranno chiamate celle-donatrici. Indichiamo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> il volume del prodotto presente nella cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>\u00c8 importante dire che nella procedura di compressione pu\u00f2 partecipare solo un prodotto di una singola partita, o di pi\u00f9 partite precedentemente unite in un cluster (leggi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">l'articolo precedente<\/a><\/noindex>), il che \u00e8 dovuto alla specificit\u00e0 dello stoccaggio e della disposizione dei prodotti. Per diversi prodotti o diversi cluster di partite, deve essere avviata una propria procedura di compressione separata.<\/p>\n<p>Ci sono molte celle <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, in cui possono essere potenzialmente trasferite le rimanenze delle celle-donatrici. Queste celle saranno chiamate celle-contenitori. Possono essere sia celle libere nel magazzino che celle-donatrici da un insieme di <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Un insieme di rimanenze \u00e8 sempre un sottoinsieme di <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Ogni cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>dell'insieme <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ha restrizioni sulla capacit\u00e0 <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sono state stabilite limitazioni sulla capacit\u00e0 <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, misurati in dm3. Un dm3 \u00e8 un cubo con lati di 10 cm. I prodotti stoccati in magazzino sono abbastanza grandi, quindi in questo caso tale discrezionamento \u00e8 pi\u00f9 che sufficiente. <\/p>\n<p>\u00c8 stata data una matrice delle distanze minime <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in metri tra ogni coppia di celle <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, dove <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> appartengono a insiemi <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> rispettivamente. <\/p>\n<p>Indichiamo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i \u00abcosti\u00bb per il trasferimento della merce dalla cella<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> alla cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Indichiamo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i \u00abcosti\u00bb per la scelta del contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> per trasferire al suo interno i residui da altre celle. Come e in quali unit\u00e0 di misura saranno calcolati i valori <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> lo vedremo pi\u00f9 avanti (vedi sezione preparazione dei dati di input), ora \u00e8 sufficiente dire che tali grandezze saranno direttamente proporzionali alle grandezze <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> rispettivamente.<\/p>\n<p>Indichiamo con <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> una variabile che assume il valore 1, se i residui dalla cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vengono trasferiti nel contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, e 0 in caso contrario. Indichiamo con <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> una variabile che assume il valore 1, se il contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> contiene residui di merce, e 0 in caso contrario.<\/p>\n<p><b>Il problema \u00e8 formulato cos\u00ec<\/b>: \u00e8 necessario trovare un insieme di contenitori <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e cos\u00ec \u00abcollegare\u00bb le celle donatrici alle celle contenitore, per minimizzare la funzione<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>soggetta a vincoli<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>In sintesi, nel calcolo della soluzione del problema ci proponiamo di: <\/p>\n<ul>\n<li>in primo luogo, risparmiare capacit\u00e0 di magazzino; <\/li>\n<li>in secondo luogo, risparmiare tempo per i magazzinieri. <\/li>\n<\/ul>\n<p>\nQuest'ultimo vincolo significa che non possiamo trasferire beni in un contenitore che non abbiamo scelto, e di conseguenza non abbiamo \u00absostenuto costi\u00bb per la sua scelta. Questo vincolo significa anche che il volume dei beni trasferiti dalle celle al contenitore non deve superare la capacit\u00e0 del contenitore. Per soluzione del problema intendiamo un insieme di contenitori <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e i modi per collegare le celle donatrici ai contenitori.<\/p>\n<p>Questa formulazione del problema di ottimizzazione non \u00e8 nuova ed \u00e8 stata studiata da molti matematici fin dai primi anni '80 dello scorso secolo. Nella letteratura straniera ci sono 2 problemi di ottimizzazione con un modello matematico adatto: <noindex><a rel=\"nofollow\" href=\"http:\/\/www.math.nsc.ru\/AP\/benchmarks\/CFLP\/cflp.html\">Single-Source Capacitated Facility Location Problem<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/waset.org\/publications\/10002290\/a-survey-of-discrete-facility-location-problems\">Multi-Source Capacitated Facility Location Problem<\/a><\/noindex> (parleremo delle differenze tra i compiti pi\u00f9 avanti). \u00c8 importante notare che nella letteratura matematica la formulazione di questi due problemi di ottimizzazione \u00e8 espressa in termini di localizzazione delle strutture, da cui il nome \"Facility Location\". Questo \u00e8 in gran parte un omaggio alla tradizione, poich\u00e9 la necessit\u00e0 di risolvere tali problemi combinatori \u00e8 emersa principalmente dal campo della logistica, in gran parte dall'industria militare negli anni '50 del secolo scorso. Nel contesto della localizzazione delle strutture, questi problemi vengono formulati come segue: <\/p>\n<ul>\n<li>Esiste un insieme finito di citt\u00e0 dove \u00e8 potenzialmente possibile localizzare le strutture produttive (di seguito citt\u00e0-produttrici). Per ogni citt\u00e0-produttore sono dati i costi di apertura di una struttura e le limitazioni sulla capacit\u00e0 produttiva della struttura che sar\u00e0 aperta.<\/li>\n<li>Esiste un insieme finito di citt\u00e0 dove si trovano effettivamente i clienti (di seguito citt\u00e0-clienti). Per ogni citt\u00e0-cliente \u00e8 definito il volume di domanda per i prodotti. Per semplicit\u00e0, considereremo che il prodotto che le strutture producono e che i clienti consumano sia lo stesso.<\/li>\n<li>Per ogni coppia citt\u00e0-produttore e citt\u00e0-cliente \u00e8 specificato l\u2019importo dei costi di trasporto per la consegna del volume richiesto di prodotti dal produttore al cliente.<\/li>\n<\/ul>\n<p>\n\u00c8 necessario determinare in quali citt\u00e0 aprire le strutture e come associare i clienti a tali strutture in modo tale che:<\/p>\n<ul>\n<li>I costi complessivi di apertura delle strutture e i costi di trasporto siano minimi;<\/li>\n<li>Il volume della domanda dei clienti associati a una struttura aperta non superi la capacit\u00e0 produttiva di tale struttura.<\/li>\n<\/ul>\n<p>\nOra \u00e8 opportuno menzionare l\u2019unica differenza tra questi due classici problemi:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 il cliente \u00e8 rifornito solo da una sola struttura aperta;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 il cliente pu\u00f2 essere rifornito da pi\u00f9 strutture aperte contemporaneamente.<\/li>\n<\/ul>\n<p>\nQuesta differenza tra i due problemi, a prima vista, sembra trascurabile, ma in realt\u00e0 porta a strutture combinatorie completamente diverse per tali problemi e, di conseguenza, a algoritmi di soluzione completamente diversi. La differenza tra i problemi \u00e8 mostrata nell'immagine sottostante.<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/77962906c7de2fced174d4a2b7785cc2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig.3. a) Multi-Source Capacitated Facility Location Problem<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig.3. b) Single-Source Capacitated Facility Location Problem<\/i><\/p>\n<p>Entrambi i problemi <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-\u00e8 difficile, cio\u00e8 non esiste un algoritmo esatto che risolva un tale compito in tempo polinomiale rispetto alla dimensione dei dati di input. In altre parole, tutti gli algoritmi esatti per risolvere il problema richiederanno tempo esponenziale, anche se, possibilmente, pi\u00f9 veloce rispetto a una ricerca esaustiva di tutte le opzioni. Poich\u00e9 il compito <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-\u00e8 difficile, quindi considereremo solo euristiche approssimative, cio\u00e8 algoritmi che calcoleranno stabilmente soluzioni molto vicine all'ottimale e funzioneranno abbastanza rapidamente. Se ci fosse interesse per tali compiti, qui si pu\u00f2 trovare una buona panoramica in russo.<\/p>\n<p>Se si utilizza la terminologia del nostro compito di compressione ottimale delle merci nelle celle, allora:<\/p>\n<ul>\n<li>citt\u00e0-clienti \u2013 sono celle-donatrici <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> con le rimanenze di merci, <\/li>\n<li>citt\u00e0-produttori \u2013 celle-contenitori <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, in cui si prevede di collocare le rimanenze da altre celle,<\/li>\n<li>costi di trasporto \u2013 costi di tempo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> del magazziniere per spostare il volume delle merci dalla cella-donatrice <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> alla cella-contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>costi di avvio dell'azienda \u2013 costi per la scelta del contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, pari al volume della cella-contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, moltiplicato per un certo coefficiente di risparmio del volume libero (il valore del coefficiente \u00e8 sempre &gt; 1) (vedere la sezione preparazione dei dati di input).<\/li>\n<\/ul>\n<p>\nDopo aver tracciato l'analogia con i noti problemi classici di fornitura, \u00e8 necessario rispondere a una domanda importante da cui dipende la scelta dell'architettura dell'algoritmo di soluzione: \u00e8 possibile spostare le rimanenze da una cella-donatrice solo su un solo contenitore (Single-Source), o \u00e8 possibile spostare le rimanenze in pi\u00f9 celle-contenitori (Multi-Source)?<\/p>\n<p>Vale la pena notare che, nella pratica, entrambe le formulazioni del problema sono valide. Di seguito elencheremo tutti i 'pro' e 'contro' per ciascuna di queste formulazioni:<\/p>\n<table>\n<tr>\n<th>Opzione del problema<\/th>\n<th>Vantaggi dell'opzione<\/th>\n<th>Svantaggi dell'opzione<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>Le operazioni di spostamento delle merci, calcolate secondo questa opzione del problema:<\/p>\n<ul>\n<li>richiedono meno controllo da parte del magazziniere (ha preso TUTTO da una cella, ha messo TUTTO in un'altra cella-contenitore), il che elimina i rischi: errori nel conteggio delle quantit\u00e0 di merce durante le operazioni 'Mettere nella cella'; errori nell'immissione delle quantit\u00e0 ricontate nel TSD;<\/li>\n<li>Non \u00e8 richiesto tempo per il conteggio del numero di articoli durante le operazioni \u00abMetti nella cella\u00bb e il loro inserimento nel TSD<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Multi-Source<\/td>\n<td>Le compressioni calcolate secondo questa variante di problema sono solitamente pi\u00f9 compatte del 10-15% rispetto a quelle calcolate secondo la variante \u00abSingle-Source\u00bb. Tuttavia, notiamo anche che minore \u00e8 il numero di rimanenze nelle celle donatrici, minore \u00e8 questa differenza nella compattezza<\/td>\n<td>Le operazioni di spostamento delle merci, calcolate secondo questa opzione del problema:<\/p>\n<ul>\n<li>richiedono maggiore controllo da parte del magazziniere (\u00e8 necessario ricontare la quantit\u00e0 di merci spostate in ciascuna delle celle contenitore pianificate), il che elimina il rischio di errore durante il conteggio della merce e l'inserimento dei dati nel TSD durante le operazioni \u00abMetti nella cella\u00bb<\/li>\n<li>\u00c8 richiesto tempo per il conteggio della quantit\u00e0 di articoli durante le operazioni \u00abMetti nella cella\u00bb<\/li>\n<li>\u00c8 richiesto tempo per i \u00abcosti accessori\u00bb (fermarsi, avvicinarsi al pallet, scansionare il codice a barre della cella contenitore) durante le operazioni \u00abMetti nella cella\u00bb<\/li>\n<li>Talvolta l'algoritmo pu\u00f2 \u00abrompere\u00bb la quantit\u00e0 di un pallet praticamente completo tra un gran numero di celle contenitore, dove sono gi\u00e0 disponibili merci adeguate, il che, dal punto di vista del cliente, era inaccettabile<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabella 1. Vantaggi e svantaggi delle varianti Single-Source e Multi-Source.<\/i><\/p>\n<p>Poich\u00e9 il numero di vantaggi della variante Single-Source \u00e8 maggiore e tenendo conto del fatto che minore \u00e8 il numero di rimanenze nelle celle donatrici, minore \u00e8 la differenza nel grado di compattezza nella compressione calcolata secondo entrambe le varianti del problema, la nostra scelta \u00e8 caduta sulla variante Single-Source.<\/p>\n<p>Vale la pena dire che la soluzione della variante Multi-Source ha anch'essa rilevanza. Ci sono molti algoritmi efficaci per la sua risoluzione, la maggior parte dei quali si riduce alla risoluzione di una serie di problemi di trasporto. Ci sono anche algoritmi non solo efficaci, ma eleganti, ad esempio,<noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathnet.ru\/php\/archive.phtml?wshow=paper&amp;jrnid=da&amp;paperid=791&amp;option_lang=rus\"> qui.<\/a><\/noindex><\/p>\n<h4>Preparazione dei dati di input<\/h4>\n<p>\nPrima di procedere all'analisi e allo sviluppo dell'algoritmo per risolvere il problema, \u00e8 necessario decidere quali dati e in quale forma presenteremo al suo ingresso. Non ci sono problemi con i volumi di rimanenze delle merci nelle celle donatrici e la capacit\u00e0 delle celle contenitore, poich\u00e9 queste quantit\u00e0 saranno misurate in m3, ma con i costi di utilizzo della cella contenitore e la matrice dei costi per il trasporto non \u00e8 tutto cos\u00ec semplice!<\/p>\n<p>Iniziamo con il calcolo <b>costi per il trasferimento delle merci<\/b> dalla cella donatrice alla cella contenitore. Prima di tutto, \u00e8 necessario stabilire in quali unit\u00e0 di misura calcoleremo i costi di trasferimento. Due opzioni evidenti sono i metri e i secondi. Calcolare i costi di trasferimento in 'metri puri' \u00e8 privo di senso. Dimostriamo questo con un esempio. Supponiamo che la cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> si trovi al primo piano, la cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> si trovi a 30 metri di distanza e si trovi al secondo piano:<\/p>\n<ul>\n<li>Il trasferimento da <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00e8 pi\u00f9 costoso del trasferimento da <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, poich\u00e9 \u00e8 pi\u00f9 facile scendere dal secondo piano (1,5-2 metri dal pavimento) che salire al secondo, anche se la distanza percorsa sar\u00e0 la stessa;<\/li>\n<li>Trasferire 1 unit\u00e0 di merce dalla cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sar\u00e0 pi\u00f9 facile che trasferire 10 unit\u00e0 della stessa merce, anche se la distanza percorsa sar\u00e0 la stessa.<\/li>\n<\/ul>\n<p>\n\u00c8 meglio considerare i costi di trasferimento in secondi, poich\u00e9 questo consente di tenere conto sia delle differenze di piano sia delle differenze nella quantit\u00e0 di merci trasferite. Per calcolare i costi di trasferimento in secondi, dobbiamo scomporre l'operazione di trasferimento nelle sue componenti elementari e misurare il tempo impiegato per eseguire ciascuna componente elementare.<\/p>\n<p>Supponiamo che dalla cella <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> venga trasferita <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> unit\u00e0 di merce nel contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Supponiamo che <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sia la velocit\u00e0 media di movimento del lavoratore nel magazzino, misurata in m\/sec. Supponiamo che <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sia la velocit\u00e0 media di esecuzione delle operazioni di prelievo e deposito, rispettivamente per un volume di merce pari a 4 dm3 (volume medio che un dipendente del magazzino preleva in un solo intervento). Supponiamo che <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sia l'altezza delle celle da cui vengono eseguite le operazioni di prelievo e deposito, rispettivamente. Ad esempio, l'altezza media del primo piano (suolo) \u00e8 di 1 m, il secondo piano \u00e8 di 2 m e cos\u00ec via. Allora la formula per calcolare il tempo totale per eseguire l'operazione di trasferimento <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00e8 la seguente:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nella tabella 2 sono riportate le statistiche sui tempi di esecuzione di ciascuna operazione elementare, raccolte dai dipendenti del magazzino tenendo conto delle specificit\u00e0 delle merci stoccate.<\/p>\n<table>\n<tr>\n<th>Denominazione dell'operazione<\/th>\n<th>Designazione<\/th>\n<th>Valore medio<\/th>\n<\/tr>\n<tr>\n<td>Velocit\u00e0 media di movimento del lavoratore nel magazzino<\/td>\n<td><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dadbfb13d2b84b95ab2c5d653a21668b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>1,5 m\/sec<\/td>\n<\/tr>\n<tr>\n<td>Velocit\u00e0 media di esecuzione di un'operazione di deposito (per un volume di merce di 4 dm3)<\/td>\n<td><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/aa619b43a70a7cf646ad35d5c8883329.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>2,4 sec<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabella 2. Tempo medio di esecuzione delle operazioni di magazzino<\/i><\/p>\n<p>Abbiamo definito il metodo di calcolo dei costi di trasferimento. Ora \u00e8 necessario capire come calcolare <b>i costi per la scelta della cella contenitore<\/b>Qui tutto \u00e8 molto, molto pi\u00f9 complicato rispetto ai costi di movimentazione, poich\u00e9: <\/p>\n<ul>\n<li>in primo luogo, i costi devono dipendere direttamente dal volume del contenitore \u2013 \u00e8 preferibile trasferire lo stesso volume di residui da celle donatrici in un contenitore pi\u00f9 piccolo piuttosto che in uno grande, a condizione che tale volume possa essere completamente contenuto in entrambi i contenitori. Cos\u00ec, minimizzando i costi totali per la scelta dei contenitori, cerchiamo di salvaguardare le \u00abscorte\u00bb di spazio di magazzino nella zona di prelievo, per eseguire le successive operazioni di collocazione della merce nelle celle. Nella figura 4 sono mostrati i vari modi di trasferire residui in contenitori di grandi e piccoli volumi e le conseguenze di tali modalit\u00e0 di movimentazione nel corso delle successive operazioni di magazzino.<\/li>\n<li>In secondo luogo, poich\u00e9 nella soluzione del problema iniziale dobbiamo minimizzare proprio i costi totali, che sono la somma dei costi di movimentazione e dei costi di scelta dei contenitori, i volumi delle celle in metri cubi devono essere in qualche modo correlati ai secondi, il che non \u00e8 affatto banale.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Modi di trasferimento dei residui in contenitori di capacit\u00e0 diversa.<\/i><\/p>\n<p>Nella figura 4 il volume dei residui che non pu\u00f2 gi\u00e0 essere contenuto nel contenitore nella seconda fase di collocazione dei successivi prodotti \u00e8 indicato in rosso. <\/p>\n<p>Per correlare i metri cubici dei costi di scelta del contenitore con i secondi dei costi di movimentazione, \u00e8 necessario considerare i seguenti requisiti per le soluzioni calcolate del problema:<\/p>\n<ul>\n<li>\u00c8 necessario che i residui dalla cella donatrice siano spostati nella cella contenitore in ogni caso, se ci\u00f2 riduce il numero totale di celle contenitore in cui si trova la merce.<\/li>\n<li>\u00c8 necessario mantenere un equilibrio tra i volumi dei contenitori e i costi di tempo per la movimentazione: ad esempio, se nella nuova soluzione rispetto alla precedente il guadagno in volume \u00e8 grande e la perdita di tempo \u00e8 piccola, allora \u00e8 necessario scegliere la nuova opzione.<\/li>\n<\/ul>\n<p>\nIniziamo con l'ultimo requisito. Per specificare il termine polisemico \u00abequilibrio\u00bb, abbiamo condotto un sondaggio tra i dipendenti del magazzino per determinare quanto segue. Supponiamo di avere una cella contenitore con un volume <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, nella quale \u00e8 previsto il trasferimento dei residui di merci da celle donatrici e il tempo totale di tale movimentazione \u00e8 pari a <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Ci siano anche ulteriori opzioni alternative per disporre la stessa quantit\u00e0 di merce dagli stessi magazzini in altri contenitori, dove ogni disposizioine ha le sue valutazioni <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, dove <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, dove <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>Si pone la domanda: quale \u00e8 il guadagno minimo in volume <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> accettabile, dato un certo valore di perdita di tempo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3d49171042fd83244c054dfd84e5c6bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>? \u041f\u043e\u044f\u0441\u043d\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0431\u044a\u0435\u043c\u0430 1000 \u0434\u043c3 (1 \u043c3) \u0438 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e 70 \u0441\u0435\u043a\u0443\u043d\u0434. \u0415\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0431\u044a\u0435\u043c\u0430 500 \u0434\u043c3 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c 130 \u0441\u0435\u043a\u0443\u043d\u0434. \u0412\u043e\u043f\u0440\u043e\u0441: \u0433\u043e\u0442\u043e\u0432\u044b \u043b\u0438 \u043c\u044b \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0449\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0434\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 500 \u0434\u043c3 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430? \u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u043e\u043f\u0440\u043e\u0441\u0430 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u0441\u043a\u043b\u0430\u0434\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430.<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. Diagramma della relazione tra il risparmio minimo di volume ammissibile e l'aumento della differenza nel tempo di esecuzione dell'operazione<\/i><\/p>\n<p>Cio\u00e8, se i costi aggiuntivi in termini di tempo ammontano a 40 secondi, siamo disposti a spenderli solo quando il guadagno in volume sar\u00e0 di almeno 500 dm3. Anche se nella relazione si osserva una leggera non linearit\u00e0, per semplificare i calcoli successivi, supponiamo che la relazione tra le grandezze sia lineare e sia descritta da un'ineguaglianza<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nell'immagine sottostante esamineremo i seguenti modi di disporre la merce nei contenitori.<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a1cb3a5bce4c369f63b3ebeebb738911.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opzione (a): 2 contenitori, volume totale 400 dm3, tempo totale 150 sec.<\/i><br \/>\n<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a13f35b0e2a188e9a8cbf27bcfbf0292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opzione (b): 2 contenitori, volume totale 600 dm3, tempo totale 190 sec.<\/i><br \/>\n<img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35699c8bd00546c9828dbe50d4b53c46.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opzione (c): 1 contenitore, volume totale 400 dm3, tempo totale 200 sec.<\/i><\/p>\n<p>L'opzione (a) per la scelta dei contenitori \u00e8 pi\u00f9 preferibile rispetto all'opzione iniziale, poich\u00e9 soddisfa l'ineguaglianza: (800-400)\/10&gt;=150-120, da cui segue 40 &gt;= 30. L'opzione (b) \u00e8 meno preferibile rispetto all'opzione iniziale, poich\u00e9 l'ineguaglianza non \u00e8 soddisfatta: (800-600)\/10&gt;=190-150, da cui segue 20 &gt;= 40. Ma l'opzione (c) non si inserisce in tale logica! Esaminiamo questa opzione pi\u00f9 in dettaglio. Da un lato, l'ineguaglianza (800-400)\/10&gt;=200-120, quindi l'ineguaglianza 40 &gt;= 80 non \u00e8 soddisfatta, il che indica che il guadagno in volume non vale una cos\u00ec grande perdita di tempo. <\/p>\n<p>Ma d'altra parte, in questa opzione (c), non stiamo solo riducendo il volume totale occupato, ma stiamo anche diminuendo il numero di celle occupate, che \u00e8 la prima di due importanti requisiti per le soluzioni calcolate ai compiti sopra menzionati. \u00c8 ovvio che, affinch\u00e9 questo requisito inizi a essere soddisfatto, \u00e8 necessario aggiungere un certo valore positivo al lato sinistro dell'ineguaglianza <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, e tale costante deve essere aggiunta solo nel caso in cui il numero di contenitori diminuisca. Ricordiamo che <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00e8 una variabile che vale 1 quando il contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a83cd6273e544b63099939e6845740fb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00e8 selezionato e 0 quando il contenitore <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> non selezionato. Indichiamo, <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 un numero di contenitori nella soluzione iniziale e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 un numero di contenitori nella nuova soluzione. In generale, la nuova disuguaglianza apparir\u00e0 cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Trasformando la disuguaglianza sopra, otteniamo <\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Da ci\u00f2, abbiamo la formula per calcolare il costo totale <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/cb5bce584fee0156b23adbab83f66b33.jpeg\" style=\"display:block;margin: 0 auto;\" \/> di una certa variante della soluzione del problema:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Ma ora sorge la domanda<\/b>: quale valore dovrebbe avere tale costante <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e4754f88bcddfba85b3c785512bee697.jpeg\" style=\"display:block;margin: 0 auto;\" \/>? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0432\u043e\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c \u0437\u0430\u0434\u0430\u0447\u0438. \u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0440\u0430\u0432\u043d\u043e\u0435 103 \u0438\u043b\u0438 106, \u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0445 \u00abmagic numbers\u00bb. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043e\u0446\u0435\u043d\u043e\u043a \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b.<\/p>\n<p>Sia <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 la distanza massima tra le celle del magazzino in una zona ABC, che nel nostro caso \u00e8 di 100 m. Sia <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 il volume massimo della cella-contenitore nel magazzino, pari nel nostro caso a 1000 dm3.<\/p>\n<p><b>Il primo metodo per calcolare la grandezza<\/b> <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Consideriamo la situazione in cui ci sono 2 contenitori al primo piano, nei quali si trova gi\u00e0 fisicamente la merce, cio\u00e8 essi stessi sono celle-donatrici, e il costo per spostare la merce in quelle stesse celle \u00e8, ovviamente, 0. \u00c8 necessario trovare un valore per la costante <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, per il quale sarebbe vantaggioso spostare sempre i resti dal contenitore 1 al contenitore 2. Sostituendo i valori <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> nella disuguaglianza sopra, otteniamo:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2794955b8f9f3d64ffe4e2b449547555.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>da cui segue<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Sostituendo i valori dei tempi medi di esecuzione delle operazioni elementari nella formula sopra, otteniamo<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Il secondo metodo per calcolare la grandezza<\/b> <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/78e3dff7183b15136d9e03f4a5724479.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Consideriamo la situazione in cui ci sono <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celle-donatrici da cui si prevede di spostare la merce nel contenitore 1. Indichiamo <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 la distanza dalla cella-donatrice <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> al contenitore 1. C'\u00e8 anche il contenitore 2, nel quale ci sono gi\u00e0 beni, e il cui volume consente di contenere i resti di tutte <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> le celle. Per semplicit\u00e0, supporremo che il volume della merce spostata dalle celle-donatrici nei contenitori sia identico e pari a <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. \u00c8 necessario trovare un valore per la costante <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, per il quale l'inserimento di tutti i resti dalle <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celle nel contenitore 2 sarebbe sempre pi\u00f9 vantaggioso rispetto a inserirli in contenitori diversi:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Trasformando la disuguaglianza otteniamo<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Per \u00abrafforzare\u00bb il valore della grandezza <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, assumiamo che <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> = 0. La media delle celle normalmente coinvolte nella procedura di compressione dei resti in magazzino \u00e8 pari a 10. Sostituendo i valori noti delle grandezze, otteniamo il seguente valore per la costante<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Prendiamo il valore massimo calcolato per ciascuna variante, questo sar\u00e0 il valore della grandezza <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> per i parametri forniti del magazzino. Ora, per completezza, scriviamo la formula per calcolare i costi totali <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> per una certa soluzione ammissibile <img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8dd672c7b91639fe1872ef50dca7a220.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ecco, ora, dopo tutti <b>gli sforzi titanici<\/b> per la trasformazione dei dati in ingresso, possiamo dire che tutti i dati sono stati trasformati nella forma necessaria e sono pronti per essere utilizzati nell'algoritmo di ottimizzazione.<\/p>\n<h4>Conclusione<\/h4>\n<p>\nCome dimostra la pratica, la complessit\u00e0 e l'importanza della fase di preparazione e trasformazione dei dati in ingresso per l'algoritmo sono spesso sottovalutate. In questo articolo abbiamo dedicato particolare attenzione a tale fase per dimostrare che solo dati di ingresso preparati con qualit\u00e0 e intelligenza possono rendere le soluzioni calcolate dall'algoritmo veramente preziose per il cliente. S\u00ec, sono state tratte molte conclusioni riguardo alle formule, ma vi avevamo avvertito gi\u00e0 prima del taglio \ud83d\ude42<\/p>\n<p>Nel prossimo articolo finalmente arriveremo a ci\u00f2 per cui sono stati pensati i due articoli precedenti: l'algoritmo di ottimizzazione discreta.<\/p>\n<p><i>Articolo preparato da<br \/>\nRoman Shankin, programmatore del dipartimento progetti,<br \/>\nazienda Primo Bit, Citt\u00e0 di Chelyabinsk<\/i><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463481\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27819,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Matematica discreta per WMS: algoritmo di compressione dei prodotti nelle celle (parte 1) | ProHoster","description":"Nell'articolo parliamo di.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster","og:description":"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:47+00:00","article:modified_time":"2019-10-31T19:15:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37108","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 06:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:33:24","updated":"2026-01-22 06:08:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=37108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27819"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}