Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

W artykule opiszemy, jak rozwiązaliśmy problem braku wolnych miejsc na magazynie oraz jak opracowaliśmy algorytm dyskretnej optymalizacji, aby poradzić sobie z takim zadaniem. Opowiemy, jak "budowaliśmy" matematyczny model zadania optymalizacji i z jakimi trudnościami niespodziewanie się zmierzyliśmy podczas przetwarzania danych wejściowych do algorytmu.

Jeśli interesują Cię zastosowania matematyki w biznesie i nie boisz się trudnych przekształceń wzorów na poziomie 5. klasy, to serdecznie zapraszamy pod kat!

Artykuł będzie przydatny dla tych, którzy wprowadzają WMS-systemy, pracują w branży logistyki magazynowej lub produkcyjnej, a także dla programistów, którzy interesują się zastosowaniami matematyki w biznesie i optymalizacją procesów w przedsiębiorstwie.

Część wprowadzająca

Ta publikacja kontynuuje cykl artykułów, w których dzielimy się swoim udanym doświadczeniem we wdrażaniu algorytmów optymalizacji w procesy magazynowe.

W poprzedniej artykule opisano specyfikę magazynu, w którym wdrożyliśmy WMS-system, a także opowiedziano, dlaczego potrzebne było rozwiązanie problemu klasteryzacji partii pozostałych towarów podczas wdrażania WMS-systemu, i jak to zrobiliśmy.

Kiedy skończyliśmy pisać artykuł o algorytmach optymalizacji, okazał się on bardzo obszerny, dlatego postanowiliśmy podzielić zebrany materiał na 2 części:

  • W pierwszej części (ten artykuł) opowiemy, jak "budowaliśmy" matematyczny model zadania oraz z jakimi dużymi trudnościami niespodziewanie się zmierzyliśmy podczas przetwarzania i przekształcania danych wejściowych do algorytmu.
  • W drugiej części szczegółowo omówimy realizację algorytmu w języku C++, przeprowadzimy eksperyment obliczeniowy i podsumujemy doświadczenia, które zdobyliśmy podczas wdrażania takich "inteligentnych technologii" w procesy biznesowe klienta.

Jak czytać artykuł. Jeśli czytałeś poprzedni artykuł, możesz od razu przejść do rozdziału „Przegląd istniejących rozwiązań”, jeśli nie, to opis rozwiązania problemu znajduje się w spoilerze poniżej.

Opis rozwiązywanego problemu na magazynie klienta

Wąskie miejsce w procesach

W 2018 roku zrealizowaliśmy projekt wdrożenia WMS-systemu w magazynie "Dom Handlowy "LD" w Chelyabinsku. Wdrożyliśmy produkt "1C-Logistyka: Zarządzanie magazynem 3" na 20 stanowisk roboczych: operatorzy WMS, magazynierzy, kierowcy wózków widłowych. Magazyn średniej wielkości, około 4 tys. m2, liczba komórek 5000 i liczba SKU 4500. W magazynie przechowywane są kulowe zawory własnej produkcji w różnych rozmiarach, od 1 kg do 400 kg. Zapasy w magazynie są przechowywane w podziale na partie, ponieważ istnieje potrzeba selekcji towaru według FIFO.

Podczas projektowania schematów automatyzacji procesów magazynowych napotkaliśmy istniejący problem nieoptymalnego przechowywania zapasów. Specyfika przechowywania i układania zaworów jest taka, że w jednej komórce do przechowywania jednostkowego może znajdować się tylko asortyment jednej partii (patrz rys. 1). Produkty przychodzą do magazynu codziennie, a każdy przyjazd to oddzielna partia. W wyniku miesiąca pracy magazynu powstaje 30 oddzielnych partii, przy tym każda musi być przechowywana w oddzielnej komórce. Towar często jest pobierany nie w całości, a sztukami, co powoduje, że w strefie poboru jednostkowego w wielu komórkach sytuacja prezentuje się następująco: w komórce o objętości ponad 1 m3 znajduje się kilka sztuk zaworów, które zajmują mniej niż 5-10% objętości komórki.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 1. Zdjęcie kilku sztuk w komórce

Widać nieoptymalne wykorzystanie mocy magazynowych. Aby obrazować skalę problemu, przytoczę liczby: średnio takich komórek o objętości powyżej 1 m3 z 'niewielkimi' zapasami w różnych okresach pracy magazynu można naliczyć od 100 do 300 komórek. Ponieważ magazyn jest stosunkowo mały, w sezonach wzmożonej pracy to zjawisko staje się 'wąskim gardłem', co znacznie spowalnia procesy przyjęć i wydania towarów.

Pomysł rozwiązania problemu

Pojawił się pomysł: partie zapasów z najbliższymi datami sprowadzać do jednej wspólnej partii, a takie zapasy z ujednoliconą partią umieszczać kompaktowo razem w jednej komórce lub w kilku, jeśli miejsca w jednej nie będzie wystarczające na przechowanie całej ilości zapasów. Przykład takiego 'ściśnięcia' przedstawiono na rysunku 2.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 2. Schemat ściśnięcia zapasów w komórkach

To znacznie redukuje zajmowaną przestrzeń magazynową, która będzie wykorzystywana pod nowy towar. W sytuacji przeciążenia zdolności magazynowych taka miara jest absolutnie konieczna, w przeciwnym razie może zabraknąć wolnej przestrzeni na umieszczenie nowego towaru, co doprowadzi do zastoju procesów magazynowania oraz zaopatrzenia, a co za tym idzie, do zastoju przyjęć i wysyłek. Wcześniej, przed wdrożeniem systemu WMS, taką operację wykonywano ręcznie, co było mało efektywne, ponieważ proces wyszukiwania odpowiednich zapasów w komórkach był dość długi. Teraz, wraz z wdrożeniem systemu WMS, zdecydowano się zautomatyzować, przyspieszyć i uczynić go inteligentnym.

Proces rozwiązania takiego zadania dzieli się na 2 etapy:

  • na pierwszym etapie znajdujemy grupy partii bliskie pod względem daty do skompresowania (temu zadaniu poświęcone poprzedni artykuł);
  • na drugim etapie obliczamy dla każdej grupy partii maksymalnie kompaktowe rozmieszczenie zapasów towaru w komórkach.

W bieżącym artykule zatrzymamy się na drugim etapie algorytmu.

Przegląd istniejących rozwiązań

Zanim przejdziemy do opisu opracowanych przez nas algorytmów, warto przeprowadzić krótki przegląd systemów już istniejących na rynku, WMSw których zrealizowano podobną funkcjonalność optymalnego skompresowania.

Na pierwszym miejscu należy zauważyć produkt „1C: Przedsiębiorstwo 8. WMS Logistyka. Zarządzanie magazynem 4”, który należy do firmy 1C i jest dystrybuowany przez tę firmę, i należy do czwartej generacji WMS-systemów opracowanych przez firmę AXELOT. W tym systemie zgłoszono funkcjonalność kompresji, mającą na celu łączenie rozproszonych zapasów towarów w jednej wspólnej komórce. Należy dodać, że funkcjonalność kompresji w takim systemie obejmuje także inne możliwości, na przykład poprawę rozmieszczenia towarów w komórkach zgodnie z ich klasami ABC, ale na tym się nie zatrzymamy.

Analizując kod systemu "1C: Przedsiębiorstwo 8. WMS Logistyka. Zarządzanie magazynem 4" (który w tej części funkcjonalności jest otwarty), można wyciągnąć następujące wnioski. Algorytm kompresji zapasów wdraża dość prymitywną liniową logikę, a o jakiejkolwiek "optymalnej" kompresji nie może być mowy. Oczywiście, nie przewiduje on klastrowania partii. Kilku klientów, u których taki system został wdrożony, skarżyło się na wyniki planowania kompresji. Na przykład, w praktyce często miała miejsce taka sytuacja: 100 szt. zapasów towaru z jednej komórki planuje się przenieść do innej komórki, gdzie leży 1 szt. towaru, chociaż optymalnie z punktu widzenia czasu lepiej byłoby zrobić odwrotnie.

Funkcjonalność kompresji zapasów towarów w komórkach jest również zgłaszana w wielu zagranicznych WMS-systemach, ale niestety nie mamy ani rzeczywistych recenzji dotyczących efektywności pracy algorytmów (to jest tajemnica handlowa), ani tym bardziej pojęcia o głębokości ich logiki (oprogramowanie własnościowe z zamkniętym kodem), więc nie możemy ocenić.

Poszukiwanie modelu matematycznego zadania

Aby zaprojektować wysokiej jakości algorytmy do rozwiązania zadania, najpierw należy to zadanie jasno matematycznie sformułować, co uczynimy.

Istnieje wiele komórek Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), w których znajdują się zapasy pewnego towaru. Takie komórki będziemy dalej nazywać komórkami-dawcami. Oznaczmy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) objętość towaru znajdującego się w komórce Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)$.

Ważne jest, aby powiedzieć, że w procedurze kompresji może brać udział tylko jeden towar z jednej partii lub kilku partii, które wcześniej zostały połączone w klaster (czytaj poprzedni artykuł), co wynika ze specyfiki przechowywania i układania towarów. Dla różnych towarów lub różnych klastrów partii powinna być uruchamiana osobna procedura kompresji.

Istnieje wiele komórek Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), do których potencjalnie mogą być przeniesione zapasy z komórek-dawców. Takie komórki będziemy dalej nazywać komórkami-pojemnikami. Mogą to być zarówno wolne komórki w magazynie, jak i komórki-dawcy z zbioru Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Zawsze zbiór Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) jest podzbiorem Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1).

Dla każdej komórki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) z zbioru Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) ustawione są ograniczenia dotyczące pojemności Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), mierzone w dm3. Jeden dm3 to sześcian o bokach 10 cm. Produkty przechowywane w magazynie są wystarczająco duże, dlatego w tym przypadku taka dyskretyzacja jest jak najbardziej wystarczająca.

Podano macierz najkrótszych odległości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) w metrach między każdą parą komórek Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), gdzie Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) należą do zbiorów Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) odpowiednio.

Oznaczmy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) „koszty” przemieszczenia towaru z komórkiMatematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do komórki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Oznaczmy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) „koszty” wyboru kontenera Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do przemieszczenia w niego odpadów z innych komórek. Jak dokładnie i w jakich jednostkach miar będą obliczane wartości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) przyjrzymy się dalej (zob. rozdział przygotowanie danych wejściowych), teraz wystarczy powiedzieć, że takie wielkości będą wprost proporcjonalne do wielkości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) odpowiednio.

Oznaczmy przez Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) zmienną przyjmującą wartość 1, jeśli odpady z komórki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) są przemieszczenia do kontenera Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), i 0 w przeciwnym razie. Oznaczmy przez Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) zmienną przyjmującą wartość 1, jeśli kontener Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) zawiera odpady towarów, i 0 w przeciwnym razie.

Zadanie jest sformułowane w ten sposób: należy znaleźć taki zbiór kontenerów Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i w ten sposób „przypiąć” komórki-dawcy do komórek-kontenerów, aby zminimalizować funkcję

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

przy ograniczeniach

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Łącznie w trakcie obliczania rozwiązania zadania dążymy do:

  • po pierwsze, oszczędzania przestrzeni magazynowej;
  • po drugie, oszczędzania czasu magazynierów.

Ostatnie ograniczenie oznacza, że nie możemy przemieszczać towarów do kontenera, którego nie wybraliśmy, a tym samym nie „ponieśliśmy kosztów” jego wyboru. To ograniczenie oznacza również, że objętość przemieszczanych towarów z komórek do kontenera nie powinna przekraczać pojemności kontenera. Pod rozwiązaniem zadania rozumiemy zbiór kontenerów Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i sposoby przypinania komórek-dawców do kontenerów.

Takie sformułowanie zadania optymalizacji nie jest nowe i było badane przez wielu matematyków już od początku lat 80. ubiegłego wieku. W literaturze zagranicznej istnieją 2 zadania optymalizacji z odpowiednim modelem matematycznym: Problem lokalizacji obiektów z jednego źródła o ograniczonej pojemności i Problem lokalizacji obiektów z wielu źródeł o ograniczonej pojemności (o różnicach zadań porozmawiamy później). Warto zauważyć, że w literaturze matematycznej sformułowania tych dwóch zadań optymalizacji wyrażane są w terminach rozmieszczenia przedsiębiorstw na terenie, stąd nazwa „Facility Location”. W większości to jest ukłon w stronę tradycji, ponieważ po raz pierwszy potrzeba rozwiązania takich zadań kombinatorycznych pojawiła się w dziedzinie logistyki, głównie w przemyśle wojskowym w latach 50. XX wieku. W terminach rozmieszczenia przedsiębiorstw takie zadania formułuje się w ten sposób:

  • Istnieje skończona liczba miast, w których potencjalnie można ulokować zakłady produkcyjne (dalej miasta-producentów). Dla każdego miasta-producenta określono koszty otwarcia zakładu oraz ograniczenia mocy produkcyjnych otwieranego w nim przedsiębiorstwa.
  • Istnieje skończona liczba miast, w których faktycznie znajdują się klienci (dalej miasta-klienci). Dla każdego takiego miasta-klienta określono wolumen popytu na produkty. Dla uproszczenia przyjmijmy, że produkt wytwarzany przez zakłady i konsumowany przez klientów jest jeden.
  • Dla każdej pary miasto-producent i miasto-klient określono wysokość kosztów transportu związanych z dostawą wymaganego wolumenu produktów od producenta do klienta.

Należy znaleźć, w jakich miastach otworzyć zakłady oraz jak przypisać klientów do tych zakładów, aby:

  • Suma kosztów otwarcia zakładów i kosztów transportu była minimalna;
  • Wolumen popytu klientów przypisanych do jakiegokolwiek otwartego zakładu nie przekraczał możliwości produkcyjnych tego zakładu.

Teraz warto powiedzieć o jedynej różnicy między tymi dwoma klasycznymi zadaniami:

  • Single-Source Capacitated Facility Location Problem – klient zaopatrywany jest tylko z jednego otwartego zakładu;
  • Multi-Source Capacitated Facility Location Problem – klient może być zaopatrywany z kilku otwartych zakładów jednocześnie.

Różnica między tymi dwoma zadaniami na pierwszy rzut oka wydaje się znikoma, ale w rzeczywistości prowadzi do zupełnie różnej struktury kombinatorycznej takich zadań i, w konsekwencji, do zupełnie różnych algorytmów ich rozwiązania. Różnice między zadaniami zaprezentowane są na poniższym rysunku.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys.3. a) Multi-Source Capacitated Facility Location Problem

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys.3. b) Single-Source Capacitated Facility Location Problem

Oba zadania Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)-trudne, tzn. nie ma dokładnego algorytmu, który w czasie wielomianowym względem rozmiaru danych wejściowych rozwiązałby takie zadanie. Mówiąc prościej, wszystkie dokładne algorytmy do rozwiązania tego problemu będą działać w czasie eksponencjalnym, chociaż być może szybciej niż pełne przeszukiwanie wszystkich możliwości. Ponieważ problem Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)-jest trudny, więc będziemy rozważać tylko przybliżone heurystyki, czyli algorytmy, które będą obliczać stabilne rozwiązania bardzo bliskie optymalnym i będą działać wystarczająco szybko. Jeśli pojawi się zainteresowanie takimi zadaniami, to tutaj można znaleźć dobry przegląd w języku rosyjskim.

Jeśli odniesiemy to do terminologii naszego zadania optymalnego pakowania towarów w komórkach, to:

  • miasta-klienci – to komórki-dawcy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) z pozostałościami towaru,
  • miasta-producenci – komórki-pojemniki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), do których planowane jest umieszczenie pozostałości z innych komórek,
  • koszty transportu – koszty czasu Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) magazyniera na przeniesienia objętości towaru z komórki-dawcy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do komórki-pojemnika Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1);
  • koszty otwarcia przedsiębiorstwa – koszty wyboru pojemnika Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), równe objętości komórki-pojemnika Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), pomnożonej przez pewien współczynnik oszczędności wolnych objętości (wartość współczynnika zawsze > 1) (patrz rozdział przygotowanie danych wejściowych).

Po tym, jak analogię do znanych klasycznych zadań transportowych przeprowadzono, konieczne jest odpowiedzenie na ważne pytanie, od którego zależy wybór architektury algorytmu rozwiązania: czy przenoszenie pozostałości z komórki-dawcy jest możliwe tylko do jednego i tylko jednego pojemnika (Single-Source), czy też przenoszenie pozostałości może odbywać się do kilku komórek-pojemników (Multi-Source)?

Warto zauważyć, że w praktyce obie formy zadania mogą mieć miejsce. Przedstawimy wszystkie 'za' i 'przeciw' dla każdej z takich form poniżej:

Wariant zadaniaZalety wariantuWady wariantu
Single-SourceOperacje przenoszenia towarów, obliczone na podstawie tego wariantu zadania:
  • wymagają mniej kontroli ze strony magazyniera (wziął WSZYSTKO z jednej komórki, położył WSZYSTKO w innej komórce-pojemniku), co eliminuje ryzyka: błędów przy przeliczaniu ilości towaru podczas wykonywania operacji „Włożyć do komórki”; błędów przy wprowadzaniu przeliczonej ilości do TSD;
  • Nie ma potrzeby przeliczania ilości towarów podczas realizacji operacji „Umieścić w komórce” oraz wprowadzania ich do TSD.
Multi-SourceKompresje, obliczone dla tej wersji zadania, są zazwyczaj bardziej kompaktowe o 10-15% w porównaniu do kompresji obliczonych dla wariantu „Single-Source”. Należy jednak zauważyć, że im mniejsza ilość resztek w komórkach-dawcach, tym różnica w kompaktowości jest mniejsza.Operacje przenoszenia towarów, obliczone na podstawie tego wariantu zadania:
  • Wymaga większej kontroli ze strony magazyniera (konieczność przeliczania ilości towaru przenoszonego do każdej z zaplanowanych komórek-pojemników), co eliminuje ryzyko błędu podczas przeliczania ilości towaru i wprowadzania danych do TSD podczas realizacji operacji „Umieścić w komórce”.
  • Wymaga czasu na przeliczenie ilości towarów podczas realizacji operacji „Umieścić w komórce”.
  • Wymaga czasu na „koszty pośrednie” (zatrzymanie się, podejście do palety, zeskanowanie kodu kreskowego komórki-pojemnika) podczas realizacji operacji „Umieścić w komórce”.
  • Czasami algorytm może „dzielić” ilość praktycznie pełnego paleta pomiędzy dużą ilość komórek-pojemników, gdzie już znajduje się odpowiedni towar, co z punktu widzenia klienta było nieakceptowalne.

Tabela 1. Plusy i minusy wariantów Single-Source i Multi-Source.

Ponieważ liczba plusów dla wariantu Single-Source jest większa, a także biorąc pod uwagę, że im mniejsza ilość resztek w komórkach-dawcach, tym różnica w stopniu kompaktowości kompresji, obliczonej w obu wariantach zadania, jest mniejsza, nasz wybór padł na wariant Single-Source.

Warto powiedzieć, że rozwiązanie wariantu Multi-Source również ma swoje miejsce. Istnieje wiele efektywnych algorytmów do jego rozwiązania, większość z nich sprowadza się do rozwiązania szeregu zadań transportowych. Są także nie tylko efektywne algorytmy, ale i eleganckie, na przykład, tutaj.

Przygotowanie danych wejściowych

Zanim przystąpimy do analizy i opracowywania algorytmu do rozwiązania zadania, należy określić, jakie dane i w jakiej formie będziemy mu dostarczać na wejściu. Nie ma problemu z objętościami resztek towarów w komórkach-dawcach oraz pojemnością komórek-pojemników, ponieważ to jest trywialne – takie wielkości będą mierzone w m3, ale z kosztami korzystania z komórki-pojemnika i macierzą kosztów przeniesienia sprawa nie jest już taka prosta!

Na początku rozważmy obliczenia. kosztów transportu towarów z komórki-dawcy do komórki-pojemnika. Przede wszystkim należy określić w jakich jednostkach miary będziemy obliczać koszty transportu. Dwie najoczywistsze opcje to metry i sekundy. W „czystych” metrach liczenie kosztów transportu jest bezsensowne. Pokażmy to na przykładzie. Niech komórka Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) znajduje się na pierwszym poziomie, komórka Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) jest oddalona o 30 metrów i znajduje się na drugim poziomie:

  • Transport z Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) jest bardziej kosztowny niż transport z Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), ponieważ łatwiej zsuwać w dół z drugiego poziomu (1,5-2 metry od podłogi) niż podnosić na drugi, chociaż odległość będzie przebyta taka sama;
  • Przemieszczenie 1 szt. towaru z komórki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) będzie łatwiejsze niż przemieszczenie 10 szt. tego samego towaru, chociaż odległość będzie przebyta taka sama.

Koszty transportu najlepiej uwzględnić w sekundach, ponieważ pozwala to uwzględnić różnice w poziomach oraz różnice w przemieszczeniu ilości towaru. Aby uwzględnić koszty transportu w sekundach, musimy rozłożyć operację transportu na elementarne składniki i dokonać pomiarów czasu na wykonanie każdej elementarnej części.

Niech z komórki Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) przemieszcza się Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) szt. towaru do kontenera Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Niech Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) to średnia prędkość ruchu pracownika po magazynie, mierzona w m/s. Niech Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) to średnie prędkości jednorazowego wykonania operacji weź i połóż odpowiednio dla objętości towaru równej 4 dm3 (średnia objętość, jaką pracownik zabiera za 1 raz w magazynie podczas wykonywania operacji). Niech Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) to wysokości komórek, z których wykonywane są operacje weź i połóż odpowiednio. Na przykład, średnia wysokość pierwszego poziomu (podłoga) wynosi 1 m, drugiego poziomu 2 m itd. Wtedy wzór na obliczenie całkowitego czasu wykonania operacji transportu Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) wygląda następująco:

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

W tabeli 2 przedstawiono statystyki czasu wykonania każdej elementarnej operacji, zebrane przez pracowników magazynu z uwzględnieniem specyfiki przechowywanego towaru.

Nazwa operacjiOznaczenieŚrednia wartość
Średnia prędkość ruchu pracownika po magazynieMatematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)1,5 m/s
Średnia prędkość wykonania jednej operacji połóż (dla objętości towaru 4 dm3)Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)2,4 sek

Tabela 2. Średni czas wykonania operacji magazynowych

Ustaliliśmy metodę obliczania kosztów transportu. Teraz należy ustalić, jak je obliczać. koszty wyboru pojemnika. Tutaj wszystko jest znacznie, znacznie bardziej skomplikowane niż w przypadku kosztów przemieszczania, ponieważ:

  • po pierwsze, koszty powinny być ściśle powiązane z objętością pojemnika – tę samą objętość reszty, przemieszczaną z komórek-donorów, lepiej umieścić w mniejszym pojemniku niż w dużym pojemniku, pod warunkiem, że taka objętość całkowicie mieści się w obu pojemnikach. W ten sposób, minimalizując całkowite koszty wyboru pojemników, staramy się oszczędzać "deficytowe" wolne moce magazynowe w obszarze strefy selekcji, aby zrealizować następne operacje rozlokowania towaru w komórkach. Na rysunku 4 pokazano opcje przemieszczania reszty do dużych i małych pojemników oraz konsekwencje tych opcji przemieszczania przy wykonywaniu następnych operacji magazynowych.
  • po drugie, ponieważ w rozwiązaniu pierwotnego zadania musimy zminimalizować całkowite koszty, a to suma kosztów zarówno przemieszczania, jak i wyboru pojemników, to objętości komórek w metrach sześciennych należy jakoś powiązać z sekundami, co wcale nie jest trywialne.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 4. Opcje przemieszczania reszty do pojemników o różnej pojemności.

Na rysunku 4 na czerwono przedstawiono objętość reszty, która już nie mieści się w pojemniku na drugim etapie rozmieszczania następnych towarów.

Pomogą powiązać metry sześcienne kosztów wyboru pojemnika z sekundami kosztów przemieszczania następujące wymagania dotyczące obliczanych rozwiązań zadania:

  • Należy zapewnić, aby reszty z komórki-donora były przemieszczane do komórki-pojemnika w każdym przypadku, jeśli zmniejsza to ogólną liczbę komórek-pojemników, w których znajduje się towar.
  • Należy zachować równowagę między objętościami pojemników a kosztami czasu na przemieszczanie: na przykład, jeśli w nowej wersji rozwiązania zadania w porównaniu z poprzednią wersją zysk na objętości jest duży, a strata w kosztach czasu mała, to należy wybierać nową wersję.

Zacznijmy od ostatniego wymagania. Aby sprecyzować wieloznaczne słowo „równowaga” przeprowadziliśmy ankietę wśród pracowników magazynu w celu ustalenia następującego. Niech będzie komórka-pojemnik o objętości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), do której zaplanowano przemieszczanie reszty towarów z komórek-donorów, a całkowity czas tego przemieszczania wynosi Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Niech będą jeszcze kilka alternatywnych opcji rozmieszczenia tej samej ilości towaru z tych samych komórek-donatorów w inne pojemniki, gdzie każde rozmieszczenie ma swoje oceny. Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), gdzie Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)<Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), gdzie Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)>Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1).

Pytanie brzmi: jaki minimalny zysk objętości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) jest akceptowalny, przy danej wartości straty czasowej? Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)? Поясним на примере. Изначально остатки полагалось размещать в контейнер объема 1000 дм3 (1 м3) и время на перемещение составило 70 секунд. Есть вариант размещения остатков в другой контейнер объема 500 дм3 и временем 130 секунд. Вопрос: готовы ли мы тратить еще дополнительные 60 секунд времени кладовщика на выполнение перемещения для того, чтобы сэкономить 500 дм3 свободного объема? По результатам опроса сотрудников склада была составлена следующая диаграмма.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 5. Wykres zależności minimalnej dopuszczalnej oszczędności objętości od zwiększenia różnicy w czasie wykonania operacji.

To znaczy, jeśli dodatkowy czas wydatkuje 40 sekund, to jesteśmy gotowi go poświęcić tylko wtedy, gdy zysk w objętości będzie wynosił co najmniej 500 dm3. Pomimo tego, że w obserwowanej zależności występuje niewielka nieliniowość, dla ułatwienia dalszych obliczeń będziemy przyjmować, że zależność jest liniowa i opisuje ją nierówność.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Na poniższym rysunku rozważamy następujące sposoby rozmieszczenia towaru w pojemnikach.

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 6. Opcja (a): 2 pojemniki, łączna objętość 400 dm3, łączny czas 150 sek.
Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 6. Opcja (b): 2 pojemniki, łączna objętość 600 dm3, łączny czas 190 sek.
Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)
Rys. 6. Opcja (c): 1 pojemnik, łączna objętość 400 dm3, łączny czas 200 sek.

Opcja (a) wyboru pojemników jest bardziej preferowana niż pierwotna opcja, ponieważ nierówność jest spełniona: (800-400)/10>=150-120, z czego wynika 40 >= 30. Opcja (b) jest mniej preferowana niż pierwotna opcja, ponieważ nierówność nie jest spełniona: (800-600)/10>=190-150, z czego wynika 20 >= 40. Ale opcja (c) nie mieści się w podobnej logice! Przyjrzyjmy się tej opcji bliżej. Z jednej strony nierówność (800-400)/10>=200-120, a więc nierówność 40 >= 80 nie jest spełniona, co oznacza, że zysk w objętości nie jest wart tak dużej straty czasu.

Z drugiej strony, w takiej opcji (c) nie tylko zmniejszamy łączną zajętą objętość, ale także zmniejszamy liczbę zajętych komórek, co jest jednym z dwóch istotnych wymagań stawianych rozwiązywaniu problemów, wymienionych powyżej. Oczywiście, aby to wymaganie zaczęło być spełniane, konieczne jest dodanie do lewej strony nierówności pewnej dodatniej stałej. Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), przy czym tę stałą należy dodawać tylko wtedy, gdy liczba pojemników maleje. Przypomnijmy, że Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) — to zmienna, która wynosi 1, gdy pojemnik Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) został wybrany, i 0, gdy pojemnik Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) nie wybrano. Oznaczamy, Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) – zbiór pojemników w pierwotnym rozwiązaniu i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) – zbiór pojemników w nowym rozwiązaniu. W ogólnym ujęciu nowe nierówność będzie wyglądać tak:

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Przekształcając nierówność powyżej, otrzymujemy

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Na podstawie tego mamy formułę do obliczania całkowitych kosztów Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) pewnej wersji rozwiązania problemu:

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Ale teraz pojawia się pytanie: jakie powinno być takie wartość konstanta Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)? Очевидно, что ее значение должно быть достаточно большим, для того, чтобы всегда выполнялось первое требование к решениям задачи. Можно конечно взять значение константы равное 103 или 106, но хотелось бы избежать таких «magic numbers». Если будем рассматривать специфику выполнения складских операций, мы можем вычислить несколько вполне обоснованных числовых оценок величины такой константы.

Załóżmy, Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) – maksymalny dystans między komórkami magazynowymi w jednej strefie ABC, równy w naszym przypadku 100 m. Załóżmy, Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) – maksymalna objętość komórki-pojemnika w magazynie, wynosząca w naszym przypadku 1000 dm3.

Pierwszy sposób obliczenia wartości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Rozważmy sytuację, w której znajdują się 2 pojemniki na pierwszym piętrze, w których fizycznie już znajduje się towar, co oznacza, że ​​sami są komórkami-dawcami, a koszty przemieszczania towaru do tych samych komórek są oczywiście równe 0. Należy znaleźć taką wartość konstanta Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), przy której opłacalne byłoby zawsze przenosić resztki z pojemnika 1 do pojemnika 2. Podstawiając wartości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) i Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do nierówności, przedstawionej powyżej, otrzymujemy:

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

z czego wynika

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Podstawiając wartości średniego czasu realizacji operacji elementarnych do powyższej formuły otrzymujemy

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Drugi sposób obliczenia wartości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Rozważmy sytuację, w której istnieje Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) komórki-dawcy, z których planuje się przemieszczenie towaru do pojemnika 1. Oznaczmy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) – odległość od komórki-dawcy Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) do pojemnika 1. Jest również pojemnik 2, w którym już są towary, a jego objętość pozwala pomieścić resztki ze wszystkich Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) komórek. Dla uproszczenia przyjmujemy, że objętość towaru, przenoszonego z komórek-dawców do pojemników jest taka sama i wynosi Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1). Należy znaleźć taką wartość konstanta Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), przy której umieszczenie wszystkich resztek z Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) komórek w pojemniku 2 byłoby zawsze korzystniejsze niż umieszczenie ich w różnych pojemnikach:

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Przekształcając nierówność otrzymujemy

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Aby "wzmocnić" wartość wielkości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1), przyjmujemy, że Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) = 0. Średnia liczba komórek, które zwykle biorą udział w procedurze kompresji resztek w magazynie wynosi 10. Podstawiając znane wartości wielkości, mamy następującą wartość konstanta

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

Bierzemy największą wartość, obliczoną dla każdej wersji, to będzie wartość wielkości Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) dla zadanych parametrów magazynu. Teraz dla pełności zapiszmy formułę obliczenia całkowitych kosztów Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1) dla pewnego dopuszczalnego rozwiązania Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1):

Matematyka dyskretna dla WMS: algorytm kompresji towarów w komórkach (część 1)

A więc teraz, po wszystkich titanicznych wysiłkach w przekształceniu danych wejściowych, możemy powiedzieć, że wszystkie dane wejściowe zostały przekształcone do pożądanego formatu i są gotowe do użycia w algorytmie optymalizacji.

Podsumowanie

Jak pokazuje praktyka, pracochłonność i znaczenie etapu przygotowania i przekształcenia danych wejściowych dla algorytmu często są niedoszacowane. W tym artykule postaraliśmy się szczególnie zwrócić uwagę na ten etap, aby pokazać, że tylko jakościowo i mądrze przygotowane dane wejściowe mogą uczynić wyniki obliczane przez algorytm naprawdę cennymi dla klienta. Tak, było wiele wniosków z formuł, ale ostrzegaliśmy was o tym już przed katem 🙂

W następnym artykule w końcu dotrzemy do celu, dla którego zaplanowane były 2 poprzednie publikacje – do algorytmu dyskretnej optymalizacji.

Artykuł przygotował
Roman Szangin, programista działu projektów,
firma Pierwszy Bit, m. Chelyabinsk


Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster