{"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\/nl\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn dit artikel bespreken we hoe we het probleem van een tekort aan vrije opslagruimtes in het magazijn hebben opgelost, en we vertellen over de ontwikkeling van een algoritme voor discrete optimalisatie om dit probleem aan te pakken. We zullen ook laten zien hoe we een wiskundig model voor de optimalisatie hebben 'gebouwd', en met welke onverwachte problemen we zijn geconfronteerd bij de verwerking van de invoergegevens voor het algoritme.<\/p>\n<p>Als u ge\u00efnteresseerd bent in de toepassingen van wiskunde in het bedrijfsleven en niet bang bent voor zware identieke herschrijvingen van formules op het niveau van groep 5, dan bent u van harte welkom onder de cat!<\/p>\n<p>Het artikel zal nuttig zijn voor degenen die <i>WMS<\/i>-systemen implementeren, in de sector van magazijn- of productie-logistiek werken, evenals voor programmeurs die ge\u00efnteresseerd zijn in de toepassingen van wiskunde in het bedrijfsleven en in procesoptimalisatie in een bedrijf.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Inleiding<\/h4>\n<p>\nDeze publicatie vervolgt een reeks artikelen waarin we onze succesvolle ervaring delen met de implementatie van optimalisatie-algoritmen in magazijnprocessen. <\/p>\n<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">vorig artikel<\/a><\/noindex> de specificiteit van het magazijn wordt beschreven waarin wij de <i>WMS<\/i>-systeem hebben ge\u00efmplementeerd, en we vertellen ook waarom we het probleem van clustering van partijen resterende goederen bij de implementatie van <i>WMS<\/i>-systemen moesten oplossen, en hoe we dit hebben gedaan.<\/p>\n<p>Toen we het artikel over optimalisatie-algoritmen schreven, werd het erg groot, dus besloten we het verzamelde materiaal op te splitsen in 2 delen:<\/p>\n<ul>\n<li>In het eerste deel (dit artikel) vertellen we hoe we het wiskundige model van het probleem hebben 'gebouwd', en met welke grote moeilijkheden we onverwacht werden geconfronteerd bij het verwerken en transformeren van de invoergegevens voor het algoritme.<\/li>\n<li>In het tweede deel zullen we de implementatie van het algoritme in de taal gedetailleerd bekijken, <i>C++<\/i>, we zullen een computationeel experiment uitvoeren en de ervaring samenvatten die we hebben opgedaan tijdens de implementatie van dergelijke 'intelligente technologie\u00ebn' in de bedrijfsprocessen van de klant.<\/li>\n<\/ul>\n<p>\nHoe u het artikel moet lezen. Als u het vorige artikel hebt gelezen, kunt u meteen naar het hoofdstuk 'Overzicht van bestaande oplossingen' gaan; als dat niet het geval is, vindt u de beschrijving van het probleem dat wordt opgelost in de spoiler hieronder.<\/p>\n<p><b class=\"spoiler_title\">Beschrijving van het probleem dat zich voordoet in het magazijn van de klant<\/b><\/p>\n<h4>De bottleneck in de processen<\/h4>\n<p>\nIn 2018 hebben we een project uitgevoerd voor de implementatie van een <i>WMS<\/i>-systeem in het magazijn 'Handelshuis 'LD' in Chelyabinsk. We hebben het product '1C-Logistiek: Magazijnbeheer 3' ge\u00efmplementeerd op 20 werkplekken: operators. <i>WMS<\/i>, magazijnmedewerkers, heftruckchauffeurs. Het magazijn heeft een gemiddelde oppervlakte van ongeveer 4.000 m2, met 5.000 vakken en 4.500 SKU\u2019s. In het magazijn worden bolkranen van eigen productie opgeslagen in verschillende maten van 1 kg tot 400 kg. De voorraden in het magazijn worden opgeslagen per partij, aangezien er behoefte is aan het selecteren van goederen op FIFO.<\/p>\n<p>Tijdens het ontwerpen van automatiseringsschema's voor magazijnprocessen stuitten we op een bestaande uitdaging van suboptimale opslag van voorraden. De specifieke opslag en stapeling van de kranen is zodanig dat in \u00e9\u00e9n vak voor eenhedenopslag slechts de nomenclatuur van \u00e9\u00e9n partij kan worden opgeslagen (zie fig. 1). De producten komen dagelijks in het magazijn aan, met elke levering als een aparte partij. In totaal ontstaan er na 1 maand operationele magazijnactiviteit 30 afzonderlijke partijen, waarbij elke partij in een afzonderlijk vak moet worden opgeslagen. De goederen worden vaak niet als complete pallets, maar als losse eenheden geselecteerd, waardoor in het gros van de vakken in de eenheden-opslag de volgende situatie zichtbaar is: in een vak van meer dan 1 m3 liggen enkele kranen die minder dan 5-10% van het vakvolume innemen. <\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 1. Foto van meerdere eenheden in een vak<\/i><\/p>\n<p>Er is een suboptimaal gebruik van magazijncapaciteit zichtbaar. Ter illustratie van de omvang van het probleem kan ik cijfers aanvoeren: gemiddeld zijn er tijdens verschillende periodes van magazijnoperaties tussen de 100 en 300 van dergelijke vakken met een volume van meer dan 1 m3 en \u2018verwaarloosbare\u2019 restanten. Aangezien het magazijn relatief klein is, wordt deze factor tijdens drukke seizoenen een 'knelpunt' dat de magazijnprocessen van ontvangst en verzending ernstig vertraagt.<\/p>\n<h4>Het idee voor een oplossing van het probleem<\/h4>\n<p>\nHet idee ontstond om partijen met de meest nabijgelegen datums samen te brengen tot \u00e9\u00e9n enkele partij en dergelijke restanten met een geharmoniseerde partij compact in \u00e9\u00e9n vak, of in meerdere vakken als er niet genoeg ruimte is in \u00e9\u00e9n vak, op te slaan. Een voorbeeld van zo'n 'compressie' is afgebeeld in figuur 2.<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 2. Schema van compressie van restanten in vakken<\/i><\/p>\n<p>Dit stelt ons in staat om de benodigde magazijnruimte aanzienlijk te verminderen, die gebruikt zal worden voor de nieuw te plaatsen goederen. In situaties met overbelasting van magazijncapaciteiten is zo'n maatregel uiterst noodzakelijk, anders kan de beschikbare ruimte voor het plaatsen van nieuwe goederen eenvoudigweg niet voldoende zijn, wat zal leiden tot een stilstand van de magazijnprocessen voor plaatsing en aanvulling en, als gevolg daarvan, tot een stilstand van de ontvangst en verzending. Vroeger, v\u00f3\u00f3r de implementatie van het WMS-systeem, werd deze operatie handmatig uitgevoerd, wat niet effici\u00ebnt was, omdat het proces van het zoeken naar geschikte restanten in de compartimenten vrij lang was. Nu, met de implementatie van het WMS-systeem, hebben we besloten het proces te automatiseren, te versnellen en intelligenter te maken.<\/p>\n<p>Het proces om deze taak op te lossen wordt verdeeld in 2 fasen: <\/p>\n<ul>\n<li>in de eerste fase zoeken we naar nabijgelegen partijen op datum voor compressie (deze taak is gewijd aan) <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">het vorige artikel<\/a><\/noindex>);<\/li>\n<li>in de tweede fase berekenen we voor elke partij de meest compacte plaatsing van de productrestanten in de compartimenten. <\/li>\n<\/ul>\n<p>\nIn dit artikel zullen we ons concentreren op de tweede fase van het algoritme.<\/p>\n<h4>Overzicht van bestaande oplossingen<\/h4>\n<p>\nVoordat we overgaan tot de beschrijving van de algoritmen die we hebben ontwikkeld, is het de moeite waard om een kort overzicht te geven van de al bestaande systemen op de markt <i>WMS<\/i>, waarin zulk een functionaliteit van optimale compressie is ge\u00efmplementeerd.<\/p>\n<p>Allereerst moet het product \"1C: Bedrijf 8. WMS Logistiek. Magazijnbeheer 4\" worden vermeld, dat eigendom is van en wordt uitgegeven door het bedrijf 1C en behoort tot de vierde generatie <i>WMS<\/i>-systemen, ontwikkeld door het bedrijf AXELOT. In dit systeem wordt de functionaliteit van compressie aangekondigd, die is ontworpen om verspreide productrestanten in \u00e9\u00e9n gemeenschappelijk compartiment samen te voegen. Het moet worden opgemerkt dat de compressiefunctie in zo'n systeem ook andere mogelijkheden omvat, bijvoorbeeld het corrigeren van de plaatsing van goederen in compartimenten volgens hun ABC-klassen, maar daar zullen we niet op ingaan. <\/p>\n<p>Bij de analyse van de code van het systeem '1C: Enterprise 8. WMS Logistiek. Voorraadbeheer 4' (dat op dit deel van de functionaliteit openbaar is), kan het volgende worden geconcludeerd. Het compressie-algoritme voor voorraden volgt een vrij primitieve lineaire logica en er kan niet gesproken worden van enige 'optimale' compressie. Uiteraard voorziet de algoritme niet in de clustering van partijen. Verschillende klanten die dit systeem hebben ge\u00efmplementeerd, hebben geklaagd over de resultaten van de compressieplanning. Bijvoorbeeld, in de praktijk gebeurde het vaak dat: 100 stuks van een product uit \u00e9\u00e9n vakje gepland werden om te verplaatsen naar een ander vakje, waar 1 stuk van het product ligt, terwijl het vanuit tijdsbesparing optimaal zou zijn om het omgekeerd te doen.<\/p>\n<p>Ook de functionaliteit van de compressie van voorraden in vakken is in veel buitenlandse <i>WMS<\/i>-systemen aangekondigd, maar helaas hebben we geen daadwerkelijke beoordelingen over de effectiviteit van de algoritmen (dit is commercieel geheim), noch enige voorstelling van de diepte van hun logica (propri\u00ebtaire software met gesloten code), waardoor we er geen oordeel over kunnen vellen.<\/p>\n<h4>Zoektocht naar een wiskundig model voor de taak<\/h4>\n<p>\nOm kwalitatieve algoritmen te ontwerpen voor het oplossen van de taak, is het noodzakelijk om deze taak eerst duidelijk wiskundig te formuleren, wat we zullen doen.<\/p>\n<p>Er zijn veel vakken <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarin de restanten van een bepaald product zich bevinden. We zullen deze vakken voortaan donorvakken noemen. Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de hoeveelheid product die zich in het vak bevindt <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>Belangrijk is om te zeggen dat in het compressieproces alleen \u00e9\u00e9n product van \u00e9\u00e9n partij kan deelnemen, of van verschillende partijen die vooraf in een cluster zijn samengevoegd (lees <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">het vorige artikel<\/a><\/noindex>), wat het gevolg is van de specifieke opslag en indeling van producten. Voor verschillende producten of verschillende clusters van partijen moet er een aparte compressieprocedure worden gestart.<\/p>\n<p>Er zijn veel vakken <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarin de restanten van de donorvakken potentieel kunnen worden geplaatst. We zullen deze vakken voortaan container-vakken noemen. Dit kunnen zowel vrije vakken in het magazijn zijn als donorvakken uit veelvoudige <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Altijd is veelvoudige <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> een deelverzameling van <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>Voor elk vak <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> uit veelvuldige <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> zijn er beperkingen op de capaciteit ingesteld. <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, gemeten in dm3. E\u00e9n dm3 is een kubus met zijden van 10 cm. De producten die in het magazijn worden opgeslagen zijn groot genoeg, dus in dit geval is deze discretisering voldoende. <\/p>\n<p>Er is een matrix van de kortste afstanden opgegeven <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in meters tussen elk paar vakken <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waar <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> behoren tot verzamelingen <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> respectievelijk. <\/p>\n<p>Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de 'kosten' voor het verplaatsen van goederen van de vak<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> naar de vak <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de 'kosten' voor het kiezen van een container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> voor het verplaatsen van resten uit andere vakken. Hoe precies en in welke eenheden de waarden worden berekend, <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> wordt later besproken (zie sectie voorbereiding van de invoergegevens), voor nu is het voldoende te zeggen dat deze waarden recht evenredig zullen zijn met de grootten <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> respectievelijk.<\/p>\n<p>Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de variabele aanduiden die de waarde 1 aanneemt als de resten uit de vak <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> worden verplaatst naar de container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, en 0 in het andere geval. Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de variabele aanduiden die de waarde 1 aanneemt als de container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> resten van goederen bevat, en 0 in het andere geval.<\/p>\n<p><b>De taak wordt als volgt gesteld<\/b>: we moeten een zodanige verzameling containers vinden <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en zo de donorvakken aan de container-vakken 'hechten', zodat we de functie minimaliseren<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>onder beperkingen<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kortom, tijdens het berekenen van de oplossing van de taak streven we naar: <\/p>\n<ul>\n<li>ten eerste, het besparen van magazijncapaciteit; <\/li>\n<li>ten tweede, het besparen van tijd voor magazijnmedewerkers. <\/li>\n<\/ul>\n<p>\nDe laatste beperking betekent dat we goederen niet kunnen verplaatsen naar een container die we niet hebben gekozen, en dus die we ook geen 'kosten' voor hebben gemaakt om te kiezen. Evenzo betekent deze beperking dat het volume van de verplaatste goederen van de vakken naar de container niet groter mag zijn dan de capaciteit van de container. We verstaan onder de oplossing van de taak de verzameling containers <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en de manieren om de donor-vakken aan de containers te hechten.<\/p>\n<p>Deze formulering van het optimaliseringsprobleem is niet nieuw en is door vele wiskundigen onderzocht sinds het begin van de jaren 80 van de vorige eeuw. In de buitenlandse literatuur zijn er 2 optimaliseringsproblemen met een geschikte wiskundige model: <noindex><a rel=\"nofollow\" href=\"http:\/\/www.math.nsc.ru\/AP\/benchmarks\/CFLP\/cflp.html\">Single-Source Capacitated Facility Location Problem<\/a><\/noindex> en <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> (over de verschillen in taken zullen we later praten). Het is vermeldenswaard dat in de wiskundige literatuur de formuleringen van deze twee optimalisatieproblemen worden gepresenteerd in termen van de locatie van bedrijven in een gebied, vandaar de naam 'Facility Location'. Dit is voor een groot deel een eerbetoon aan de traditie, aangezien de behoefte om dergelijke combinatorische problemen op te lossen voor het eerst voortkwam uit het logistieke domein, voornamelijk in de militaire en industri\u00eble sector in de jaren vijftig van de vorige eeuw. In termen van bedrijfsplaatsing worden dergelijke problemen als volgt geformuleerd: <\/p>\n<ul>\n<li>Er is een eindig aantal steden waar potenti\u00eble productiebedrijven kunnen worden gevestigd (hierna steden-producenten genoemd). Voor elke stad-producent zijn de kosten voor het openen van een bedrijf en de productiecapaciteit van het bedrijf dat daarin wordt geopend, gegeven.<\/li>\n<li>Er is een eindig aantal steden waar de klanten zich daadwerkelijk bevinden (hierna steden-klanten genoemd). Voor elke stad-klant is de vraag naar producten vastgesteld. Voor de eenvoud nemen we aan dat het product dat door de bedrijven wordt geproduceerd en door de klanten wordt geconsumeerd, hetzelfde is.<\/li>\n<li>Voor elk paar stad-producent en stad-klant zijn de transportkosten voor het leveren van het vereiste volume producten van de producent aan de klant vastgesteld.<\/li>\n<\/ul>\n<p>\nHet is nodig te bepalen in welke steden bedrijven moeten worden geopend en hoe de klanten aan deze bedrijven moeten worden toegewezen, zodat:<\/p>\n<ul>\n<li>De totale kosten voor het openen van bedrijven en de transportkosten minimaal zijn;<\/li>\n<li>De vraag van de klanten die aan een geopend bedrijf zijn toegewezen, de productiecapaciteit van dat bedrijf niet overschrijdt.<\/li>\n<\/ul>\n<p>\nNu is het tijd om te spreken over het enige verschil tussen deze twee klassieke problemen:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 de klant wordt slechts door \u00e9\u00e9n geopend bedrijf bevoorraad;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 de klant kan gelijktijdig door verschillende geopende bedrijven worden bevoorraad.<\/li>\n<\/ul>\n<p>\nDit verschil tussen de twee problemen lijkt op het eerste gezicht onbeduidend, maar leidt in werkelijkheid tot een totaal andere combinatorische structuur van deze problemen en, als gevolg daarvan, tot compleet verschillende algoritmen voor hun oplossing. Het verschil tussen de problemen wordt ge\u00efllustreerd in de onderstaande afbeelding.<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/77962906c7de2fced174d4a2b7785cc2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 3. a) Multi-Source Capacitated Facility Location Problem<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 3. b) Single-Source Capacitated Facility Location Problem<\/i><\/p>\n<p>Beide problemen <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>- moeilijk, wat betekent dat er geen exacte algoritme bestaat dat het probleem in polynomiale tijd van de grootte van de invoer kan oplossen. Eenvoudiger gezegd, zullen alle exacte algoritmen voor het oplossen van het probleem exponenti\u00eble tijd nodig hebben, hoewel ze mogelijk sneller zijn dan brute force uitputting. Aangezien het probleem <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>- moeilijk is, zullen we alleen benaderende heuristieken overwegen, dat wil zeggen algoritmen die stabiele oplossingen berekenen die zeer dicht bij de optimale liggen en voldoende snel werken. Als er interesse is in dergelijke problemen, kan hier een goede samenvatting in het Nederlands worden gevonden.<\/p>\n<p>Als we de terminologie van onze taak van optimale opslag van goederen in cellen gebruiken, dan:<\/p>\n<ul>\n<li>de steden-klanten zijn de cellen-donoren <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> met restvoorraden, <\/li>\n<li>de steden-producenten zijn de cellen-containers <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarin we de restvoorraden uit andere cellen willen plaatsen,<\/li>\n<li>transportkosten zijn de tijdskosten <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> van de magazijnbeheerder voor het verplaatsen van de hoeveelheid goederen van cel-donor <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> naar cel-container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>de kosten voor het openen van een onderneming zijn de kosten voor het selecteren van de container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, gelijk aan het volume van de cel-container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, vermenigvuldigd met een bepaalde besparingsco\u00ebffici\u00ebnt (de waarde van de co\u00ebffici\u00ebnt is altijd &gt; 1) (zie de sectie voorbereiding van de invoergegevens).<\/li>\n<\/ul>\n<p>\nNadat de analogie met de bekende klassieke leveringsvraag is gemaakt, moet een belangrijke vraag worden beantwoord die de keuze van de architectuur van het oplossingsalgoritme bepaalt: is het mogelijk om restvoorraden alleen van cel-donor naar \u00e9\u00e9n en slechts \u00e9\u00e9n container (Single-Source) te verplaatsen, of is het mogelijk om restvoorraden naar meerdere cellen-containers (Multi-Source) te verplaatsen?<\/p>\n<p>Het is vermeldenswaard dat in de praktijk beide problematiek mogelijk is. We zullen hieronder alle \u2018voor\u2019 en \u2018tegen\u2019 voor elke probleemstelling opsommen:<\/p>\n<table>\n<tr>\n<th>Variant van het probleem<\/th>\n<th>Voordelen van de variant<\/th>\n<th>Nadelen van de variant<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>De goederenverplaatsingsoperaties die volgens deze probleemstelling zijn berekend:<\/p>\n<ul>\n<li>vereisen minder controle van de magazijnbeheerder (nam ALLES uit \u00e9\u00e9n cel, legde ALLES in een andere cel-container), wat risico's elimineert: fouten bij het herberekenen van de hoeveelheid goederen bij het uitvoeren van de operaties 'Plaats in cel'; invoerfouten van de herberekende hoeveelheid in de PDAs;<\/li>\n<li>Er is geen tijd nodig voor het opnieuw tellen van het aantal producten bij het uitvoeren van de acties 'Plaats in vak' en de invoer in de TSD.<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Multi-Source<\/td>\n<td>Compressies, berekend voor deze variant van de taak, zijn meestal 10-15% compacter in vergelijking met compressies, berekend voor de variant 'Single-Source'. Maar laten we ook opmerken dat hoe kleiner het aantal voorraden in de donorvakken, des te geringer het verschil in compactheid.<\/td>\n<td>De goederenverplaatsingsoperaties die volgens deze probleemstelling zijn berekend:<\/p>\n<ul>\n<li>vereisen meer controle van de magazijnmedewerker (het is nodig om het aantal producten, dat in elk van de geplande container-vakken wordt verplaatst, opnieuw te tellen), wat het risico op fouten bij het opnieuw tellen van het aantal producten en het invoeren van gegevens in de TSD bij het uitvoeren van de acties 'Plaats in vak' elimineert.<\/li>\n<li>Er is tijd nodig voor het opnieuw tellen van het aantal producten bij het uitvoeren van de acties 'Plaats in vak'.<\/li>\n<li>Er is tijd nodig voor 'overhead' (stoppen, naar de pallet lopen, de barcode van het container-vak scannen) bij het uitvoeren van de acties 'Plaats in vak'.<\/li>\n<li>Soms kan het algoritme de hoeveelheid van een vrijwel volledige pallet splitsen over een groot aantal container-vakken, waar al geschikte producten zijn, wat vanuit het perspectief van de klant onaanvaardbaar was.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabel 1. Voor- en nadelen van de varianten Single-Source en Multi-Source.<\/i><\/p>\n<p>Aangezien het aantal voordelen voor de variant Single-Source groter is, en rekening houdend met het feit dat hoe kleiner het aantal voorraden in de donorvakken, des te geringer het verschil in de mate van compactheid van de compressie, berekend volgens beide varianten van de taak, is, hebben we gekozen voor de variant Single-Source.<\/p>\n<p>Het moet worden vermeld dat de oplossing van de Multi-Source-variant ook valide is. Er zijn veel effectieve algoritmes voor het oplossen ervan, waarvan de meeste neerkomen op het oplossen van een reeks transportproblemen. Er zijn niet alleen effectieve algoritmes, maar ook elegante, bijvoorbeeld:<noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathnet.ru\/php\/archive.phtml?wshow=paper&amp;jrnid=da&amp;paperid=791&amp;option_lang=rus\"> hier.<\/a><\/noindex><\/p>\n<h4>Voorbereiding van de invoergegevens<\/h4>\n<p>\nVoordat we beginnen met de analyse en het ontwikkelen van het algoritme voor het oplossen van de taak, moeten we bepalen welke gegevens en in welke vorm we deze als invoer aan het algoritme zullen geven. Er zijn geen problemen met de voorraden van producten in de donorvakken en de capaciteit van de container-vakken, aangezien dit triviaal is \u2013 dergelijke grootheden worden gemeten in m3, maar met de kosten voor het gebruik van het container-vak en de kostenmatrix voor verplaatsing is het niet zo eenvoudig!<\/p>\n<p>Laten we eerst de berekening bekijken. <b>kosten voor het verplaatsen van goederen<\/b> van de donorcel naar de container. Ten eerste moeten we bepalen in welke eenheden we de kosten voor het verplaatsen zullen berekenen. De twee meest voor de hand liggende opties zijn meters en seconden. Het is zinloos om de kosten voor het verplaatsen in \"schone\" meters te berekenen. Laten we dit illustreren met een voorbeeld. Stel dat de cel <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ondanks de eerste laag, op 30 meter is verwijderd en zich op de tweede laag bevindt: <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Vervoer vanuit<\/p>\n<ul>\n<li>is duurder dan vervoer vanuit <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> , omdat het makkelijker is om naar beneden te dalen vanaf de tweede verdieping (1,5-2 meter van de grond) dan om naar de tweede verdieping te stijgen, hoewel de afstand hetzelfde zou zijn; <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Een enkel item verplaatsen vanuit de cel<\/li>\n<li>zal gemakkelijker zijn dan 10 dezelfde items verplaatsen, hoewel de afstand gelijk zal zijn. <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Het is beter om de verplaatsingskosten in seconden te berekenen, omdat dit zowel de verschillen in de lagen als het verschil in de hoeveelheid verplaatste goederen in rekening brengt. Om de verplaatsingskosten in seconden te berekenen, moeten we de verplaatsing operaties splitsen in elementaire componenten en de tijd meten die voor elke elementaire component nodig is.<\/li>\n<\/ul>\n<p>\nLaten we zeggen dat er<\/p>\n<p>wordt verplaatst <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> stuks goederen naar container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> . Laten we zeggen dat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>de gemiddelde snelheid is waarmee een werknemer door het magazijn beweegt, gemeten in m\/s. Laten we zeggen dat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de gemiddelde snelheden voor het uitvoeren van de acties 'nemen' en 'leggen' respectievelijk zijn voor een volume goederen van 4 dm3 (het gemiddelde volume dat een werknemer op een keer in het magazijn vervoert). Laten we zeggen dat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de hoogte van de cellen is waaruit de acties 'nemen' en 'leggen' worden uitgevoerd. Bijvoorbeeld, de gemiddelde hoogte van de eerste laag (vloer) is 1 m, de tweede laag 2 m, enzovoort. De formule voor het berekenen van de totale tijd voor de uitvoering van de verplaatsingsoperatie <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> is als volgt: <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Tabel 2 bevat de statistieken van de tijd die nodig is voor elke elementaire operatie, verzameld door magazijnmedewerkers met inachtneming van de specifieke kenmerken van de opgeslagen goederen.<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Naam van de operatie<\/p>\n<table>\n<tr>\n<th>Aanduiding<\/th>\n<th>Gemiddelde waarde<\/th>\n<th>Gemiddelde snelheid van de werknemer in het magazijn<\/th>\n<\/tr>\n<tr>\n<td>1,5 m\/s<\/td>\n<td><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dadbfb13d2b84b95ab2c5d653a21668b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>Gemiddelde snelheid van de uitvoering van \u00e9\u00e9n actie 'leggen' (voor een volume goederen van 4 dm3)<\/td>\n<\/tr>\n<tr>\n<td>2,4 sec<\/td>\n<td><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/aa619b43a70a7cf646ad35d5c8883329.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>Tabel 2. Gemiddelde tijd voor het uitvoeren van magazijnoperaties<\/td>\n<\/tr>\n<\/table>\n<p><i>We hebben de methode voor het berekenen van de verplaatsingskosten vastgesteld. Nu moeten we uitvinden hoe we<\/i><\/p>\n<p>de kosten voor het kiezen van de containercel kunnen berekenen. <b>kosten voor de selectie van een containercel<\/b>Het is hier veel, veel complexer dan de kosten voor verplaatsing, omdat: <\/p>\n<ul>\n<li>ten eerste, de kosten moeten direct afhankelijk zijn van het volume van de cellen \u2013 hetzelfde volume van de voorraden, verplaatst vanuit donor-cellen, kan beter in een kleinere container worden geplaatst dan in een grote container, mits dat volume volledig in beide containers past. Door de totale kosten voor het kiezen van containers te minimaliseren, proberen we \u2018schaarse\u2019 vrije opslagcapaciteit in het pickgebied te besparen, voor de uitvoering van daaropvolgende goederenplaatsingen in de cellen. In Figuur 4 worden de opties voor het verplaatsen van voorraden naar grote en kleine containers en de gevolgen van dergelijke verplaatsingsopties bij het uitvoeren van daaropvolgende magazijnoperaties ge\u00efllustreerd.<\/li>\n<li>ten tweede, omdat we in de oplossing van de oorspronkelijke taak de totale kosten moeten minimaliseren, wat de som is van zowel de verplaatsingskosten als de kosten van het kiezen van containers, moeten de volumes van de cellen in kubieke meters op de een of andere manier gekoppeld worden aan seconden, wat verre van triviaal is.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 4. Varianten voor het verplaatsen van voorraden naar containers met verschillende capaciteiten.<\/i><\/p>\n<p>In Figuur 4 is in het rood aangegeven het volume van de voorraden dat al niet meer in de container past in de tweede fase van de plaatsing van daaropvolgende goederen. <\/p>\n<p>De volgende eisen aan de berekende oplossingen van de taak zullen helpen om kubieke meters kosten voor het kiezen van een container te koppelen aan seconden van verplaatsingskosten:<\/p>\n<ul>\n<li>Het is noodzakelijk dat voorraden uit de donor-cel in de container-cel worden verplaatst, als dit het totale aantal container-cellen vermindert waarin het product zich bevindt.<\/li>\n<li>Het is noodzakelijk om een balans te behouden tussen de volumes van de containers en de tijdskosten van de verplaatsing: bijvoorbeeld, als in de nieuwe oplossing ten opzichte van de vorige oplossing de winst in volume groot is en het verlies in tijdskosten klein is, dan moet de nieuwe optie worden gekozen.<\/li>\n<\/ul>\n<p>\nLaten we beginnen met de laatste vereiste. Om het meerduidige woord 'balans' te concretiseren, hebben we een enqu\u00eate gehouden onder de magazijnmedewerkers om het volgende te achterhalen. Laat er een container-cel met een volume zijn <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarin de verplaatsing van voorraden uit donor-cellen is toegewezen en de totale tijd van deze verplaatsing is gelijk aan <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Laten we zeggen dat er nog een aantal alternatieve opties zijn voor het plaatsen van dezelfde hoeveelheid goederen uit dezelfde donorcellules in andere containers, waarbij elke plaatsing zijn eigen beoordelingen heeft. <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waar <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waar <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>De vraag is: wat is de minimale volumewinst <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> die acceptabel is, gegeven de vastgestelde verlies in tijd? <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 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=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 5. Diagram van de relatie tussen de minimale toegestane volumebesparing en de toename van het tijdsverschil bij het uitvoeren van de operatie.<\/i><\/p>\n<p>Dat wil zeggen, als de extra tijdskosten 40 seconden bedragen, zijn we bereid deze op te offeren alleen wanneer de volumewinst minimaal 500 dm\u00b3 is. Ondanks dat er een kleine nonlineariteit in de relatie is, zullen we voor de eenvoud van verdere berekeningen aannemen dat de relatie lineair is en wordt beschreven door een ongelijkheid.<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>In de onderstaande afbeelding bekijken we de volgende manieren om goederen in containers te plaatsen.<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a1cb3a5bce4c369f63b3ebeebb738911.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 6. Optie (a): 2 containers, gezamenlijk volume 400 dm\u00b3, totale tijd 150 sec.<\/i><br \/>\n<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a13f35b0e2a188e9a8cbf27bcfbf0292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 6. Optie (b): 2 containers, gezamenlijk volume 600 dm\u00b3, totale tijd 190 sec.<\/i><br \/>\n<img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35699c8bd00546c9828dbe50d4b53c46.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 6. Optie (c): 1 container, gezamenlijk volume 400 dm\u00b3, totale tijd 200 sec.<\/i><\/p>\n<p>Optie (a) voor het kiezen van containers is gunstiger dan de oorspronkelijke optie, aangezien de ongelijkheid wordt vervuld: (800-400)\/10 &gt;= 150-120 waaruit volgt dat 40 &gt;= 30. Optie (b) is minder gunstig dan de oorspronkelijke optie, aangezien de ongelijkheid niet wordt vervuld: (800-600)\/10 &gt;= 190-150 waaruit volgt dat 20 &gt;= 40. Maar optie (c) past niet binnen deze logica! Laten we deze optie nader bekijken. Enerzijds is er de ongelijkheid (800-400)\/10 &gt;= 200-120, dat wil zeggen dat de ongelijkheid 40 &gt;= 80 niet wordt vervuld, wat aangeeft dat de volumewinst niet de grote tijdsverliezen rechtvaardigt. <\/p>\n<p>Aan de andere kant, in deze optie (c) verminderen we niet alleen het totale gebruikte volume, maar ook het aantal gebruikte cellen, wat het eerste van de twee belangrijke vereisten is voor de berekende oplossingen van de bovenstaande problemen. Het is duidelijk dat om aan deze vereiste te voldoen, er een positieve constante aan de linkerkant van de ongelijkheid moet worden toegevoegd. <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarbij deze constante alleen moet worden toegevoegd wanneer het aantal containers afneemt. Laten we niet vergeten dat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 een variabele is die gelijk is aan 1 wanneer de container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a83cd6273e544b63099939e6845740fb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> is geselecteerd, en 0 wanneer de container <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> niet geselecteerd. Laten we het aanduiden, <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 een aantal containers in de oorspronkelijke oplossing en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 een aantal containers in de nieuwe oplossing. In algemene termen zal de nieuwe ongelijkheid er als volgt uitzien:<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Door de bovenstaande ongelijkheid te herformuleren, krijgen we <\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Op basis hiervan hebben we een formule voor het berekenen van de totale kosten <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/cb5bce584fee0156b23adbab83f66b33.jpeg\" style=\"display:block;margin: 0 auto;\" \/> van een bepaalde variant van de probleemoplossing:<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Maar nu rijst de vraag<\/b>: welke waarde zou zo'n constante moeten hebben <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 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>Laat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 de maximale afstand tussen de cellen van het magazijn in \u00e9\u00e9n zone ABC zijn, die in ons geval 100 m bedraagt. Laat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 het maximale volume van een cel-container in het magazijn zijn, dat in ons geval 1000 dm3 bedraagt.<\/p>\n<p><b>De eerste manier om de waarde te berekenen<\/b> <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Laten we een situatie bekijken waarin er 2 containers op de eerste laag zijn, waarin zich al fysiek goederen bevinden, dat wil zeggen dat ze zelf donor-cellen zijn, en de kosten voor het verplaatsen van goederen naar dezelfde cellen natuurlijk gelijk zijn aan 0. We moeten een waarde voor de constante vinden <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarbij het altijd voordelig zou zijn om de resten van container 1 naar container 2 te verplaatsen. Door de waarden in te vullen <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> in de eerder genoemde ongelijkheid krijgen we:<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2794955b8f9f3d64ffe4e2b449547555.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>hieruit volgt<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Door de waarden van de gemiddelde tijd voor het uitvoeren van elementaire bewerkingen in de bovenstaande formule in te vullen, krijgen we<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>De tweede manier om de waarde te berekenen<\/b> <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/78e3dff7183b15136d9e03f4a5724479.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Laten we een situatie bekijken waarin er <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> donor-cellen zijn van waaruit goederen naar container 1 zullen worden verplaatst. Laten we <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 de afstand van de donor-cel <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> naar container 1 zijn. Er is ook container 2, waarin al goederen aanwezig zijn, en waarvan het volume toestaat dat de resten van alle <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> cellen worden opgeslagen. Voor de eenvoud nemen we aan dat het volume van de goederen die van donor-cellen naar container 1 worden verplaatst gelijk is aan <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. We moeten een waarde voor de constante vinden <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, waarbij het altijd voordeliger zou zijn om alle resten van <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> cellen in container 2 op te slaan dan deze in verschillende containers te plaatsen:<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Door de ongelijkheid te transformeren krijgen we<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Om de waarde van de grootheid te 'versterken', nemen we aan dat <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>= 0. Het gemiddelde aantal cellen dat meestal betrokken is bij de procedure voor het samenpersen van resten in het magazijn is gelijk aan 10. Door de bekende waarden in te vullen, hebben we de volgende waarde voor de constante <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> We nemen de grootste waarde, berekend voor elke variant, dit zal de waarde van de grootheid zijn<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>voor de gegeven magazijnparameters. Laten we nu ter afsluiting de formule voor het berekenen van de totale kosten noteren <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> voor een bepaalde acceptabele oplossing <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> . <img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8dd672c7b91639fe1872ef50dca7a220.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nu, na al het <b>titanelijke werk<\/b> om de invoergegevens te transformeren, kunnen we zeggen dat alle invoergegevens omgevormd zijn naar de juiste vorm en klaar zijn voor gebruik in het optimalisatie-algoritme.<\/p>\n<h4>Conclusie<\/h4>\n<p>\nIn de praktijk wordt de arbeidsintensiteit en het belang van de fase van voorbereiding en transformatie van invoergegevens voor het algoritme vaak onderschat. In dit artikel hebben we speciaal veel aandacht besteed aan deze fase om te laten zien dat alleen goed en slim voorbereide invoergegevens de door het algoritme berekende oplossingen echt waardevol kunnen maken voor de klant. Ja, er zijn veel formules afgeleid, maar we hebben je al gewaarschuwd voordat het kwam \ud83d\ude42<\/p>\n<p>In het volgende artikel zullen we eindelijk komen tot waar de vorige 2 publicaties voor bedoeld waren \u2013 het algoritme voor discrete optimalisatie.<\/p>\n<p><i>Het artikel is voorbereid door<br \/>\nRoman Shangin, programmeur van de projectafdeling,<br \/>\nbedrijf Eerste Bit, Chelyabinsk<\/i><br \/>\n<br \/>Bron: <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.3 - 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\/nl\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Discrete wiskunde voor WMS: algoritme voor het comprimeren van goederen in cellen (deel 1) | ProHoster","description":"In het artikel bespreken we.","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/37108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=37108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/27819"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=37108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=37108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=37108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}