{"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\/novosti-interneta\/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 spazio libero nei magazzini e dello sviluppo di un algoritmo di ottimizzazione discreta per risolvere tale problema. Spiegheremo come abbiamo \"costruito\" il modello matematico del problema di ottimizzazione e delle difficolt\u00e0 inaspettate che abbiamo incontrato durante l'elaborazione dei dati di input per l'algoritmo.<\/p>\n<p>Se siete interessati alle applicazioni della matematica nel business e non temete trasformazioni algebriche di livello scolastico, siete i benvenuti sotto il cat!<\/p>\n<p>L'articolo sar\u00e0 utile a coloro che implementano <i>WMS<\/i>-sistemi, lavorano nel settore della logistica di magazzino o produttiva, e anche ai programmatori interessati alle applicazioni della matematica nel business e all'ottimizzazione dei processi aziendali.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Parte introduttiva<\/h4>\n<p>\nQuesta pubblicazione continua una serie di articoli in cui condividiamo la nostra esperienza di successo nell'implementazione di algoritmi di ottimizzazione nei processi di magazzino. <\/p>\n<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">articolo precedente<\/a><\/noindex> viene descritta la specificit\u00e0 del magazzino in cui \u00e8 stato implementato il <i>WMS<\/i>-sistema, e si spiega perch\u00e9 abbiamo dovuto affrontare il problema della clustering delle partite di rimanenze al momento dell'implementazione. <i>WMS<\/i>-sistemi e di come li abbiamo realizzati.<\/p>\n<p>Quando abbiamo finito di scrivere l'articolo sugli algoritmi di ottimizzazione, \u00e8 risultato molto lungo, quindi abbiamo deciso di dividere il materiale accumulato in 2 parti:<\/p>\n<ul>\n<li>Nella prima parte (questo articolo) parleremo di come abbiamo 'costruito' il modello matematico del problema e delle grandi difficolt\u00e0 inaspettate che abbiamo incontrato durante l'elaborazione e la trasformazione dei dati di input per l'algoritmo.<\/li>\n<li>Nella seconda parte analizzeremo in dettaglio l'implementazione dell'algoritmo nel linguaggio <i>C++<\/i>, condurremo un esperimento computazionale e riassumeremo l'esperienza acquisita durante l'implementazione di tali 'tecnologie intelligenti' nei processi aziendali del cliente.<\/li>\n<\/ul>\n<p>\nCome leggere l'articolo. Se hai letto l'articolo precedente, puoi passare direttamente al capitolo 'Panoramica delle soluzioni esistenti', altrimenti, la descrizione del problema affrontato si trova nel spoiler qui sotto.<\/p>\n<p><b class=\"spoiler_title\">Descrizione del problema affrontato nel magazzino del cliente<\/b><\/p>\n<h4>Collo di bottiglia nei processi<\/h4>\n<p>\nNel 2018 abbiamo realizzato un progetto per l'implementazione di <i>WMS<\/i>-sistema presso il magazzino 'Casa commerciale \"LD\"' a Chelyabinsk. Abbiamo implementato il prodotto \"1C-Logistica: Gestione del magazzino 3\" su 20 postazioni di lavoro: operatori <i>WMS<\/i>, magazzinieri, autisti di carrelli elevatori. Il magazzino ha una superficie di circa 4.000 m\u00b2, con 5.000 posti e 4.500 SKU. Nel magazzino si conservano rubinetti a sfera di produzione propria di diverse dimensioni, da 1 kg a 400 kg. Le scorte nel magazzino sono gestite per lotto, poich\u00e9 \u00e8 necessario selezionare i prodotti secondo il FIFO.<\/p>\n<p>Durante la progettazione dei sistemi di automazione dei processi di magazzino, ci siamo trovati di fronte al problema di una gestione non ottimale delle scorte. La specificit\u00e0 di stoccaggio e disposizione dei rubinetti richiede che in un'unica cella di stoccaggio possano trovarsi solo articoli di un singolo lotto (vedi figura 1). La merce arriva in magazzino quotidianamente, e ogni arrivo corrisponde a un lotto separato. In totale, in un mese di attivit\u00e0, si generano 30 lotti distinti, ciascuno dei quali deve essere immagazzinato in una cella separata. La merce viene spesso selezionata non in interi pallet, ma a pezzi, e di conseguenza, nell'area di prelievo a pezzi, si osserva spesso la seguente situazione: in una cella di oltre 1 m\u00b3 giacciono diversi rubinetti che occupano meno del 5-10% del volume della cella. <\/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>Figura 1. Foto di alcuni pezzi in una cella<\/i><\/p>\n<p>C'\u00e8 un uso non ottimale delle capacit\u00e0 di magazzino. Per illustrare l'entit\u00e0 del problema, posso fornire alcune cifre: in media ci sono da 100 a 300 celle con un volume superiore a 1 m\u00b3 con \"residui minimi\" in diversi periodi di attivit\u00e0 del magazzino. Poich\u00e9 il magazzino \u00e8 relativamente piccolo, durante le stagioni di carico, questo fattore diventa un \"collo di bottiglia\" che rallenta fortemente i processi di accettazione e spedizione.<\/p>\n<h4>Idea per risolvere il problema<\/h4>\n<p>\n\u00c8 emersa l'idea: raggruppare le partite residue con le date pi\u00f9 vicine in un'unica partita e disporre tali residui con una partita unificata in modo compatto all'interno di una cella, o in pi\u00f9 celle se lo spazio non \u00e8 sufficiente per contenere tutta la quantit\u00e0 dei residui. 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 dei residui nelle celle<\/i><\/p>\n<p>Questo consente di ridurre significativamente lo spazio di magazzino occupato, che sar\u00e0 utilizzato per i nuovi prodotti in arrivo. In situazioni di sovraccarico delle capacit\u00e0 di stoccaggio, questa misura \u00e8 estremamente necessaria; altrimenti, lo spazio disponibile per l'accoglienza di nuovi articoli potrebbe non essere sufficiente, portando a una paralisi dei processi di stoccaggio e rifornimento, e di conseguenza a una paralisi delle operazioni di accettazione e spedizione. Prima dell'implementazione del sistema WMS, questo processo veniva eseguito manualmente, risultando inefficace, poich\u00e9 la ricerca di residui adeguati nelle celle richiedeva tempo. Ora, con l'introduzione del sistema WMS, abbiamo deciso di automatizzare, velocizzare e rendere pi\u00f9 intelligente il processo.<\/p>\n<p>Il processo di risoluzione di questa problematica si suddivide in 2 fasi: <\/p>\n<ul>\n<li>nella prima fase troviamo gruppi di lotti vicini per data da comprimere (questa fase \u00e8 dedicata a questa attivit\u00e0) <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 disposizione pi\u00f9 compatta possibile dei residui nelle celle. <\/li>\n<\/ul>\n<p>\nIn questo articolo 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 utile fare una breve panoramica sui sistemi gi\u00e0 esistenti sul mercato <i>WMS<\/i>, nei quali \u00e8 implementata una funzionalit\u00e0 simile di compressione ottimale.<\/p>\n<p>In primo luogo, \u00e8 necessario menzionare il prodotto \"1C: Enterprise 8. WMS Logistica. Gestione del Magazzino 4\", che appartiene e viene distribuito dall'azienda 1C ed \u00e8 parte della quarta generazione <i>WMS<\/i>-sistemi sviluppati dalla societ\u00e0 AXELOT. In questo sistema \u00e8 dichiarata la funzionalit\u00e0 di compressione, volta a unire i resti di merce sparsi in un'unica cella comune. \u00c8 importante specificare che la funzionalit\u00e0 di compressione in un tale sistema include anche altre possibilit\u00e0, come la correzione del posizionamento dei prodotti nelle celle secondo le loro classi ABC, ma non ci soffermeremo su questi aspetti. <\/p>\n<p>Analizzando il codice del sistema \"1C: Enterprise 8. WMS Logistica. Gestione del Magazzino 4\" (che in questa parte della funzionalit\u00e0 \u00e8 aperto), si pu\u00f2 concludere quanto segue. L'algoritmo di compressione delle giacenze implementa una logica lineare piuttosto primitiva e non pu\u00f2 essere definito come \"ottimale\". Naturalmente, non prevede la clusterizzazione dei lotti. Diversi clienti che hanno implementato tale sistema si sono lamentati dei risultati nella pianificazione della compressione. Ad esempio, in pratica, durante la compressione si verificava spesso la seguente situazione: 100 pezzi di merce da una cella vengono pianificati per essere spostati in un'altra cella, dove c'\u00e8 1 pezzo di merce, mentre sarebbe ottimale, dal punto di vista del tempo, fare il contrario.<\/p>\n<p>Anche la funzionalit\u00e0 di compressione delle giacenze nelle celle \u00e8 presente in molti sistemi esteri, <i>WMS<\/i>- ma, sfortunatamente, non abbiamo n\u00e9 recensioni reali sull'efficacia degli algoritmi (\u00e8 un segreto commerciale), n\u00e9 tantomeno informazioni sulla 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 un problema, \u00e8 necessario inizialmente formulare chiaramente questo problema in termini matematici, il 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 i residui di alcuni beni. 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 dei beni presenti 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 notare che nella procedura di compressione pu\u00f2 partecipare solo un prodotto di un lotto, o di pi\u00f9 lotti precedentemente riuniti in un cluster (leggi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">l'articolo precedente<\/a><\/noindex>), a causa delle specificit\u00e0 di stoccaggio e sistemazione dei beni. Per diversi beni o diversi cluster di lotti 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 collocati i residui delle celle donatrici. Queste celle saranno chiamate celle contenitore. Possono essere sia celle libere nel magazzino, sia celle donatrici di un certo insieme <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;\" \/>. L'insieme \u00e8 sempre <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;\" \/> 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\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>Per 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\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> 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\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sono stati definiti limiti di 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 rappresenta un cubo con lati di 10 cm. I prodotti stoccati sono abbastanza voluminosi, quindi in questo caso questa discrepanza \u00e8 sufficientemente adeguata. <\/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;\" \/> appartenenti 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 \u00abcostanni\u00bb per il movimento della merce da una 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;\" \/> a un'altra 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 di un 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 in esso le rimanenze 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 discuteremo pi\u00f9 avanti (vedi sezione preparazione dei dati d'ingresso), al momento \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 valore 1 se le rimanenze 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 trasferite 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 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 le rimanenze della merce, e 0 in caso contrario.<\/p>\n<p><b>La questione \u00e8 formulata 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 in questo modo \u00abcollegare\u00bb le celle donatrici alle celle contenitore, al fine di 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 totale, nel corso del calcolo della soluzione del problema, cerchiamo di: <\/p>\n<ul>\n<li>innanzitutto, risparmiare capacit\u00e0 di magazzino; <\/li>\n<li>in secondo luogo, risparmiare tempo per i magazzinieri. <\/li>\n<\/ul>\n<p>\nL'ultima restrizione implica che non possiamo spostare merci in un container non selezionato e, di conseguenza, non \u00absostenere costi\u00bb per la sua scelta. Questa restrizione significa anche che il volume delle merci spostate dalle celle nel container non deve superare la capacit\u00e0 del container. Considereremo la soluzione del problema come un insieme di container <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 modi per collegare le celle donatrici ai container.<\/p>\n<p>Questa formulazione del problema di ottimizzazione non \u00e8 nuova ed \u00e8 stata studiata da molti matematici fin dall'inizio degli anni '80 del secolo scorso. Nella letteratura estera, esistono 2 problemi di ottimizzazione con un modello matematico appropriato: <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 pi\u00f9 avanti delle differenze tra i compiti). \u00c8 importante notare che nella letteratura matematica questo tipo di problemi di ottimizzazione viene formulato in termini di posizionamento delle imprese sul territorio, da cui il nome 'Facility Location'. Questo \u00e8 in gran parte una questione di tradizione, poich\u00e9 la necessit\u00e0 di risolvere tali problemi combinatori \u00e8 emersa principalmente nel campo della logistica, in particolare nell'industria militare negli anni '50 del secolo scorso. In termini di posizionamento delle imprese, i problemi sono formulati come segue: <\/p>\n<ul>\n<li>Esiste un insieme finito di citt\u00e0 dove \u00e8 potenzialmente possibile posizionare impianti di produzione (di seguito citt\u00e0-produttore). Per ogni citt\u00e0-produttore sono indicati i costi di apertura di un impianto e le limitazioni alla capacit\u00e0 produttiva dell'impianto stesso.<\/li>\n<li>Esiste un insieme finito di citt\u00e0 dove si trovano effettivamente i clienti (di seguito citt\u00e0-clienti). Per ciascuna di queste citt\u00e0-clienti \u00e8 indicato il volume della domanda per i prodotti. Per semplicit\u00e0, consideriamo che il prodotto prodotto dagli impianti e consumato dai clienti sia lo stesso.<\/li>\n<li>Per ogni coppia citt\u00e0-produttore e citt\u00e0-cliente \u00e8 stata definita l'entit\u00e0 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 stabilimenti e come associare i clienti a tali stabilimenti affinch\u00e9:<\/p>\n<ul>\n<li>I costi totali di apertura degli stabilimenti e i costi di trasporto siano minimali;<\/li>\n<li>Il volume della domanda dei clienti associati a un qualsiasi stabilimento aperto non superi le capacit\u00e0 produttive di tale stabilimento.<\/li>\n<\/ul>\n<p>\n\u00c8 ora opportuno parlare dell'unica differenza tra questi due problemi classici:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 il cliente \u00e8 rifornito solo da un singolo stabilimento aperto;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 il cliente pu\u00f2 essere rifornito da pi\u00f9 stabilimenti aperti contemporaneamente.<\/li>\n<\/ul>\n<p>\nQuesta differenza tra i due problemi pu\u00f2 sembrare insignificante a prima vista, ma in realt\u00e0 porta a strutture combinatorie completamente diverse per questi problemi e, di conseguenza, a algoritmi di risoluzione totalmente differenti. La differenza tra i problemi \u00e8 illustrata nella figura 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) Problema della Localizzazione di Impianti Capacitati a Fonte Singola<\/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;\" \/>- sono complessi, cio\u00e8 non esiste un algoritmo esatto che possa risolvere tale problema in tempo polinomiale in funzione della dimensione dell'input. In parole pi\u00f9 semplici, tutti gli algoritmi esatti per risolvere il problema richiederanno un tempo esponenziale, sebbene possano essere pi\u00f9 veloci di un semplice esaurimento delle opzioni. Poich\u00e9 il problema <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, considereremo solo euristiche approssimative, vale a dire algoritmi che calcolano soluzioni stabilmente molto vicine all'ottimale e che funzioneranno abbastanza rapidamente. Se c'\u00e8 interesse per tali problemi, qui si pu\u00f2 trovare una buona panoramica in russo.<\/p>\n<p>Se traduciamo in termini del nostro problema di ottimizzazione del deposito di merci nelle celle, allora:<\/p>\n<ul>\n<li>le citt\u00e0-clienti sono celle-donatori <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 rimanenze di merci, <\/li>\n<li>le citt\u00e0-produttori sono 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 inserire le rimanenze di altre celle,<\/li>\n<li>i costi di trasporto sono i 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 di merci dalla cella-donatore <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>i costi di apertura dell'impresa sono i costi di selezione 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 dei volumi liberi (il valore del coefficiente \u00e8 sempre &gt; 1) (vedi sezione preparazione dei dati di input).<\/li>\n<\/ul>\n<p>\nDopo che l'analogia con le classiche forniture note \u00e8 stata stabilita, \u00e8 necessario rispondere a una domanda importante, dalla quale dipende la scelta dell'architettura dell'algoritmo di soluzione: il trasferimento dei residui dalla cella-donatrice \u00e8 possibile solo in un solo contenitore (Single-Source) o \u00e8 possibile il trasferimento dei residui in pi\u00f9 celle-contenitori (Multi-Source)?<\/p>\n<p>Vale la pena notare che, nella pratica, entrambe le formulazioni del problema sono presenti. Vediamo tutti i \u2018pro\u2019 e \u2018contro\u2019 per ciascuna di queste formulazioni qui di seguito:<\/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 trasferimento delle merci, calcolate secondo questa opzione del problema:<\/p>\n<ul>\n<li>richiedono meno controllo da parte del magazziniere (preso TUTTO da una cella, messo TUTTO in un'altra cella-contenitore), il che elimina i rischi: errori nel conteggio della quantit\u00e0 di merce durante le operazioni \u2018Metti nella cella\u2019; errori di input della quantit\u00e0 ricontata nel TSD;<\/li>\n<li>Non \u00e8 necessario tempo per ricontare il numero di articoli durante le operazioni \"Posiziona nella cella\" 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 con questa variante del compito sono generalmente pi\u00f9 compatte del 10-15% rispetto a quelle calcolate con la variante \"Single-Source\". Va anche notato che minore \u00e8 la quantit\u00e0 di rimanenze nelle celle donatrici, minore \u00e8 questa differenza di compattezza.<\/td>\n<td>Le operazioni di trasferimento delle merci, calcolate secondo questa opzione del problema:<\/p>\n<ul>\n<li>richiedono un maggior controllo da parte del magazziniere (\u00e8 necessario ricontare il numero di articoli trasferiti in ciascuna delle celle-container pianificate), il che elimina il rischio di errore durante il conteggio degli articoli e l'inserimento dei dati nel TSD durante le operazioni \"Posiziona nella cella\".<\/li>\n<li>\u00c8 necessario tempo per ricontare il numero di articoli durante le operazioni \"Posiziona nella cella\".<\/li>\n<li>\u00c8 necessario tempo per le \"spese generali\" (fermarsi, avvicinarsi al pallet, scansionare il codice a barre della cella-container) durante le operazioni \"Posiziona nella cella\".<\/li>\n<li>A volte, l'algoritmo pu\u00f2 \"frantumare\" il numero di pallet praticamente completi tra un gran numero di celle contenitore, dove ci sono gi\u00e0 prodotti adatti, il che risulta inaccettabile dal punto di vista del cliente.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabella 1. Vantaggi e svantaggi delle opzioni Single-Source e Multi-Source.<\/i><\/p>\n<p>Poich\u00e9 il numero di vantaggi per l'opzione Single-Source \u00e8 maggiore, e considerando che minore \u00e8 il numero di rimanenze nelle celle donatrici, minore \u00e8 la differenza nel grado di compattezza della compressione calcolata per entrambe le varianti del problema, abbiamo optato per l'opzione Single-Source.<\/p>\n<p>Vale la pena dire che anche l'opzione Multi-Source ha la sua validit\u00e0. Esistono molteplici algoritmi efficaci per la sua risoluzione, la maggior parte dei quali si riduce alla soluzione di vari problemi di trasporto. Ci sono anche algoritmi non solo efficaci, ma anche eleganti, come 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 iniziare ad analizzare e sviluppare un algoritmo per risolvere il problema, \u00e8 necessario determinare quali dati e in quale formato forniremo in input. Non ci sono problemi con i volumi di giacenza delle merci nelle celle di origine e la capacit\u00e0 delle celle contenitore, in quanto questo \u00e8 triviale: tali quantit\u00e0 saranno misurate in m\u00b3, ma per quanto riguarda i costi di utilizzo delle celle contenitore e la matrice dei costi di movimentazione non \u00e8 tutto cos\u00ec semplice!<\/p>\n<p>Iniziamo con il calcolo <b>dei costi di movimentazione delle merci<\/b> dalla cella di origine alla cella contenitore. Innanzitutto, \u00e8 necessario stabilire quali unit\u00e0 di misura utilizzeremo per calcolare i costi di movimentazione. Due delle opzioni pi\u00f9 ovvie sono i metri e i secondi. Non ha senso calcolare i costi di movimentazione in metri \"puri\". 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;\" \/> sia situata al primo piano, mentre 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 trova a 30 metri di distanza e si colloca al secondo piano:<\/p>\n<ul>\n<li>Muoversi 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 rispetto a muoversi 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 scendere dal secondo piano (1,5-2 metri dal pavimento) \u00e8 pi\u00f9 facile che sollevare al secondo piano, anche se la distanza percorsa sar\u00e0 la stessa;<\/li>\n<li>Spostare 1 pz. 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 di spostare 10 unit\u00e0 dello stesso articolo, anche se la distanza percorsa sar\u00e0 la stessa.<\/li>\n<\/ul>\n<p>\nI costi di movimento sarebbero meglio considerati in secondi, poich\u00e9 ci\u00f2 consente di tenere conto delle differenze nei livelli e nella quantit\u00e0 di merce spostata. Per contabilizzare i costi di movimento in secondi, dobbiamo scomporre l'operazione di movimento in componenti elementari e misurare il tempo impiegato per 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;\" \/> vengano spostati <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 dell'operatore nel magazzino, misurata in m\/s. 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;\" \/> siano le velocit\u00e0 medie per le operazioni di prelievo e deposito rispettivamente per un volume di merce pari a 4 dm\u00b3 (volume medio che un dipendente in magazzino prende in un colpo durante le operazioni). 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 livello (pavimento) \u00e8 di 1 m, il secondo livello di 2 m, ecc. La formula per calcolare il tempo totale per eseguire l'operazione di movimento \u00e8 la seguente: <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;\" \/> successivo:<\/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 dal personale del magazzino tenendo conto delle specificit\u00e0 del prodotto stoccato.<\/p>\n<table>\n<tr>\n<th>Nome dell'operazione<\/th>\n<th>Codice<\/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 una operazione di deposito (per un volume di merce di 4 dm\u00b3)<\/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 per il trasferimento. Ora \u00e8 necessario scoprire come calcolare <b>i costi per la scelta della cella-contenitore<\/b>. Qui tutto \u00e8 molto, molto pi\u00f9 complesso rispetto ai costi di trasferimento, poich\u00e9: <\/p>\n<ul>\n<li>Innanzitutto, i costi devono essere direttamente proporzionali alla dimensione del contenitore: un volume identico di scorte trasferite da celle donatrici \u00e8 preferibile collocarlo 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, riducendo i costi complessivi nella scelta dei contenitori, ci sforziamo di risparmiare capacit\u00e0 di magazzino \"scarsa\" nell'area di prelievo, per eseguire operazioni successive di allocazione della merce nelle celle. Nella figura 4 vengono mostrati i vari metodi di trasferimento delle scorte in contenitori grandi e piccoli e le conseguenze di tali scelte durante le operazioni di magazzino successive.<\/li>\n<li>In secondo luogo, poich\u00e9 nel nostro approccio alla questione iniziale dobbiamo minimizzare i costi totali, che includono sia i costi di movimentazione che i costi di selezione dei contenitori, i volumi delle celle in metri cubici devono in qualche modo essere 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. Metodi di trasferimento delle scorte in contenitori di capacit\u00e0 diversa.<\/i><\/p>\n<p>Nell'immagine 4, il volume delle giacenze che non pu\u00f2 pi\u00f9 essere contenuto nel container \u00e8 mostrato in rosso nel secondo stadio di collocazione dei successivi prodotti. <\/p>\n<p>Aiuter\u00e0 a collegare i metri cubi di costi per la selezione del container con i secondi di costi per il trasferimento i seguenti requisiti per le soluzioni calcolate del problema:<\/p>\n<ul>\n<li>\u00c8 necessario che le giacenze dalla cella donatrice siano spostate nella cella-container in ogni caso, se ci\u00f2 riduce il numero totale di celle-container in cui si trova il prodotto.<\/li>\n<li>\u00c8 fondamentale mantenere un equilibrio tra i volumi dei container e i costi di tempo per il trasferimento: ad esempio, se nella nuova soluzione rispetto alla precedente c'\u00e8 un guadagno significativo nel volume e una perdita minima nei costi di tempo, \u00e8 necessario scegliere la nuova soluzione.<\/li>\n<\/ul>\n<p>\nIniziamo con l'ultima richiesta. Per specificare il termine polisemico 'equilibrio', abbiamo condotto un sondaggio tra i dipendenti del magazzino per chiarire quanto segue. Supponiamo di avere una cella-container di 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;\" \/>, a cui \u00e8 assegnato il trasferimento delle giacenze dei prodotti dalle celle donatrici e il tempo totale per tale trasferimento \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 alcune opzioni alternative per posizionare la stessa quantit\u00e0 di merce da quelle celle donatrici in altri contenitori, dove ogni posizionamento ha la propria valutazione. <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>Sorge 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 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 dipendenza del risparmio minimo accettabile in volume dall'aumento della differenza temporale nell'esecuzione dell'operazione.<\/i><\/p>\n<p>Cio\u00e8, se i costi addizionali in tempo sono di 40 secondi, siamo disposti a sostenerli solo quando il guadagno in volume sar\u00e0 di almeno 500 dm3. Nonostante si osservi una leggera non linearit\u00e0 nella dipendenza, per semplicit\u00e0 nei calcoli successivi considereremo che la relazione tra le quantit\u00e0 sia lineare e descritta dall'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 consideriamo i seguenti modi di posizionare 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 container \u00e8 pi\u00f9 preferibile rispetto all'opzione iniziale, poich\u00e9 l'ineguaglianza \u00e8 soddisfatta: (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. Tuttavia, l'opzione (c) non si inserisce in questa logica! Esaminiamo questa opzione pi\u00f9 da vicino. Da un lato, l'ineguaglianza (800-400)\/10 &gt;= 200-120 implica che l'ineguaglianza 40 &gt;= 80 non \u00e8 soddisfatta, il che indica che il guadagno in volume non giustifica una perdita cos\u00ec significativa in termini di tempo. <\/p>\n<p>Ma dall'altro lato, in questa opzione (c), non solo riduciamo il volume complessivo occupato, ma riduciamo anche il numero di celle occupate, il che \u00e8 il primo dei due requisiti importanti per le soluzioni computazionali dei problemi elencati sopra. \u00c8 evidente che, affinch\u00e9 questo requisito venga soddisfatto, \u00e8 necessario aggiungere al lato sinistro dell'ineguaglianza una certa costante positiva. <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 questa costante deve essere aggiunta solo quando il numero di container diminuisce. 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;\" \/> \u2014 \u00e8 una variabile che assume il valore 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 \u00e8 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 l'insieme dei contenitori nella soluzione originale 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 l'insieme dei contenitori nella nuova soluzione. In generale, la nuova disuguaglianza sar\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 questo, abbiamo una 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, pari nel nostro caso a 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 modo per calcolare il valore<\/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 sul primo livello, nei quali \u00e8 gi\u00e0 fisicamente presente della merce, ossia essi stessi sono celle-donatrici, e i costi per spostare la merce in queste celle sono naturalmente pari a 0. \u00c8 necessario trovare un tale valore della 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;\" \/>, nel quale sarebbe vantaggioso spostare sempre le rimanenze 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 citata, 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 del tempo medio 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>Un 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, in cui ci sono gi\u00e0 dei prodotti, e il cui volume consente di contenere i residui 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 semplificare, supponiamo che il volume della merce spostata dalle celle-donatrici nei contenitori sia uguale 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 della 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 il collocamento di tutti i residui delle <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 risulti sempre pi\u00f9 vantaggioso rispetto al collocamento 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 l'ineguaglianza 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 'rinforzare' 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. Il numero medio di celle normalmente coinvolte nella procedura di compressione dei residui in magazzino \u00e8 pari a 10. Sostituendo i valori noti delle grandezze, abbiamo il seguente valore della 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 opzione, 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 per il magazzino. Ora, per completezza, registriamo 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>questi sforzi titanici,<\/b> dopo 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, il carico di lavoro e l'importanza della fase di preparazione e trasformazione dei dati di input per l'algoritmo sono spesso sottovalutati. In questo articolo abbiamo dedicato particolare attenzione a questa fase per mostrare che solo i dati di input preparati con qualit\u00e0 e intelligenza possono rendere le soluzioni calcolate dall'algoritmo realmente preziose per il cliente. S\u00ec, ci sono state molte deduzioni di formule, ma vi avevamo avvertiti prima della catena \ud83d\ude42<\/p>\n<p>Nel prossimo articolo finalmente arriveremo a ci\u00f2 per cui sono stati pensati i 2 precedenti articoli: all'algoritmo di ottimizzazione discreta.<\/p>\n<p><i>L'articolo \u00e8 stato preparato da<br \/>\nRoman Shangin, 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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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":"In questo articolo, parleremo di come abbiamo affrontato il problema della mancanza di celle disponibili nel magazzino e dello sviluppo di un algoritmo di ottimizzazione discreta per risolvere tale questione. Spiegheremo come abbiamo \"costruito\" il modello matematico del problema di ottimizzazione e delle difficolt\u00e0 inaspettate che abbiamo incontrato durante l'elaborazione dei dati di input per l'algoritmo. Se sei interessato alle applicazioni della matematica nel business e","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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 \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","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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"},"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}]}}