Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno

La artikolo priskribas kiel efektivigi WMS-sistemo, ni alfrontis la bezonon solvi ne-norman clustering-problemon kaj kiajn algoritmojn ni uzis por solvi ĝin. Ni rakontos al vi kiel ni aplikis sisteman, sciencan aliron por solvi la problemon, kiajn malfacilaĵojn ni renkontis kaj kiajn lecionojn ni lernis.

Ĉi tiu publikigado komencas serion de artikoloj, en kiuj ni dividas nian sukcesan sperton en efektivigado de optimumigo-algoritmoj en magazenaj procezoj. La celo de la serio de artikoloj estas konigi la spektantaron kun la specoj de optimumigo de problemoj de magazenaj operacioj, kiuj aperas en preskaŭ ajna meza kaj granda magazeno, kaj ankaŭ rakonti pri nia sperto pri solvado de tiaj problemoj kaj la malfacilaĵoj renkontitaj survoje. . La artikoloj estos utilaj al tiuj, kiuj laboras en la magazena loĝistika industrio, efektivigas WMS-sistemoj, same kiel programistoj, kiuj interesiĝas pri aplikoj de matematiko en komerco kaj optimumigo de procezoj en entrepreno.

Botelkolo en procezoj

En 2018, ni kompletigis projekton por efektivigi WMS-sistemoj ĉe la magazeno de la kompanio "Komerca Domo "LD" en Chelyabinsk. Ni efektivigis la produkton "1C-Logistiko: Warehouse Management 3" por 20 laborlokoj: funkciigistoj WMS, magazenistoj, ŝarĝaŭtoj. La averaĝa magazeno estas ĉirkaŭ 4 mil m2, la nombro da ĉeloj estas 5000 kaj la nombro da SKUoj estas 4500. La magazeno stokas pilkvalvojn de nia propra produktado de malsamaj grandecoj de 1 kg ĝis 400 kg. Inventaro en la magazeno estas stokita en aroj, ĉar necesas elekti varojn laŭ FIFO.

Dum desegnado de stokaj procezaj aŭtomatigskemoj, ni alfrontis la ekzistantan problemon de ne-optimuma stokregistro. La specifaĵoj pri stokado kaj stokado de gruoj estas tiaj, ke unu unuopova ĉelo povas nur enhavi erojn de unu aro. Produktoj alvenas al la magazeno ĉiutage kaj ĉiu alveno estas aparta aro. Entute, kiel rezulto de 1 monato da magazena operacio, 30 apartaj aroj estas kreitaj, malgraŭ tio, ke ĉiu devus esti stokita en aparta ĉelo. Ofte oni elektas produktojn ne en tutaj paletoj, sed en pecoj, kaj kiel rezulto, en la zono de elekto de pecoj en multaj ĉeloj oni observas la jenan bildon: en ĉelo kun volumeno de pli ol 1 m3 estas pluraj pecoj de gruoj, kiuj okupas malpli ol 5-10% de la ĉela volumo.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno Figo 1. Foto de pluraj varoj en ĉelo

Estas klare, ke stoka kapacito ne estas uzata optimume. Por imagi la skalon de la katastrofo, mi povas doni ciferojn: averaĝe estas de 1 ĝis 3 ĉeloj de tiaj ĉeloj kun volumeno de pli ol 100 m300 kun "minuskulaj" ekvilibroj dum malsamaj periodoj de la funkciado de la magazeno. Ĉar la magazeno estas relative malgranda, dum la magazenaj okupataj sezonoj ĉi tiu faktoro fariĝas "botelkolo" kaj tre malrapidigas stokajn procezojn.

Problema solvo ideo

Ekestis ideo: aroj da restaĵoj kun la plej proksimaj datoj devus esti reduktitaj al unu sola aro, kaj tiaj restaĵoj kun unuigita aro devas esti metitaj kompakte kune en unu ĉelon, aŭ en pluraj, se ne estas sufiĉe da spaco en unu por akomodi la. tuta kvanto da restaĵoj.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno
Fig.2. Skemo por kunpremi restaĵojn en ĉeloj

Ĉi tio ebligas al vi signife redukti la okupatan stokejon, kiu estos uzata por novaj varoj metitaj. En situacio, kie stokkapacito estas troŝarĝita, tia mezuro estas ekstreme necesa, alie eble simple ne estos sufiĉe libera spaco por gastigi novajn varojn, kio kondukos al halto en la stokejo kaj replenigo procezoj. Antaŭe antaŭ efektivigo WMS-sistemoj faris ĉi tiun operacion permane, kio estis neefika, ĉar la procezo de serĉado de taŭgaj restaĵoj en la ĉeloj estis sufiĉe longa. Nun, kun la enkonduko de WMS-sistemo, ni decidis aŭtomatigi la procezon, akceli ĝin kaj igi ĝin inteligenta.

La procezo de solvado de tia problemo estas dividita en 2 etapoj:

  • ĉe la unua etapo ni trovas grupojn de aroj proksimaj en dato por kunpremado;
  • en la dua etapo, por ĉiu grupo de aroj ni kalkulas la plej kompaktan lokigon de la ceteraj varoj en la ĉeloj.

En la nuna artikolo ni koncentriĝos pri la unua etapo de la algoritmo, kaj lasos priraportadon de la dua etapo por la sekva artikolo.

Serĉu matematikan modelon de la problemo

Antaŭ ol ni sidiĝis por skribi kodon kaj reinventi nian radon, ni decidis science alproksimigi ĉi tiun problemon, nome: formuli ĝin matematike, redukti ĝin al konata diskreta optimumigo problemo kaj uzi efikajn ekzistantajn algoritmojn por solvi ĝin, aŭ preni ĉi tiujn ekzistantajn algoritmojn. kiel bazo kaj modifi ilin al la specifaĵoj de la praktika problemo solvita.

Ĉar ĝi klare sekvas el la komerca formulo de la problemo, ke ni traktas arojn, ni formulos tian problemon laŭ aroteorio.

Lasu Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno - la aro de ĉiuj aroj de la resto de certa produkto en magazeno. Lasu Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno – donita konstanta de tagoj. Lasu Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno – subaro de aroj, kie la diferenco en datoj por ĉiuj paroj de aroj en la subaro ne superas konstanton Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. Ni devas trovi la minimuman nombron da disaj subaroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, tia ke ĉiuj subaroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno kunprenite donus multajn Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno.

Alivorte, ni devas trovi grupojn aŭ aretojn de similaj partioj, kie la simileckriterio estas determinita per la konstanto Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. Ĉi tiu tasko memorigas al ni la konatan clustering-problemon. Gravas diri, ke la konsiderata problemo devias de la amasiga problemo en tio, ke nia problemo havas strikte difinitan kondiĉon por la kriterio de simileco de aretelementoj, determinita de la konstanto. Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, sed en la clustering-problemo ne ekzistas tia kondiĉo. La deklaro de la clustering-problemo kaj informoj pri ĉi tiu problemo troveblas tie.

Do, ni sukcesis formuli la problemon kaj trovi klasikan problemon kun simila formuliĝo. Nun necesas konsideri konatajn algoritmojn por solvi ĝin, por ne reinventi la radon, sed preni la plej bonajn praktikojn kaj apliki ilin. Por solvi la clustering-problemon, ni konsideris la plej popularajn algoritmojn, nome: Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno- signifas Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno-means, algoritmo por identigi koneksajn komponantojn, minimuma spanning-arba algoritmo. Priskribo kaj analizo de tiaj algoritmoj troveblas tie.

Por solvi nian problemon, clustering algoritmoj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno- signifas kaj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno-means tute ne aplikeblas, ĉar la nombro da aretoj neniam estas antaŭsciita Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno kaj tiaj algoritmoj ne enkalkulas la konstantan tagan limon. Tiaj algoritmoj estis komence forĵetitaj de konsidero.
Por solvi nian problemon, la algoritmo por identigi koneksajn komponantojn kaj la minimuman ampleksan arbo-algoritmon estas pli taŭgaj, sed, kiel montriĝis, ili ne povas esti aplikataj "fronte" al la problemo solvita kaj akiri bonan solvon. Por klarigi ĉi tion, ni konsideru la logikon de operacio de tiaj algoritmoj rilate al nia problemo.

Konsideru la grafeon Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, en kiu la verticoj estas la aro de partioj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, kaj la rando inter la verticoj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno и Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno havas pezon egalan al la diferenco de tagoj inter aroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno и Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. En la algoritmo por identigi konektitajn komponantojn, la eniga parametro estas specifita Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazenokie Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, kaj en la grafeo Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno ĉiuj randoj por kiuj la pezo estas pli granda estas forigitaj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. Nur la plej proksimaj paroj de objektoj restas ligitaj. La punkto de la algoritmo estas elekti tian valoron Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, en kiu la grafeo "disfalas" en plurajn ligitajn komponentojn, kie la partioj apartenantaj al tiuj komponentoj kontentigos nian simileckriterion, determinitan per la konstanto Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. La rezultaj komponentoj estas aretoj.

La minimuma arba algoritmo unue konstruas sur grafeo Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno minimuma ampleksa arbo, kaj tiam sinsekve forigas randojn kun la plej alta pezo ĝis la grafeo "disfalas" en plurajn ligitajn komponentojn, kie la partioj apartenantaj al tiuj komponentoj ankaŭ kontentigos nian simileckriterion. La rezultaj komponantoj estos aretoj.

Kiam oni uzas tiajn algoritmojn por solvi la konsideran problemon, povas aperi situacio kiel en Figuro 3.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno
Fig. 3. Apliko de clustering-algoritmoj al la problemo solvita

Ni diru, ke nia konstanta por la diferenco inter battaj tagoj estas 20 tagoj. Grafiko Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno estis prezentita en spaca formo por facileco de vida percepto. Ambaŭ algoritmoj produktis 3-grupon solvon, kiu povas esti facile plibonigita kombinante la arojn metitaj en apartaj aretoj inter si! Estas evidente, ke tiaj algoritmoj devas esti modifitaj por konveni al la specifaĵoj de la problemo solvita, kaj ilia aplikado en ĝia pura formo al la solvo de nia problemo donos malbonajn rezultojn.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno
Do, antaŭ ol ni komencis verki kodon por grafikaj algoritmoj modifitaj por nia tasko kaj reinventi nian propran biciklon (en kies siluetoj ni jam povis distingi la konturojn de kvadrataj radoj), ni denove decidis science trakti tian problemon, nome: provu redukti ĝin al alia diskreta problemoptimumigo, kun la espero ke ekzistantaj algoritmoj por solvi ĝin povas esti aplikataj sen modifoj.

Alia serĉo de simila klasika problemo sukcesis! Ni sukcesis trovi diskretan optimumigan problemon, kies formuliĝo koincidas 1 en 1 kun la formuliĝo de nia problemo. Ĉi tiu tasko montriĝis starigis kovran problemon. Ni prezentu la formulon de la problemo rilate al niaj specifaĵoj.

Estas finia aro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno kaj familio Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de ĉiuj ĝiaj disaj subaroj de partioj, tia ke la diferenco en datoj por ĉiuj paroj de partioj de ĉiu subaro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de la familio Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno ne superas konstantojn Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno. Kovaĵo nomiĝas familio Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de la plej malgranda potenco, al kies elementoj apartenas Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno, tia ke la kuniĝo de aroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de la familio Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno devus doni la aron de ĉiuj partioj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno.

Detala analizo de ĉi tiu problemo troveblas tie и tie. Aliaj opcioj por la praktika apliko de la kovra problemo kaj ĝiaj modifoj troveblas tie.

Algoritmo por solvi la problemon

Ni decidis pri la matematika modelo de la solvota problemo. Nun ni rigardu la algoritmon por solvi ĝin. Subaroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de la familio Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno facile troveblas per la sekva proceduro.

  1. Aranĝu arojn el aro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno en malkreskanta ordo de iliaj datoj.
  2. Trovu la minimumajn kaj maksimumajn ardatojn.
  3. Por ĉiu tago Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno de la minimuma dato ĝis la maksimumo, trovu ĉiujn arojn, kies datoj diferencas Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno ne pli ol Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno (do la valoro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno Estas pli bone preni la paran nombron).

Logiko de la proceduro por formi familion de aroj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno ĉe Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno tagoj estas prezentita en Figuro 4.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno
Fig.4. Formado de subaroj de partioj

Ĉi tiu proceduro ne estas necesa por ĉiuj Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno trairu ĉiujn aliajn arojn kaj kontrolu la diferencon en iliaj datoj, aŭ de la nuna valoro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno movu maldekstren aŭ dekstren ĝis vi trovos aron, kies dato estas malsama al Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno je pli ol duono de la valoro de la konstanto. Ĉiuj postaj elementoj, moviĝante kaj dekstren kaj maldekstren, ne estos interesaj por ni, ĉar por ili la diferenco en tagoj nur pliiĝos, ĉar la elementoj en la tabelo estis komence ordigitaj. Ĉi tiu aliro signife ŝparos tempon kiam la nombro da partioj kaj la disvastiĝo de iliaj datoj estas signife grandaj.

La aro-kovranta problemo estas Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno-malfacila, kio signifas, ke ne ekzistas rapida (kun operacia tempo egala al polinomo de la eniga datumo) kaj preciza algoritmo por solvi ĝin. Tial, por solvi la problemon pri aro, oni elektis rapidan avidan algoritmon, kiu, kompreneble, ne estas preciza, sed havas la jenajn avantaĝojn:

  • Por malgrand-grandaj problemoj (kaj ĉi tio estas ĝuste nia kazo), ĝi kalkulas solvojn, kiuj estas sufiĉe proksimaj al la optimumo. Ĉar la grandeco de la problemo pliiĝas, la kvalito de la solvo malboniĝas, sed ankoraŭ sufiĉe malrapide;
  • Tre facile efektivigi;
  • Rapida, ĉar ĝia rultempa takso estas Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno.

La avida algoritmo elektas arojn surbaze de la sekva regulo: en ĉiu stadio, aro estas elektita kiu kovras la maksimuman nombron da elementoj ankoraŭ ne kovritaj. Detala priskribo de la algoritmo kaj ĝia pseŭdokodo troveblas tie.

Komparo de la precizeco de tia avida algoritmo en testdatenoj de la problemo estanta solvita kun aliaj konataj algoritmoj, kiel ekzemple la probabilisma avida algoritmo, la formikkolonia algoritmo, ktp., ne estis farita. La rezultoj de komparado de tiaj algoritmoj sur generitaj hazardaj datenoj troveblas ĉe la laborejo.

Efektivigo kaj efektivigo de la algoritmo

Ĉi tiu algoritmo estis efektivigita en la lingvo kaj estis inkludita en ekstera pretigo nomita "Residue Compression" al kiu estis ligita WMS-sistemo. Ni ne efektivigis la algoritmon en la lingvo C ++ kaj uzu ĝin de ekstera Denaska komponanto, kio estus pli ĝusta, ĉar la rapideco de la kodo estas pli malalta C ++ fojojn kaj en kelkaj ekzemploj eĉ dekoble pli rapide ol la rapideco de simila kodo sur . Sur la lango La algoritmo estis efektivigita por ŝpari disvolvan tempon kaj facilecon de senararigado ĉe la produktadbazo de la kliento. La rezulto de la algoritmo estas prezentita en Figuro 5.

Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno
Fig.5. Pretigo por "kunpremi" restaĵojn

Figuro 5 montras, ke en la specifita stokejo, la nunaj ekvilibroj de varoj en stokaj ĉeloj estas dividitaj en aretojn, ene de kiuj la datoj de la varoj diferencas unu de la alia je ne pli ol 30 tagoj. Ĉar la kliento produktas kaj stokas metalajn globvalvojn en la magazeno, kies bretdaŭro estas kalkulita en jaroj, tia datdiferenco povas esti neglektita. Notu ke tia prilaborado estas nuntempe uzata sisteme en produktado, kaj funkciigistoj WMS konfirmi la bonan kvaliton de partia amasiĝo.

Konkludoj kaj daŭrigo

La ĉefa sperto, kiun ni akiris de solvado de tia praktika problemo, estas konfirmo de la efikeco de uzado de la paradigmo: matematiko. problemo deklaro Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno fama mato. modelo Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno fama algoritmo Diskreta matematiko dum efektivigado de WMS-sistemo: amasiĝo de aroj de varoj en magazeno algoritmo konsiderante la specifaĵoj de la problemo. Diskreta optimumigo ekzistas de pli ol 300 jaroj, kaj dum ĉi tiu tempo homoj sukcesis konsideri multajn problemojn kaj amasigi multan sperton pri solvado de ili. Antaŭ ĉio, estas pli konsilinde turni sin al ĉi tiu sperto, kaj nur tiam komenci reinventi vian radon.

En la sekva artikolo ni daŭrigos la rakonton pri optimumigo-algoritmoj kaj rigardos la plej interesan kaj multe pli kompleksan: algoritmon por optimuma "kunpremo" de ĉelaj restaĵoj, kiu uzas datumojn ricevitajn de la grupa algoritmo kiel enigo.

Preparis la artikolon
Roman Shangin, programisto de la projektsekcio,
Unua BIT-firmao, Chelyabinsk

fonto: www.habr.com

Aldoni komenton