Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

În acest articol, vom vorbi despre cum am rezolvat problema lipsei de celule libere în depozit și despre dezvoltarea unui algoritm de optimizare discretă pentru a aborda această problemă. Vă vom spune cum am „construit” modelul matematic al problemei de optimizare și despre dificultățile neașteptate pe care le-am întâmpinat în procesarea datelor de intrare pentru algoritm.

Dacă sunteți interesat de aplicațiile matematicii în afaceri și nu vă temeți de transformări identice complexe ale formulelor la nivelul clasei a V-a, atunci bun venit sub rând!

Articolul va fi util celor care implementează sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.Partea introductivă

Această publicație continuă seria de articole în care ne împărtășim experiența de succes în implementarea algoritmilor de optimizare în procesele de depozit.

Este descrisă specificitatea depozitului în care am implementat

În articolul anterior -sistemul, iar de asemenea, se discută de ce a fost necesar să abordăm problema clusterizării loturilor de stocuri în cadrul implementării sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.-sistemului și cum am realizat acest lucru. sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.Când am terminat de scris articolul despre algoritmii de optimizare, a rezultat unul foarte extins, astfel încât materialul acumulat a fost împărțit în 2 părți:

În prima parte (acest articol) vom explica cum am „construit” modelul matematic al problemei și despre dificultățile importante pe care le-am întâmpinat în procesarea și transformarea datelor de intrare pentru algoritm.

  • În a doua parte, vom examina în detaliu implementarea algoritmului în limbajul
  • , vom efectua un experiment computațional și vom rezuma experiența pe care am obținut-o în timpul implementării acestor „tehnologii inteligente” în procesele de afaceri ale clientului. C++Cum să citiți articolul. Dacă ați citit articolul anterior, puteți trece direct la capitolul „Prezentarea soluțiilor existente”, dacă nu, descrierea problemei abordate este în spoilerul de mai jos.

Descrierea problemei abordate în depozitul clientului

Punctul critic în procesele

În 2018, am realizat un proiect de implementare

În 2018 am realizat un proiect de implementare sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.-sistemele la depozitul «Casa de Comerț «LD» din orașul Chelyabinsk. Am implementat produsul «1C-Logistica: Managementul depozitului 3» pe 20 de puncte de lucru: operatori, depozitari, șoferi de stivuitoare. sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii., depozitar. Depozitul are o dimensiune medie de aproximativ 4.000 m2, cu 5.000 de celule și un număr de SKU de 4.500. În depozit sunt păstrate clape sferice de producție proprie, de diferite dimensiuni, între 1 kg și 400 kg. Stocurile sunt păstrate pe loturi, deoarece există necesitatea de a selecta produsele conform principiului FIFO.

În timpul proiectării schemelor de automatizare a proceselor de depozitare, ne-am confruntat cu problema existentă a stocării neoptime. Specificitatea stocării și aranjării clapelor este că într-o celulă de depozitare poate fi păstrat doar un singur tip de lot (vezi fig. 1). Produsele sosesc în depozit zilnic, iar fiecare sosire reprezintă un lot separat. Astfel, în urma unei luni de activitate a depozitului, se formează 30 de loturi separate, fiecare fiind necesar să fie stocată în celule separate. Produsele sunt adesea selectate nu pe palete întregi, ci bucată cu bucată, iar în zona de selecție frecventă se observă adesea o situație precum: într-o celulă cu un volum de peste 1m3 se află câteva unități de cliape, care ocupă mai puțin de 5-10% din volumul celulei.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 1. Fotografie cu câteva unități într-o celulă

Se observă o utilizare neoptimizată a capacităților de depozitare. Pentru a ilustra amploarea problemei, pot oferi cifre: în medie, există între 100 și 300 de celule cu un volum de peste 1m3, având «rezerve minuscule» în diferite perioade de funcționare a depozitului. Deoarece depozitul este relativ mic, în sezoanele aglomerate, acest factor devine un „gât de sticlă” care încetinește semnificativ procesele de primire și expediere.

Ideea soluționării problemei

A apărut ideea: loturile de rezerve cu date de expirare apropiate să fie consolidate într-un singur lot unificat, iar aceste rezerve cu lot uniformizat să fie plasate compact împreună într-o celulă sau în mai multe, dacă într-una nu este suficient loc pentru a plasa întreaga cantitate de rezerve. Un exemplu de astfel de „compactare” este ilustrat în figura 2.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 2. Schița compactării rezervei în celule

Aceasta permite reducerea semnificativă a spațiului de depozitare ocupat, care va fi utilizat pentru noul stoc de produse. În situația unei suprasarcini a capacităților de depozitare, această măsură devine extrem de necesară, altfel spațiul liber pentru stocarea de noi produse poate pur și simplu să nu fie suficient, ceea ce va duce la blocarea proceselor de stocare și alimentare și, prin urmare, la blocarea primirii și livrării. Înainte de implementarea sistemului WMS, această operațiune era efectuată manual, ceea ce era ineficient, deoarece procesul de căutare a stocurilor corespunzătoare în celule era destul de lung. Acum, cu implementarea sistemului WMS, am decis să automatizăm procesul, să-l accelerăm și să-l facem mai inteligent.

Procesul de rezolvare a acestei sarcini este împărțit în 2 etape:

  • în prima etapă, găsim grupuri de loturi apropiate ca dată pentru comprimare (această sarcină este dedicată) articolul anterior);
  • în a doua etapă, pentru fiecare grup de loturi, calculăm aranjamentul cel mai compact al stocurilor în celule.

În acest articol ne vom concentra asupra celei de-a doua etape a algoritmului.

Prezentarea soluțiilor existente

Înainte de a trece la descrierea algoritmilor pe care i-am dezvoltat, merită să facem o scurtă prezentare a sistemelor deja existente pe piață sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii., care implementează o astfel de funcționalitate de comprimare optimă.

În primul rând, trebuie menționat produsul „1C: Întreprindere 8. WMS Logistică. Managementul depozitului 4”, care aparține și este distribuit de firma 1C și face parte din a patra generație sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.-sisteme, dezvoltate de compania AXELOT. În acest sistem este declarat funcționalitatea de comprimare, care este destinată unirii stocurilor disparate de produse într-o celulă comună. Trebuie menționat că funcționalitatea de comprimare dintr-un astfel de sistem include și alte posibilități, de exemplu, corectarea plasării produselor în celule conform claselor lor ABC, dar nu ne vom opri asupra lor.

Dacă analizăm codul sistemului „1C: Întreprindere 8. WMS Logistică. Managementul depozitului 4” (care, în această parte a funcționalității, este deschis), putem concluziona următoarele. Algoritmul de compresie a stocurilor implementează o logică liniară destul de primitivă și nu poate fi vorba de o compresie „optimă”. Firește, acesta nu preconizează clusterizarea loturilor. Mai mulți clienți care au implementat un astfel de sistem s-au plâns de rezultatele planificării compresiei. De exemplu, în practică, adesea se întâmpla ca 100 de unități de stoc dintr-un loc să fie planificate pentru a fi mutate într-un alt loc unde se află o unitate de produs, deși ar fi fost optim, din punct de vedere al timpului, să se facă invers.

Funcționalitatea de compresie a stocurilor de produse în locuri este, de asemenea, anunțată în multe sisteme WMS, care lucrează în domeniul logisticii de depozit sau de producție, precum și programatorilor care sunt interesați de aplicațiile matematicii în afaceri și de optimizarea proceselor în cadrul întreprinderii.-sisteme străine, dar, din păcate, nu avem recenzii reale despre eficiența funcționării algoritmilor (aceasta fiind un secret comercial), nici informații despre complexitatea logicii acestora (software proprietar cu cod închis), așa că nu putem judeca.

Căutarea unui model matematic al problemei

Pentru a proiecta algoritmi de calitate pentru rezolvarea problemei, este necesar mai întâi să formulăm clar această problemă din punct de vedere matematic, ceea ce vom face.

Există numeroase locuri Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), în care se află stocurile unor produse. Mai departe, vom numi aceste locuri celule-donatoare. Să notăm Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) volumul produsului aflat în celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)$.

Este important de menționat că în procedura de compresie poate participa doar un singur produs dintr-un lot, sau mai multe loturi, unite anterior într-un cluster (citește articolul anterior), ceea ce se datorează specificului depozitării și aranjării produselor. Pentru produse diferite sau pentru diferite clustere de loturi, ar trebui să se lanseze proceduri separate de compresie.

Există numeroase locuri Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), în care pot fi potențial plasate stocuri din celule-donatoare. Aceste celule le vom numi mai departe celule-contoare. Acestea pot fi atât celule libere din depozit, cât și celule-donatoare din mulțime Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Întotdeauna mulțimea Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este un subset Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1).

Pentru fiecare celulă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) din mulțime Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) sunt stabilite restricții privind capacitatea Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), măsurate în dm3. Un dm3 reprezintă un cub cu laturile de 10 cm. Produsele stocate în magazie sunt destul de mari, așa că, în acest caz, o astfel de discretizare este suficientă.

Este dată o matrice a distanțelor minime Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în metri între fiecare pereche de celule Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), unde Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) aparțin mulțimilor Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) corespunzător.

Să notăm Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) „costurile” pentru mutarea produsului dintr-o celulăMatematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Să notăm Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) „costurile” pentru alegerea containerului Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) pentru a muta în el resturile din alte celule. Cum și în ce unități de măsură vor fi calculate valorile Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) vom analiza mai departe (vezi secțiunea pregătirea datelor de intrare), acum este suficient să spunem că aceste magnitudini vor fi direct proporționale cu valorile Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) corespunzător.

Să notăm prin Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) o variabilă care ia valoarea 1 dacă resturile din celulă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) sunt mutate în container Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), și 0 în caz contrar. Să notăm prin Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) o variabilă care ia valoarea 1 dacă containerul Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) conține resturi de produs, și 0 în caz contrar.

Problema se formulează astfel: este necesar să găsim o mulțime de containere Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și astfel „să atașăm” celulele-donatoare la celulele-container, pentru a minimiza funcția

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

sub restricții

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Astfel, în timpul calculării soluției problemei, ne străduim:

  • în primul rând, să economisim capacitățile de depozitare;
  • în al doilea rând, să economisim timpul lucrătorilor din magazie.

Ultima restricție înseamnă că nu putem muta produsele într-un container pe care nu l-am ales și, prin urmare, nu am „purta costuri” pentru alegerea acestuia. De asemenea, această restricție înseamnă că volumul produselor mutate din celule în container nu trebuie să depășească capacitatea containerului. O soluție a problemei va fi considerată o mulțime de containere Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și modalitățile de atașare a celulelor-donatoare la containere.

Această formulare a problemei de optimizare nu este nouă și a fost studiată de mulți matematicieni încă de la începutul anilor '80 ai secolului trecut. În literatura străină există 2 probleme de optimizare cu un model matematic adecvat: Problema Localizării Facilității Capacitate de Sursă Unică și Problema Localizării Facilității Capacitate de Sursă Multiple (despre diferențele dintre probleme vom discuta mai departe). Merită menționat că în literatura de specialitate matematică formulările acestor două probleme de optimizare sunt prezentate în termeni de amplasare a unităților de producție, de unde și denumirea „Locația Facilitaților”. În mare parte este o chestiune de tradiție, deoarece pentru prima dată necesitatea de a rezolva astfel de probleme combinatorice a apărut din domeniul logisticii, în cea mai mare parte în industria militaro-economică din anii '50 ai secolului trecut. În termeni de amplasare a unităților de producție, aceste probleme sunt formulate astfel:

  • Există un număr finit de orașe unde este posibil să se amplaseze unități de producție (în continuare orașe-producători). Pentru fiecare oraș-producător sunt stabilite costurile de deschidere a unei unități și, de asemenea, restricțiile privind capacitatea de producție a unității deschise.
  • Există un număr finit de orașe unde se află de fapt clienții (în continuare orașe-clienți). Pentru fiecare astfel de oraș-client este stabilit volumul cererii pentru produs. Pentru simplificare, vom considera că produsul fabricat de unități și consumat de clienți este unul singur.
  • Pentru fiecare pereche oraș-producător și oraș-client este dată valoarea costurilor de transport pentru livrarea volumului necesar de produs de la producător la client.

Este necesar să se determine în ce orașe să se deschidă unități și cum să se aloce clienții acestor unități, astfel încât:

  • Costurile totale de deschidere a unităților și costurile de transport să fie minime;
  • Volumul cererii clienților alocați unei unități deschise să nu depășească capacitatea de producție a acestei unități.

Acum merită menționat despre singura diferență dintre aceste două probleme clasice:

  • Problema Locației Facilitaților Capacitate Unică – clientul este aprovizionat doar dintr-o singură unitate deschisă;
  • Problema Locației Facilitaților Capacitate Multi-Sursă – clientul poate fi aprovizionat din mai multe unități deschise simultan.

Această diferență între cele două probleme, la prima vedere, pare nesemnificativă, dar de fapt duce la o structură combinatorică complet diferită a acestor probleme și, drept consecință, la algoritmi complet diferiți pentru rezolvarea lor. Diferența între probleme este demonstrată în desenul de mai jos.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig.3. a) Problema Locației Facilitaților Capacitate Multi-Sursă

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig.3. b) Problema Locației Facilitaților Capacitate Unică

Ambele probleme Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)-dificile, adică nu există un algoritm exact care să rezolve o astfel de problemă în timp polinomial în funcție de dimensiunea datelor de intrare. Cu alte cuvinte, toate algoritmurile exacte pentru rezolvarea problemei vor funcționa într-un timp exponențial, deși poate mai repede decât o abordare exhaustivă. Deoarece problema Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)-dificilă, așa că ne vom concentra doar asupra euristicilor aproximative, adică algoritmi care vor calcula soluții în mod constant, foarte apropiate de cele optime și care vor funcționa destul de repede. Dacă există interes pentru astfel de probleme, atunci aici se poate găsi o bună prezentare în limba română.

Dacă facem paralela cu terminologia problemei noastre de comprimare optimă a bunurilor în celule, atunci:

  • orașele-client – sunt celulele-donatoare Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) cu bunuri rămase,
  • orașele-producătoare – sunt celulele-container Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), în care se presupune că se vor plasa bunurile rămase din alte celule,
  • costurile de transport – costul timpului Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) de depozitare pentru mutarea volumului de bunuri din celula-donator Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în celula-container Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1);
  • costurile de deschidere a întreprinderii – costurile pentru alegerea containerului Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), egale cu volumul celulei-container Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), înmulțit cu un anumit coeficient de economisire a volumelor libere (valoarea coeficientului este întotdeauna > 1) (vezi secțiunea pregătirea datelor de intrare).

După ce s-a realizat analogia cu problemele clasice cunoscute, este necesar să răspundem la o întrebare importantă, de la care depinde alegerea arhitecturii algoritmului de soluționare: este posibilă mutarea bunurilor rămase din celula-donator doar într-un singur container (Single-Source) sau este posibilă mutarea bunurilor în mai multe celule-container (Multi-Source)?

Merită menționat că, în practică, ambele formulări ale problemei există. Vom enumera toate „avantajele” și „dezavantajele” fiecărei astfel de formulări mai jos:

Varianta problemeiAvantajele varianteiDezavantajele variantei
Single-SourceOperațiile de mutare a bunurilor, calculate pentru această variantă a problemei:
  • cer mai puțin control din partea depozitarului (a luat TOT dintr-o celulă, a pus TOT în altă celulă-container), ceea ce elimină riscurile: erori la numărarea cantității de bunuri în timpul operațiunilor „a pune în celulă”; erori de introducere a cantității numărate în TSD;
  • Nu este necesar timp pentru a recalcula cantitatea de produse atunci când se efectuează operațiunile „Puneți în celulă” și introducerea lor în TSD
Multi-SourceCompresia, calculată conform acestei variante de problemă, este de obicei mai compactă cu 10-15% comparativ cu compresiile calculate conform variantei „Single-Source”. De asemenea, observăm că, cu cât numărul de stocuri în celulele-donator este mai mic, cu atât această diferență în compactitate devine mai micăOperațiile de mutare a bunurilor, calculate pentru această variantă a problemei:
  • necessită un control mai mare din partea operatorului de depozit (este necesar să se recalculeze cantitatea de produse mutate în fiecare dintre celulele-planificate-container), ceea ce elimină riscul de eroare în timpul recalculării cantității de produse și a introducerii datelor în TSD în timpul operațiunilor „Puneți în celulă”
  • Este necesar timp pentru a recalcula cantitatea de produse atunci când se efectuează operațiunile „Puneți în celulă”
  • Este necesar timp pentru „costuri indirecte” (a se opri, a se apropia de palet, a scana codul de bare al celulei-container) atunci când se efectuează operațiunile „Puneți în celulă”
  • Uneori, algoritmul poate „fragmenta” cantitatea unui palet aproape complet între un număr mare de celule-container, unde există deja produse potrivite, ceea ce, din punctul de vedere al clientului, este inacceptabil

Tabelul 1. Avantajele și dezavantajele variantelor Single-Source și Multi-Source.

Deoarece numărul avantajelor pentru varianta Single-Source este mai mare și având în vedere faptul că cu cât numărul de stocuri în celulele-donator este mai mic, cu atât diferența în gradul de compactitate a compresiei calculate conform ambelor variante de problemă este mai mică, alegerea noastră a căzut pe varianta Single-Source.

Merită menționat că soluția pentru varianta Multi-Source își găsește locul. Există o mulțime de algoritmi eficienți pentru rezolvarea sa, majoritatea dintre ei reducându-se la soluționarea unor probleme de transport. Există nu doar algoritmi eficienți, ci și eleganți, de exemplu, aici.

Pregătirea datelor de intrare

Înainte de a începe analiza și dezvoltarea algoritmului pentru rezolvarea problemei, trebuie să stabilim ce date și în ce formă le vom oferi ca intrare. Cu volumele de stocuri ale produselor în celulele-donator și capacitatea celulelor-container nu sunt probleme, deoarece acestea sunt triviale – aceste valori vor fi măsurate în m3, dar în ceea ce privește costurile pentru utilizarea celulei-container și matricea costurilor pentru mutare, lucrurile nu sunt atât de simple!

La început, să examinăm calculul costurile de mutare a bunurilor din celula-donator în celula-container. În primul rând, trebuie să stabilim în ce unități de măsură vom calcula costurile de mutare. Două dintre cele mai evidente variante sunt metri și secunde. În metri "curați", calcularea costurilor de mutare nu are sens. Să arătăm acest lucru prin exemplu. Să presupunem că celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este situată la primul nivel, celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este la 30 metri distanță și se află la al doilea nivel:

  • Mutarea din Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este mai costisitoare decât mutarea din Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), deoarece este mai ușor să coboare de la al doilea nivel (1,5-2 metri de la podea) decât să se ridice la al doilea, deși distanța parcursă va fi aceeași;
  • A muta 1 buc. de marfă din celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) va fi mai ușor decât a muta 10 buc. din aceeași marfă, deși distanța parcursă va fi aceeași.

Costurile de mutare ar trebui să fie considerate mai bine în secunde, deoarece aceasta permite luarea în considerare a diferențelor de nivel și a diferențelor cantitative de marfă mutată. Pentru a contabiliza costurile de mutare în secunde, trebuie să descompunem operațiunea de mutare în componente elementare și să măsurăm timpul necesar pentru fiecare componentă elementară.

Să presupunem că din celula Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) se mută Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) buc. de marfă în container Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Să presupunem că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este viteza medie de deplasare a lucrătorului în magazie, măsurată în m/s. Să presupunem că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) sunt vitezele medii de execuție pentru operațiunile de luat și pus, respectiv, pentru un volum de marfă egal cu 4 dm³ (volumul mediu pe care un angajat îl ia în 1 singură dată în magazie în timpul desfășurării operațiunilor). Să presupunem că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) sunt înălțimile celulelor din care se realizează operațiunile de luat și pus, respectiv. De exemplu, înălțimea medie a primului nivel (podea) este de 1 m, al doilea nivel 2 m etc. Atunci formula pentru calcularea timpului total necesar pentru desfășurarea operațiunii de mutare Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este următoarea:

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

În tabelul 2 sunt prezentate statisticile timpului de desfășurare a fiecărei operațiuni elementare, colectate de angajații magazinului, luând în considerare specificul bunurilor păstrate.

Denominația operațiuniiSimbolValoare medie
Viteza medie de deplasare a lucrătorului în magazieMatematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)1,5 m/s
Viteza medie de desfășurare a unei operațiuni de pus (pentru un volum de marfă de 4 dm³)Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)2,4 sec

Tabelul 2. Timpul mediu pentru desfășurarea operațiunilor din magazie

Am stabilit modul de calcul al costurilor de mutare. Acum este necesar să aflăm cum să calculăm costurile pentru selectarea celulei-containerAici totul este mult, mult mai complicat decât costurile de mutare, deoarece:

  • în primul rând, costurile trebuie să fie în legătură directă cu volumul celulei – același volum de stocuri mutat din celulele-donator este mai bine să fie pus într-un container mai mic decât într-un container mare, atâta vreme cât acest volum încap în ambele containere. Astfel, minimizând costurile totale de alegere a containerelor, ne străduim să economisim capacitățile de depozitare „deficitare” în zona de selecție, pentru a desfășura ulterior operațiunile de plasare a mărfurilor în celule. În figura 4 sunt prezentate opțiunile de mutare a stocurilor în containere mari și mici și consecințele acestor opțiuni de mutare în executarea operațiunilor de depozitare ulterioare.
  • în al doilea rând, deoarece în soluția problemei de bază trebuie să minimizăm tocmai costurile totale, adică suma atât a costurilor de mutare, cât și a costurilor de alegere a containerelor, volumul celulelor în metri cubi trebuie cumva corelat cu secunde, ceea ce nu este deloc trivial.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 4. Opțiunile de mutare a stocurilor în containere cu capacități diferite.

În figura 4, în roșu este reprezentat volumul stocurilor care nu mai încap în container în etapa a doua de plasare a mărfurilor ulterioare.

Pentru a corela metri cubi de costuri pentru alegerea containerului cu secunde de costuri de mutare, următoarele cerințe pentru soluțiile calculate ale problemei vor fi utile:

  • Este necesar ca stocurile din celula-donator să fie mutate în celula-container în orice caz, dacă acest lucru reduce numărul total de celule-container în care se află produsul.
  • Trebuie respectat un echilibru între volumele containerelor și costurile de timp pentru mutare: de exemplu, dacă în noua variantă a soluției problemei, comparativ cu varianta anterioară, câștigul în volum este mare, iar pierderea în costurile de timp este mică, atunci trebuie aleasă noua variantă.

Să începem cu ultima cerință. Pentru a concretiza cuvântul ambiguu „echilibru”, am realizat un sondaj printre angajații depozitului pentru a determina următoarele. Să presupunem că există o celulă-container cu un volum Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), în care este planificată mutarea stocurilor din celule-donator și timpul total al acestei mutări este egal cu Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Să presupunem că există câteva opțiuni alternative de plasare a aceleași cantități de bunuri din aceleași celule donor în alte containere, unde fiecare plasare are propriile evaluări. Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), unde Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)<Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), unde Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)>Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1).

Se pune întrebarea: care este câștigul minim în volum Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) acceptabil, având în vedere o pierdere dată de timp? Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)? Поясним на примере. Изначально остатки полагалось размещать в контейнер объема 1000 дм3 (1 м3) и время на перемещение составило 70 секунд. Есть вариант размещения остатков в другой контейнер объема 500 дм3 и временем 130 секунд. Вопрос: готовы ли мы тратить еще дополнительные 60 секунд времени кладовщика на выполнение перемещения для того, чтобы сэкономить 500 дм3 свободного объема? По результатам опроса сотрудников склада была составлена следующая диаграмма.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 5. Diagrama relației dintre economia minimă acceptabilă a volumului și creșterea diferenței de timp de execuție a operațiunii.

Cu alte cuvinte, dacă costurile suplimentare de timp se ridică la 40 de secunde, suntem dispuși să le cheltuim doar atunci când câștigul în volum este de cel puțin 500 dm3. Deși există o mică non-liniaritate în relație, pentru simplificarea calculilor viitoare, vom considera că relația dintre variabile este liniară și este descrisă de inegalitate.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

În figura de mai jos, vom analiza următoarele modalități de plasare a bunurilor în containere.

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 6. Opțiunea (a): 2 containere, volum total 400 dm3, timp total 150 sec.
Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 6. Opțiunea (b): 2 containere, volum total 600 dm3, timp total 190 sec.
Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)
Fig. 6. Opțiunea (c): 1 container, volum total 400 dm3, timp total 200 sec.

Opțiunea (a) de alegere a containerelor este mai preferabilă decât opțiunea inițială, deoarece se îndeplinește inegalitatea: (800-400)/10>=150-120 ceea ce implică 40 >= 30. Opțiunea (b) este mai puțin preferabilă decât opțiunea inițială, deoarece inegalitatea nu se îndeplinește: (800-600)/10>=190-150 ceea ce implică 20 >= 40. Însă opțiunea (c) nu se încadrează în această logică! Să analizăm această opțiune în detaliu. Pe de o parte, inegalitatea (800-400)/10>=200-120, ceea ce înseamnă că inegalitatea 40 >= 80 nu se îndeplinește, ceea ce indică faptul că câștigul în volum nu merită o pierdere atât de mare în timp.

Dar, pe de altă parte, în această opțiune (c) nu doar reducem volumul total ocupat, ci și diminuăm numărul de celule ocupate, ceea ce este primul din cele două cerințe importante pentru soluțiile calculate la problemele enumerate mai sus. Este evident că, pentru ca această cerință să înceapă să fie îndeplinită, trebuie să adăugăm o anumită constantă pozitivă în partea stângă a inegalității. Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), unde această constantă trebuie adăugată doar atunci când numărul de containere se diminuează. Să ne amintim că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) — este o variabilă care este egală cu 1 atunci când containerul Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) este ales și 0 când acesta nu este. Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) nu este selectat. Să definim, Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) – un număr mare de containere în soluția inițială și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) – un număr mare de containere în noua soluție. În forma sa generală, noua inegalitate va arăta astfel:

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Transformând inegalitatea de mai sus, obținem

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Având în vedere acest lucru, avem formula pentru calcularea costului total Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) unei soluții alternative la problemă:

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Dar acum apare întrebarea: ce valoare ar trebui să aibă o astfel de constantă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)? Очевидно, что ее значение должно быть достаточно большим, для того, чтобы всегда выполнялось первое требование к решениям задачи. Можно конечно взять значение константы равное 103 или 106, но хотелось бы избежать таких «magic numbers». Если будем рассматривать специфику выполнения складских операций, мы можем вычислить несколько вполне обоснованных числовых оценок величины такой константы.

Să presupunem că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) – distanța maximă între celulele depozitului dintr-o zonă ABC, care este în cazul nostru de 100 m. Să presupunem că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) – volumul maxim al celulei-container din depozit, care este în cazul nostru de 1000 dm3.

Prima metodă de calculare a valorii Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Să analizăm o situație în care există 2 containere pe primul nivel, în care se află deja fizic bunuri, adică sunt ele însele celule-donatoare, iar costurile pentru mutarea bunurilor în aceleași celule sunt, evident, egale cu 0. Este necesar să găsim o valoare pentru constantă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), pentru care ar fi avantajos să se mute întotdeauna resturile din container 1 în container 2. Înlocuind valorile Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) și Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) în inegalitatea menționată mai sus, obținem:

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

din care reiese

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Înlocuind valorile timpului mediu de execuție a operațiunilor elementare în formula de mai sus, obținem

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

A doua metodă de calculare a valorii Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Să analizăm o situație în care există Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) celule-donatoare din care se plănuiește mutarea bunurilor în container 1. Să denumim Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) – distanța de la celula-donator Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) până la container 1. Există de asemenea un container 2, în care se află deja bunuri și volumul căruia permite să încapă resturile din toate Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) celulele. Pentru simplificare, să presupunem că volumul bunurilor mutate din celulele-donatoare în containere este același și egal cu Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1). Este necesar să găsim o valoare pentru constantă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), pentru care plasarea tuturor resturilor din Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) celule în container 2 ar fi întotdeauna mai avantajoasă decât plasarea acestora în diverse containere:

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Transformând inegalitatea, obținem

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Pentru a "consolida" valoarea lui Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1), vom presupune că Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) = 0. Numărul mediu de celule care participă în mod obișnuit în procedura de comprimare a resturilor în depozit este de 10. Împăcând valorile cunoscute ale mărimilor, obținem următoarea valoare a constantei

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Luăm cea mai mare valoare, calculată pentru fiecare variantă, aceasta va fi valoarea mărimii Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) pentru parametrii specificați ai depozitului. Acum, pentru a finaliza, vom scrie formula pentru calcularea costurilor totale Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1) pentru o anumită soluție acceptabilă Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1):

Matematica discretă pentru WMS: algoritmul de comprimare a produselor în celule (partea 1)

Iată acum, după toate eforturile titanice de transformare a datelor de intrare, putem spune că toate datele de intrare au fost transformate în forma necesară și sunt gata pentru utilizare în algoritmul de optimizare.

Concluzie

Așa cum arată practica, munca și importanța etapei de pregătire și transformare a datelor de intrare pentru algoritm sunt adesea subestimate. În acest articol, am dedicat o atenție deosebită acestei etape pentru a arăta că doar datele de intrare pregătite calitativ și cu discernământ pot face ca soluțiile calculate de algoritm să fie cu adevărat valoroase pentru client. Da, au fost multe concluzii de formule, dar v-am avertizat și înainte de asta 🙂

În articolul următor, în sfârșit vom ajunge la ceea ce a fost gândit în ultimele 2 publicații - algoritmul de optimizare discretă.

Articolul a fost pregătit de
Roman Shangin, programator în departamentul de proiecte,
compania Primul Bit, orașul Chelyabinsk


Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster