Diskret Mathematik fir WMS: Algorithmus fir Wueren an Zellen ze kompriméieren (Deel 1)
An dësem Artikel wäerte mir Iech soen wéi mir de Problem vun engem Mangel u gratis Zellen an engem Lagerhaus geléist hunn an d'Entwécklung vun engem diskreten Optimisatiounsalgorithmus fir sou e Problem ze léisen. Loosst eis schwätzen iwwer wéi mir de mathematesche Modell vum Optimisatiounsproblem "gebaut" hunn, an iwwer d'Schwieregkeeten déi mir onerwaart begéint hunn beim Veraarbechtung vun Inputdaten fir den Algorithmus.
Wann Dir un Uwendungen vun Mathematik am Betrib interesséiert sinn an Dir sidd keng Angscht vun steiwe Identitéitstransformatiounen vun Formelen um 5. Schouljoer Niveau, dann wëllkomm op der Kaz!
Den Artikel wäert nëtzlech sinn fir déi, déi ëmsetzen WMS-Systemer, schafft am Lager- oder Produktiounslogistikindustrie, souwéi Programméierer déi interesséiert sinn fir Uwendungen vun der Mathematik am Geschäft an Optimiséierung vu Prozesser an enger Entreprise.
Aféierung Deel
Dës Publikatioun setzt d'Serie vun Artikelen weider, an deenen mir eis erfollegräich Erfarung deelen an der Ëmsetzung vun Optimisatiounsalgorithmen a Lagerprozesser.
В fréieren Artikel beschreift d'Spezifizitéiten vum Lager wou mir ëmgesat hunn WMS-System, an erkläert och firwat mir de Problem vun der Clustering Chargen vun Rescht Wueren während Ëmsetzung léisen mussen WMS-Systemer, a wéi mir et gemaach hunn.
Wéi mir den Artikel iwwer Optimisatiounsalgorithmen fäerdeg geschriwwen hunn, ass et ganz grouss erausgestallt, also hu mir décidéiert dat gesammelt Material an 2 Deeler opzedeelen:
Am éischten Deel (dësen Artikel) wäerte mir schwätzen iwwer wéi mir de mathematesche Modell vum Problem "gebaut" hunn, an iwwer déi grouss Schwieregkeeten, déi mir onerwaart bei der Veraarbechtung an der Transformatioun vun den Inputdaten fir den Algorithmus begéint hunn.
Am zweeten Deel wäerte mir am Detail d'Ëmsetzung vum Algorithmus an der Sprooch betruechten C ++, wäerte mir e computational Experiment maachen an d'Erfahrung zesummefaassen, déi mir während der Ëmsetzung vun esou "intelligenten Technologien" an de Geschäftsprozesser vum Client gewonnen hunn.
Wéi en Artikel ze liesen. Wann Dir de viregten Artikel liest, kënnt Dir direkt an d'Kapitel goen "Iwwerbléck vun existente Léisungen"; wann net, dann ass d'Beschreiwung vum Problem geléist am Spoiler hei ënnen.
Beschreiwung vum Problem deen am Lager vum Client geléist gëtt
Flaschenhals bei Prozesser
Am Joer 2018 hu mir e Projet ofgeschloss fir ëmzesetzen WMS-Systemer am Lager "Trading House "LD" zu Chelyabinsk. Mir hunn de Produit "1C-Logistics: Warehouse Management 3" fir 20 Aarbechtsplazen ëmgesat: Bedreiwer WMS, Storekeepers, forklift Chauffeuren. D'Duerchschnëttslager ass ongeféier 4 Tausend m2, d'Zuel vun den Zellen ass 5000 an d'Zuel vun de SKUs ass 4500. D'Lagerhaus späichert Kugelventile vun eiser eegener Produktioun vu verschiddene Gréissten vun 1 kg bis 400 kg. Inventar am Lager gëtt a Chargen gelagert, well et néideg ass Wueren no FIFO ze wielen.
Wärend dem Design vu Lagerprozessautomatiséierungsschemae ware mir mam existente Problem vun der net optimaler Inventarlagerung konfrontéiert. D'Spezifizitéite vu Späicheren a leeën Kranen sinn esou datt eng Eenheet Späicherzelle nëmmen Elementer aus enger Batch enthalen (kuckt Fig. 1). Produkter kommen all Dag an de Lager an all Arrivée ass eng separat Batch. Am Ganzen, als Resultat vun 1 Mount vun Lagerbetrieb, ginn 30 getrennte Chargen erstallt, trotz der Tatsaach, datt jidderee soll an enger separater Zell gespäichert ginn. D'Produkter ginn dacks net a ganz Palette ausgewielt, mee a Stécker, an als Resultat gëtt an der Stéckelektiounszone a ville Zellen déi folgend Bild beobachtet: an enger Zelle mat engem Volume vu méi wéi 1 m3 sinn et e puer Stéck Kranen, déi besetzen manner wéi 5-10% vum Zellvolumen.
Fig 1. Foto vun e puer Stécker an enger Zell
Et ass kloer datt d'Späicherkapazitéit net optimal genotzt gëtt. Fir d'Skala vun der Katastroph virzestellen, kann ech Zuelen ginn: am Duerchschnëtt sinn et vun 1 bis 3 Zellen vun esou Zellen mat engem Volume vu méi wéi 100 m300 mat "minuscule" Balancen während verschiddene Perioden vun der Operatioun vum Lager. Zënter datt de Lager relativ kleng ass, gëtt während dem Lagerbeschäftegt Saisonen dëse Faktor e "Flaschenhals" a verlangsamt d'Lagerprozesser vun der Akzeptanz an der Sendung staark.
Problem Léisung Iddi
Eng Iddi ass entstanen: Charge vu Reschter mat den nootsten Datumen sollen op eng eenzeg Partie reduzéiert ginn, an esou Reschter mat enger vereenegter Partie solle kompakt zesummen an enger Zell plazéiert ginn, oder an e puer, wann et net genuch Plaz an enger ass fir de ganze Betrag vun Reschter. E Beispill vu sou enger "Kompressioun" gëtt an der Figur 2 gewisen.
Fig.2. Schema fir d'Reschter an Zellen ze kompriméieren
Dëst erlaabt Iech d'besat Lagerraum wesentlech ze reduzéieren, déi benotzt gëtt fir nei Wueren ze placéieren. An enger Situatioun wou d'Lagerkapazitéit iwwerlaascht ass, ass sou eng Moossnam extrem noutwendeg, soss kann et einfach net genuch fräi Plaz sinn fir nei Wueren z'empfänken, wat zu engem Stop an de Lagerprozesser vun der Plazéierung an der Ergänzung féiert an, als Konsequenz, zu engem stoppen an Akzeptanz an Liwwerung. Virdrun, virun der Ëmsetzung vum WMS-System, gouf sou eng Operatioun manuell gemaach, wat net effikass war, well de Prozess vun der Sich no passenden Gläichgewiicht an Zellen zimlech laang war. Elo, mat der Aféierung vun engem WMS System, hu mir décidéiert de Prozess ze automatiséieren, ze beschleunegen an intelligent ze maachen.
De Prozess vun der Léisung vun esou engem Problem ass an 2 Etappen opgedeelt:
op der éischter Etapp fanne mir Gruppe vu Chargen no am Datum fir Kompressioun (fir dës Aufgab gewidmet virdrun Artikel);
op der zweeter Stuf, fir all Grupp vu Chargen, berechnen mir déi kompaktst Plaz vun de verbleiwen Wueren an den Zellen.
Am aktuellen Artikel konzentréiere mir eis op déi zweet Stuf vum Algorithmus.
Iwwerpréiwung vun bestehend Léisungen
Ier Dir op d'Beschreiwung vun den Algorithmen geet, déi mir entwéckelt hunn, ass et derwäert e kuerzen Iwwerbléck iwwer d'Systemer déi schonn um Maart existéieren. WMS, déi ähnlech optimal Kompressiounsfunktionalitéit ëmsetzen.
Als éischt ass et néideg de Produit ze notéieren "1C: Enterprise 8. WMS Logistics. Warehouse Management 4", dat gehéiert a replizéiert vun 1C a gehéiert zu der véierter Generatioun WMS-Systemer entwéckelt vun AXELOT. Dëse System behaapt Kompressiounsfunktionalitéit, déi entwéckelt ass fir ënnerschiddlech Produktreschter an enger gemeinsamer Zell ze verbannen. Et ass derwäert ze erwähnen datt d'Kompressiounsfunktionalitéit an esou engem System och aner Méiglechkeeten enthält, zum Beispill d'Korrektur vun der Plazéierung vu Wueren an Zellen no hiren ABC-Klassen, awer mir wäerten net op hinnen wunnen.
Wann Dir de Code vun der 1C analyséieren: Enterprise 8. WMS Logistics System. Warehouse Management 4" (wat an dësem Deel vun der Funktionalitéit op ass), kënne mir déi folgend ofschléissen. De Reschtkompressiounsalgorithmus implementéiert eng zimlech primitiv linear Logik an et kann net vun enger "optimaler" Kompressioun geschwat ginn. Natierlech gëtt et net fir Clustering vu Parteien vir. Verschidde Clienten, déi esou e System ëmgesat haten, beschwéieren iwwer d'Resultater vun der Kompressiounsplanung. Zum Beispill, dacks an der Praxis während der Kompressioun ass déi folgend Situatioun geschitt: 100 Stéck. Et ass geplangt déi reschtlech Wueren vun enger Zell an eng aner Zell ze plënneren, wou 1 Stéck läit. Wueren, obwuel et aus der Siicht vum Zäitverbrauch optimal ass, de Géigendeel ze maachen.
Och d'Funktionalitéit vun der Kompressioun vun de verbleiwen Wueren an Zellen ass a villen auslännesche Länner deklaréiert. WMS-Systemer, awer leider hu mir kee richtege Feedback iwwer d'Effektivitéit vun den Algorithmen (dëst ass e Handelsgeheimnis), vill manner eng Iddi iwwer d'Tiefe vun hirer Logik (propriétaire zougemaach-Source Software), also kënne mir net beurteelen.
Sich no engem mathematesche Modell vum Problem
Fir qualitativ héichwäerteg Algorithmen ze designen fir e Problem ze léisen, ass et fir d'éischt néideg dëse Problem mathematesch kloer ze formuléieren, dat ass wat mir maachen.
Et gi vill Zellen , déi d'Iwwerreschter vun e puer Wueren enthalen. An deem nächste wäerte mir esou Zellen Donorzellen nennen. Loosst eis bezeechnen Volumen vu Wueren an der Zell $.
Et ass wichteg ze soen datt nëmmen ee Produkt vun enger Batch, oder e puer Chargen, déi virdru an e Stärekoup kombinéiert goufen (liest: virdrun Artikel), wat wéinst de Spezifizitéite vu Lagerung a Lagerung vu Wueren ass. Verschidde Produkter oder verschidde Batchcluster sollen hir eege separat Kompressiounsprozedur ausféieren.
Et gi vill Zellen , an déi Reschter aus Spenderzellen potenziell plazéiert kënne ginn. Mir wäerte weider esou Zellen Containerzellen nennen. Dës kënnen entweder gratis Zellen am Lager sinn oder Spenderzellen aus enger Varietéit . Ëmmer vill ass en Ënnerdeel .
Fir all Zell vu ville Kapazitéitsbeschränkunge goufen agestallt , gemooss an dm3. Een dm3 ass e Würfel mat Säiten vun 10 cm.D'Produkter, déi am Lager gelagert sinn, sinn zimlech grouss, also an dësem Fall ass sou eng Diskretiséierung ganz genuch.
Gitt eng Matrix vu kürzester Distanzen a Meter tëscht all Paar Zellen wou и gehéieren zu Sets и respektéiert.
Mir bezeechnen "Käschten" vun Plënneren Wueren aus der Zell an eng Zell . Loosst eis bezeechnen "Käschten" fir e Container ze wielen fir Reschter vun aneren Zellen dran ze réckelen. Wéi genau a wéi eng Moosseenheeten wäerte d'Wäerter berechent ginn и mir wäerte weider berücksichtegen (kuckt d'Sektioun fir Inputdaten virzebereeden), fir elo ass et genuch ze soen datt sou Wäerter direkt proportional zu de Wäerter sinn и respektéiert.
Loosst eis bezeechnen duerch eng Variabel déi de Wäert 1 hëlt wann de Rescht aus der Zell ass an de Container geplënnert , an 0 anescht. Loosst eis bezeechnen duerch eng Variabel déi de Wäert hëlt 1 wann de Container enthält déi reschtlech Wueren, an 0 soss.
D'Aufgab ass wéi follegt uginn: Dir musst esou vill Container fannen an domat Donorzellen un Containerzellen "befestigen" fir d'Funktioun ze minimiséieren
ënner Restriktiounen
Am Ganzen, wann Dir d'Léisung vum Problem berechnen, beméie mir eis fir:
éischtens, Späicherkapazitéit ze spueren;
zweetens, fir Butteker Zäit ze retten.
Déi lescht Restriktioun bedeit datt mir Wueren net an e Container kënne réckelen, dee mir net gewielt hunn, an dofir net "Käschten" gemaach hunn fir se ze wielen. Dës Restriktioun bedeit och datt de Volume vu Wueren, déi aus Zellen an de Container geplënnert sinn, d'Kapazitéit vum Container net däerfen iwwerschreiden. Wann Dir e Problem léist, menge mir eng Rei vu Container a Methoden fir Spenderzellen op Behälter ze befestigen.
Dës Formuléierung vum Optimiséierungsproblem ass net nei, a gouf vu ville Mathematiker zënter de fréie 80er vum leschte Joerhonnert studéiert. An auslännesch Literatur ginn et 2 Optimisatiounsproblemer mat engem passenden mathematesche Modell: Single-Source capacitated Facility Location Problem и Multi-Source Capacitated Facility Location Problem (mir schwätzen iwwer d'Ënnerscheeder an Aufgaben spéider). Et ass derwäert ze soen datt an der mathematescher Literatur d'Formuléierung vun esou zwee Optimisatiounsprobleemer am Sënn vun der Lag vun den Entreprisen um Terrain formuléiert ass, also den Numm "Facility Location". Fir de gréissten Deel ass dat en Hommage un d'Traditioun, well fir d'éischte Kéier de Besoin fir esou kombinatoresch Problemer ze léisen aus dem Gebitt vun der Logistik koum, meeschtens aus dem militäresch-industriellen Secteur an de 50er Joren vum leschte Joerhonnert. Wat d'Geschäftsplaz ugeet, sinn esou Aufgaben wéi follegt formuléiert:
Et ginn eng endlech Unzuel vu Stied, wou et potenziell méiglech ass Fabrikatiounsfirmen ze lokaliséieren (nodréiglech Fabrikatiounsstied bezeechent). Fir all Fabrikatioun Stad sinn d'Käschte vun der Ouverture vun enger Entreprise an et spezifizéiert, wéi och eng Begrenzung vun der Produktiounskapazitéit vun der Entreprise, déi an der opgemaach ass.
Et gëtt eng endgülteg Set vu Stied, wou Clienten tatsächlech lokaliséiert sinn (nodréiglech Clientstied bezeechent). Fir all esou Client Stad gëtt de Volume vun Nofro fir Produiten uginn. Fir Simplicitéit wäerte mir unhuelen datt et nëmmen ee Produkt gëtt dat vun Entreprisen produzéiert gëtt a vu Cliente verbraucht gëtt.
Fir all Pair vu Stad-Hersteller a Stad-Client gëtt de Wäert vun den Transportkäschte fir de erfuerderleche Volumen vu Produkter vum Hiersteller un de Client uginn.
Dir musst fannen a wéi enge Stied fir Geschäfter opzemaachen a wéi Dir Clienten un esou Geschäfter befestegt fir:
D'Gesamtkäschte fir d'Ouverture vun den Entreprisen an d'Transportkäschte waren minimal;
De Volume vun der Nofro vu Clienten, déi un all oppen Entreprise zougewisen sinn, huet d'Produktiounskapazitéit vun där Entreprise net iwwerschratt.
Elo ass et derwäert den eenzegen Ënnerscheed an dësen zwee klassesche Probleemer ze ernimmen:
Single-Source Capacitated Facility Location Problem - de Client gëtt aus nëmmen enger oppener Ariichtung geliwwert;
Multi-Source Capacitated Facility Location Problem - de Client kann gläichzäiteg aus verschiddenen oppenen Ariichtungen geliwwert ginn.
Esou en Ënnerscheed tëscht deenen zwee Problemer ass op den éischte Bléck onwichteg, awer, tatsächlech, féiert zu enger komplett anerer kombinatorescher Struktur vun esou Problemer an, als Konsequenz, zu komplett verschiddenen Algorithmen fir se ze léisen. D'Ënnerscheeder tëscht den Aufgaben ginn an der Figur hei ënnen gewisen.
Fig.3. a) Multi-Source Capacitated Facility Location Problem
Fig.3. b) Single-Source capacitated Facility Location Problem
Béid Aufgaben -schwéier, dat ass, et gëtt keng exakt Algorithmus datt esou e Problem an enger Zäit polynomial an der Gréisst vun der Input Donnéeën léisen géif. An méi einfache Wierder, all exakt Algorithmen fir e Problem ze léisen funktionnéieren an exponentiell Zäit, obwuel vläicht méi séier wéi eng komplett Sich no Optiounen. Zënter der Aufgab -schwéier, da wäerte mir nëmmen ongeféier Heuristik betruechten, dat heescht Algorithmen déi konsequent Léisunge ganz no bei optimal berechnen an zimlech séier funktionnéieren. Wann Dir un esou eng Aufgab interesséiert sidd, fannt Dir hei e gudden Iwwerbléck op Russesch.
Wa mir op d'Terminologie vun eisem Problem vun der optimaler Kompressioun vu Wueren an Zellen wiesselen, dann:
Client Stied sinn Donorzellen mat de Rescht Wueren,
Fabrikatioun Stied - Container Zellen , an deenen d'Iwwerreschter vun aneren Zellen solle plazéiert ginn,
Transport Käschten - Zäit Käschten Butteker fir de Volume vu Wueren aus der Spenderzelle ze réckelen an eng Containerzell ;
Käschte fir e Geschäft opzemaachen - Käschte fir e Container ze wielen , gläich wéi de Volume vun der Containerzell , multiplizéiert mat engem bestëmmte Koeffizient fir fräi Bänn ze spueren (de Wäert vum Koeffizient ass ëmmer > 1) (kuckt d'Sektioun fir Inputdaten virbereeden).
Nodeems d'Analogie mat de bekannte klassesche Léisunge vum Problem gezeechent gouf, ass et néideg eng wichteg Fro ze beäntweren, op där d'Wiel vun der Architektur vum Léisungsalgorithmus hänkt: d'Reschter vun der Spenderzelle bewegen ass nëmmen op eng méiglech. an nëmmen ee Container (Single-Source), oder ass et méiglech d'Reschter an e puer Container Zellen ze plënneren (Multi-Source)?
Et ass derwäert opgeschriwwen, datt an der Praxis souwuel Formuléierungen vum Problem stattfannen. Mir presentéieren all d'Virdeeler an Nodeeler fir all esou Astellung hei ënnen:
Problem Variant
Virdeeler vun der Optioun
Nodeeler vun der Optioun
Single-Source
Wueren Bewegung Operatiounen berechent mat dëser Variant vum Problem:
manner Kontroll op der Säit vun der Butteker erfuerderen (ALLS aus enger Zell geholl, ALLES an engem aneren Containerzelle gesat), wat d'Risiken eliminéiert: Feeler beim Recalculatioun vun der Quantitéit vu Wueren beim Ausféierung vun Operatiounen "Set an Zell"; Feeler beim Aschreiwen vun der neiberechent Quantitéit an der TSD;
Keng Zäit ass erfuerderlech fir d'Zuel vun de Wueren nei ze berechnen wann Dir "Set an Zell" Operatiounen ausféiert an se an d'TSD aginn
Multi-Source
Kompressiounen berechent mat dëser Versioun vum Problem sinn normalerweis 10-15% méi kompakt am Verglach mat Kompressiounen, déi mat der "Single-Source" Optioun berechent ginn. Awer mir bemierken och datt wat méi kleng d'Zuel vun de Reschter an den Donorzellen ass, dest méi kleng ass den Ënnerscheed an der Kompaktheet
Wueren Bewegung Operatiounen berechent mat dëser Variant vum Problem:
erfuerdert méi Kontroll vum Butteker (et ass néideg fir d'Quantitéit vu Wueren, déi an all vun de geplangte Containerzellen geplënnert sinn, nei ze berechnen), wat de Risiko vu Feeler eliminéiert wann d'Quantitéit vu Wueren nei berechnen an d'Donnéeën an d'TSD aginn wann Dir " Gitt an Zell" Operatiounen
Et brauch Zäit fir d'Zuel vun de Wueren nei ze berechnen wann Dir "Put in cell" Operatiounen ausféiert
Et brauch Zäit fir "Overhead" (stoppen, gitt op d'Palette, scannt de Barcode vun der Containerzell) wann Dir "Put in cell" Operatiounen ausféiert
Heiansdo kann den Algorithmus d'Quantitéit vun enger bal kompletter Palette tëscht enger grousser Zuel vu Containerzellen "opdeelen" déi schonn e passende Produkt hunn, wat aus der Siicht vum Client inakzeptabel war
Dësch 1. Virdeeler an Nodeeler vun Single-Source a Multi-Source Optiounen.
Well d'Single-Source Optioun méi Virdeeler huet, an och d'Tatsaach berécksiichtegt datt wat méi kleng d'Zuel vun de Reschter an den Donorzellen ass, dest méi kleng ass den Ënnerscheed am Grad vun der Kompressiounskompaktheet berechent fir béid Varianten vum Problem, ass eise Choix op der Single-Source Optioun.
Et ass derwäert ze soen datt d'Léisung fir d'Multi-Source Optioun och stattfënnt. Et gi vill effektiv Algorithmen fir et ze léisen, déi meescht kommen op d'Léisung vun enger Rei vun Transportproblemer. Et ginn och net nëmmen effizient Algorithmen, awer och elegant, z.B. hei.
Preparéieren Input Daten
Ier Dir ufänkt ze analyséieren an en Algorithmus z'entwéckelen fir e Problem ze léisen, ass et néideg ze entscheeden wéi eng Donnéeën a wéi eng Form mir et als Input fidderen. Et gi keng Probleemer mam Volume vun de verbleiwen Wueren an den Donorzellen an d'Kapazitéit vun de Containerzellen, well dëst trivial ass - sou Quantitéite ginn a m3 gemooss, awer mat de Käschte fir eng Containerzelle an der Plënnerenkäschtematrix ze benotzen, net alles ass sou einfach!
Loosst d'éischt d'Berechnung kucken Käschten vun Plënneren Wueren vun der Spenderzelle an d'Containerzelle. Éischt vun all, ass et néideg ze entscheeden an wat Unitéiten vun Mooss wäerte mir d'Käschte vun Bewegung Berechent. Déi zwee offensichtlech Optiounen sinn Meter a Sekonnen. Et mécht kee Sënn fir Reeskäschten a "rengen" Meter ze berechnen. Loosst eis dat mat engem Beispill weisen. Loosst d'Zell läit op der éischter Tier, Zell ëm 30 Meter ewechgeholl an op der zweeter Tier läit:
Plënneren aus в méi deier wéi Plënneren aus в , well vun der zweeter Tier erof geet (1,5-2 Meter vum Buedem) ass méi einfach wéi op d'zweet eropgoen, obwuel d'Distanz d'selwecht wäert sinn;
Beweegt 1 Stéck. Wueren aus der Zell в Et wäert méi einfach sinn wéi 10 Stécker ze bewegen. déi selwecht Produit, obwuel d'Distanz wäert déi selwecht ginn.
Et ass besser d'Beweegungskäschte a Sekonnen ze berücksichtegen, well dëst erlaabt Iech souwuel den Ënnerscheed an den Niveauen an den Ënnerscheed an der Quantitéit vu Wueren ze berücksichtegen. Fir d'Käschte vun der Bewegung a Sekonnen ze berechnen, musse mir d'Bewegungsoperatioun an elementar Komponenten zerstéieren an Zäitmiessunge fir d'Ausféierung vun all Elementarkomponent huelen.
Loosst aus der Zell bewegt PC. Wueren am Container ... Loosst sinn - d'Duerchschnëttsgeschwindegkeet vun der Bewegung vun engem Aarbechter am Lager, gemooss a m / sec. Loosst и - Duerchschnëttsgeschwindegkeet vun eemolege Operatiounen huelen a setzen, respektiv, fir e Volume vu Wueren gläich wéi 4 dm3 (den Duerchschnëttsvolumen, deen en Employé gläichzäiteg an engem Lagerhaus hëlt wann se Operatiounen ausféieren). Loosst и d'Héicht vun den Zellen, aus deenen d'Take- a Put-Operatiounen ausgefouert ginn, respektiv. Zum Beispill ass déi duerchschnëttlech Héicht vun der éischter Tier (Buedem) 1 m, déi zweet Tier 2 m, etc. Dann ass d'Formel fir d'Berechnung vun der Gesamtzäit fir eng Beweegungsoperatioun ze kompletéieren folgend:
Tabell 2 weist Statistiken iwwer d'Ausféierungszäit vun all elementar Operatioun, gesammelt vu Lageraarbechter, andeems d'Spezifizitéite vun de gespäicherten Wueren berücksichtegt.
den Numm vun der Operatioun
Notation
gemengt
Duerchschnëttsgeschwindegkeet vun engem Aarbechter, dee ronderëm de Lager beweegt
1,5 m/s
Duerchschnëttsgeschwindegkeet vun enger Operatioun fir ze setzen (fir e Produktvolumen vu 4 dm3)
2,4 sek
Dësch 2. Duerchschnëtt Zäit fir eng komplett Lageroperatioune
Mir hunn op d'Method fir d'Berechnung vun de Käschten vun Plënneren decidéiert. Elo musse mir erausfannen, wéi Dir berechent Käschte fir eng Containerzell ze wielen. Alles hei ass vill, vill méi komplizéiert wéi mat Beweegungskäschten, well:
éischtens sollen d'Käschte direkt vum Volume vun der Zell ofhängeg sinn - deeselwechte Volumen vu Reschter, déi aus Donorzellen transferéiert ginn, ass besser an engem Container vu méi klenge Volumen wéi an engem grousse Container plazéiert, virausgesat datt esou Volumen komplett a béid Behälter passt. Also, andeems mir d'Gesamtkäschte fir d'Auswiel vu Containeren miniméieren, beméie mir eis fir "knaschteg" gratis Späicherkapazitéit am Selektiounsberäich ze spueren fir spéider Operatiounen ze maachen fir Wueren an Zellen ze setzen. Figur 4 weist d'Optiounen fir d'Iwwerreschter an d'grouss a kleng Container ze transferéieren an d'Konsequenze vun dësen Transferoptiounen an de spéider Lageroperatiounen.
zweetens, well mir beim léisen vum urspréngleche Problem musse genau d'Gesamtkäschte minimiséieren, an dëst ass d'Zomm vu béide Käschte fir d'Bewegung an d'Käschte fir d'Auswiel vu Container, da mussen d'Zellvolumen a Kubikmeter iergendwéi mat Sekonnen verbonne sinn, wat wäit vun trivial ass.
Reis. 4. Optiounen fir d'Iwwerreschter an d'Container vu verschiddene Kapazitéiten ze bewegen.
Figur 4 weist rout de Volume vun Iwwerreschter, déi net méi an de Container an der zweeter Stuf vun der Plaz pafolgende Wueren passt.
Et hëlleft der Kubikzentimeter Meter vun Käschten fir de Choix vun engem Container mat de Sekonnen vun Käschten ze verbannen fir déi folgend Ufuerderunge fir berechent Léisunge fir de Problem ze plënneren:
Et ass néideg datt d'Saldoe vum Spenderbehälter op alle Fall an d'Containerbehälter geréckelt ginn, wann dëst d'Gesamtzuel vun de Behälterbehälter reduzéiert, déi de Produit enthalen.
Et ass noutwendeg fir e Gläichgewiicht tëscht dem Volume vun de Container an der Zäit fir ze bewegen ze halen: zum Beispill, wann an enger neier Léisung fir e Problem am Verglach mat der viregter Léisung ass de Gewënn am Volume grouss, awer de Verloscht an der Zäit ass kleng , dann ass et néideg eng nei Optioun ze wielen.
Loosst eis mat der leschter Ufuerderung ufänken. Fir dat zweedeiteg Wuert "Gläichgewiicht" ze klären, hu mir eng Ëmfro vu Lageraarbechter gemaach fir déi folgend erauszefannen. Loosst et eng Containerzell vu Volumen sinn , op déi d'Bewegung vun de Rescht Wueren aus Spenderzellen zougewisen ass an d'Gesamtzäit vun esou Bewegung ass gläich wéi . Loosst et e puer alternativ Méiglechkeeten ginn fir déiselwecht Quantitéit vu Wueren aus de selwechte Spenderzellen an aner Container ze placéieren, wou all Placement seng eege Schätzungen huet wou < и wou >.
D'Fro ass gestallt: wat ass de Minimum Gewënn am Volume akzeptabel, fir eng Zäit Verloscht Wäert ? Loosst eis mat engem Beispill erklären. Am Ufank sollten d'Iwwerreschter an engem Container mat engem Volume vun 1000 dm3 (1 m3) geluecht ginn an d'Transferzäit war 70 Sekonnen. Et gëtt eng Optioun fir d'Reschter an engem anere Container mat engem Volume vu 500 dm3 an enger Zäit vun 130 Sekonnen ze placéieren. Fro: si mir bereet fir nach 60 Sekonnen vun der Zäit vum Butteker ze verbréngen fir d'Wueren ze beweegen fir 500 dm3 fräi Volumen ze spueren? Baséierend op d'Resultater vun enger Ëmfro vu Lageraarbechter gouf de folgenden Diagramm zesummegestallt.
Reis. 5. Diagramm vun der Ofhängegkeet vum Minimum zulässlechen Volumenspueren op d'Erhéijung vun der Differenz vun der Operatiounszäit
Dat ass, wann déi zousätzlech Zäit Käschten 40 Sekonnen sinn, da si mir prett hinnen nëmmen ze verbréngen wann de Gewënn am Volume op d'mannst 500 dm3 ass. Trotz der Tatsaach, datt et eng liicht Nonlinearitéit an der Ofhängegkeet ass, wäerte mir fir d'Einfachheet vu weidere Berechnungen unhuelen datt d'Ofhängegkeet tëscht de Quantitéiten linear ass an duerch d'Ongläichheet beschriwwe gëtt.
An der Figur hei drënner betruechte mir déi folgend Methoden fir Wueren an Containeren ze placéieren.
Optioun (a) fir Container ze wielen ass méi bevorzugt wéi déi ursprénglech Optioun, well d'Ongläichheet hält: (800-400)/10>=150-120, wat implizéiert 40 >= 30. Optioun (b) ass manner bevorzugt wéi d'Original Optioun , well d'Ongläichheet net hält: (800-600)/10>=190-150 wat implizéiert 20 >= 40. Mee Optioun (c) passt net an esou Logik! Loosst eis dës Optioun méi detailléiert betruechten. Engersäits d'Ongläichheet (800-400)/10>=200-120, dat heescht datt d'Ongläichheet 40>= 80 net hält, wat suggeréiert datt de Gewënn am Volume net sou e grousse Verloscht an der Zäit wäert ass.
Awer op der anerer Säit, an dëser Optioun (c) reduzéieren mir net nëmmen de Gesamtbesatzungsvolumen, awer reduzéieren och d'Zuel vun de besat Zellen, wat déi éischt vun zwee wichtegen Ufuerderunge fir berechbar Léisunge fir d'Problemer hei uewen ass. Natierlech, fir datt dës Fuerderung ufänkt ze erfëllen, ass et néideg eng positiv Konstant op der lénker Säit vun der Ongläichheet ze addéieren , an esou eng Konstante muss nëmmen dobäigesat ginn wann d'Zuel vun de Container erofgeet. Loosst eis dat erënneren ass eng Variabel gläich wéi 1 wann de Container ausgewielt, an 0 wann Container net ausgewielt. Loosst eis bezeechnen - vill Container an der éischter Léisung an - vill Container an der neier Léisung. Am Allgemengen wäert déi nei Ongläichheet esou ausgesinn:
Transforméiere vun der Ongläichheet uewen, mir kréien
Baséierend op dësem hu mir eng Formel fir d'Gesamtkäschte ze berechnen eng Léisung fir de Problem:
Awer elo stellt sech d'Fro: wéi ee Wäert soll esou eng Konstant hunn? ? Natierlech muss säi Wäert grouss genuch sinn, sou datt déi éischt Ufuerderung fir Léisunge fir de Problem ëmmer erfëllt ass. Dir kënnt natierlech de Wäert vun der konstanter gläich 103 oder 106 huelen, awer ech géif gären esou "magesch Zuelen" vermeiden. Wa mir d'Spezifizitéite vun der Ausféierung vun Lageroperatioune betruechten, kënne mir e puer gutt begrënnt numeresch Schätzunge vum Wäert vun esou enger Konstant berechnen.
Loosst sinn – déi maximal Distanz tëscht Lagerzellen vun enger Zone ABC, gläich an eisem Fall 100 m. Loosst – de maximale Volume vun enger Containerzell an engem Lager, an eisem Fall gläich wéi 1000 dm3.
Den éischte Wee fir de Wäert ze berechnen . Loosst eis eng Situatioun betruechten, wou et 2 Container op der éischter Tier ass, an där d'Wuer scho physesch lokaliséiert sinn, dat heescht, si selwer sinn Donorzellen, an d'Käschte fir d'Wueren an déiselwecht Zellen ze plënneren ass natierlech gläich 0. ass néideg fir esou e Wäert fir d'Konstante ze fannen , an deem et avantagéis wier, ëmmer d'Iwwerreschter vum Container 1 op de Container 2 ze réckelen. D'Wäerter ersetzen и An der Ongläichheet hei uewen kréie mir:
aus deem et folgt
Ersetzen d'Wäerter vun der Duerchschnëttszäit fir elementar Operatiounen auszeféieren an d'Formel hei uewen kréien mir
Déi zweet Manéier fir de Wäert ze berechnen . Loosst eis eng Situatioun betruechten wou et ass Spenderzellen aus deenen et geplangt ass d'Wueren an de Container ze réckelen 1. Loosst eis bezeechnen - Distanz vun der Spenderzelle zu Container 1. Et gëtt och Container 2, dee scho Wueren enthält, an de Volume vun deem erlaabt Iech de Rescht vun all ze aménagéieren Zellen. Fir Simplicitéit wäerte mir ugeholl datt de Volume vu Wueren, déi vun Donorzellen op Container geplënnert sinn, d'selwecht ass a gläich wéi . Et ass néideg sou e Wäert vun der Konstant ze fannen , an deem d'Plazéierung vun all Reschter aus Zellen an Container 2 wieren ëmmer méi rentabel wéi se a verschiddene Container ze placéieren:
Transforméiere vun der Ongläichheet déi mir kréien
Fir de Wäert vun der Quantitéit ze "stäerken". , loosst eis dovun ausgoen = 0. D'Duerchschnëttszuel vun Zellen, déi normalerweis an der Prozedur fir d'Kompressioun vun de Lagersaldo involvéiert sinn, ass 10. Ersetzen déi bekannte Wäerter vun de Quantitéiten, hu mir de folgende Wäert vun der konstanter
Mir huelen de gréisste Wäert berechent fir all Optioun, dëst wäert de Wäert vun der Quantitéit ginn fir déi gegebene Lagerparameter. Elo, fir Vollständegkeet, loosst eis d'Formel opschreiwen fir d'Gesamtkäschte ze berechnen fir eng machbar Léisung :
Elo schliisslech Herculean Efforten Andeems Dir d'Inputdaten transforméiert, kënne mir soen datt all Inputdaten an déi gewënscht Form ëmgewandelt goufen a prett sinn fir am Optimiséierungsalgorithmus ze benotzen.
Konklusioun
Wéi d'Praxis weist, ass d'Komplexitéit an d'Wichtegkeet vun der Etapp vun der Virbereedung an der Transformatioun vun Inputdaten fir en Algorithmus dacks ënnerschat. An dësem Artikel hu mir speziell vill Opmierksamkeet op dës Etapp bezuelt fir ze weisen datt nëmme qualitativ héichwäerteg an intelligent virbereet Inputdaten d'Decisiounen, déi vum Algorithmus berechent sinn, wierklech wäertvoll fir de Client maachen. Jo, et goufe vill Oflehnungen vu Formelen, awer mir hunn Iech och virun der Kata gewarnt :)
Am nächsten Artikel komme mir endlech zu deem wat déi 2 fréier Publikatioune geduecht waren - en diskreten Optimisatiounsalgorithmus.
Den Artikel virbereet
Roman Shangin, Programméierer vun der Projeten Departement,
Éischt Bit Firma, Chelyabinsk