Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea

Artikuluak nola inplementatu deskribatzen du WMS-sistema, clustering-arazo ez-estandarra ebazteko beharraren aurrean geunden eta zein algoritmo erabili genituen konpontzeko. Arazoa konpontzeko ikuspegi sistematiko eta zientifiko bat nola aplikatu dugun, zein zailtasun aurkitu ditugun eta zer ikasgai ikasi ditugun kontatuko dizugu.

Argitalpen honek artikulu sorta bat hasten du, non biltegiko prozesuetan optimizazio algoritmoak ezartzeko esperientzia arrakastatsua partekatzen dugun. Artikulu sortaren helburua da ikusleari ia edozein biltegi ertain eta handitan sortzen diren biltegi-eragiketen optimizazio-arazo motak ezagutaraztea, baita arazo horiek konpontzeko dugun esperientzia eta bidean aurkitutako hutsuneak kontatzea ere. . Artikuluak biltegiko logistika industrian lan egiten dutenentzat erabilgarriak izango dira, ezartzeko WMS-sistemak, bai eta negozioetan matematikaren aplikazioetan eta enpresa bateko prozesuen optimizazioan interesa duten programatzaileak ere.

Botila lepoa prozesuetan

2018an, gauzatzeko proiektu bat burutu genuen WMS-Txeliabinsk-eko "Trading House "LD" enpresaren biltegian sistemak. β€œ1C-Logistics: Warehouse Management 3” produktua ezarri dugu 20 lantokitarako: operadoreak WMS, biltegizainak, orga jasotzaileak. Batez besteko biltegia 4 mila m2 ingurukoa da, zelula kopurua 5000 eta SKU kopurua 4500. Biltegiak 1 kg-tik 400 kg-ra bitarteko tamaina desberdinetako gure ekoizpen propioko bola-balbulak gordetzen ditu. Biltegiko inbentarioa loteka gordetzen da, FIFOren arabera salgaiak hautatzeko beharra baitago.

Biltegiko prozesuen automatizazio eskemak diseinatzerakoan, inbentarioa biltegiratze ez-optimoaren arazoarekin topo egin genuen. Garabiak gordetzeko eta gordetzeko zehaztapenak unitateko biltegiratze-gelaxkak lote bateko elementuak soilik izan ditzake. Produktuak egunero iristen dira biltegira eta iriste bakoitza lote bat da. Guztira, 1 hilabeteko biltegiaren funtzionamenduaren ondorioz, 30 sorta bereizi sortzen dira, bakoitza gelaxka batean gorde behar den arren. Produktuak sarritan ez dira paleta osoetan hautatzen, zatika baizik, eta, ondorioz, gelaxka askotan piezak aukeratzeko eremuan honako irudia ikusten da: 1 m3 baino gehiagoko bolumena duen gelaxka batean hainbat garabi pieza daude. zelula-bolumenaren % 5-10 baino gutxiago hartzen dute.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea 1. irudia. Gelaxka bateko hainbat ondasunen argazkia

Argi dago biltegiratze ahalmena ez dela modu egokian erabiltzen. Hondamendiaren tamaina imajinatzeko, zifrak eman ditzaket: batez beste, 1 eta 3 gelaxka daude 100 m300 baino gehiagoko bolumena duten biltegiaren funtzionamendu-aldi desberdinetan balantze "minuskuluekin". Biltegia nahiko txikia denez, biltegiko lan-denboraldietan faktore hau "botila" bihurtzen da eta biltegiko prozesuak asko moteltzen ditu.

Arazoak konpontzeko ideia

Ideia bat sortu zen: data hurbileneko hondarrak lote bakarrera murriztu behar dira, eta lote bateratua duten hondarrak gelaxka batean edo hainbatetan trinko jarri behar dira, batean leku nahikorik ez badago. hondakinen kopuru osoa.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea
2. irudia. Zelulan hondarrak konprimitzeko eskema

Horri esker, jarritako ondasun berrietarako erabiliko den biltegi okupatua nabarmen murrizten da. Biltegiaren edukiera gainkargatzen den egoeran, neurri hori oso beharrezkoa da, bestela baliteke salgai berriak sartzeko behar adina leku libre egotea, eta horrek biltegia jartzeko eta hornitzeko prozesuak geldiaraziko ditu. Aurretik ezarri aurretik WMS-sistemek eskuz egiten zuten eragiketa hori, eta ez zen eraginkorra, zeluletan hondakin egokiak bilatzeko prozesua nahiko luzea baitzen. Orain, WMS sistema bat sartuta, prozesua automatizatzea, bizkortzea eta adimentsua izatea erabaki dugu.

Arazo bat konpontzeko prozesua 2 fasetan banatzen da:

  • lehen fasean lote-taldeak aurkitzen ditugu konpresiorako datan hurbil;
  • bigarren fasean, lote-talde bakoitzeko gelaxketan geratzen diren ondasunen kokapen trinkoena kalkulatzen dugu.

Oraingo artikuluan algoritmoaren lehen fasean zentratuko gara, eta bigarren fasearen estaldura hurrengo artikulurako utziko dugu.

Bilatu problemaren eredu matematiko bat

Kodea idazteko eta gure gurpila berrasmatzeko eseri baino lehen, arazo honi zientifikoki heltzea erabaki genuen, hau da: matematikoki formulatu, optimizazio diskretu-problema ezagun batera murriztu eta lehendik dauden algoritmo eraginkorrak erabiltzea edo lehendik dauden algoritmo hauek hartzea. oinarri gisa eta konpontzen ari den problema praktikoaren berezitasunetara aldatzea.

Multzoez ari garela problemaren formulazio enpresarialetik argi ondorioztatzen denez, multzoen teoriaren arabera formulatuko dugu halako problema bat.

Utzi Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea – Biltegi bateko produktu jakin baten gainerako lote guztien multzoa. Utzi Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea – egunen konstantea emana. Utzi Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea – loteen azpimultzo bat, non azpimultzoko lote bikote guztien daten diferentziak konstante bat gainditzen ez duen Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Azpimultzo disjuntuen gutxieneko kopurua aurkitu behar dugu Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, hala nola azpimultzo guztiak Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea elkarrekin hartuta asko emango lituzke Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea.

Beste era batera esanda, antzeko alderdien talde edo multzoak aurkitu behar ditugu, non antzekotasun irizpidea konstanteak zehazten duen. Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Zeregin honek clustering-arazo ezaguna dakarkigu gogora. Garrantzitsua da esatea kontuan hartzen den problema clustering-arazoarengandik desberdina dela, gure problemak kluster elementuen antzekotasun-irizpiderako baldintza hertsiki definitua duelako, konstanteak zehaztuta. Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, baina clustering arazoan ez dago horrelako baldintzarik. Clustering-arazoaren adierazpena eta arazo honi buruzko informazioa aurki daitezke hemen.

Beraz, problema formulatzea eta antzeko formulazio batekin problema klasiko bat aurkitzea lortu genuen. Orain konponbiderako algoritmo ezagunak kontuan hartu behar dira, gurpila ez berrasmatzeko, praktika onak hartu eta aplikatzeko baizik. Clustering arazoa konpontzeko, algoritmo ezagunenak kontuan hartu ditugu, hau da: Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea-esan nahi du Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea-bitartekoak, konektatutako osagaiak identifikatzeko algoritmoa, gutxieneko spanning tree algoritmoa. Algoritmo horien deskribapena eta azterketa aurki daitezke hemen.

Gure arazoa konpontzeko, clustering algoritmoak Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea-esan nahi du eta Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea-batez bestekoak ez dira batere aplikagarriak, kluster kopurua ez baita aldez aurretik ezagutzen Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea eta halako algoritmoek ez dute kontuan hartzen etengabeko egunen muga. Halako algoritmoak kontuan hartu gabe utzi ziren hasieran.
Gure arazoa konpontzeko, konektatutako osagaiak identifikatzeko algoritmoa eta spanning tree minimoaren algoritmoa egokiagoak dira, baina, ondorioztatu denez, ezin dira konpontzen ari den arazoari "buruz" aplikatu eta irtenbide ona lortu. Hau azaltzeko, kontuan izan dezagun algoritmo horien funtzionamendu-logika gure problemarekin lotuta.

Demagun grafikoa Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, zeinetan erpinak alderdien multzoa diren Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, eta erpinen arteko ertza Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea ΠΈ Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea loteen arteko egunen arteko diferentziaren pisua du Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea ΠΈ Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Konektatutako osagaiak identifikatzeko algoritmoan, sarrera-parametroa zehazten da Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzeaNon Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, eta grafikoan Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea pisu handiagoa duten ertz guztiak kentzen dira Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Objektu bikote hurbilenak bakarrik geratzen dira konektatuta. Algoritmoaren helburua balio hori hautatzea da Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, grafikoa hainbat osagai konektatutan "erortzen da", non osagai horiei dagozkien alderdiek gure antzekotasun irizpidea beteko duten, konstanteak zehaztuta. Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Sortzen diren osagaiak klusterrak dira.

Gutxieneko spanning tree algoritmoa grafiko batean eraikitzen da Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea gutxieneko hedadura-zuhaitza, eta gero pisu handiena duten ertzak sekuentzialki kentzen ditu grafikoa "erortzen" den arte konektatu diren hainbat osagaitan, non osagai horiei dagozkien alderdiek ere gure antzekotasun irizpidea beteko duten. Sortuko diren osagaiak klusterrak izango dira.

Aztertutako arazoa konpontzeko algoritmo horiek erabiltzean, 3. irudian bezala egoera bat sor daiteke.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea
3. irudia. Clustering algoritmoen aplikazioa ebazten ari den probleman

Demagun loteen egunen arteko aldearen konstantea 20 egunekoa dela. Grafikoa Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea forma espazialean irudikatu zen ikus-pertzepzioa errazteko. Bi algoritmoek 3 multzoko irtenbide bat sortu zuten, eta hori erraz hobe daiteke multzo bereizietan jarritako loteak elkarren artean konbinatuz! Begi bistakoa da halako algoritmoak aldatu behar direla ebazten ari den problemaren berezitasunetara egokitzeko, eta gure arazoaren konponbiderako bere forma hutsean aplikatzeak emaitza txarrak emango ditu.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea
Beraz, gure zereginerako aldatutako algoritmo grafikoetarako kodea idazten hasi eta gure bizikleta berrasmatzen hasi baino lehen (gurpil karratuen eskemak jada antzeman genitzakeen siluetetan), berriro ere, horrelako arazo bati zientifikoki heltzea erabaki genuen, hots: saiatu beste problema diskretu baten optimizazio batera murrizten, ebazteko dauden algoritmoak aldaketarik gabe aplika daitezkeen itxaropenarekin.

Antzeko arazo klasiko baten beste bilaketa bat arrakastatsua izan da! Optimizazio-problema diskretu bat aurkitzea lortu dugu, zeinaren formulazioa 1etik 1 bat dator gure problemaren formulazioarekin. Zeregin hori izan zen estaldura arazoa ezarri. Aurkez dezagun arazoaren formulazioa gure berezitasunekin lotuta.

Multzo finitu bat dago Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea eta familia Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea bere alderdien azpimultzo disjuntu guztien artean, hala nola, azpimultzo bakoitzeko alderdi bikote guztien daten aldea Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea familiatik Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea ez ditu konstanteak gainditzen Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea. Estalki bati familia deitzen zaio Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea botere gutxienekoa, zeinaren elementuak direnak Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea, hala nola, multzoen batasuna Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea familiatik Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea alderdi guztien multzoa eman beharko luke Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea.

Arazo honen azterketa zehatza aurki daiteke Hemen ΠΈ hemen. Estalduraren arazoaren eta haren aldaketen aplikazio praktikorako beste aukera batzuk aurki daitezke hemen.

Problema konpontzeko algoritmoa

Ebatzi beharreko problemaren eredu matematikoa erabaki dugu. Ikus dezagun orain ebazteko algoritmoa. Azpimultzoak Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea familiatik Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea erraz aurki daiteke hurrengo prozeduraren bidez.

  1. Antolatu loteak multzo batetik Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea beren daten beheranzko ordenan.
  2. Aurkitu gutxieneko eta gehienezko loteen datak.
  3. Egun guztietarako Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea gutxieneko datatik gehienezkora, aurkitu datak desberdinak diren lote guztiak Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea baino gehiago ez Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea (balioa beraz Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea Hobe da zenbaki bikoitia hartzea).

Multzoen familia bat osatzeko prozeduraren logika Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea at Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea egunak 4. irudian azaltzen dira.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea
4. irudia. Alderdien azpimultzoen eraketa

Prozedura hau ez da beharrezkoa denentzat Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea gainontzeko sorta guztiak aztertu eta haien daten aldea edo uneko balioarekin egiaztatu Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea mugitu ezkerrera edo eskuinera, data ezberdina den lote bat aurkitu arte Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea konstantearen balioaren erdia baino gehiagoz. Ondorengo elementu guztiak, eskuinera zein ezkerrera mugitzen direnean, ez zaizkigu interesgarriak izango, haientzat egunen aldea handitu baino ez baita egingo, matrizeko elementuak hasieran ordenatuta zeudenez. Planteamendu honek denbora aurreztuko du alderdi kopurua eta haien daten hedapena nabarmen handiak direnean.

Multzoaren estalduraren arazoa da Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea-zaila, hau da, ez dago azkar (sarrerako datuen polinomio baten pareko funtzionamendu denborarekin) eta ebazteko algoritmo zehatzik. Hori dela eta, multzo estalduraren arazoa konpontzeko, algoritmo zikoitz azkarra aukeratu zen, zeina, noski, ez da zehatza, baina abantaila hauek ditu:

  • Tamaina txikiko arazoetarako (eta hori da hain zuzen gure kasua), optimotik nahiko hurbil dauden irtenbideak kalkulatzen ditu. Arazoaren tamaina handitzen doan heinean, konponbidearen kalitatea okerrera egiten da, baina oraindik nahiko poliki;
  • Oso erraza ezartzeko;
  • Azkarra, bere exekuzio denboraren estimazioa baita Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea.

Algoritmo gutiziatsuak arau honen arabera hautatzen ditu multzoak: etapa bakoitzean, oraindik estali gabeko elementuen gehieneko kopurua hartzen duen multzo bat hautatzen da. Algoritmoaren eta bere pseudokodearen deskribapen zehatza aurki daiteke hemen.

Ebazten ari den problemaren proba-datuetan halako algoritmo gutiziatsu baten zehaztasuna beste algoritmo ezagun batzuekin konparaketarik ez da egin, hala nola probabilitate zikoitz algoritmoarekin, inurri-kolonien algoritmoarekin, etab. Sortutako ausazko datuekin halako algoritmoak alderatzearen emaitzak aurki daitezke lanean.

Algoritmoaren ezarpena eta ezarpena

Algoritmo hau hizkuntzan ezarri zen 1S eta konektatu zen "Hondarren konpresioa" izeneko kanpoko prozesamendu batean sartu zen WMS-sistema. Ez dugu algoritmoa hizkuntzan ezarri C ++ eta erabili kanpoko osagai Natibo batetik, zuzenagoa izango litzateke, kodearen abiadura txikiagoa baita C ++ aldiz, eta adibide batzuetan, antzeko kodearen abiadura baino hamar aldiz handiagoa 1S. Mihian 1S Algoritmoa garapen-denbora aurrezteko eta bezeroaren ekoizpen-basean arazketa errazteko inplementatu zen. Algoritmoaren emaitza 5. irudian aurkezten da.

Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea
5. irudia. Hondakinak β€œkonprimitzeko” prozesatzea

5. irudiak erakusten du zehaztutako biltegian biltegiratze-zeluletako saldoen egungo saldoak multzotan banatzen direla, eta horien barruan salgaien loteen datak 30 egun baino gehiago ez dira elkarren artean desberdinak. Bezeroak biltegian metalezko bola-balbulak ekoizten eta gordetzen dituenez, haien iraupena urtetan kalkulatzen da, data-desberdintasun hori alde batera utzi daiteke. Kontuan izan prozesaketa hori gaur egun sistematikoki erabiltzen dela ekoizpenean, eta operadoreetan WMS alderdien multzokatzearen kalitate ona baieztatzea.

Ondorioak eta jarraipena

Horrelako problema praktiko bat ebatzita lortu dugun esperientzia nagusia paradigma erabiltzearen eraginkortasunaren berrespena da: matematika. arazoaren adierazpena Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea mat famatua. eredua Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea algoritmo ospetsua Matematika diskretua WMS sistema bat ezartzean: biltegi batean salgaien loteen multzokatzea algoritmoa arazoaren berezitasunak kontuan hartuta. Optimizazio diskretuak 300 urte baino gehiago daramatza, eta denbora horretan jendeak arazo asko kontuan hartzea eta horiek konpontzeko esperientzia handia pilatzea lortu du. Lehenik eta behin, komenigarriagoa da esperientzia honetara jotzea, eta orduan bakarrik hastea zure gurpila berrasmatzen.

Hurrengo artikuluan optimizazio-algoritmoei buruzko istorioarekin jarraituko dugu eta interesgarriena eta askoz konplexuagoa dena aztertuko dugu: zelula-hondakinen β€œkonpresio” optimorako algoritmo bat, batch clustering algoritmotik jasotako datuak sarrera gisa erabiltzen dituena.

Artikulua prestatu du
Roman Shangin, proiektuen saileko programatzailea,
Lehen BIT konpainia, Chelyabinsk

Iturria: www.habr.com

Gehitu iruzkin berria