{"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\/et\/blog\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArtiklis r\u00e4\u00e4gime, kuidas lahendasime lao vaba ruumi puudumise probleemi ja arendasime diskreetse optimeerimise algoritmi sellise \u00fclesande lahendamiseks. Jagame ka, kuidas me \u00abehitasime\u00bb optimeerimise \u00fclesande matemaatilise mudeli ning milliste probleemidega ootamatult kokku puutusime andmete t\u00f6\u00f6tlemisel algoritmi jaoks.<\/p>\n<p>Kui teid huvitavad matemaatika rakendused \u00e4ris ning te ei karda keerulisi valemite teisendusi 5. klassi tasemel, siis olete teretulnud allapoole!<\/p>\n<p>Artikkel on kasulik neile, kes rakendavad <i>WMS<\/i>-s\u00fcsteeme, t\u00f6\u00f6tavad lao v\u00f5i tootmislogistika valdkonnas, samuti programmeerijatele, kes on huvitatud matemaatika rakendustest \u00e4ris ja protsesside optimeerimisest ettev\u00f5ttes.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Sissejuhatav osa<\/h4>\n<p>\nSee publikatsioon j\u00e4tkab artiklite seeriat, kus jagame oma edukaid kogemusi optimeerimise algoritmide rakendamisel lao protsessides. <\/p>\n<p>V <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">eelnevas artiklis<\/a><\/noindex> Kus kirjeldatakse ladude spetsiifikat, kuhu oleme rakendanud <i>WMS<\/i>-s\u00fcsteemi, ning r\u00e4\u00e4gitakse, miks oli meil vaja lahendada kauba partiide klasterdamise \u00fclesanne rakendamise k\u00e4igus. <i>WMS<\/i>-s\u00fcsteemid ja kuidas me seda tegime.<\/p>\n<p>Kui l\u00f5petasime optimeerimise algoritmide kohta artikli kirjutamise, osutus see v\u00e4ga pikaks, seet\u00f5ttu otsustasime kogutud materjali jagada kaheks osaks:<\/p>\n<ul>\n<li>Esimeses osas (see artikkel) r\u00e4\u00e4gime sellest, kuidas me \u201eehitasime\u201c \u00fcles matemaatilise mudeli \u00fclesande jaoks ja milliste suurte raskustega meil ootamatult tuli silmitsi seista sisendandmete t\u00f6\u00f6tlemisel ja muutmisel algoritmi jaoks.<\/li>\n<li>Teises osas vaatleme \u00fcksikasjalikult algoritmi rakendust keeles <i>C++<\/i>, teeme arvutuskatse ja kokkuv\u00f5tte kogemusest, mille saime nende \u201eintellektuaaltehnoloogiate\u201c rakendamise k\u00e4igus kliendi \u00e4ri protsessidesse.<\/li>\n<\/ul>\n<p>\nKuidas artiklit lugeda. Kui olete eelmist artiklit lugenud, v\u00f5ite kohe liikuda peat\u00fckki \u201eOlemasolevate lahenduste \u00fclevaade\u201c, kui ei, siis on lahendatava probleemi kirjeldus spoileris allpool.<\/p>\n<p><b class=\"spoiler_title\">Kliendi laos lahendatav probleem<\/b><\/p>\n<h4>Protsesside kitsaskoht<\/h4>\n<p>\n2018. aastal tegime projekti <i>WMS<\/i>-s\u00fcsteemi juurutamiseks laos \u201eKaubamaja \u201eLD\u201c\u201c T\u0161eljabinski linnas. Juhtisime toodet \u201e1C-Logistika: Laohaldus 3\u201c 20 t\u00f6\u00f6kohta: operaatorid. <i>WMS<\/i>, laoajad, t\u00f5stukijuhid. Lao pindala on umbes 4000 m\u00b2, lao \u00fcksuste arv 5000 ja SKUde arv 4500. Laos hoitakse erinevate m\u00f5\u00f5tudega kuulkraane kaaluga alates 1 kg kuni 400 kg, mis on toodetud enda tootmis\u00fcksuses. Laos hoitavad varud on partiide kaupa, kuna on vajalik kaupade valimine FIFO p\u00f5him\u00f5tte j\u00e4rgi.<\/p>\n<p>Automatiseerimise skeemide projekteerimise k\u00e4igus seisime silmitsi olemasoleva probleemi \u2013 varude mittetegemisel. Kraanide hoiustamise ja paigutamise iseloom on selline, et \u00fches t\u00fckihoiu ruumis v\u00f5ib olla ainult \u00fche partii nomenklatuur (vt joonis 1). Toode saabub laost iga p\u00e4ev ja iga saabumine on eraldi parti. Seega, kuu jooksul laos t\u00f6\u00f6 k\u00e4igus luuakse 30 eraldi partiid, samas kui iga\u00fcks peab olema eraldiseisvas ruumis. Kauba valimine toimub sageli mitte t\u00e4ispakkides, vaid t\u00fckikaupa, ning seet\u00f5ttu on t\u00fckivaliku alal paljudes ruumides selline pilt: ruumis, mille maht on \u00fcle 1m\u00b3, on mitu kraani, mis v\u00f5tab alla 5-10% ruumi mahust. <\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 1. Foto mitmest t\u00fckist ruumis<\/i><\/p>\n<p>K\u00e4imas on ebat\u00f5hus laopindade kasutamine. Probleemi ulatust illustreerivad numbrid: keskmiselt on selliseid \u00fcle 1m\u00b3 suuruseid lahtrid, kus on \"pisikesed\" j\u00e4\u00e4gid, erinevatel ajaperioodidel 100 kuni 300. Kuna laod on suhteliselt v\u00e4ikesed, muutub see tegur laodo laadimisperioodidel \"kitsaskohaks\", mis aeglustab oluliselt vastuv\u00f5tu ja v\u00e4ljastamise protsesse.<\/p>\n<h4>Probleemi lahendamise idee<\/h4>\n<p>\nTuli idee: j\u00e4\u00e4gid, mille parim enne kuup\u00e4ev on k\u00f5ige l\u00e4hemal, koondada \u00fchte ainsasse partiisse ja selliseid j\u00e4\u00e4tmeid koos \u00fchtse partii peale paigutada kompaktselt \u00fches lahtris v\u00f5i mitmes, kui \u00fches ei piisa kogu j\u00e4\u00e4ki mahutamiseks. Sellise \"kokkusurumise\" n\u00e4idis on n\u00e4idatud joonisel 2.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 2. Lahtrite j\u00e4\u00e4kide kokkusurumise skeem<\/i><\/p>\n<p>See v\u00f5imaldab oluliselt v\u00e4hendada ladustamisruumi, mida kasutatakse uue kauba paigutamiseks. Situatsioonis, kus ladustamisv\u00f5imsused on \u00fclekoormatud, on selline meede \u00e4\u00e4rmiselt vajalik; vastasel juhul ei pruugi vaba ruumi uue kauba paigutamiseks piisavalt j\u00e4\u00e4da, mis toob kaasa ladustamisprotsesside seiskumise ning seega ka vastuv\u00f5tmise ja laadimise peatumise. Enne WMS-s\u00fcsteemide rakendamist tehti selline toiming k\u00e4sitsi, mis oli ebaefektiivne, kuna sobivate j\u00e4\u00e4kide leidmine rakkudest oli piisavalt ajamahukas. N\u00fc\u00fcd, p\u00e4rast WMS-s\u00fcsteemi rakendamist, otsustati protsess automatiseerida, kiirendada ja muuta see nutikaks.<\/p>\n<p>Selle \u00fclesande lahendamise protsess jaguneb kaheks etapiks: <\/p>\n<ul>\n<li>esimeses etapis leiame kuup\u00e4eva poolest l\u00e4hedased partiide r\u00fchmad tihendamiseks (see \u00fclesanne on p\u00fchendatud <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">eelmine artikkel<\/a><\/noindex>);<\/li>\n<li>teises etapis arvutame iga partiide r\u00fchma kohta maksimaalselt kompaktse j\u00e4\u00e4kide paigutuse rakkudesse. <\/li>\n<\/ul>\n<p>\nK\u00e4esolevas artiklis k\u00e4sitleme algoritmi teist etappi.<\/p>\n<h4>Olemasolevate lahenduste \u00fclevaade<\/h4>\n<p>\nEnne kui liigume edasi meie v\u00e4lja t\u00f6\u00f6tatud algoritmide kirjeldamise juurde, tasub teha kiire \u00fclevaade turul juba olemasolevatest s\u00fcsteemidest <i>WMS<\/i>, milles on rakendatud sarnast optimaalse tihendamise funktsionaalsust.<\/p>\n<p>Eelk\u00f5ige tuleb m\u00e4rkida toodet \u201e1C: Ettev\u00f5te 8. WMS Logistika. Laohaldus 4\u201c, mis kuulub ja mida levitab ettev\u00f5te 1C ning kuulub neljanda p\u00f5lvkonna <i>WMS<\/i>-s\u00fcsteemide hulka, mille on v\u00e4lja t\u00f6\u00f6tanud ettev\u00f5te AXELOT. Antud s\u00fcsteemis on v\u00e4lja kuulutatud tihendamise funktsionaalsus, mille eesm\u00e4rk on organiseerida dispergeeritud kaubaj\u00e4\u00e4gid \u00fchte \u00fcldisesse rakku. Tuleb m\u00e4rkida, et sellise s\u00fcsteemi tihendamise funktsionaalsus sisaldab veel ka muid v\u00f5imalusi, n\u00e4iteks kaupade paigutamise parandamist rakkudes vastavalt nende ABC klassidele, kuid neid me siin k\u00e4sitlema ei hakka. <\/p>\n<p>Anal\u00fc\u00fcsides s\u00fcsteemi \"1C: Ettev\u00f5te 8. WMS Logistika. Laohaldus 4\" koodi (mis on selles funktsionaalsuse osas avatud), v\u00f5ib j\u00e4reldada j\u00e4rgmist. J\u00e4\u00e4kide kokkut\u00f5mbamise algoritm rakendab \u00fcsna primitiivset lineaarset loogikat ning mingist \"optimaalsest\" kokkut\u00f5mbamisest ei saa olla juttu. Loomulikult ei ole ta ette n\u00e4htud partiide klasterdamiseks. Mitmed kliendid, kellel selline s\u00fcsteem on rakendatud, on kaebanud kokkut\u00f5mbamise planeerimise tulemuste \u00fcle. N\u00e4iteks praktikas juhtus tihti, et 100 tk kaupa \u00fchest rakkust plaanitakse teisaldada teise rakkusse, kus on 1 tk kaupa, kuigi ajakulude optimaalsuse seisukohalt oleks m\u00f5istlik teha vastupidi.<\/p>\n<p>Samuti on kaupadest j\u00e4\u00e4kide kokkut\u00f5mbamise funktsionaalsus v\u00e4lja kuulutatud paljudes v\u00e4lismaistes <i>WMS<\/i>-s\u00fcsteemides, kuid kahjuks ei ole meil olemas reaalseid \u00fclevaateid algoritmide t\u00f5hususest (see on \u00e4risaladus), ega ka mingit ettekujutust nende loogika s\u00fcgavusest (patenteeritud tarkvara suletud koodiga), seet\u00f5ttu ei saa me hinnata.<\/p>\n<h4>Matemaatilise mudeli otsing<\/h4>\n<p>\nKvaliteetsete algoritmide v\u00e4ljat\u00f6\u00f6tamiseks \u00fclesande lahendamiseks tuleb esmalt see \u00fclesanne selgelt matemaatiliselt formuleerida, mida me ka teeme.<\/p>\n<p>On olemas palju rakke <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, milles asuvad teatud kauba j\u00e4\u00e4gid. Edasi nimetame neid rakke doonoriakendeks. M\u00e4rgime <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kauba maht, mis asub rakus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>Oluline on \u00f6elda, et kompressiooniprotsessis v\u00f5ib osaleda ainult \u00fche partii kaup v\u00f5i mitu partiid, mis on eelnevalt r\u00fchmitatud klastrisse (loe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">eelmist artiklit<\/a><\/noindex>), mis on tingitud kaupade ladustamise ja paigutamise erip\u00e4rast. Erinevate kaupade v\u00f5i erinevate partiide klastrite jaoks tuleb k\u00e4ivitada oma eraldi kompressiooniprotsess.<\/p>\n<p>On olemas palju rakke <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu v\u00f5ivad potentsiaalselt paigutuda doonorrakkudest j\u00e4\u00e4gid. Edasi nimetame neid rakke konteinerirakkudeks. Need v\u00f5ivad olla nii vabade rakkudena laos kui ka doonorrakkudena erinevatest <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Alati on hulk <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> alamhulk <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>Iga rakk <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> hulgas <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on m\u00e4\u00e4ratud maht piirangud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, m\u00f5\u00f5detuna dm\u00b3-des. \u00dcks dm\u00b3 on kuubik, mille k\u00f5ik k\u00fcljed on 10 cm. Selles kontekstis on ladustatava kauba suurus piisav, seega selline diskreetsus on t\u00e4iesti piisav. <\/p>\n<p>On m\u00e4\u00e4ratud l\u00fchi-vahemaa maatriks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> meetrites iga kahe lahtri vahel <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kuuluvad komplektidesse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vastavalt. <\/p>\n<p>M\u00e4\u00e4ratleme <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kauba liikumise \"kulud\" lahtrist<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> lahtrisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. M\u00e4\u00e4ratleme <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \"kulud\" konteineri valimiseks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kauba \u00fclej\u00e4\u00e4kide teisaldamiseks teistest lahtritest. Kuidas ja millistes m\u00f5\u00f5t\u00fchikutes need v\u00e4\u00e4rtused <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> arvutatakse hiljem (vt peat\u00fckk sisendandmete ettevalmistamine), kuid praegu piisab \u00f6elda, et need suurused on otseselt proportsionaalsed <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vastavalt.<\/p>\n<p>M\u00e4\u00e4ratleme l\u00e4bi <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> muutuja, mis omab v\u00e4\u00e4rtust 1, kui lahtri osad <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> liiguvad konteinerisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, ja 0 vastupidisel juhul. M\u00e4\u00e4ratleme l\u00e4bi <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> muutuja, mis omab v\u00e4\u00e4rtust 1, kui konteiner <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sisaldab kaupa, ja 0 vastupidisel juhul.<\/p>\n<p><b>Probleem on seatud nii<\/b>: on vajalik leida selline konteinerite kogum <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja seega \u201ekinni siduda\u201c annetavad lahtrid konteinerlahtritega, et minimeerida funktsioon<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>piirangutega<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kokkuv\u00f5ttes p\u00fc\u00fcdleme \u00fclesande lahendamise k\u00e4igus j\u00e4rgmiste eesm\u00e4rkide poole: <\/p>\n<ul>\n<li>esiteks, s\u00e4\u00e4sta laopinda; <\/li>\n<li>teiseks, s\u00e4\u00e4sta lao t\u00f6\u00f6tajate aega. <\/li>\n<\/ul>\n<p>\nViimane piirang t\u00e4hendab, et me ei saa tooteid \u00fcmber paigutada konteinerisse, mida ei ole valitud, ja seega ei ole ka \u00abkulutusi\u00bb selle valimise jaoks. Lisaks t\u00e4hendab see piirang, et rakkudest konteinerisse paigutatavate kaupade maht ei tohi \u00fcletada konteineri mahutavust. \u00dclesande lahendust m\u00f5istame kui konteinerite kogumit <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja viise, kuidas kinnitada doonorrakkude rakud konteineritega.<\/p>\n<p>Selline optimeerimise \u00fclesande s\u00f5nastus ei ole uus ja seda on uurinud paljud matemaatikud juba 80ndate aastate algusest. V\u00e4lismaises kirjanduses on kaks optimeerimise \u00fclesannet sobiva matemaatilise mudeliga: <noindex><a rel=\"nofollow\" href=\"http:\/\/www.math.nsc.ru\/AP\/benchmarks\/CFLP\/cflp.html\">Single-Source Capacitated Facility Location Problem<\/a><\/noindex> ja <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> (millestki \u00fclesannete erinevustest r\u00e4\u00e4gime hiljem). Tuleb \u00f6elda, et matemaatilises kirjanduses formuleeritakse nende kahe optimeerimis\u00fclesande m\u00e4\u00e4ratlemine ettev\u00f5tete asukoha kontekstis, seet\u00f5ttu ka nimi \u00abFacility Location\u00bb. Suures osas on see traditsioon, kuna vajadus nende kombinatoorsete probleemide lahendamiseks tekkis esmakordselt logistika valdkonnast, peamiselt s\u00f5jav\u00e4e- ja t\u00f6\u00f6stussektorist 20. sajandi 50. aastatel. Ettev\u00f5tete asukoha kontekstis formuleeritakse sellised \u00fclesanded j\u00e4rgmiselt: <\/p>\n<ul>\n<li>On l\u00f5pmatu hulk linnu, kus on v\u00f5imalik paigutada tootmisettev\u00f5tteid (edasi linnad-tootjad). Iga linna-tootja kohta on m\u00e4\u00e4ratud ettev\u00f5tte avamise kulud ning piirang avatud ettev\u00f5tte tootmisv\u00f5imsusele.<\/li>\n<li>On l\u00f5pmatu hulk linnu, kus asuvad tegelikult kliendid (edasi linnad-kliendid). Iga sellise linna-kliendi puhul on m\u00e4\u00e4ratud n\u00f5udmuse maht toote j\u00e4rele. Lihtsuse huvides oletame, et toode, mida tootavad ettev\u00f5tted ja mida kliendid tarbivad, on sama.<\/li>\n<li>Iga valmistaja-kliendi linna paari jaoks on m\u00e4\u00e4ratud transpordikulud, et tarnida n\u00f5utav toote maht tootjalt kliendile.<\/li>\n<\/ul>\n<p>\nTuleb leida, millistes linnades avada ettev\u00f5tteid ja kuidas klientide sidumine nende ettev\u00f5tetega, et:<\/p>\n<ul>\n<li>Ettev\u00f5tete avamise kogukulud ja transpordikulud oleksid minimaalsed;<\/li>\n<li>Kliendik\u00e4ive, mis on seotud m\u00f5ne avatud ettev\u00f5ttega, ei \u00fcletaks selle ettev\u00f5tte tootmisv\u00f5imsusi.<\/li>\n<\/ul>\n<p>\nN\u00fc\u00fcd tasub r\u00e4\u00e4kida ainukesest erinevusest nende kahe klassikalise \u00fclesande vahel:<\/p>\n<ul>\n<li>\u00dcheahelaline v\u00f5imekusega rajatise asukohaprobleem \u2013 klient saab tarne \u00fche avatud ettev\u00f5tte kaudu;<\/li>\n<li>Mitme allika v\u00f5imekusega rajatise asukohaprobleem \u2013 klient saab tarne mitmest avatud ettev\u00f5ttest samal ajal.<\/li>\n<\/ul>\n<p>\nSee kahe \u00fclesande erinevus n\u00e4ib esmapilgul ebaoluline, kuid tegelikult toob see kaasa t\u00e4iesti erineva kombinatoorse struktuuri ning seega t\u00e4iesti erinevad lahendusmeetodid. \u00dclesannete vahelisi erinevusi illustreeritakse allpool olevas joonises.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/77962906c7de2fced174d4a2b7785cc2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon.3. a) Mitme allika v\u00f5imekusega rajatise asukohaprobleem<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon.3. b) \u00dcheallika piiratud rajatise asukoha probleem<\/i><\/p>\n<p>M\u00f5lemad \u00fclesanded <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-on keerulised, see t\u00e4hendab, et ei ole olemas t\u00e4pset algoritmi, mis suudaks sellist \u00fclesannet lahendada pol\u00fcnoomse aja jooksul sisendi suurusest. Lihtsamalt \u00f6eldes, k\u00f5ik t\u00e4psed algoritmid selle probleemi lahendamiseks t\u00f6\u00f6tavad eksponentsiaalset aega, ehkki v\u00f5ib-olla kiiremini kui t\u00e4ielik k\u00f5igi variantide l\u00e4biotsimine. Kuna probleem <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-on keeruline, k\u00e4sitleme ainult l\u00e4henemisviise, see t\u00e4hendab algoritme, mis arvutavad pidevalt lahendusi, mis on v\u00e4ga l\u00e4hedased optimaalsele ja t\u00f6\u00f6tavad piisavalt kiiresti. Kui sellised \u00fclesanded huvi pakuvad, siis siit leiate hea \u00fclevaate vene keeles.<\/p>\n<p>Kui t\u00f5lgime meie kauba optimaalse pakkimise \u00fclesande terminoloogiasse, siis:<\/p>\n<ul>\n<li>klientide linnad \u2013 on donorikonteinerid <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> , millel on \u00fclej\u00e4\u00e4gid, <\/li>\n<li>tootmislinnad \u2013 on konteinerikonteinerid <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu eeldatakse, et paigutatakse \u00fclej\u00e4\u00e4gid teistest konteineritest,<\/li>\n<li>transportimise kulud \u2013 on aeg <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ladustaja jaoks kauba mahu liigutamiseks donorikonteinerist <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> konteinerikonteinerisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>ettev\u00f5tte avamise kulud \u2013 konteineri valimise kulud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mis m\u00f5\u00f5dud on v\u00f5rdsed konteineriraku mahuga <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, korrutatud teatud vabade mahtude s\u00e4\u00e4stufaktoriga (faktor on alati &gt; 1) (vt jaotist sisendi ettevalmistamine).<\/li>\n<\/ul>\n<p>\nP\u00e4rast analoogia t\u00f5mbamist tuntud klassikaliste \u00fclesannete tarnimisega on oluline vastata k\u00fcsimusele, mis m\u00f5jutab algoritmi lahenduse arhitektuuri valikut: kas j\u00e4\u00e4kide \u00fcleviimine donorirakust on v\u00f5imalik ainult \u00fchte konteinerisse (Single-Source) v\u00f5i saab j\u00e4\u00e4ke viia mitmesse raku-konteinerisse (Multi-Source)?<\/p>\n<p>Oluline on m\u00e4rkida, et praktikas esinevad m\u00f5lemad \u00fclesande seadistused. Allpool toome v\u00e4lja k\u00f5ik \u2018plussid\u2019 ja \u2018miinused\u2019 igas seadistuses:<\/p>\n<table>\n<tr>\n<th>\u00dclesande variant<\/th>\n<th>Variandi plussid<\/th>\n<th>Variandi miinused<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>Kaupade liigutusoperatsioonid, mis arvutatakse selle \u00fclesande variandi j\u00e4rgi:<\/p>\n<ul>\n<li>n\u00f5uavad v\u00e4hem kontrollimist laohoidja poolt (v\u00f5ttis K\u00d5IK \u00fchest rakust, pani K\u00d5IK teise konteinerisse), mis elimineerib riskid: vigade osas kaupade arvu numbriliselt \u00fcle arvestamisel operatsiooni \u201ePandud rakku\u201c; vigade sisestamisel \u00fclearvestatud arvu TSD-s;<\/li>\n<li>Ei ole vajalik aega kulutada kauba arvu \u00fclevaatamiseks, kui teostatakse toiminguid \u201eAseta lahtrisse\u201c ja nende sisestamine TSD-sse.<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Mitme allika<\/td>\n<td>Selle \u00fclesande variandi kohaselt arvutatud surved on tavaliselt 10\u201315% kompaktsemad kui \u201e\u00dche allika\u201c variandi kohaselt arvutatud surved. Siiski tuleb m\u00e4rkida, et mida v\u00e4hem j\u00e4\u00e4ke on doonori lahtrites, seda v\u00e4iksem on see kompaktsete erinevuste hulk.<\/td>\n<td>Kaupade liigutusoperatsioonid, mis arvutatakse selle \u00fclesande variandi j\u00e4rgi:<\/p>\n<ul>\n<li>vajavad rohkem j\u00e4relevalvet laohoidjalt (on vajalik kaupa, mis kantakse igasse planeeritud konteinerlahtrisse, uuesti loendada), mis v\u00e4hendab viga kaupade arvu \u00fclelugemisel ja andmete sisestamisel TSD-sse toimingute \u201eAseta lahtrisse\u201c sooritamise ajal.<\/li>\n<li>Aega kulub kaupade arvu \u00fclevaamiseks, kui teostatakse toiminguid \u201eAseta lahtrisse\u201c.<\/li>\n<li>Aega kulub \u201e\u00fclekandetegevuseks\u201c (peatuda, l\u00e4heneda alusele, skaneerida konteinerlahtri QR-kood) toimingute \u201eAseta lahtrisse\u201c sooritamise ajal.<\/li>\n<li>M\u00f5nikord v\u00f5ib algoritm \"jagada\" peaaegu t\u00e4iusliku paleti hulga konteinerite vahel, kus on juba sobiv kaup, mis on kliendi vaatepunktist vastuv\u00f5etamatu.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabel 1. Single-Source ja Multi-Source variantide eelised ja puudused.<\/i><\/p>\n<p>Kuna Single-Source variandi eeliseid on rohkem ja arvestades, et mida v\u00e4hem on j\u00e4\u00e4ke doonor-\u00fcksustes, seda v\u00e4iksem on erinevus kokkusurumise tiheduse osas m\u00f5lemas \u00fclesande variandis, siis langetame valiku Single-Source variandi kasuks.<\/p>\n<p>Tasub mainida, et Multi-Source variandi lahendamisel on samuti oma koht. Eksisteerib palju t\u00f5husaid algoritme selle lahendamiseks, millest enamik tugineb mitmete transpordi\u00fclesannete lahendamisele. Samuti on olemas mitte ainult t\u00f5husad algoritmid, vaid ka elegantsed, n\u00e4iteks,<noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathnet.ru\/php\/archive.phtml?wshow=paper&amp;jrnid=da&amp;paperid=791&amp;option_lang=rus\"> siit.<\/a><\/noindex><\/p>\n<h4>Sisendandmete ettevalmistamine<\/h4>\n<p>\nEnne algoritmi anal\u00fc\u00fcsi ja arendamisega tegelemist tuleb selgitada, milliseid andmeid ja millises vormis me neile edastame. Kaupade j\u00e4\u00e4kide mahtude osas annet\u00e4idiku laadijates ja konteinerite mahutsuse osas ei ole probleeme, kuna need on triviaalne \u2013 sellised n\u00e4itajad m\u00f5\u00f5detakse m\u00b3-des, kuid konteineri kasutamise kulud ja kulude maatriks edasiviimiseks ei ole nii lihtsad!<\/p>\n<p>Alustame kulude arvestus <b>kauba edasiviimiseks<\/b> annet\u00e4idikust konteinerisse. Esiteks tuleb v\u00e4lja selgitada, millistes m\u00f5\u00f5t\u00fchikutes me kulusid arvestame. Kaks k\u00f5ige ilmsemat varianti on meeter ja sekund. \u201ePuhastes\u201d meetrites ei ole edasiviimise kulude arvestamine m\u00f5istlik. N\u00e4itame seda n\u00e4itega. Oletame, et annet\u00e4idik <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> asub esimesel tasemel, annet\u00e4idik <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on eemaldatud 30 meetri v\u00f5rra ja asub teisel tasemel:<\/p>\n<ul>\n<li>Edasiviimine on <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00fches <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kulukam kui edasiviimine <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00fches <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuna allapoole laskmine teisest tasemest (1,5\u20132 meetrit p\u00f5randast) on kergem kui t\u00f5stmine teisele, kuigi kaugus on l\u00e4bitud sama;<\/li>\n<li>\u00dcks kaup tuleb kolida annet\u00e4idikust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00fches <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on lihtsam kui 10 \u00fchesuguse toote liigutamine, kuigi distantse l\u00e4bitakse sama palju.<\/li>\n<\/ul>\n<p>\nLiigutamise kulusid on parem arvestada sekundites, sest see v\u00f5imaldab arvestada erinevusi tasandite ja liigutatava kauba koguse vahel. Liigutamise kulude arvestamiseks sekundites peame jaotama liikumise operatsiooni elementaarseteks komponentideks ja m\u00f5\u00f5tma igasuguse elementaarse komponendi t\u00e4itmiseks kuluvat aega.<\/p>\n<p>Olgu alusest <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> liigutatakse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> tk kaupa konteinerisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> keskmine t\u00f6\u00f6taja liikumise kiirus laos, m\u00f5\u00f5detuna m\/s. Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> keskmised kiirus, millega \u00fchest kohast teise pannakse vastavalt kauba mahule, mis on 4 dm3 (keskmine maht, mille t\u00f6\u00f6taja laos korraga opereerib). Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> korvi k\u00f5rgus, millest operatsioone teha. N\u00e4iteks esimese tasandi (p\u00f5rand) keskmine k\u00f5rgus on 1 m, teise tasandi 2 m jne. Siis on valem koguaegade arvutamiseks liikumisoperatsioon <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tabelis 2 on esitatud iga elementaarse operatsiooni t\u00e4itmise statistika, mis on kogutud lao t\u00f6\u00f6tajate poolt vastavalt hoiustatava kauba erip\u00e4radele.<\/p>\n<table>\n<tr>\n<th>Operatsiooni nimetus<\/th>\n<th>T\u00e4histus<\/th>\n<th>Keskmine v\u00e4\u00e4rtus<\/th>\n<\/tr>\n<tr>\n<td>T\u00f6\u00f6taja keskmine liikumiskiirus laos<\/td>\n<td><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/dadbfb13d2b84b95ab2c5d653a21668b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>1,5 m\/sek<\/td>\n<\/tr>\n<tr>\n<td>Keskmine aeg \u00fche operatsiooni teostamiseks, panna (kauba maht 4 dm3)<\/td>\n<td><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" 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. Keskmine aeg laooperatsioonide teostamiseks<\/i><\/p>\n<p>Liikumiskulude arvutamise meetod on paika saadud. N\u00fc\u00fcd tuleb v\u00e4lja selgitada, kuidas arvutada <b>kulud konteineri-rakukeskkonna valimiseks<\/b>. Siin on k\u00f5ik palju, palju keerulisem kui liikumiskulude puhul, kuna: <\/p>\n<ul>\n<li>Esiteks, kulud peavad olema otseses s\u00f5ltuvuses ruumala mahutist \u2013 sama j\u00e4\u00e4kide kogus, mis kantakse donormahutitest, on parem panna v\u00e4iksemasse konteinerisse kui suuremasse, kui see mahutatakse t\u00e4ielikult m\u00f5lemasse konteinerisse. Nii v\u00e4hendame konteinerite valimisega seotud kogukulusid, p\u00fc\u00fcdes s\u00e4\u00e4sta \u201epuudulikke\u201d vabade laopinda valikualal, et tagada kaupade edasine paigutamine rakkudesse. Joonisel 4 on n\u00e4idatud erinevad j\u00e4\u00e4kide liigutamise v\u00f5imalused suurtesse ja v\u00e4ikestesse konteineritesse ning nende liigutamise tagaj\u00e4rjed edasiste laooperatsioonide k\u00e4igus.<\/li>\n<li>Teiseks, kuna algse \u00fclesande lahendamisel peame minimiseerima just kogukulud, mis on summaks nii liikumiskuludest kui ka konteinerite valimise kuludest, tuleb rakud kuupmeetrites mingil moel seostada sekunditega, mis ei ole sugugi triviaalne.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 4. J\u00e4\u00e4kide liigutamise v\u00f5imalused erineva mahutavusega konteineritesse.<\/i><\/p>\n<p>Joonisel 4 on punase v\u00e4rviga kujutatud j\u00e4\u00e4kide maht, mis ei mahu enam konteinerisse teisel etapil j\u00e4rgmiste toodete paigutamisel. <\/p>\n<p>Aitab siduda kuupmeetrid konteineri valimise kulutustega sekundites j\u00e4rgmised n\u00f5uded probleemilahenduste arvutamiseks:<\/p>\n<ul>\n<li>J\u00e4\u00e4gid doonorrakkudest tuleb igal juhul liigutada konteinerirakkudesse, kui see v\u00e4hendab kaupade seas olevate konteinerirakkude koguarvu.<\/li>\n<li>On oluline s\u00e4ilitada tasakaal konteinerite mahtude ja liikumise ajakulud vahel: n\u00e4iteks, kui uue lahenduse korral v\u00f5rreldes eelmise lahendusega on mahtu suurendanud ja ajakulud v\u00e4iksemad, tuleks valida uus variant.<\/li>\n<\/ul>\n<p>\nAlustame viimasest n\u00f5udest. Et t\u00e4psustada mitmuses olevat s\u00f5na 'tasakaal', viisime l\u00e4bi k\u00fcsitluse lao t\u00f6\u00f6tajate seas, et selgitada v\u00e4lja j\u00e4rgnev. Olgu meil konteinerirakk mahuga <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu on m\u00e4\u00e4ratud kaupade j\u00e4\u00e4kide liikumine doonorrakkudest ning selle liikumise koguaeg on v\u00f5rdne <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Oletame, et on veel mitu alternatiivset v\u00f5imalust sama suuruse kauba paigutamiseks samadest donorirakkudest teistesse konteineritesse, kus igal paigutusel on oma hinnangud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>K\u00fcsimus on: kui suur minimaalne mahus\u00e4\u00e4st on aktsepteeritav, antud aegade kaotuse korral <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kui aega kaotatakse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" 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=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon. 5. Joonis minimaalsete lubatud mahus\u00e4\u00e4stude s\u00f5ltuvusest operatsiooni l\u00e4bimise aja erinevuse suurenemisest<\/i><\/p>\n<p>See t\u00e4hendab, et kui lisakulud ajas on 40 sekundit, siis oleme valmis neid kulutama ainult siis, kui mahus\u00e4\u00e4st on v\u00e4hemalt 500 dm3. Hoolimata et s\u00f5ltuvuses esineb v\u00e4ike mittelineaarusus, eeldame lihtsuse huvides edasistes arvutustes, et s\u00f5ltuvus suuruste vahel on lineaarne ning seda kirjeldab ebav\u00f5rdsus<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Allj\u00e4rgneval joonisel vaatleme j\u00e4rgmisi kaupa kokku panemise viise konteineritesse.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a1cb3a5bce4c369f63b3ebeebb738911.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon. 6. Variant (a): 2 konteinerit, kogumaht 400 dm3, koguaeg 150 sek.<\/i><br \/>\n<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a13f35b0e2a188e9a8cbf27bcfbf0292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon. 6. Variant (b): 2 konteinerit, kogumaht 600 dm3, koguaeg 190 sek.<\/i><br \/>\n<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/35699c8bd00546c9828dbe50d4b53c46.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon. 6. Variant (c): 1 konteiner, kogumaht 400 dm3, koguaeg 200 sek.<\/i><\/p>\n<p>Alternatiiv (a) konteinerite valimiseks on eelistatum kui algne valik, kuna kehtib ebav\u00f5rdsus: (800-400)\/10 &gt;= 150-120, millest j\u00e4reldub 40 &gt;= 30. Alternatiiv (b) on v\u00e4hem eelistatud kui algne valik, kuna ebav\u00f5rdsus ei kehti: (800-600)\/10 &gt;= 190-150, millest j\u00e4reldub 20 &gt;= 40. Kuid alternatiiv (c) ei mahu sellesse loogikasse! Vaadakem seda varianti l\u00e4hemalt. \u00dchest k\u00fcljest kehtib ebav\u00f5rdsus (800-400)\/10 &gt;= 200-120, seega ei kehti ebav\u00f5rdsus 40 &gt;= 80, mis \u00fctleb, et mahu gained ei \u00f5igusta aega, mille kaotame. <\/p>\n<p>Aga teisest k\u00fcljest ei v\u00e4henda me variandis (c) mitte ainult koguv\u00f5etud mahtu, vaid v\u00e4hendame ka h\u00f5ivatud lahtrite arvu, mis on esimene kahest olulisest n\u00f5udest arvutatavatele probleemilahendustele, nagu eespool loetletud. Ilmselgelt on selle n\u00f5ude t\u00e4itmiseks vajalik vasakusse ossa ebav\u00f5rdsust lisada m\u00f5ningane positiivne konstant. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, ning sellist konstantti tuleks lisada ainult siis, kui konteinerite arv v\u00e4heneb. Meenutame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 on muutuj, mille v\u00e4\u00e4rtus on 1, kui konteiner <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a83cd6273e544b63099939e6845740fb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on valitud, ja 0 kui konteiner <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ei ole valitud. M\u00e4rgime <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 konteinerite kogumit algses lahenduses ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 konteinerite kogumit uues lahenduses. \u00dcldiselt n\u00e4eb uus ebav\u00f5rdsus v\u00e4lja j\u00e4rgmiselt:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Korrigeerides \u00fclaltoodud ebav\u00f5rdsust, saame <\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kandnud selle p\u00f5hjal, on meil valem, et arvutada \u00fcldkulusid <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/cb5bce584fee0156b23adbab83f66b33.jpeg\" style=\"display:block;margin: 0 auto;\" \/> m\u00f5ne lahenduse variandi jaoks:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Kuid n\u00fc\u00fcd tekib k\u00fcsimus<\/b>: milliseks v\u00e4\u00e4rtuseks see konstand peaks olema <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" 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>Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 maksimum kaugus ladustamisaluste vahel ABC tsoonis, mis meie puhul on 100 m. Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 maksimum maht ladustamisaluses, mis on meie puhul 1000 dm3.<\/p>\n<p><b>Esimene viis suuruse arvutamiseks<\/b> <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Arutame olukorda, kus esimesel tasemel on 2 konteinerit, milles on juba f\u00fc\u00fcsiliselt kaup, see t\u00e4hendab, et nad on ise doonor-rakkudeks, ja kauba transportimise kulud nendesse samadesse rakudesse on loomulikult 0. On vajalik leida selline konstandi v\u00e4\u00e4rtus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mille korral oleks alati kasulik j\u00e4\u00e4ke konteinerist 1 konteinerisse 2 \u00fcle kanda. Asendades v\u00e4\u00e4rtused <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00fcleval nimetatud ebav\u00f5rdsuses, saame:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/2794955b8f9f3d64ffe4e2b449547555.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>mille p\u00f5hjal j\u00e4reldub<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Asendades elementaarsete tegevuste keskmise t\u00e4itmise aja v\u00e4\u00e4rtused \u00fclaltoodud valemisse, saame<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Teine viis suuruse arvutamiseks<\/b> <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/78e3dff7183b15136d9e03f4a5724479.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Vaatleme olukorda, kus on <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> annetajarakke, millest plaanitakse tooteid konteinerisse 1 paigutada. M\u00e4\u00e4ratleme <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 kaugus annetajarakust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> konteinerisse 1. Samuti on konteiner 2, milles juba on kaupu, ja mille maht v\u00f5imaldab mahutada j\u00e4\u00e4ke k\u00f5igist <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> annetajarakust. Lihtsuse huvides oletame, et toote maht, mis liigub annetajarakust konteineritesse, on sama ja on v\u00f5rdne <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. On vajalik leida selline konstanti v\u00e4\u00e4rtus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mille korral oleks k\u00f5igi j\u00e4\u00e4kide paigutamine konteinerisse 2 alati kasulikum kui nende paigutamine erinevatesse konteineritesse: <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Muutes eba\u00fchtlust saame<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Selleks, et \"tugevdada\" suuruse v\u00e4\u00e4rtust<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>, eeldame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>= 0. Keskmine arv rakke, mis tavaliselt osalevad j\u00e4\u00e4kide kokkusurumise protsessis laos, on v\u00f5rreldes 10. Asendades teadaolevad suuruse v\u00e4\u00e4rtused, saame j\u00e4rgmise konstanti v\u00e4\u00e4rtuse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> = 0. T\u00fc\u00fcpiline laoseisu tihendamise protsessis osalevate rakkude keskmine arv on 10. Asendades teadaolevad suurused, saame j\u00e4rgmise konstanti v\u00e4\u00e4rtuse<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>V\u00f5tame iga variandi p\u00f5hjal arvutatud k\u00f5ige suurema v\u00e4\u00e4rtuse, see ongi suuruse v\u00e4\u00e4rtus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> antudestikandmete puhul. N\u00fc\u00fcd, et k\u00f5ik oleks t\u00e4ielik, kirjutame v\u00e4lja kogukulude arvutamise valemi. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> mingi lubatud lahenduse jaoks. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-ile: kaupade kokkusurumise algoritm rakkudes (1. osa)\" src=\"\/wp-content\/uploads\/2019\/08\/8dd672c7b91639fe1872ef50dca7a220.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>N\u00fc\u00fcd, p\u00e4rast k\u00f5iki <b>titanilisi p\u00fc\u00fcdeid<\/b> sisendandmete \u00fcmberkujundamiseks saame \u00f6elda, et k\u00f5ik sisendandmed on vajadusel \u00fcmber muudetud ja valmis kasutamiseks optimeerimisalgoritmis.<\/p>\n<h4>Kokkuv\u00f5te<\/h4>\n<p>\nKogemus n\u00e4itab, et sisendandmete ettevalmistamise ja muutmise etapi t\u00f6\u00f6mahukust ja t\u00e4htsust alahindavad sageli. Selles artiklis oleme sellele etapile erakordselt palju t\u00e4helepanu p\u00f6\u00f6ranud, et n\u00e4idata, et ainult kvaliteetselt ja arukalt ette valmistatud sisendandmed v\u00f5ivad muuta algoritmiga arvutatud lahendused kliendi jaoks t\u00f5eliselt v\u00e4\u00e4rtuslikuks. Jah, valemeid oli palju, kuid me hoiatame teid juba enne katset \ud83d\ude42<\/p>\n<p>J\u00e4rgmises artiklis j\u00f5uame l\u00f5puks sinna, mille nimel kaks eelnevat v\u00e4ljaannet m\u00f5eldi \u2013 diskreetse optimeerimise algoritmini.<\/p>\n<p><i>Artikli koostas<br \/>\nRoman Shangin, projektide osakonna programmeerija,<br \/>\nettev\u00f5te Esimene Bitt, Chelyabinsk<\/i><br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463481\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27819,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Diskreetne matemaatika WMS-ile: kaupade pakkumise algoritm rakkudes (osa 1) | ProHoster","description":"Artiklis r\u00e4\u00e4gime, kuidas lahendasime laos vabu ruume puudutava probleemi ja t\u00f6\u00f6tasime v\u00e4lja diskreetse optimeerimise algoritmi selle probleemi lahendamiseks. Jagame, kuidas me koostasime optimeerimise matemaatilise mudeli ja millega ootamatult silmitsi seisime algoritmi sisendandmete t\u00f6\u00f6tlemisel. Kui teid huvitavad matemaatika rakendused \u00e4ris ja","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster","og:description":"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:47+00:00","article:modified_time":"2019-10-31T19:15:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37108","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 06:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:33:24","updated":"2026-01-22 06:08:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27819"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}