{"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\/da\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI artiklen vil vi fort\u00e6lle, hvordan vi l\u00f8ste problemet med manglende ledige pladser p\u00e5 lageret og om udviklingen af en algoritme til diskret optimering til at tackle denne udfordring. Vi vil beskrive, hvordan vi 'byggede' den matematiske model for optimeringsopgaven, samt de udfordringer vi uventet st\u00f8dte p\u00e5 under behandlingen af inddata til algoritmen.<\/p>\n<p>Hvis du er interesseret i matematikens anvendelser i erhvervslivet og ikke er bange for h\u00e5rde identitetsomformninger af formler p\u00e5 5. klasse niveau, s\u00e5 er du hjerteligt velkommen til at l\u00e6se videre!<\/p>\n<p>Artiklen vil v\u00e6re nyttig for dem, der implementerer <i>WMS<\/i>-systemer, arbejder i sektoren for lager- eller produktionslogistik, samt programm\u00f8rer, der er interesseret i matematikens anvendelser i erhvervslivet og optimering af processer i virksomheden.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Introduktionen<\/h4>\n<p>\nDenne publikation forts\u00e6tter en serie artikler, hvor vi deler vores succesfulde erfaring med implementering af optimeringsalgoritmer i lagerprocesser. <\/p>\n<p>I <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">i den foreg\u00e5ende artikel<\/a><\/noindex> detaljerer specifikationen for det lager, hvor vi implementerede <i>WMS<\/i>-systemet, samt hvorfor vi havde behov for at l\u00f8se opgaven med klustering af partier af varer ved implementeringen af <i>WMS<\/i>-systemet, og hvordan vi gjorde det.<\/p>\n<p>Da vi var f\u00e6rdige med at skrive artiklen om optimeringsalgoritmer, blev den meget lang, s\u00e5 vi besluttede at dele det samlede materiale op i 2 dele:<\/p>\n<ul>\n<li>I den f\u00f8rste del (denne artikel) vil vi fort\u00e6lle om, hvordan vi 'byggede' den matematiske model for opgaven, samt de store udfordringer vi uventet st\u00f8dte p\u00e5 under behandlingen og omdannelsen af inddata til algoritmen.<\/li>\n<li>I den anden del vil vi n\u00f8je gennemg\u00e5 implementeringen af algoritmen i sproget <i>C++<\/i>, udf\u00f8re et beregningsfors\u00f8g og opsummere den erfaring, vi har f\u00e5et i l\u00f8bet af implementeringen af s\u00e5danne 'intelligente teknologier' i kundens forretningsprocesser.<\/li>\n<\/ul>\n<p>\nHvordan man l\u00e6ser artiklen. Hvis du har l\u00e6st den foreg\u00e5ende artikel, kan du straks g\u00e5 videre til kapitlet 'Oversigt over eksisterende l\u00f8sninger', hvis ikke, s\u00e5 er beskrivelsen af det l\u00f8ste problem nedenfor i spoiler.<\/p>\n<p><b class=\"spoiler_title\">Beskrivelsen af det l\u00f8ste problem i kundens lager<\/b><\/p>\n<h4>Flaskehalsen i processerne<\/h4>\n<p>\nI 2018 gennemf\u00f8rte vi et projekt om implementering af <i>WMS<\/i>-systemet p\u00e5 lageret 'Handelsfirma LD' i Chelyabinsk. Vi implementerede produktet '1C-Logistik: Lagerstyring 3' p\u00e5 20 arbejdspladser: operat\u00f8rer <i>WMS<\/i>, plukkere, gaffeltruckchauff\u00f8rer. Lageret er gennemsnitligt cirka 4.000 m2 stort, med 5.000 pladser og 4.500 SKU'er. Lageret opbevarer kuglehaner, som er produceret in-house, i forskellige st\u00f8rrelser fra 1 kg til 400 kg. Lagerbeholdningen lagres efter partier, da der er behov for at plukke varerne efter FIFO.<\/p>\n<p>Under designet af automatiseringsordninger til lagerprocesser st\u00f8dte vi p\u00e5 et eksisterende problem med suboptimale lagerforhold. Specifikationen for opbevaring og placering af haner er s\u00e5dan, at der i hver enkelt opbevaringsplads kun kan befinde sig produkter fra \u00e9n parti (se fig. 1). Produkterne ankommer til lageret dagligt, og hver ankomst er et separat parti. I alt, efter 1 m\u00e5neds drift, skabes der 30 separate partier, hvor hvert parti skal opbevares i sin egen plads. Varerne plukkes ofte ikke i hele paletter, men stykvis, hvilket resulterer i, at der i plukkezonerne i mange enkeltpladser ses et billede, hvor der i en plads med mere end 1 m3 opbevares flere stykker haner, som kun udnytter 5-10% af pladsens volumen. <\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Foto af flere stykker i en plads<\/i><\/p>\n<p>Der er et tydeligt suboptimalt udnyttelse af lagerkapaciteten. For at illustrere omfanget af problemet kan jeg n\u00e6vne nogle tal: I gennemsnit er der i forskellige perioder af lagerdriften mellem 100 og 300 pladser p\u00e5 mere end 1 m3 med \"minimal\" lagerbeholdning. Da lageret er relativt lille, bliver denne faktor i s\u00e6soner med h\u00f8j belastning til en \"flaskehals\", der i h\u00f8j grad h\u00e6mmer lagerprocesserne ved modtagelse og afsendelse.<\/p>\n<h4>Ideen til at l\u00f8se problemet<\/h4>\n<p>\nDer opstod en id\u00e9: at samle partier med de n\u00e6rmeste datoer til \u00e9n samlet parti og placere s\u00e5danne rester med en standardiseret parti kompakt sammen i en eller flere pladser, hvis der ikke er plads nok i \u00e9n. Et eksempel p\u00e5 en s\u00e5dan \"komprimering\" er vist i figur 2.<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Diagram over komprimering af rester i pladser<\/i><\/p>\n<p>Dette muligg\u00f8r en betydelig reduktion af det lagerplads, der vil blive brugt til det nye lagerf\u00f8rte produkt. I tilf\u00e6lde af overbelastning af lagerkapacitet er denne foranstaltning yderst n\u00f8dvendig, ellers kan der simpelthen ikke v\u00e6re nok plads til at placere det nye produkt, hvilket vil f\u00f8re til en stilstand i lagerprocesserne for placering og forsyning, og som f\u00f8lge heraf til stilstand i modtagelse og afsendelse. F\u00f8r implementeringen af WMS-systemet blev s\u00e5dan en operation udf\u00f8rt manuelt, hvilket var ineffektivt, da processen med at finde de passende lagre i reolerne var ret tidskr\u00e6vende. Nu, med implementeringen af WMS-systemet, har vi besluttet at automatisere, fremskynde og g\u00f8re processen intelligent.<\/p>\n<p>Processen til l\u00f8sning af en s\u00e5dan opgave opdeles i 2 faser: <\/p>\n<ul>\n<li>I den f\u00f8rste fase finder vi n\u00e6rliggende partigrupper for komprimering (denne opgave er dedikeret til <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">den forrige artikel<\/a><\/noindex>);<\/li>\n<li>I den anden fase beregner vi for hver partigruppe den mest kompakte placering af varernes rester i reolerne. <\/li>\n<\/ul>\n<p>\nI denne artikel vil vi fokusere p\u00e5 den anden fase af algoritmen.<\/p>\n<h4>Oversigt over eksisterende l\u00f8sninger<\/h4>\n<p>\nF\u00f8r vi g\u00e5r videre til beskrivelsen af de algoritmer, vi har udviklet, er det v\u00e6rd at lave en kort oversigt over de allerede eksisterende systemer p\u00e5 markedet <i>WMS<\/i>, som implementerer en lignende funktionalitet til optimal komprimering.<\/p>\n<p>F\u00f8rst og fremmest m\u00e5 vi n\u00e6vne produktet \"1C: Virksomhed 8. WMS Logistik. Lagerstyring 4\", som tilh\u00f8rer og distribueres af firmaet 1C og h\u00f8rer til fjerde generation <i>WMS<\/i>-systemer, udviklet af virksomheden AXELOT. I dette system er der angivet kompressionsfunktionalitet, der har til form\u00e5l at samle spredte varers rester i en f\u00e6lles reol. Det er vigtigt at bem\u00e6rke, at kompressionsfunktionaliteten i et s\u00e5dant system ogs\u00e5 inkluderer andre muligheder, for eksempel korrektion af varernes placering i reolerne i henhold til deres ABC-klasser, men vi vil ikke dykke n\u00e6rmere ned i dem. <\/p>\n<p>Hvis man analyserer koden for systemet \u00ab1C: Enterprise 8. WMS Logistik. Lagerstyring 4\u00bb (som i denne del af funktionaliteten er \u00e5ben), kan man konkludere f\u00f8lgende. Algoritmen til komprimering af restlagre implementerer en temmelig simpel linear logik, og der kan ikke tale om nogen \u00aboptimal\u00bb komprimering. Naturligvis indg\u00e5r klyngedannelse af partier ikke. Flere kunder, som har f\u00e5et implementeret et s\u00e5dant system, har klaget over resultaterne af komprimeringsplanl\u00e6gningen. For eksempel opstod der ofte i praksis f\u00f8lgende situation ved komprimering: 100 stk. restlagre fra en celle planl\u00e6gges flyttet til en anden celle, hvor der ligger 1 stk. vare, selvom det ville v\u00e6re optimalt set fra tidsforbrug at g\u00f8re det modsatte.<\/p>\n<p>Funktionaliteten til komprimering af restlagre i celler er ogs\u00e5 annonceret i mange udenlandske <i>WMS<\/i>-systemer, men desv\u00e6rre har vi hverken reelle anmeldelser af effektiviteten af algoritmerne (dette er en handelshemmelighed) eller noget st\u00f8rre indblik i dybden af deres logik (propriet\u00e6r software med lukket kode), s\u00e5 vi kan ikke d\u00f8mme.<\/p>\n<h4>S\u00f8gning efter en matematisk model af opgaven<\/h4>\n<p>\nFor at designe kvalitetsalgoritmer til at l\u00f8se opgaven er det n\u00f8dvendigt f\u00f8rst klart at formulere denne opgave matematisk, hvilket vi vil g\u00f8re.<\/p>\n<p>Der er mange celler <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor restlagre af en bestemt vare befinder sig. Disse celler vil vi kalde donor-celler. Lad os betegne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> volumenet af varen, der befinder sig i cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>Det er vigtigt at sige, at der kun kan deltage \u00e9n vare fra en part, eller fra flere partier, der tidligere er samlet i en klynge (l\u00e6s <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">den forrige artikel<\/a><\/noindex>), hvilket skyldes specifikationen ved opbevaring og placering af varer. For forskellige varer eller forskellige klynger af partier skal der startes en s\u00e6rskilt komprimeringsprocedure.<\/p>\n<p>Der er mange celler <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvori restlagre fra donor-celler potentielt kan placeres. Disse celler vil vi fremover kalde container-celler. Det kan b\u00e5de v\u00e6re ledige celler p\u00e5 lageret samt donor-celler fra mange <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Altid er m\u00e6ngden <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> et underomr\u00e5de af <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>For hver celle <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> fra m\u00e6ngden <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er der angivet begr\u00e6nsninger for kapacitet <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, m\u00e5lt i dm3. \u00c9n dm3 svarer til en terning med sider p\u00e5 10 cm. Produkterne, der opbevares p\u00e5 lageret, er ret store, s\u00e5 i dette tilf\u00e6lde er en s\u00e5dan diskretisering helt tilstr\u00e6kkelig. <\/p>\n<p>En matrix af korteste afstande er angivet <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i meter mellem hvert par af lagerrum <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> tilh\u00f8rer m\u00e6ngderne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> henholdsvis. <\/p>\n<p>Lad os betegne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00abomkostningerne\u00bb ved at flytte varer fra et lagerrum<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> til et andet lagerrum <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Lad os betegne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00abomkostningerne\u00bb ved at v\u00e6lge en container <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> til at flytte rester fra andre lagerrum. Hvordan og i hvilke m\u00e5leenheder v\u00e6rdierne beregnes <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vil blive beskrevet senere (se afsnit om forberedelse af inputdata), for nu er det tilstr\u00e6kkeligt at sige, at s\u00e5danne st\u00f8rrelser vil v\u00e6re direkte proportional med v\u00e6rdierne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> henholdsvis.<\/p>\n<p>Lad os betegne med <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en variabel, der tager v\u00e6rdien 1, hvis rester fra lagerrummet <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> flyttes til containeren <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, og 0 ellers. Lad os betegne med <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en variabel, der tager v\u00e6rdien 1, hvis containeren <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> indenholder rester af varer, og 0 ellers.<\/p>\n<p><b>Opgaven formuleres s\u00e5ledes<\/b>: det er n\u00f8dvendigt at finde en s\u00e5dan m\u00e6ngde af containere <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og dermed \u00bbtilknytte\u00ab donor-lagerrum til container-lagerrum p\u00e5 en m\u00e5de, der minimerer funktionen<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>under begr\u00e6nsninger<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>I alt i l\u00f8bet af beregningen af opgavens l\u00f8sning str\u00e6ber vi efter: <\/p>\n<ul>\n<li>for det f\u00f8rste at spare lagerkapacitet; <\/li>\n<li>for det andet at spare tid for lagerarbejdere. <\/li>\n<\/ul>\n<p>\nDen sidste begr\u00e6nsning betyder, at vi ikke kan flytte varer til en container, som vi ikke har valgt, og derfor ikke \u00abhar b\u00e5ret omkostningerne\u00bb til dens valg. Denne begr\u00e6nsning betyder ogs\u00e5, at volumen af de flyttede varer fra lagerrum til container ikke m\u00e5 overstige containerens kapacitet. En l\u00f8sning p\u00e5 opgaven vil blive forst\u00e5et som en m\u00e6ngde containere <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og m\u00e5der at tilknytte donor-lagerrum til containerne.<\/p>\n<p>Denne formulering af optimeringsopgaven er ikke ny og er blevet unders\u00f8gt af mange matematikere siden begyndelsen af 80'erne i det forrige \u00e5rhundrede. I udenlandsk litteratur findes der 2 optimeringsopgaver med en passende matematisk model: <noindex><a rel=\"nofollow\" href=\"http:\/\/www.math.nsc.ru\/AP\/benchmarks\/CFLP\/cflp.html\">Single-Source Capacitated Facility Location Problem<\/a><\/noindex> og <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> (vi forskellige opgaver vil blive diskuteret senere). Det skal n\u00e6vnes, at i matematisk litteratur bliver formuleringen af disse to optimeringsopgaver beskrevet i termer af placering af virksomheder i geografiske omr\u00e5der, deraf navnet 'Facility Location'. I h\u00f8j grad er dette en tradition, da behovet for at l\u00f8se s\u00e5danne kombinatoriske opgaver f\u00f8rst kom fra logistikomr\u00e5det, for det meste inden for den milit\u00e6r-industrielle sektor i 1950'erne. I termer af virksomhedens placering formuleres s\u00e5danne opgaver s\u00e5ledes: <\/p>\n<ul>\n<li>Der er et endeligt antal byer, hvor det potentiel er muligt at placere produktionsanl\u00e6g (herefter kaldet virksomhedsbyer). For hver virksomhedsby er der angivet omkostninger ved at \u00e5bne en virksomhed der, samt begr\u00e6nsninger p\u00e5 produktionskapaciteten for den \u00e5bne virksomhed.<\/li>\n<li>Der er et endeligt antal byer, hvor kunderne faktiske befinder sig (herefter kaldet kundebyer). For hver s\u00e5dan kundeby er der angivet eftersp\u00f8rgselsvolumen p\u00e5 produkter. For enkelhedens skyld antager vi, at det produkt, der produceres af virksomhederne og forbruges af kunderne, er det samme.<\/li>\n<li>For hvert par af virksomhedsby og kundeby er der angivet transportomkostningerne ved at levere det kr\u00e6vede volumen af produkter fra producenten til kunden.<\/li>\n<\/ul>\n<p>\nDet er n\u00f8dvendigt at finde ud af i hvilke byer man skal \u00e5bne virksomheder og hvordan man skal knytte kunderne til disse virksomheder, s\u00e5:<\/p>\n<ul>\n<li>De samlede omkostninger ved at \u00e5bne virksomhederne og transportomkostningerne er minimale;<\/li>\n<li>Eftersp\u00f8rgselsvolumenet for kunderne, der er knyttet til et \u00e5bent anl\u00e6g, overstiger ikke produktionskapaciteten for dette anl\u00e6g.<\/li>\n<\/ul>\n<p>\nNu er det v\u00e6rd at n\u00e6vne den eneste forskel mellem disse to klassiske opgaver:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 kunden forsynes kun fra et \u00e5bent anl\u00e6g;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 kunden kan forsynes fra flere \u00e5bne anl\u00e6g samtidig.<\/li>\n<\/ul>\n<p>\nDenne forskel mellem de to opgaver virker ved f\u00f8rste \u00f8jekast ubetydelig, men f\u00f8rer faktisk til en helt anden kombinationsstruktur for s\u00e5danne opgaver og, som en konsekvens, til fuldst\u00e6ndig forskellige algoritmer til deres l\u00f8sning. Forskellen mellem opgaverne er vist p\u00e5 billedet nedenfor.<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 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=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig.3. b) Single-Source Capacitated Facility Location Problem<\/i><\/p>\n<p>Begge opgaver <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-sv\u00e6re, hvilket vil sige, at der ikke findes en pr\u00e6cis algoritme, der kan l\u00f8se en s\u00e5dan opgave p\u00e5 polynomiel tid i forhold til st\u00f8rrelsen af inputdataene. Mere enkelt sagt, vil alle pr\u00e6cise algoritmer til at l\u00f8se opgaven arbejde med eksponentiel tid, sk\u00f8nt de m\u00e5ske kan v\u00e6re hurtigere end en fuld pr\u00f8ve p\u00e5 alle muligheder. Da opgaven <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-er sv\u00e6r, vil vi kun overveje tiln\u00e6rmede heuristikker, det vil sige algoritmer, der vil beregne stabilt l\u00f8sninger meget t\u00e6t p\u00e5 de optimale og vil arbejde hurtigt. Hvis der er interesse for s\u00e5danne opgaver, kan man finde en god oversigt p\u00e5 russisk her.<\/p>\n<p>Hvis vi overf\u00f8rer til terminologien fra vores opgave med optimal komprimering af varer i celler, s\u00e5:<\/p>\n<ul>\n<li>byer-kunder \u2013 er donor-celler <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> med rester af varer, <\/li>\n<li>byer-producenter \u2013 er container-celler <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor rester fra andre celler forventes placeret,<\/li>\n<li>transportomkostninger \u2013 tidsomkostningerne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> for lagerarbejderen til at flytte m\u00e6ngden af varer fra donor-cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> til container-cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>omkostningerne ved at \u00e5bne virksomhed \u2013 omkostninger ved valg af container <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, svarende til volumenet af container-cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, ganget med en eller anden besparelsesfaktor (v\u00e6rdien af faktoren er altid &gt; 1) (se afsnittet forberede inputdata).<\/li>\n<\/ul>\n<p>\nEfter at analogien med de kendte klassiske leveringsproblemer er draget, er det n\u00f8dvendigt at besvare et vigtigt sp\u00f8rgsm\u00e5l, som afh\u00e6nger af valget af algoritmearkitektur: er overflytning af rester fra donor-cellen kun muligt til \u00e9n og kun \u00e9n container (Single-Source), eller er det muligt at flytte rester til flere container-celler (Multi-Source)?<\/p>\n<p>Det er v\u00e6rd at bem\u00e6rke, at begge problemstillinger praktisk talt er til stede. Vi vil opremse alle 'for' og 'imod' for hver s\u00e5dan opstilling nedenfor:<\/p>\n<table>\n<tr>\n<th>Variant af opgaven<\/th>\n<th>Fordele ved varianten<\/th>\n<th>Ulemper ved varianten<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>Flytninger af varer beregnet ud fra denne variants opgave:<\/p>\n<ul>\n<li>kr\u00e6ver mindre kontrol fra lagerarbejderens side (tog ALT fra \u00e9n celle, lagde ALT i en anden container-celle), hvilket eliminerer risici: fejl ved t\u00e6lning af varens antal under udf\u00f8relsen af operationerne 'L\u00e6g i celle'; indtastningsfejl af det t\u00e6llede antal i TSD;<\/li>\n<li>Der kr\u00e6ves ingen tid til at t\u00e6lle antallet af varer, n\u00e5r der udf\u00f8res operationer som \"L\u00e6g i celle\" og indtastning i TSD.<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Multi-Source<\/td>\n<td>Komprimeringer, beregnet ud fra denne opgavel\u00f8sning, er normalt 10-15% mere kompakte end komprimeringer, der er beregnet ud fra \"Single-Source\". Men vi bem\u00e6rker ogs\u00e5, at jo f\u00e6rre rester der er i donorcellerne, desto mindre er forskellen i kompakthed.<\/td>\n<td>Flytninger af varer beregnet ud fra denne variants opgave:<\/p>\n<ul>\n<li>kr\u00e6ver mere kontrol fra lagermandens side (det er n\u00f8dvendigt at t\u00e6lle antallet af varer, der flyttes til hver af de planlagte containerceller), hvilket eliminerer risikoen for fejl ved t\u00e6lling af varer og indtastning af data i TSD, n\u00e5r der udf\u00f8res operationer som \"L\u00e6g i celle\".<\/li>\n<li>Der kr\u00e6ves tid til at t\u00e6lle antallet af varer, n\u00e5r der udf\u00f8res operationer som \"L\u00e6g i celle\".<\/li>\n<li>Der kr\u00e6ves tid til \"overhead\" (stoppe, g\u00e5 hen til pallen, scanne stregkoden for containercellen) n\u00e5r der udf\u00f8res operationer som \"L\u00e6g i celle\".<\/li>\n<li>Nogle gange kan algoritmen \"opdele\" antallet af praktisk talt fulde paller mellem et stort antal containerceller, hvor der allerede er passende varer, hvilket fra en kundes perspektiv ville v\u00e6re uacceptabelt.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabel 1. Fordele og ulemper ved Single-Source og Multi-Source.<\/i><\/p>\n<p>Da antallet af fordele ved Single-Source er st\u00f8rre, og i betragtning af at jo f\u00e6rre rester der er i donorcellerne, jo mindre er forskellen i komprimeringsgrad mellem de to opgavel\u00f8sninger, s\u00e5 faldt vores valg p\u00e5 Single-Source.<\/p>\n<p>Det skal siges, at l\u00f8sningen af Multi-Source ogs\u00e5 er relevant. Der findes mange effektive algoritmer til at l\u00f8se den, hvoraf de fleste reduceres til at l\u00f8se et antal transportopgaver. Der er ogs\u00e5 ikke bare effektive algoritmer, men ogs\u00e5 elegante, for eksempel,<noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathnet.ru\/php\/archive.phtml?wshow=paper&amp;jrnid=da&amp;paperid=791&amp;option_lang=rus\"> her.<\/a><\/noindex><\/p>\n<h4>Forberedelse af inddata<\/h4>\n<p>\nF\u00f8r vi begynder at analysere og udvikle algoritmen til at l\u00f8se opgaven, er det n\u00f8dvendigt at afg\u00f8re, hvilke data og i hvilken form vi vil pr\u00e6sentere dem for den. Med m\u00e6ngderne af varer i donorcellene og kapaciteten af containercellerne er der ingen problemer, da det er trivielt \u2013 s\u00e5danne st\u00f8rrelser vil blive m\u00e5lt i m3, men med omkostningerne ved at bruge en containercelle og omkostningsmatrixen for flytning er det ikke s\u00e5 enkelt!<\/p>\n<p>F\u00f8rst ser vi p\u00e5 beregningen <b>omkostninger ved flytning af varer<\/b> fra donorcelle til containercelle. F\u00f8rst og fremmest skal vi beslutte, hvilke m\u00e5leenheder vi vil bruge til at beregne omkostningerne ved flytningen. De to mest oplagte muligheder er meter og sekunder. Det giver ikke mening at beregne omkostningerne ved flytning i 'rene' meter. Lad os illustrere dette med et eksempel. Antag, at cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er placeret p\u00e5 f\u00f8rste niveau, cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er 30 meter v\u00e6k og er placeret p\u00e5 andet niveau:<\/p>\n<ul>\n<li>Flytning fra <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er dyrere end flytning fra <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, da det er lettere at nedf\u00f8re ting fra andet niveau (1,5-2 meter over gulvet) end at l\u00f8fte dem til andet niveau, selvom afstanden er den samme;<\/li>\n<li>At flytte 1 stk. vare fra cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vil v\u00e6re lettere end at flytte 10 stk. af den samme vare, selvom afstanden er den samme.<\/li>\n<\/ul>\n<p>\nOmkostningerne ved flytning b\u00f8r bedst t\u00e6lles i sekunder, da det muligg\u00f8r at tage hensyn til b\u00e5de forskelle i niveauer og forskelle i m\u00e6ngden af flyttede varer. For at kunne tage omkostningerne ved flytning i sekunder, skal vi nedbryde flytteoperationen i dens element\u00e6re bestanddele og m\u00e5le tiden for hver element\u00e6r bestanddel.<\/p>\n<p>Lad os sige, at fra cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> bliver flyttet <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> stk. varer til containeren <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Lad os antage, at <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er den gennemsnitlige hastighed, som arbejdere bev\u00e6ger sig med i lageret, m\u00e5lt i m\/s. Lad os antage, at <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er de gennemsnitlige hastigheder for engangsoperationerne at tage og l\u00e6gge henholdsvis for en varevolumen p\u00e5 4 dm3 (den gennemsnitlige volumen, som en medarbejder tager ad gangen i lageret, n\u00e5r der udf\u00f8res operationer). Lad os antage, at <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er h\u00f8jden p\u00e5 de celler, hvor operationerne at tage og l\u00e6gge udf\u00f8res. For eksempel, den gennemsnitlige h\u00f8jde af f\u00f8rste niveau (gulv) er 1 m, andet niveau 2 m osv. S\u00e5ledes er formlen til beregning af den samlede tid til udf\u00f8relse af flytteoperationen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> f\u00f8lgende:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tabel 2 pr\u00e6senterer statistikken over tiden for udf\u00f8relse af hver element\u00e6r operation, indsamlet af lagerpersonalet med hensyn til den specifikke opbevaring af varer.<\/p>\n<table>\n<tr>\n<th>Operationens navn<\/th>\n<th>Betegnelse<\/th>\n<th>Gennemsnitlig v\u00e6rdi<\/th>\n<\/tr>\n<tr>\n<td>Gennemsnitlig hastighed, som medarbejderen bev\u00e6ger sig med i lageret<\/td>\n<td><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dadbfb13d2b84b95ab2c5d653a21668b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>1,5 m\/s<\/td>\n<\/tr>\n<tr>\n<td>Gennemsnitlig hastighed for udf\u00f8relsen af en operation at l\u00e6gge (for en varevolumen p\u00e5 4 dm3)<\/td>\n<td><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/aa619b43a70a7cf646ad35d5c8883329.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>2,4 sek<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabel 2. Gennemsnitstiden for udf\u00f8relse af lageroperationer<\/i><\/p>\n<p>Vi har nu fastlagt metoden til beregning af omkostninger ved flytning. Nu skal vi finde ud af, hvordan vi beregner <b>omkostningerne ved valget af containercelle<\/b>Her er alt meget, meget mere kompliceret end med omkostningerne til flytning, fordi: <\/p>\n<ul>\n<li>for det f\u00f8rste b\u00f8r omkostningerne v\u00e6re direkte afh\u00e6ngige af volumen af cellen \u2013 det samme volumen af rester, der flyttes fra donor-celler, er bedre at placere i en mindre beholder end i en stor beholder, forudsat at dette volumen helt kan rumme i begge beholdere. P\u00e5 denne m\u00e5de, ved at minimere de samlede omkostninger ved valg af beholdere, s\u00f8ger vi at spare \"knappe\" ledige lagerkapaciteter i udtagningsomr\u00e5det for at udf\u00f8re efterf\u00f8lgende placeringsoperationer af varer i celler. Figur 4 viser mulighederne for flytning af rester til store og sm\u00e5 beholdere og konsekvenserne af s\u00e5danne flytninger ved udf\u00f8relsen af efterf\u00f8lgende lageroperationer.<\/li>\n<li>for det andet, da vi i l\u00f8sningen af den oprindelige opgave skal minimere de samlede omkostninger, hvilket er summen af b\u00e5de omkostninger til flytning og omkostninger til valg af beholdere, s\u00e5 skal volumenerne af celler i kubikmeter p\u00e5 en eller anden m\u00e5de kobles med sekunder, hvilket ikke er trivielt.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Muligheder for flytning af rester til beholdere med forskellige kapaciteter.<\/i><\/p>\n<p>I Figur 4 er volumen af rester, der allerede ikke kan rumme i beholderen i den anden fase af placeringen af efterf\u00f8lgende varer, vist i r\u00f8dt. <\/p>\n<p>F\u00f8lgende krav til de beregnede l\u00f8sninger p\u00e5 opgaven hj\u00e6lper med at koble kubikmeterne af omkostningerne til valg af beholder med sekunderne af omkostningerne til flytning:<\/p>\n<ul>\n<li>Det er n\u00f8dvendigt, at resterne fra donor-cellen bliver flyttet til container-cellen under alle omst\u00e6ndigheder, hvis dette reducerer det samlede antal container-celler, hvor varerne befinder sig.<\/li>\n<li>Der skal v\u00e6re balance mellem beholdere og tidsomkostninger ved flytning: for eksempel, hvis gevinsten i volumen i den nye l\u00f8sning i forhold til den forrige l\u00f8sning er stor, og tabet i tidsomkostninger er lille, s\u00e5 er det n\u00f8dvendigt at v\u00e6lge den nye l\u00f8sning.<\/li>\n<\/ul>\n<p>\nLad os begynde med det sidste krav. For at pr\u00e6cisere det flertydige ord \"balance\" gennemf\u00f8rte vi en unders\u00f8gelse blandt lagerpersonalet for at finde ud af f\u00f8lgende. Lad os antage, at der er en container-celle med volumen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvortil det er planlagt at flytte resterne af varer fra donor-cellerne, og den samlede tid for denne flytning er lig <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Lad os antage, at der er flere alternative muligheder for at placere den samme m\u00e6ngde varer fra de samme donor-celler i andre containere, hvor hver placering har sine egne vurderinger. <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>Sp\u00f8rgsm\u00e5let opst\u00e5r: hvad er den minimale gevinst i volumen, <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> der er acceptabel, givet et bestemt tidsm\u00e6ssigt tab. <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 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=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. Diagram over afh\u00e6ngigheden af minimums tilladt besparelse i volumen fra den \u00f8gede tidsforskel ved udf\u00f8relse af operationen.<\/i><\/p>\n<p>Det vil sige, hvis de ekstra tidsomkostninger er 40 sekunder, s\u00e5 er vi kun villige til at bruge dem, n\u00e5r gevinsten i volumen er mindst 500 dm3. Selvom der er en lille ikke-linearitet i afh\u00e6ngigheden, antager vi af simplificerings\u00e5rsager, at forholdet mellem st\u00f8rrelserne er line\u00e6rt og beskrives ved uligheden.<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>I figuren nedenfor vil vi overveje f\u00f8lgende metoder til at placere varer i containere.<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a1cb3a5bce4c369f63b3ebeebb738911.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Mulighed (a): 2 containere, samlet volumen 400 dm3, samlet tid 150 sek.<\/i><br \/>\n<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a13f35b0e2a188e9a8cbf27bcfbf0292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Mulighed (b): 2 containere, samlet volumen 600 dm3, samlet tid 190 sek.<\/i><br \/>\n<img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35699c8bd00546c9828dbe50d4b53c46.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Mulighed (c): 1 container, samlet volumen 400 dm3, samlet tid 200 sek.<\/i><\/p>\n<p>Valg (a) af containere er mere foretrukket end den oprindelige mulighed, da uligheden opfyldes: (800-400)\/10&gt;=150-120 hvilket betyder 40 &gt;= 30. Valg (b) er mindre foretrukket end den oprindelige mulighed, da uligheden ikke opfyldes: (800-600)\/10&gt;=190-150 hvilket betyder 20 &gt;= 40. Men mulighed (c) passer ikke ind i denne logik! Lad os overveje denne mulighed mere detaljeret. P\u00e5 den ene side er uligheden (800-400)\/10&gt;=200-120, s\u00e5 uligheden 40 &gt;= 80 opfyldes ikke, hvilket indikerer, at gevinsten i volumen ikke retf\u00e6rdigg\u00f8r den store tidsm\u00e6ssige nedgang. <\/p>\n<p>Men p\u00e5 den anden side, i en s\u00e5dan mulighed (c) reducerer vi ikke blot det samlede optagne volumen, men ogs\u00e5 antallet af optagne celler, hvilket er det f\u00f8rste af de to vigtige krav til de beregnede l\u00f8sninger til de ovenfor n\u00e6vnte opgaver. Det er tydeligt, at for at dette krav skal begynde at blive opfyldt, er det n\u00f8dvendigt at tilf\u00f8je en positiv konstant til venstre side af uligheden. <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, desuden skal denne konstant kun tilf\u00f8jes, n\u00e5r antallet af containere reduceres. Husk, at <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 er en variabel, der er lig med 1, n\u00e5r containeren <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a83cd6273e544b63099939e6845740fb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> er valgt, og 0 n\u00e5r containeren <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ikke valgt. Lad os definere, <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 mange containere i den oprindelige l\u00f8sning og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 mange containere i den nye l\u00f8sning. Generelt vil den nye ulighed se s\u00e5ledes ud:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ved at omdanne den ovenst\u00e5ende ulighed f\u00e5r vi <\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Baseret p\u00e5 dette har vi en formel til beregning af de samlede omkostninger <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/cb5bce584fee0156b23adbab83f66b33.jpeg\" style=\"display:block;margin: 0 auto;\" \/> for en given l\u00f8sning af problemet:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Men nu opst\u00e5r sp\u00f8rgsm\u00e5let<\/b>: hvilken v\u00e6rdi skal en s\u00e5dan konstant have <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 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>Lad <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 den maksimale afstand mellem lagercellerne i \u00e9n zone ABC, svarende til i vores tilf\u00e6lde 100 m. Lad <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 det maksimale volumen af en celle-container p\u00e5 lageret, svarende til i vores tilf\u00e6lde 1000 dm3.<\/p>\n<p><b>Den f\u00f8rste m\u00e5de at beregne st\u00f8rrelsen<\/b> <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Lad os overveje situationen, hvor der er 2 containere p\u00e5 den f\u00f8rste r\u00e6kke, hvor der allerede fysisk er varer, det vil sige, at de selv er donor-celler, og omkostningerne ved at flytte varer til de samme celler er naturligvis lig med 0. Det er n\u00f8dvendigt at finde en s\u00e5dan v\u00e6rdi for konstanten <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor det altid ville v\u00e6re rentabelt at flytte resterne fra container 1 til container 2. Ved at inds\u00e6tte v\u00e6rdierne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> i den ovenst\u00e5ende ulighed f\u00e5r vi:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2794955b8f9f3d64ffe4e2b449547555.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>hvoraf det f\u00f8lger<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ved at inds\u00e6tte v\u00e6rdierne for den gennemsnitlige tid til udf\u00f8relse af element\u00e6re operationer i formlen ovenfor f\u00e5r vi<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Den anden m\u00e5de at beregne st\u00f8rrelsen<\/b> <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/78e3dff7183b15136d9e03f4a5724479.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Lad os overveje situationen, hvor der er <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> donor-celler, fra hvilke der planl\u00e6gges at flytte varer til container 1. Lad os betegne <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 afstanden fra donor-cellen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> til container 1. Der er ogs\u00e5 container 2, hvor der allerede er varer, og som har et volumen, der kan rumme resterne fra alle <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celler. For enkelhed vil vi antage, at volumen af varerne, der flyttes fra donor-cellerne til containere, er ens og lig med <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Det er n\u00f8dvendigt at finde en s\u00e5dan v\u00e6rdi for konstanten <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, hvor det altid ville v\u00e6re mere fordelagtigt at placere alle rester fra <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celler i container 2 end at placere dem i forskellige containere:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ved at omdanne uligheden f\u00e5r vi<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>For at \"st\u00e6rke\" v\u00e6rdien af st\u00f8rrelsen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, antager vi, at <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> = 0. Det gennemsnitlige antal celler, der normalt deltager i proceduren for komprimering af rester p\u00e5 lageret, er lig med 10. Ved at inds\u00e6tte de kendte v\u00e6rdier for st\u00f8rrelserne har vi f\u00f8lgende v\u00e6rdi for konstanten<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Vi tager den h\u00f8jeste v\u00e6rdi beregnet for hver mulighed, og dette vil v\u00e6re v\u00e6rdien af st\u00f8rrelsen <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> for de givne lagerparametre. Nu for at afslutte, lad os skrive formlen for beregning af de samlede omkostninger <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> for en given tilladelig l\u00f8sning <img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8dd672c7b91639fe1872ef50dca7a220.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nu kan vi efter enorme <b>indsatser<\/b> med at transformere inputdataene sige, at alle inputdata er blevet omformet til den \u00f8nskede form og er klar til brug i optimeringsalgoritmen.<\/p>\n<h4>Konklusion<\/h4>\n<p>\nPraksis viser, at arbejdsbyrden og betydningen af forberedelse og transformation af inputdata til algoritmen ofte undervurderes. I denne artikel har vi bevidst lagt stor v\u00e6gt p\u00e5 dette trin for at vise, at kun kvalitets- og klogt forberedte inputdata kan g\u00f8re de beslutninger, algoritmen tr\u00e6ffer, virkelig v\u00e6rdifulde for kunden. Ja, der har v\u00e6ret mange formler, men vi advarede dig om det f\u00f8r katastrofen \ud83d\ude42<\/p>\n<p>I den n\u00e6ste artikel vil vi endelig komme til det, som de to tidligere publikationer havde til form\u00e5l \u2013 algoritmen for diskret optimering.<\/p>\n<p><i>Artiklen er forberedt af<br \/>\nRoman Shangin, programm\u00f8r i projektafdelingen,<br \/>\nfirmaet F\u00f8rste Bit, Chelyabinsk<\/i><br \/>\n<br \/>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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\udd47Diskret matematik for WMS: algoritme til komprimering af varer i celler (del 1) | ProHoster","description":"I artiklen vil vi.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/37108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=37108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/27819"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}