{"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\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArtiklis r\u00e4\u00e4gime, kuidas lahendasime ladude vaba ruumi puudumise probleemi ning ka diskreetse optimeerimise algoritmi v\u00e4ljat\u00f6\u00f6tamisest sellise \u00fclesande lahendamiseks. Jagame, kuidas me \u00abehitasime\u00bb optimeerimise probleemi matemaatilist mudelit ja milliste raskustega me \u00fcllatuslikult silmitsi seisisime algoritmi sisendandmete t\u00f6\u00f6tlemisel.<\/p>\n<p>Kui teid huvitavad matemaatika rakendused \u00e4ris ja te ei karda karmide identiteetsete valemite \u00fcmberkujundamisi 5. klassi tasemel, olete teretulnud allapoole!<\/p>\n<p>Artikkel on kasulik neile, kes juurutavad <i>WMS<\/i>-s\u00fcsteeme, t\u00f6\u00f6tavad ladude 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 eduka kogemuse optimeerimisalgoritmide rakendamisel ladude protsessides. <\/p>\n<p>Uues <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">eelnevas artiklis<\/a><\/noindex> kirjeldatakse ladude spetsiifikat, kus juurutati <i>WMS<\/i>-s\u00fcsteem, ning r\u00e4\u00e4gitakse, miks oli meil vaja lahendada kaupadest j\u00e4\u00e4nuste partii klasterdamise probleem <i>WMS<\/i>-s\u00fcsteemi rakendamisel ning kuidas me seda tegime.<\/p>\n<p>Kui olime l\u00f5petanud artikli kirjutamise optimeerimisalgoritmidest, oli see v\u00e4ga mahukas, seet\u00f5ttu otsustasime kogutud materjali jagada kaheks osaks:<\/p>\n<ul>\n<li>Esimeses osas (see artikkel) r\u00e4\u00e4gime, kuidas me \u00abehitasime\u00bb optimeerimise probleemi matemaatilist mudelit ja milliste suurte raskustega me \u00fcllatuslikult silmitsi seisisime sisendandmete t\u00f6\u00f6tlemisel ja \u00fcmberkujundamisel algoritmi jaoks.<\/li>\n<li>Teises osas vaatleme \u00fcksikasjalikult algoritmi rakendamist keeles <i>C++<\/i>, viime l\u00e4bi arvutuskatsed ja teeme kokkuv\u00f5tte kogemustest, mida saime selliste \u00abintelligentsete tehnoloogiate\u00bb juurutamisel kliendi \u00e4riprotsessides.<\/li>\n<\/ul>\n<p>\nKuidas artiklit lugeda. Kui olete eelmist artiklit lugenud, v\u00f5ite minna otse jaotisse \u00abOlemasolevate lahenduste \u00fclevaade\u00bb, kui ei, siis lahendatava probleemi kirjeldus on spoileris allpool.<\/p>\n<p><b class=\"spoiler_title\">Lahendatava probleemi kirjeldus kliendi laos<\/b><\/p>\n<h4>Protsesside kitsaskohad<\/h4>\n<p>\n2018. aastal teostasime projekti juurutamise <i>WMS<\/i>-laodimiss\u00fcsteemid \u00abTegemist on kaubamajaga \u00abLD\u00bb Chelyabinskis. Rakendasime toote \u00ab1C-Logistika: Laohalduse 3\u00bb 20 t\u00f6\u00f6kohta: operaatorid, laot\u00f6\u00f6tajad, t\u00f5stukijuhid. <i>WMS<\/i>Lao pindala on keskmiselt umbes 4000 m2, kus on 5000 raku ja 4500 SKU. Laos hoitakse erinevate suurustega kuulkraane, mis on toodetud iseseisvalt, kaaluvahemikus 1 kg kuni 400 kg. Lao varud hoitakse partii l\u00f5ikes, kuna on vajadus toote valimiseks FIFO alusel.<\/p>\n<p>Lao automatiseerimise skeemide projekteerimise k\u00e4igus seisime silmitsi olemasoleva probleemiga, nimelt varude ebapiisava ladustamisega. Kraanide ladustamise ja paigutamise erip\u00e4ra on selline, et \u00fches loodud ladustamise rakus v\u00f5ib olla ainult \u00fche partii kaubad (vt joonis 1). Tooted saabuvad lattu iga p\u00e4ev ja iga saabumine on eraldi partiina. \u00dches kuus, t\u00f6\u00f6protsessi k\u00e4igus, luuakse kokku 30 eraldi partiid, mist\u00f5ttu peab iga toode olema eraldi rakus. Kaupa sageli ei valita kogu paberi pealt, vaid t\u00fckkidena, tulemuseks on see, et t\u00fckkide valiku alal on paljudes rakudes j\u00e4rgnev pilt: \u00fcle 1m3 mahutavusega rakus on mitu kraani, mis moodustavad alla 5-10% rakust. <\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 1. Foto mitmest t\u00fckkist rakus<\/i><\/p>\n<p>Silman\u00e4htav ebapiisav ladustamise kasutamine. Probleemi mastaapi n\u00e4itavad numbrid: keskmiselt on selliseid rakke, mille maht \u00fcletab 1m3 ja kus on \"minimaalsed\" j\u00e4\u00e4gid, laos 100 kuni 300 rakkude vahel erinevatel perioodidel. Kuna lao pindala on suhteliselt v\u00e4ike, siis lao koormusperioodidel muutub see tegur \u201ekitsaskohaks\u201c, mis t\u00f5siselt aeglustab vastuv\u00f5tu ja v\u00e4ljav\u00f5tu protsesse.<\/p>\n<h4>Probleemi lahendamise idee<\/h4>\n<p>\nK\u00fcsimus tekkis: l\u00e4himad j\u00e4\u00e4gir\u00fchmad t\u00f5mmata \u00fchte ainus partii ja sellised j\u00e4\u00e4gid, millel on \u00fchtne partii, paigutada kompaktselt koos \u00fchte rakku v\u00f5i mitmesse, kui ruumi ei piisa k\u00f5ikide j\u00e4\u00e4kide mahutamiseks. Taolise \u201ekokku t\u00f5mbamise\u201c n\u00e4ide on kujutatud joonisel 2.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 2. J\u00e4\u00e4gide kokkuv\u00f5tmise skeem rakus<\/i><\/p>\n<p>See v\u00f5imaldab oluliselt v\u00e4hendada ladustamisruume, mida kasutatakse uue kauba jaoks. Kui laopinda on \u00fclekoormatud, on selline meede \u00e4\u00e4rmiselt vajalik, vastasel juhul ei pruugi uue kauba paigutamiseks piisavalt ruumi j\u00e4\u00e4da, mis toob kaasa laoprotsesside peatamise ja seet\u00f5ttu ka vastuv\u00f5tu ning saatmise piiratuse. Enne WMS-s\u00fcsteemi rakendamist tehti see operatsioon k\u00e4sitsi, mis oli ebaefektiivne, kuna sobivate j\u00e4\u00e4kide leidmine rakkudest oli aegan\u00f5udev. N\u00fc\u00fcd, WMS-s\u00fcsteemi rakendamisega, on protsess automatiseeritud, kiirendatud ja muudetud nutikamaks.<\/p>\n<p>Sellise \u00fclesande lahendamise protsess jaguneb kaheks etapiks: <\/p>\n<ul>\n<li>esimeses etapis otsime kuup\u00e4evade poolest l\u00e4hedasi partiigruppe 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 partiigrupi jaoks kauba j\u00e4\u00e4kide v\u00f5imalikult kompaktse paigutuse rakkudes. <\/li>\n<\/ul>\n<p>\nK\u00e4esolevas artiklis k\u00e4sitleme algoritmi teist etappi.<\/p>\n<h4>Eksisteerivate lahenduste \u00fclevaade<\/h4>\n<p>\nEnne kui liigelda meie v\u00e4lja t\u00f6\u00f6tatud algoritmide kirjeldamise juurde, tasub teha l\u00fchike \u00fclevaade turul juba olemasolevatest s\u00fcsteemidest <i>WMS<\/i>, kus on rakendatud sarnast optimaalse tihendamise funktsionaalsust.<\/p>\n<p>Esiteks tuleb m\u00e4rkida toode '1C: Ettev\u00f5te 8. WMS Logistika. Laohalduse 4', mis kuulub ja mida levitab firma 1C ning kuulub neljanda p\u00f5lvkonna -s\u00fcsteemide hulka, mille on v\u00e4lja t\u00f6\u00f6tanud ettev\u00f5te AXELOT. Antud s\u00fcsteemis on v\u00e4lja reklaamitud tihendamise funktsionaalsus, mis on m\u00f5eldud kaupa erinevate j\u00e4\u00e4kide \u00fchendamiseks \u00fchte \u00fchisesse rakku. Tuleb m\u00e4rgata, et sellise s\u00fcsteemi tihendamise funktsionaalsus h\u00f5lmab ka teisi v\u00f5imalusi, n\u00e4iteks kaupade paigutuse parandamist rakkudes vastavalt nende ABC klassidele, kuid sellele me ei peatuma. <i>WMS<\/i>-s\u00fcsteemide, mille on v\u00e4lja t\u00f6\u00f6tanud AXELOT. Antud s\u00fcsteemis on v\u00e4ljendatud kokkusurumise funktsionaalsust, mis on m\u00f5eldud kaupadest eraldi j\u00e4\u00e4kide \u00fchendamiseks \u00fchte \u00fchisesse lahtrisse. Tuleb m\u00e4rkida, et kokkusurumise funktsionaalne \u00fclesanne h\u00f5lmab ka muid v\u00f5imalusi, n\u00e4iteks kaupade paigutuse parandamine lahtrites vastavalt nende ABC klassidele, kuid me ei peatugi neil. <\/p>\n<p>Kui anal\u00fc\u00fcsida s\u00fcsteemi \u201e1C: ettev\u00f5te 8. WMS logistika. Laohaldus 4\u201c koodi (mis on antud funktsionaalsuse osas avatud), saab j\u00e4reldada j\u00e4rgmist. J\u00e4\u00e4kide kokkusurumise algoritm rakendab \u00fcsna primitiivset lineaarselt loogikat ning ei saa r\u00e4\u00e4kida mingist \u201eoptimaalsest\u201c kokkusurumisest. Loomulikult ei h\u00f5lma see ka partiide klastri loomist. Mitmed kliendid, kellele selline s\u00fcsteem on juurutatud, on kaebanud kokkusurumise planeerimise tulemuste \u00fcle. N\u00e4iteks juhtub sageli praktikas, et j\u00e4\u00e4ke 100 tk \u00fchest rakust plaanitakse transportida teise rakku, kus on 1 tk kaupa, kuigi ajakulu optimaalsuse seisukohalt oleks vastupidi parem.<\/p>\n<p>Samuti on kauba j\u00e4\u00e4kide kokkusurumise funktsioon v\u00e4lja kuulutatud paljudes v\u00e4lismaal, <i>WMS<\/i>-s\u00fcsteemides, kuid kahjuks ei ole meil ei tegelikke \u00fclevaateid algoritmide t\u00f6\u00f6 efektiivsuse kohta (see on kommertsalane), ega ka arusaamu nende loogika s\u00fcgavusest (proprietaarne tarkvara suletud koodiga), seega ei saa me hinnata.<\/p>\n<h4>Matemaatilise mudeli leidmine \u00fclesande jaoks<\/h4>\n<p>\nKvaliteetsete algoritmide projekteerimiseks \u00fclesande lahendamiseks on k\u00f5igepealt vajalik see \u00fclesanne selgelt matemaatiliselt formuleerida, mida me ka teeme.<\/p>\n<p>On olemas palju rakke <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus asuvad m\u00f5ne kauba j\u00e4\u00e4gid. Edasi nimetame selliseid rakke doonorirakkudeks. M\u00e4\u00e4ratleme <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kauba mahu, mis asub rakus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>Oluline on \u00f6elda, et kokkusurumise protseduuris v\u00f5ib osaleda ainult \u00fche partii kaup, v\u00f5i mitme partii kaup, mis on eelnevalt koondatud klastrisse (loe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">eelmist artiklit<\/a><\/noindex>), mis on tingitud kaupade s\u00e4ilitamise ja paigutamise erip\u00e4rast. Erinevate kaupade v\u00f5i erinevate partii klastrite puhul peaks k\u00e4ivituma oma eraldi kokkusurumise protseduur.<\/p>\n<p>On olemas palju rakke <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu saavad potentsiaalselt paigutada doonorirakkudest j\u00e4\u00e4gid. Selliseid rakke nimetame edaspidi konteinerirakkudeks. Need v\u00f5ivad olla nii vabade rakud laos kui ka doonorirakud mitmetest <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Alati on hulk <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> alamhulk <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>Iga raku <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> hulgas <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on m\u00e4\u00e4ratletud mahupiirangud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, m\u00f5\u00f5detud dm3-des. \u00dcks dm3 on kuubik, mille k\u00fcljed on 10 cm. Ladustatavad tooted on piisavalt suured, seega selline diskreetimine on t\u00e4iesti piisav. <\/p>\n<p>On m\u00e4\u00e4ratud l\u00fchimade kauguste maatriks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> meetrites iga kahe rakku paari vahel <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kuuluvad hulkadesse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vastavalt. <\/p>\n<p>T\u00e4histame <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00abkulud\u00bb kaupade liigutamiseks rakust<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> rakku <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. T\u00e4histame <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00abkulud\u00bb konteineri valimiseks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kaupade \u00fcleveoks teistest rakkudest. Kuidas ja millistes m\u00f5\u00f5t\u00fchikutes v\u00e4\u00e4rtused arvutatakse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> arutame edasi (vt jaotist sisendandmete ettevalmistamine), praegu on piisav \u00f6elda, et need suurused on otseselt proportsionaalsed suurustega <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> vastavalt.<\/p>\n<p>T\u00e4histame l\u00e4bi <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> muutuja, mis on 1, kui j\u00e4\u00e4nused rakust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> liigutatakse konteinerisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, ja 0 vastupidisel juhul. T\u00e4histame l\u00e4bi <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> muutuja, mis on 1, kui konteiner <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> sisaldab tootej\u00e4\u00e4nuseid, ja 0 vastupidisel juhul.<\/p>\n<p><b>\u00dclesanne on nii<\/b>: on vajalik leida selline konteinerite kogum <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja seega \u201emanustada\u201c donarakkud konteinerirakkudega, et minimeerida funktsiooni<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>piirangute juures<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kokkuv\u00f5ttes p\u00fc\u00fcame \u00fclesande lahendamise k\u00e4igus: <\/p>\n<ul>\n<li>esiteks, s\u00e4\u00e4sta laoruume; <\/li>\n<li>teiseks, s\u00e4\u00e4sta ladude t\u00f6\u00f6tajate aega. <\/li>\n<\/ul>\n<p>\nViimane piirang t\u00e4hendab, et me ei tohi liikuda tooteid konteinerisse, mida me ei ole valinud, samuti ei tohi me \u201ekanda kulusid\u201c selle valimisele. Samuti t\u00e4hendab see piirang, et \u00fcle kantud kaupade maht rakust konteinerisse ei tohi \u00fcletada konteineri mahutavust. \u00dclesande lahendusena m\u00f5istame konteinerite kogumit <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja viise donorakkude kinnitamiseks konteineritega.<\/p>\n<p>See optimeerimis\u00fclesande vormulatsioon ei ole uus ja on olnud paljude matemaatikute uurimise objekt alates 80ndate aastate algusest. V\u00e4listes allikates on kaks optimeerimis\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> (r\u00e4\u00e4gime edaspidi \u00fclesannete erinevustest). Tuleb \u00f6elda, et matemaatilises teaduskirjanduses s\u00f5nastatakse kahe optimeerimise \u00fclesande probleeme ettev\u00f5tete asukoha kontekstis, kust ka nimi \u201eFacility Location\u201d. Suur osa sellest on traditsioon, kuna esmakordselt tulenes vajadus selliste kombinatoorsete probleemide lahendamiseks logistikavaldkonnast, suurel m\u00e4\u00e4ral s\u00f5jav\u00e4e- ja t\u00f6\u00f6stusharust 20. sajandi 50. aastatel. Ettev\u00f5tete asukoha terminite kohaselt s\u00f5nastatakse sellised probleemid j\u00e4rgmiselt: <\/p>\n<ul>\n<li>On l\u00f5plik hulk linnu, kus on potentsiaalselt v\u00f5imalik rajada tootmisettev\u00f5tteid (edaspidi linnad-tootjad). Iga linn-tootja jaoks on m\u00e4\u00e4ratud kulud ettev\u00f5tte avamiseks ning avatud ettev\u00f5tte tootmisv\u00f5imsuse piirang.<\/li>\n<li>On l\u00f5plik hulk linnu, kus tegelikult asuvad kliendid (edaspidi linnad-kliendid). Iga sellise linna-kliendi jaoks on m\u00e4\u00e4ratud toote n\u00f5udluse maht. Lihtsuse huvides oletame, et toode, mida ettev\u00f5tted toodavad ja kliendid tarbivad, on sama.<\/li>\n<li>Iga paari linn-tootja ja linn-kliendi jaoks on m\u00e4\u00e4ratud transpordikulude suurus n\u00f5utava toote hulga tarnimiseks tootjalt kliendile.<\/li>\n<\/ul>\n<p>\nOn vajalik leida, millistes linnades rajada ettev\u00f5tted ja kuidas klientide sidumine nende ettev\u00f5tetega toimub, et:<\/p>\n<ul>\n<li>Ettev\u00f5tete avamise ja transpordikulude kogusumma oleks minimaalne;<\/li>\n<li>Kliendilt, kes on seotud m\u00f5ne avatud ettev\u00f5ttega, n\u00f5utav n\u00f5udlus ei \u00fcletaks selle ettev\u00f5tte tootmisv\u00f5imsust.<\/li>\n<\/ul>\n<p>\nN\u00fc\u00fcd tuleks r\u00e4\u00e4kida ainukesest erinevusest nende kahe klassikalise probleemi vahel:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 klient saab varustust ainult \u00fchest avatud ettev\u00f5ttest;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 klient v\u00f5ib varustust saada mitmest avatud ettev\u00f5ttest samaaegselt.<\/li>\n<\/ul>\n<p>\nSee erinevus kahe probleemi vahel paistab esmapilgul v\u00e4het\u00e4htis, kuid tegelikult toob see kaasa t\u00e4iesti erineva probleemide kombinatoorse struktuuri ja seega ka t\u00e4iesti erinevad lahenduse algoritmid. Probleemide erinevust n\u00e4idatakse alloleval joonisel.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/77962906c7de2fced174d4a2b7785cc2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon.3. a) Multi-Source Capacitated Facility Location Problem<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon.3. b) Single-Source Capacitated Facility Location Problem<\/i><\/p>\n<p>M\u00f5lemad \u00fclesanded <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-raskus, see t\u00e4hendab, et ei ole olemas t\u00e4pset algoritmi, mis suudaks sellise \u00fclesande pol\u00fcnoomse aja jooksul sisendi suuruse suhtes lahendada. Lihtsamalt \u00f6eldes, k\u00f5ik t\u00e4psed algoritmid selle \u00fclesande lahendamiseks t\u00f6\u00f6tavad eksponentsiaalses ajas, kuigi t\u00f5en\u00e4oliselt kiiremini kui t\u00e4ielik l\u00e4biproovimine. Kuna \u00fclesanne <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-on keerukas, siis vaatleme ainult ligikaudseid heuristikaid, see t\u00e4hendab algoritme, mis arvutavad pidevalt lahendusi, mis on v\u00e4ga l\u00e4hedased optimaalsele ning t\u00f6\u00f6tavad piisavalt kiiresti. Kui selliste \u00fclesannete vastu on huvi, siis siit leiate hea \u00fclevaate Vene keeles.<\/p>\n<p>Kui vaadata meie \u00fclesande terminoloogiat, mis seisneb kaupade optimaalses pakkimises rakkudesse, siis:<\/p>\n<ul>\n<li>linnad-kliendid \u2013 need on doonor-rakud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> kaubaj\u00e4\u00e4kidega, <\/li>\n<li>linnad-tootjad \u2013 need on konteiner-rakud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu plaanitakse paigutada j\u00e4\u00e4nused teistest rakkudest,<\/li>\n<li>transportimiskulud \u2013 aja kulud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ladustaja jaoks kauba mahu liigutamiseks doonor-rakust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> konteiner-rakku <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>ettev\u00f5tte avamise kulud \u2013 konteineri valiku kulud <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mis on v\u00f5rdsed konteiner-raku mahuga <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, korrutatuna teatud vabade mahudega kokkuhoiu koefitsiendiga (koefitsiendi v\u00e4\u00e4rtus on alati &gt; 1) (vt jaotis sisendandmete ettevalmistamine).<\/li>\n<\/ul>\n<p>\nP\u00e4rast seda, kui analoogia tuntud klassikaliste tarnete \u00fclesande kohta on tehtud, on oluline vastata k\u00fcsimusele, mis m\u00f5jutab algoritmi lahenduse arhitektuuri valikut: kas j\u00e4\u00e4nuste liigutamine doonor-rakust on v\u00f5imalik ainult \u00fchte konteinerisse (Single-Source) v\u00f5i on j\u00e4\u00e4nuste paigutamine mitmesse konteiner-rakku (Multi-Source) v\u00f5imalik?<\/p>\n<p>Tasub m\u00e4rkida, et praktikas on m\u00f5lemat \u00fclesande seadet vaja. T\u00f5ime v\u00e4lja iga sellise seadistuse plussid ja miinused allpool:<\/p>\n<table>\n<tr>\n<th>\u00dclesande variant<\/th>\n<th>Selle variandi plussid<\/th>\n<th>Selle variandi miinused<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>Kauba liikumise operatsioonid, mis on arvutatud selle variandi \u00fclesande p\u00f5hjal:<\/p>\n<ul>\n<li>n\u00f5uavad ladustaja poolset v\u00e4hem kontrolli (v\u00f5ttis K\u00d5IK \u00fchest rakust, pani K\u00d5IK teise konteiner-rakku), mis k\u00f5rvaldab riskid: kauba arvu \u00fcmberarvutamise vigade korral, kui teostatakse operatsioone 'Panna rakku'; \u00fcmberarvutatud arvu sisestamise vigade korral TSD-s;<\/li>\n<li>Toote arvu \u00fcmberarvutamiseks ei ole aega vaja, kui teostatakse operatsioone \u201eAseta rakku\u201c ja nende sisestamine TSD-sse.<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Mitme allika mudel<\/td>\n<td>Selle \u00fclesande variandi j\u00e4rgi arvutatud tihendused on reeglina 10-15% kompaktsed v\u00f5rreldes \u00fche allika variandi tihendustega. Kuid tuleb m\u00e4rkida, et mida v\u00e4hem on j\u00e4\u00e4ke annetavates rakkudes, seda v\u00e4iksem on selline kompaktsuse vahe.<\/td>\n<td>Kauba liikumise operatsioonid, mis on arvutatud selle variandi \u00fclesande p\u00f5hjal:<\/p>\n<ul>\n<li>N\u00f5uab suuremat j\u00e4relevalvet ladustajalt (on vaja \u00fcmber lugeda kaupade arv, mida liigitatakse igasse plaanitavasse konteinerirakku), mis elimineerib riski kaupade arvu \u00fcmberarvutamisel ja andmete sisestamisel TSD-sse operatsioonide \u201eAseta rakku\u201c k\u00e4igus.<\/li>\n<li>Toote arvu \u00fcmberarvutamiseks on aega vaja operatsioonide \u201eAseta rakku\u201c k\u00e4igus.<\/li>\n<li>Operatsioonide \u201eAseta rakku\u201c ajal on vaja aega \u201e\u00fclekulude\u201c jaoks (peatus, l\u00e4himine, konteineri rakku QR-koodi skaneerimine).<\/li>\n<li>M\u00f5nikord v\u00f5ib algoritm jagada praktiliselt t\u00e4isk\u00e4ru arvu suure hulga konteinerirakkude vahel, kus on juba sobiv kaup, mis on tellija vaatepunktist vastuv\u00f5etamatu.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabel 1. Single-Source ja Multi-Source variantide plussid ja miinused.<\/i><\/p>\n<p>Arvestades, et Single-Source variandi plusside arv on suurem ning kuna, mida v\u00e4hem on j\u00e4\u00e4ke annetavates rakkudes, seda v\u00e4iksem on erinevus tihenduse kompaktsete tasemete osas, mis on arvutatud m\u00f5lema \u00fclesande variandi j\u00e4rgi, valisime Single-Source variandi.<\/p>\n<p>Oluline on m\u00e4rkida, et Multi-Source variandi lahendamine on samuti v\u00f5imalik. On palju t\u00f5husaid algoritme selle lahendamiseks, millest enamik on suunatud ridade transportimise probleemide lahendamisele. Samuti on olemas mitte ainult t\u00f5husad, vaid ka elegantsemad algoritmid, 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 kui hakkame anal\u00fc\u00fcsima ja arendama algoritmi \u00fclesande lahendamiseks, tuleb otsustada, milliseid andmeid ja millises vormis me talle sisendina esitame. Kaupade j\u00e4\u00e4kide maht annetavates rakkudes ja konteinerirakkude mahutavus ei p\u00f5hjusta probleeme, kuna see on triviaalne \u2013 need v\u00e4\u00e4rtused m\u00f5\u00f5detakse m3, kuid konteinerirakku kasutamise kulude ja liikumise kulude maatriksiga ei ole asi nii lihtne!<\/p>\n<p>Alustame arvutamise \u00fclevaatamist <b>kaubakulu<\/b> doonorist konteinerisse. Esiteks tuleb kindlaks teha, millistes m\u00f5\u00f5t\u00fchikutes me kaubakulu arvutame. Kaks k\u00f5ige ilmsemat v\u00f5imalust on meetrid ja sekundid. 'Puhtates' meetrites kaubakulu arvutamine ei ole m\u00f5ttekas. Illustreerime seda n\u00e4itega. Oletame, et r\u00e4si <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> asub esimesel tasandil, r\u00e4si <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on eemaldatud 30 meetrit ja paikneb teisel tasandil:<\/p>\n<ul>\n<li>Liikumine <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on kulukam kui liikumine <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuna teiselt tasandilt (1,5-2 meetrit p\u00f5randast) on kergem alla lasta kui \u00fcles t\u00f5sta, kuigi distants on sama;<\/li>\n<li>1 tk kaupa niisugusest r\u00e4si <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on kergem transportida kui 10 tk sama toodet, kuigi distants on sama.<\/li>\n<\/ul>\n<p>\nKaubakulusid on parem arvestada sekundites, kuna see arvestab nii tasemete erinevust kui ka transporditava kauba koguse variatsiooni. Kaubakulu arvestamiseks sekundites peame liikumisoperatsiooni jaotama elementaarseteks osadeks ja m\u00f5\u00f5tma igale elementaarsele osale kuluvat aega.<\/p>\n<p>Oletame, et r\u00e4si <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> liigub <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> tk kaupa konteinerisse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Oletame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on keskmine t\u00f6\u00f6taja liikumiskiirus laos, m\u00f5\u00f5detuna m\/s. Oletame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on keskmised korduvate operatsioonide t\u00e4itmise kiirus, v\u00f5tta ja panna, vastavalt kauba mahu kohta, mis on 4 d\u043c3 (keskmine maht, mille t\u00f6\u00f6taja laos korraga tehingute t\u00e4itmisel v\u00f5tab). Oletame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on rackide k\u00f5rgus, millelt tehingud toimub. N\u00e4iteks, esimese tasandi (p\u00f5rand) keskmine k\u00f5rgus on 1 m, teise tasandi on 2 m jne. Formula, mille alusel arvestame operatsiooni teostamise kogu aega <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tabelis 2 on esitatud iga elementaarse operatsiooni teostamise aega statistika, mille t\u00f6\u00f6tajad on laos kogunud, arvestades hoitava kauba spetsiifikat.<\/p>\n<table>\n<tr>\n<th>Operatsiooni nimetus<\/th>\n<th>M\u00e4rgistus<\/th>\n<th>Keskmine v\u00e4\u00e4rtus<\/th>\n<\/tr>\n<tr>\n<td>Keskmine t\u00f6\u00f6taja liikumiskiirus laos<\/td>\n<td><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 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>Keskmine kiirus \u00fche operatsiooni t\u00e4itmisel, panna (kauba maht 4 d\u043c3)<\/td>\n<td><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 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. Keskmine aeg lao operatsioonide t\u00e4itmise jaoks<\/i><\/p>\n<p>Oleme m\u00e4\u00e4ratlenud kaubakulu arvutamise meetodi. N\u00fc\u00fcd on vajalik v\u00e4lja selgitada, kuidas arvutada <b>kulusid konteineri valimiseks<\/b>Siin on k\u00f5ik oluliselt keerulisem kui kauba transportimise kuludega, kuna: <\/p>\n<ul>\n<li>Esiteks peavad kulud olema otseses s\u00f5ltuvuses rakkude mahust \u2013 sama maht j\u00e4\u00e4kidest, mis liigutatakse doonorrakkudest, on parem asetada v\u00e4iksemasse konteinerisse kui suurde konteinerisse, tingimusel et see maht mahub t\u00e4ielikult m\u00f5lemasse konteinerisse. Nii, \u00fcldisi konteinerite valiku kulusid minimeerides p\u00fc\u00fcdleme me \u201epuuduvate\u201c vaba laopinda s\u00e4\u00e4stmise suunas valiku tsoonis, et teha j\u00e4rgmist kauba paigutamise operatsiooni rakkudesse. Joonisel 4 on n\u00e4idatud j\u00e4\u00e4kide liigutamise variante suurde ja v\u00e4iksesse konteinerisse ning nende variantide tagaj\u00e4rjed j\u00e4rgnevate laoprotsesside teostamisel.<\/li>\n<li>Teiseks, kuna peame algse \u00fclesande lahenduses minimeerima just \u00fcldkulusid, mis on nii transportimise kulude kui ka konteinerite valiku kulude summa, siis tuleb rakkude mahud kuupmeetrites mingil viisil siduda sekunditega, mis ei ole \u00fcldse triviaalne.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joonis 4. J\u00e4\u00e4kide liigutamise variandid erineva mahuga konteineritesse.<\/i><\/p>\n<p>Joonisel 4 on punase v\u00e4rviga kujutatud j\u00e4\u00e4kide mahtu, mis ei mahu enam konteinerisse teises etapis j\u00e4rgnevate kaupade paigutamisest. <\/p>\n<p>Kuna j\u00e4\u00e4kide mahtude sidumine konteinerite valiku kuupmeetritega sekundite prisudega n\u00f5uab j\u00e4rgmisi n\u00f5udeid arvutatavatele \u00fclesande lahendustele:<\/p>\n<ul>\n<li>On oluline, et doonorirakust j\u00e4\u00e4gid paigutatakse konteinerirakku igal juhul, kui see v\u00e4hendab konteinerite \u00fcldarvu, kus kaup on.<\/li>\n<li>Peame hoidma tasakaalu konteinerite mahude ja liikuvuse ajakulude vahel: n\u00e4iteks, kui uue \u00fclesande lahenduse variant v\u00f5rreldes eelmise lahenduse variandiga on palju suurem mahult, ent ajakulud on palju v\u00e4iksemad, siis tuleb valida uus variant.<\/li>\n<\/ul>\n<p>\nAlustame viimase n\u00f5udega. Selleks, et t\u00e4psustada mitmekesist s\u00f5na \u201etasakaal\u201c, viidi l\u00e4bi laot\u00f6\u00f6tajate k\u00fcsitlus eesm\u00e4rgiga selgitada v\u00e4lja j\u00e4rgnev. Olgu meil konteinerirakk mahuga <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kuhu on m\u00e4\u00e4ratud kaupadest j\u00e4\u00e4kide liigutamine doonorrakkudest ja selle liigutamise koguaeg on <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Olgu veel mitmeid alternatiivseid v\u00f5imalusi sama koguse kauba paigutamiseks samadesse donorimahutitesse teistesse konteineritesse, kus igal paigutusel on oma hinnangud. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>K\u00fcsimus on: milline minimaalne kasum mahus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on vastuv\u00f5etav, kui ajakulu on m\u00e4\u00e4ratud. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 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=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Joon. 5. Diagramm minimaalsete lubatud mahutis\u00e4\u00e4stude s\u00f5ltuvusest operatsiooni t\u00e4itmise ajavahe suurenemisest.<\/i><\/p>\n<p>See t\u00e4hendab, et kui t\u00e4iendavad ajakulud on 40 sekundit, oleme valmis neid kulutama ainult siis, kui mahtude kasu on v\u00e4hemalt 500 dm3. Vaatamata sellele, et s\u00f5ltuvuses on v\u00e4ike mitte-lineaarsus, eeldame edasiste arvutuste lihtsuse huvides, et s\u00f5ltuvus nende suuruste vahel on lineaarne ja seda kirjeldab eba\u00fchtlus.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Allj\u00e4rgneval joonisel vaatleme j\u00e4rgmisi kauba paigutamise viise konteineritesse.<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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>Variant (a) konteinerite valik on eelistatum kui algne variant, kuna t\u00e4idetakse eba\u00fchtlus: (800-400)\/10&gt;=150-120, millest j\u00e4reldub 40 &gt;= 30. Variant (b) on v\u00e4hem eelistatud kui algne variant, kuna eba\u00fchtlus ei kehti: (800-600)\/10&gt;=190-150, millest j\u00e4reldub 20 &gt;= 40. Kuid variant (c) ei j\u00e4rgita sarnast loogikat! Vaatame seda varianti l\u00e4hemalt. \u00dchelt poolt kehtib eba\u00fchtlus (800-400)\/10&gt;=200-120, seega eba\u00fchtlus 40 &gt;= 80 ei kehti, mis n\u00e4itab, et mahukasum ei ole sellise suures ajakaotusest v\u00e4\u00e4rt. <\/p>\n<p>Kuid teisalt, sellises variante (c) ei ole me mitte ainult v\u00e4hendamas h\u00f5ivatud mahtu, vaid ka v\u00e4hendamas h\u00f5ivatud riiulite arvu, mis on esimene kahest olulisest n\u00f5udest lahenduste arvutamiseks, nagu eespool loetletud. On ilmne, et selle n\u00f5ude t\u00e4itmiseks tuleb eba\u00fchtluse vasakule poole lisada m\u00f5ni positiivne konstant. <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, samas tuleb seda konstantti lisada ainult siis, kui konteinerite arv v\u00e4heneb. Meenutame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> on muutuja, mis on v\u00f5rdne 1, kui konteiner <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> valitud ei ole. M\u00e4\u00e4ratleme, <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 palju konteinerite originaalses lahenduses ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 palju konteinerite uues lahenduses. \u00dcldises vormis n\u00e4eb uus ebav\u00f5rdsus v\u00e4lja j\u00e4rgmiselt:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>T\u00f6\u00f6tledes eelnevat ebav\u00f5rdsust, saame <\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Selgitades, j\u00f5uame valemini \u00fcldkulude arvutamiseks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Kuid n\u00fc\u00fcd t\u00f5statub k\u00fcsimus<\/b>: kui suureks peaks see konstant olema <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 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>Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 maksimaalne kaugus ladustamisv\u00f5ime \u00fche tsooni ABC vahel, mis meie puhul on 100 m. Olgu <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 maksimaalne konteineri-mahus olev lao mahutavus, mis meie puhul on 1000 dm3.<\/p>\n<p><b>Esimene meetod suuruse arvutamiseks<\/b> <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Vaatleme olukorda, kus esimesel tasemel on 2 konteinerit, milles on f\u00fc\u00fcsiliselt kaup, see t\u00e4hendab, et nad on ise donor-rakkudena, ning kauba liikumise kulud nende rakkudesse on loomulikult 0. Peame leidma sellise konstantse v\u00e4\u00e4rtuse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mille puhul oleks alati kasulik j\u00e4\u00e4kide liigutamine konteinerist 1 konteinerisse 2. Asendades v\u00e4\u00e4rtused <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ja <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> eelnevalt toodud ebav\u00f5rdsusse, saame:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Asendades elementaarsete toimingute keskmised teostamisajad \u00fclaltoodud valemisse, saame<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Teine meetod suuruse arvutamiseks<\/b> <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> donor-rakke, millest plaanitakse kauba liikumist konteinerisse 1. M\u00e4\u00e4ratleme <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 kaugus donor-rakust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> konteinerisse 1. Samuti on olemas konteiner 2, milles on juba kaupu, ja mille maht v\u00f5imaldab mahutada j\u00e4\u00e4ke k\u00f5igist <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> donor-rakkudest. Lihtsuse huvides eeldame, et rakkudest konteinerisse liigutatav kauba maht on sama ja v\u00f5rdub <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Peame leidma sellise konstantse v\u00e4\u00e4rtuse <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, mille puhul oleks k\u00f5ikide j\u00e4\u00e4kide paigutamine <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> rakud konteinerisse 2 alati soodsam kui paigutamine erinevatesse konteineritesse:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>T\u00f6\u00f6tledes ebav\u00f5rdsust saame<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Selleks, et suurendada suuruse v\u00e4\u00e4rtust <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, oletame, et <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> = 0. Keskmine rakkude arv, mis tavaliselt osaleb j\u00e4\u00e4kide tihendamise protseduuris, on 10. Asendades teadaolevad suuruste v\u00e4\u00e4rtused, saame j\u00e4rgmise konstantse v\u00e4\u00e4rtuse<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>V\u00f5tame suurima v\u00e4\u00e4rtuse, mis on arvutatud iga variandi p\u00f5hjal, ja see ongi suuruse v\u00e4\u00e4rtus <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> antud lao parameetrite jaoks. N\u00fc\u00fcd l\u00f5petuseks kirjutame valemi \u00fcldkulude arvutamiseks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> m\u00f5ne lubatud lahenduse jaoks <img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1)\" 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 pingutusi<\/b> sisendandmete transformeerimiseks, saame \u00f6elda, et k\u00f5ik sisendandmed on muudetud vajalikku vormi ja on valmis kasutamiseks optimeerimisalgoritmis.<\/p>\n<h4>Kokkuv\u00f5te<\/h4>\n<p>\nKuidas praktika n\u00e4itab, et sisendandmete ettevalmistamise ja t\u00f6\u00f6tlemise etapi t\u00f6\u00f6maht ja t\u00e4htsus algoritmi jaoks on tihti alahinnatud. Selles artiklis oleme sellele etapile eraldanud palju t\u00e4helepanu, et n\u00e4idata, et ainult korralikult ja arvestavalt ettevalmistatud sisendandmed suudavad teha algoritmi arvutatud lahendused t\u00f5eliselt v\u00e4\u00e4rtuslikeks kliendi jaoks. Jah, oli palju valemi j\u00e4reldusi, kuid me hoiatame teid juba enne k\u00e4t \ud83d\ude42<\/p>\n<p>J\u00e4rgmises artiklis j\u00f5uame l\u00f5puks sellele, milleks kaks eelmist publikatsiooni m\u00f5eldud olid \u2013 diskreetse optimeerimise algoritmile.<\/p>\n<p><i>Artikli koostas<br \/>\nRoman Shangin, projektide osakonna programmeerija,<br \/>\nettev\u00f5te Esimene Bit, \u010celjabinsk<\/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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Diskreetne matemaatika WMS-i jaoks: kaupade pakkimise algoritm rakkudesse (osa 1) | ProHoster","description":"Artiklis me.","canonical_url":"https:\/\/prohoster.info\/et\/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":"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.","og:url":"https:\/\/prohoster.info\/et\/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\/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}]}}