Diskrete Mathematik für WMS: Algorithmus zum Komprimieren von Waren in Zellen (Teil 1)



In diesem Artikel erfahren Sie, wie Sie das Problem des Mangels an freien Zellen im Lager lösen und einen diskreten Optimierungsalgorithmus entwickeln, um dieses Problem zu lösen. Wir werden darüber sprechen, wie wir das mathematische Modell des Optimierungsproblems „erstellt“ haben und auf welche Schwierigkeiten wir bei der Verarbeitung der Eingabedaten für den Algorithmus unerwartet gestoßen sind.

Wenn Sie sich für mathematische Anwendungen in der Wirtschaft interessieren und keine Angst vor identischen Formulentransformationen in der 5. Klasse haben, dann sind Sie bei cat willkommen!

Der Artikel ist nützlich für diejenigen, die WMS- Systeme implementieren, in der Lager- oder Produktionslogistikbranche arbeiten, sowie für Programmierer, die sich für mathematische Anwendungen in der Geschäfts- und Prozessoptimierung im Unternehmen interessieren.

Einführungsteil


Diese Veröffentlichung setzt die Artikelserie fort, in der wir unsere erfolgreichen Erfahrungen bei der Implementierung von Optimierungsalgorithmen in Lagerprozessen teilen.

Im vorherigen Artikel wurden die Besonderheiten des Lagers beschrieben, in dem wir das WMS- System eingeführt haben, und es wurde auch erläutert, warum wir das Problem der Bündelung von Warenbeständen bei der Implementierung des WMS- Systems lösen mussten und wie wir dies getan haben.

Als wir mit dem Schreiben eines Artikels über Optimierungsalgorithmen fertig waren, stellte sich heraus, dass dieser sehr umfangreich war. Daher haben wir beschlossen, das angesammelte Material in zwei Teile zu unterteilen:

  • Im ersten Teil (diesem Artikel) werden wir darüber sprechen, wie wir das mathematische Modell des Problems „erstellt“ haben und auf welche großen Schwierigkeiten wir plötzlich bei der Verarbeitung und Konvertierung von Eingabedaten für den Algorithmus gestoßen sind.
  • Im zweiten Teil werden wir die Implementierung des Algorithmus in C ++ im Detail untersuchen, ein Computerexperiment durchführen und die Erfahrungen zusammenfassen, die wir bei der Implementierung solcher „intelligenten Technologien“ in den Geschäftsprozessen des Kunden gesammelt haben.

Wie man einen Artikel liest. Wenn Sie den vorherigen Artikel gelesen haben, können Sie sofort zum Kapitel "Überblick über vorhandene Lösungen" gehen. Wenn nicht, finden Sie die Beschreibung des zu lösenden Problems im Spoiler unten.

Beschreibung des zu lösenden Problems im Lager des Kunden

Prozessengpass


2018 haben wir ein Projekt zur Einführung eines WMS- Systems im Lager des Unternehmens LD Trading House in Tscheljabinsk durchgeführt. Einführung des Produkts „1C-Logistics: Warehouse Management 3“ für 20 Jobs: WMS- Betreiber, Ladenbesitzer, Gabelstaplerfahrer. Das Lager hat durchschnittlich ca. 4.000 m2, die Anzahl der Zellen beträgt 5000 und die Anzahl der SKU 4500. Die Kugelhähne unserer eigenen Produktion in verschiedenen Größen von 1 kg bis 400 kg werden im Lager gelagert. Die Lagerbestände im Lager werden im Rahmen von Chargen gelagert, da die Waren gemäß FIFO und den „Inline“ -Spezifikationen der Produktplatzierung ausgewählt werden müssen (Erläuterung unten).

Bei der Entwicklung von Automatisierungsschemata für Lagerprozesse waren wir mit dem bestehenden Problem der nicht optimalen Lagerung von Lagerbeständen konfrontiert. Das Stapeln und Lagern von Kranen weist, wie bereits erwähnt, „Reihen“ -Spezifikationen auf. Das heißt, die Produkte in der Zelle sind in Reihen übereinander gestapelt, und die Fähigkeit, ein Stück auf ein Stück zu legen, fehlt häufig (sie fallen einfach und das Gewicht ist nicht gering). Aus diesem Grund stellt sich heraus, dass sich nur eine Nomenklatur einer Charge in einer Stücklagereinheit befinden kann.

Die Produkte kommen täglich im Lager an und jede Ankunft ist eine separate Charge. Insgesamt werden nach einem Monat Lagerbetrieb 30 separate Lose erstellt, obwohl jedes in einer separaten Zelle gelagert werden sollte. Die Waren werden oft nicht in ganzen Paletten, sondern in Stücken ausgewählt. Infolgedessen wird im Bereich der Stückauswahl in vielen Zellen das folgende Bild beobachtet: In einer Zelle mit einem Volumen von mehr als 1 m3 befinden sich mehrere Kranstücke, die weniger als 5-10% des Zellvolumens einnehmen (siehe Abb. 1).


Abb. 1. Foto mehrerer Teile in einer Zelle

Angesichts der suboptimalen Nutzung der Speicherkapazität. Um mir das Ausmaß der Katastrophe vorzustellen, kann ich Zahlen anführen: Im Durchschnitt gibt es zwischen 100 und 300 Zellen solcher Zellen mit einem spärlichen Rest in verschiedenen Perioden des Lagerbetriebs. Da das Lager relativ klein ist, wird dieser Faktor in den Ladezeiten des Lagers zu einem „engen Hals“ und hemmt die Lagerprozesse der Annahme und des Versands erheblich.

Idee, ein Problem zu lösen


Die Idee kam auf: die Chargen von Rückständen mit den nächstgelegenen Daten zu einer einzelnen Charge zu bringen und solche Waagen mit einer einheitlichen Charge kompakt in einer Zelle oder in mehreren zu platzieren, wenn in einer nicht genügend Platz vorhanden ist, um die Gesamtzahl der Waagen aufzunehmen. Ein Beispiel für eine solche „Komprimierung“ ist in Abbildung 2 dargestellt.


Abb. 2. Zellkomprimierungsschema

Auf diese Weise können Sie den belegten Lagerraum, der für die neu platzierten Waren verwendet wird, erheblich reduzieren. In der Situation der Überlastung der Lagerkapazitäten ist eine solche Maßnahme äußerst notwendig, da sonst möglicherweise nicht genügend freier Platz für die Platzierung neuer Waren vorhanden ist, was zu einem Stopp der Lager- und Nachschubprozesse und damit zu einem Stopp für die Annahme und den Versand führt. Zuvor wurde vor der Implementierung des WMS-Systems eine solche Operation manuell durchgeführt, was nicht effektiv war, da der Prozess des Findens geeigneter Rückstände in den Zellen ziemlich lang war. Mit der Einführung von WMS-Systemen beschlossen sie nun, den Prozess zu automatisieren, zu beschleunigen und intelligent zu machen.

Der Prozess zur Lösung dieses Problems ist in zwei Phasen unterteilt:

  • In der ersten Phase finden wir Gruppen von Parteien, deren Komprimierungsdatum nahe ist (zu dieser Widmungsaufgabe der vorherige Artikel ).
  • In der zweiten Stufe berechnen wir für jede Gruppe von Chargen die kompakteste Platzierung von Produktresten in Zellen.

Im aktuellen Artikel werden wir bei der zweiten Stufe des Algorithmus anhalten.

Übersicht bestehender Lösungen


Bevor wir mit der Beschreibung der von uns entwickelten Algorithmen fortfahren, sollten wir einen kurzen Überblick über die auf dem Markt vorhandenen WMS- Systeme geben, die ähnliche optimale Komprimierungsfunktionen implementieren.

Zunächst ist das Produkt „1C: Enterprise 8. WMS Logistics. Warehouse Management 4 ”, das 1C gehört und von ihm repliziert wird und zur vierten Generation von WMS- Systemen gehört, die von AXELOT entwickelt wurden. In diesem System wird die Komprimierungsfunktionalität deklariert, mit der unterschiedliche Produktreste in einer gemeinsamen Zelle kombiniert werden sollen. Es ist erwähnenswert, dass die Komprimierungsfunktionalität in einem solchen System auch andere Funktionen umfasst, z. B. das Korrigieren der Platzierung von Waren in Zellen gemäß ihren ABC-Klassen, aber wir werden nicht darauf eingehen.

Wenn Sie den Code des Systems "1C: Enterprise 8. WMS Logistics. Warehouse Management 4 ”(das in diesem Teil der Funktion geöffnet ist), dann können wir Folgendes schließen. Der Restkomprimierungsalgorithmus implementiert eine eher primitive lineare Logik, und von einer „optimalen“ Komprimierung kann keine Rede sein. Natürlich sieht er keine Bündelung von Parteien vor. Mehrere Kunden mit einem solchen implementierten System beschwerten sich über die Ergebnisse der Komprimierungsplanung. Beispielsweise trat in der Praxis während der Komprimierung häufig die folgende Situation auf: 100 Stk. Es ist geplant, die restlichen Waren von einer Zelle in eine andere Zelle zu bringen, in der 1 Stück liegt. Waren, obwohl es zeitlich optimal ist, das Gegenteil zu tun.

Auch die Komprimierungsfunktionalität der Restgüter in den Zellen wird in vielen fremden WMS- Systemen deklariert, aber leider haben wir kein wirkliches Feedback zur Effizienz der Algorithmen (dies ist ein Geschäftsgeheimnis) und noch mehr zur Tiefe ihrer Logik (proprietäre Software mit geschlossenem Code). Wir haben keine, daher können wir nicht beurteilen.

Suchen Sie nach einem mathematischen Modell eines Problems


Um qualitativ hochwertige Algorithmen zur Lösung eines Problems zu entwerfen, ist es zunächst erforderlich, dieses Problem mathematisch klar zu formulieren, was wir tun werden.

Es gibt viele Zellen J. J. in denen die Überreste einiger Waren. Ferner werden solche Zellen Spenderzellen genannt. Wir bezeichnen w j Warenvolumen in der Zelle $ j $.

Es ist wichtig zu sagen, dass nur ein Produkt einer Sendung oder mehrere Sendungen, die zuvor in einem Cluster zusammengefasst waren (siehe vorherigen Artikel ), am Komprimierungsverfahren teilnehmen können, was auf die Besonderheiten der Lagerung und Verpackung von Waren zurückzuführen ist. Für verschiedene Produkte oder verschiedene Stapelcluster sollte ein separates Komprimierungsverfahren gestartet werden.

Es gibt viele Zellen Ich in die möglicherweise Reste von Spenderzellen eingebracht werden können. Solche Zellen werden Containerzellen genannt. Dies können entweder freie Zellen im Lager oder Spenderzellen aus einer Vielzahl von sein J. J. . Immer viel J. J. ist eine Teilmenge von Ich .

Für jede Zelle ich von vielen Ich Kapazitätsgrenzen festgelegt d i gemessen in dm3. Ein dm3 ist ein Würfel mit einer Seitenlänge von 10 cm. Die im Lager gelagerten Produkte sind ziemlich groß, daher reicht in diesem Fall eine solche Diskretisierung aus.

Die Matrix der kürzesten Entfernungen s i j in Metern zwischen jedem Zellenpaar ( i , j ) wo ich und j gehören zu den Sets Ich und J. J. entsprechend.

Wir bezeichnen S i j "Kosten" für den Transport von Waren aus der Zelle ich zu Zelle j . Wir bezeichnen D i "Kosten" für die Auswahl eines Containers ich Reste aus anderen Zellen hinein zu bewegen. Wie genau und in welchen Maßeinheiten werden die Werte berechnet S i j und D i Wir werden weiter darauf eingehen (siehe Abschnitt Vorbereitung der Eingabedaten). Jetzt reicht es zu sagen, dass solche Mengen direkt proportional zu den Mengen sind s i j und d i entsprechend.

Bezeichnen mit x i j eine Variable mit dem Wert 1, wenn der Rest der Zelle j zum Container bewegen ich und sonst 0. Bezeichnen mit y i Variable mit dem Wert 1, wenn Container ich enthält die Reste des Produkts und sonst 0.

Die Aufgabe ist wie folgt : Es ist notwendig, so viele Container zu finden Ich und somit Spenderzellen an Zellbehälter "anhängen", um die Funktion zu minimieren

 m i n F = s u m i i n I , j i n J.   S i j c d o t x i j + s u m  i i n I  Dicdotyi 

unter Einschränkungen

 s u mj inJwj cdotxij leqdi cdotyi, für alle i inI

Insgesamt suchen wir im Verlauf der Berechnung der Lösung des Problems:

  • Erstens: Speichern Sie Speicherkapazität.
  • Zweitens sparen Sie den Ladenbesitzern Zeit.

Die letzte Einschränkung bedeutet, dass wir keine Waren in einen Container umlagern können, den wir nicht ausgewählt haben, und daher für ihre Wahl keine „Kosten“ entstanden sind. Diese Einschränkung bedeutet auch, dass das Volumen der von den Zellen zum Container transportierten Waren die Kapazität des Containers nicht überschreiten darf. Mit der Lösung des Problems meinen wir viele Container I und Verfahren zum Anbringen von Spenderzellen an Behältern.

Diese Formulierung des Optimierungsproblems ist nicht neu und wurde von vielen Mathematikern seit Beginn der 80er Jahre des letzten Jahrhunderts untersucht. In der ausländischen Literatur gibt es zwei Optimierungsprobleme mit einem geeigneten mathematischen Modell: das Problem des Standortes einer kapazitiven Einrichtung aus einer Quelle und das Standortproblem einer kapazitiven Einrichtung aus mehreren Quellen (wir werden die Unterschiede zwischen den folgenden Aufgaben diskutieren). Es ist anzumerken, dass in der mathematischen Literatur die Aussagen dieser beiden Optimierungsprobleme in Bezug auf die Lokalisierung von Unternehmen vor Ort formuliert sind, daher der Name „Standort der Einrichtung“. Zum größten Teil ist dies eine Hommage an die Tradition, da die Notwendigkeit zur Lösung solcher kombinatorischen Probleme zum ersten Mal aus dem Bereich der Logistik stammte, zum größten Teil aus dem militärisch-industriellen Wachstum in den 50er Jahren des letzten Jahrhunderts. In Bezug auf den Unternehmensstandort werden solche Aufgaben wie folgt formuliert:

  • Es gibt eine begrenzte Anzahl von Städten, in denen es möglicherweise möglich ist, produzierende Unternehmen zu lokalisieren (im Folgenden: produzierende Städte). Für jede Fertigungsstadt werden die Kosten für die Eröffnung eines Unternehmens in ihr sowie eine Beschränkung der Produktionskapazität des darin eröffneten Unternehmens festgelegt.
  • Es gibt eine begrenzte Anzahl von Städten, in denen sich Kunden tatsächlich befinden (im Folgenden als Kundenstädte bezeichnet). Für jede dieser Kundenstädte wird das Nachfragevolumen nach Produkten festgelegt. Der Einfachheit halber gehen wir davon aus, dass das Produkt, das Unternehmen produzieren und konsumieren, eines ist.
  • Für jedes Paar, die Herstellerstadt und die Kundenstadt, wird der Wert der Transportkosten für die Lieferung des erforderlichen Produktvolumens vom Hersteller an den Kunden festgelegt.

Es muss herausgefunden werden, in welchen Städten Unternehmen eröffnet werden sollen und wie Kunden an solche Unternehmen gebunden werden können, um:

  • Die Gesamtkosten für die Eröffnung von Unternehmen und die Transportkosten waren minimal;
  • Das Volumen der Kundennachfrage, das mit einem offenen Unternehmen verbunden ist, hat die Produktionskapazitäten dieses Unternehmens nicht überschritten.

Nun ist der einzige Unterschied zwischen diesen beiden klassischen Problemen zu erwähnen:

  • Standortproblem einer kapazitiven Einrichtung aus einer Hand - Der Client wird nur von einem offenen Unternehmen geliefert.
  • Standortproblem einer kapazitiven Einrichtung mit mehreren Quellen - Ein Kunde kann gleichzeitig von mehreren offenen Unternehmen beliefert werden.

Ein solcher Unterschied zwischen den beiden Problemen ist auf den ersten Blick unbedeutend, führt jedoch tatsächlich zu einer völlig anderen kombinatorischen Struktur solcher Probleme und infolgedessen zu völlig unterschiedlichen Algorithmen zu ihrer Lösung. Die Unterschiede zwischen den Aufgaben sind in der folgenden Abbildung dargestellt.


Abb. 3. a) Problem mit dem Standort der Anlage mit mehreren Quellen


Abb. 3. b) Problem mit dem Standort einer kapazitiven Einrichtung aus einer Hand

Beide Aufgaben NP sind schwierig, das heißt, es gibt keinen genauen Algorithmus, der ein solches Problem in Polynomzeit aus der Größe der Eingabedaten lösen würde. Mit einfacheren Worten, alle genauen Algorithmen zur Lösung des Problems funktionieren exponentiell, obwohl sie möglicherweise schneller sind als eine vollständige Suche nach den Optionen in der Stirn. Seit der Aufgabe NP ist schwierig, dann werden wir nur ungefähre Heuristiken betrachten, dh Algorithmen, die Lösungen sehr nahe am Optimum stabil berechnen und schnell genug arbeiten. Wenn Interesse an einer solchen Aufgabe besteht, finden Sie hier eine gute Bewertung in russischer Sprache.

Wenn wir zur Terminologie unseres Problems der optimalen Komprimierung von Waren in Zellen übergehen, dann:

  • Kundenstädte sind Spenderzellen J mit den Resten der Ware,
  • Fertigungsstädte - Containerzellen I , in dem es die Überreste anderer Zellen platzieren soll,
  • Transportkosten - Zeitkosten Sij Ladenbesitzer, um das Warenvolumen aus der Spenderzelle zu bewegen j zur Containerzelle i ;;
  • die Kosten für die Eröffnung eines Unternehmens - die Kosten für die Auswahl eines Containers Di gleich dem Volumen der Containerzelle i multipliziert mit einem bestimmten Wirtschaftlichkeitskoeffizienten der freien Volumina (der Wert des Koeffizienten ist immer> 1) (siehe Abschnitt zur Vorbereitung der Eingabedaten).

Nachdem die Analogie zu den bekannten klassischen Zustellungen des Problems gezogen wurde, muss die wichtige Frage beantwortet werden, von der die Wahl der Architektur des Lösungsalgorithmus abhängt: Die Bewegung von Resten aus der Spenderzelle ist nur in einem und nur einem Behälter (Single-Source) möglich, oder die Bewegung von Resten ist möglich in mehrere Containerzellen (Multi-Source)?

Es ist erwähnenswert, dass in der Praxis beide Formulierungen des Problems einen Platz haben. Wir geben alle Vor- und Nachteile für jede dieser Aussagen unten an:
AufgabenoptionPluspunkte der OptionNachteile der Option
EinzelquelleVorgänge zum Bewegen von Waren, berechnet nach dieser Variante der Aufgabe:
  • erfordern weniger Kontrolle vom Ladenbesitzer (nahm ALLES aus einer Zelle, legte ALLES in einen anderen Zellenbehälter), wodurch die Risiken beseitigt werden: Fehler bei der Neuberechnung der Warenmenge bei der Ausführung von Vorgängen „In eine Zelle legen“; Eingabefehler der neu berechneten Menge in die TSD;
  • Es ist keine Zeit erforderlich, um die Warenmenge während der Vorgänge „In eine Zelle legen“ nachzählen und in die TSD eingeben zu können
Multi QuelleKompressionen, die nach dieser Variante des Problems berechnet wurden, sind normalerweise um 10-15% kompakter als Kompressionen, die nach der Variante „Single-Source“ berechnet wurden. Beachten Sie jedoch auch, dass der Unterschied in der Kompaktheit umso geringer ist, je kleiner die Anzahl der Reste in den Spenderzellen ist.Vorgänge zum Bewegen von Waren, berechnet nach dieser Variante der Aufgabe:
  • erfordern mehr Kontrolle vom Ladenbesitzer (es ist erforderlich, die Menge der zu jeder der geplanten Containerzellen transportierten Waren nachzurechnen), wodurch das Risiko von Fehlern bei der Neuberechnung der Warenmenge und der Eingabe von Daten in die TSD während der Vorgänge „In die Zelle legen“ beseitigt wird.
  • Es dauert einige Zeit, bis die Warenmenge nachgezählt ist, wenn Vorgänge ausgeführt werden.
  • Es dauert einige Zeit, bis „Overhead“ (anhalten, zur Palette gehen, den Barcode der Containerzelle scannen) ausgeführt wird, wenn die Vorgänge „In die Zelle einfügen“ ausgeführt werden.
  • Manchmal kann ein Algorithmus die Menge einer fast vollständigen Palette auf eine große Anzahl von Behälterzellen aufteilen, in denen bereits ein geeignetes Produkt vorhanden ist, was aus Sicht des Kunden nicht akzeptabel war
Tabelle 1. Vor- und Nachteile der Optionen "Single Source" und "Multi Source".

Da die Anzahl der Pluspunkte für die Single-Source-Option größer ist und auch die Tatsache berücksichtigt wird, dass je kleiner die Anzahl der Reste in den Spenderzellen ist, desto geringer der Unterschied im Grad der Kompressionskompaktheit ist, der für beide Versionen des Problems berechnet wurde, fiel unsere Wahl auf die Single-Quelle. Quelle

Es ist anzumerken, dass die Lösung der Multi-Source-Option ebenfalls stattfindet. Es gibt eine große Anzahl effektiver Algorithmen zur Lösung, von denen die meisten auf die Lösung einer Reihe von Transportproblemen hinauslaufen. Hier gibt es beispielsweise nicht nur effiziente, sondern auch elegante Algorithmen .

Eingabevorbereitung


Bevor Sie mit der Analyse und Entwicklung eines Algorithmus zur Lösung des Problems fortfahren, müssen Sie festlegen, welche Daten und in welcher Form wir sie an die Eingabe senden. Es gibt keine Probleme mit dem in den Spenderzellen verbleibenden Warenvolumen und der Kapazität der Behälterzellen, da dies trivial ist - solche Werte werden in m3 gemessen, aber mit den Kosten für die Verwendung des Behälterbehälters und den Kosten für die Bewegung der Matrix ist dies nicht so einfach!

Zunächst betrachten wir die Berechnung der Kosten für den Transport von Waren von einer Spenderzelle in eine Containerzelle. Zunächst muss festgelegt werden, in welchen Maßeinheiten wir die Umzugskosten berechnen. Die zwei offensichtlichsten Optionen sind Meter und Sekunden. In "sauberen" Messgeräten sind die Umzugskosten sinnlos. Wir zeigen dies am Beispiel. Lass die Zelle A befindet sich auf der ersten Ebene, Zelle Bis 30 Meter entfernt und befindet sich auf der zweiten Ebene:

  • Ausziehen A in B teurer als Umzug von B in A , da das Absenken von der zweiten Stufe (1,5 bis 2 Meter über dem Boden) einfacher ist als das Anheben auf die zweite Stufe, obwohl der Abstand gleich ist;
  • 1 Stk. Bewegen. Waren aus der Zelle A in B Es ist einfacher als 10 Stück zu bewegen. des gleichen Produkts, obwohl der Abstand gleich sein wird.

Bewegungskosten werden am besten in Sekunden berücksichtigt, da Sie so den Unterschied in den Ebenen und den Unterschied in der Menge der transportierten Waren berücksichtigen können. Um die Bewegungskosten in Sekunden zu berücksichtigen, müssen wir den Bewegungsvorgang in Elementarkomponenten zerlegen und für jede Elementarkomponente Zeitmessungen durchführen.

Aus der Zelle lassen j bewegt sich Nj Stk Waren zum Container i . Lass Srun - die durchschnittliche Geschwindigkeit des Mitarbeiters im Lager, gemessen in m / s. Lass Sget und Sput - Durchschnittsgeschwindigkeit einer einzelnen Ausführung von Vorgängen für das Warenvolumen von 4 dm3 (das durchschnittliche Volumen, das ein Mitarbeiter im Lager während des Vorgangs einmal benötigt). Lass Hget und Hput Die Höhe der Zellen, von denen aus die Operationen ausgeführt werden, wird entsprechend genommen und platziert. Beispielsweise beträgt die durchschnittliche Höhe der ersten Stufe (Etage) 1 m, der zweiten Stufe 2 m usw. Dann die Formel zur Berechnung der Gesamtzeit, um den Verschiebevorgang abzuschließen Tij Folgendes:

Tij= left(Nj cdot fracwj4 right) cdotSget cdotHget+sij cdotSrun+ left(Nj cdot fracwj4 right) cdotSput cdotHput.

Tabelle 2 zeigt die Statistiken der Ausführungszeit jeder Elementaroperation, die vom Lagermitarbeiter unter Berücksichtigung der Besonderheiten der gelagerten Waren gesammelt wurden.
Name der OperationBezeichnungMittlere Bedeutung
Die durchschnittliche Geschwindigkeit des Mitarbeiters im LagerSrun1,5 m / s
Geben Sie die Durchschnittsgeschwindigkeit einer Operation an (für ein Warenvolumen von 4 dm3).Sput2,4 Sek
Tabelle 2. Die durchschnittliche Zeit für die Durchführung von Lageroperationen

Mit der Methode zur Berechnung der Umzugskosten entschieden. Jetzt müssen Sie herausfinden, wie die Kosten für die Auswahl einer Containerzelle berechnet werden. Hier ist alles viel, viel komplizierter als mit den Umzugskosten, weil:

  • -, – , -, , , , . , , «» , . 4 .
  • zweitens, da wir die Gesamtkosten bei der Lösung des anfänglichen Problems minimieren müssen und dies die Summe sowohl der Kosten für den Umzug als auch der Kosten für die Auswahl der Container ist, müssen die Zellvolumina in Kubikmetern irgendwie mit Sekunden verknüpft werden, was alles andere als trivial ist.


Abb. 4. Optionen zum Verschieben von Rückständen in Behälter mit unterschiedlichen Kapazitäten.

Abbildung 4 zeigt in rot das Volumen der Rückstände, die in der zweiten Phase der Platzierung nachfolgender Waren nicht mehr in den Behälter passen.

Die folgenden Anforderungen für berechnete Lösungen für das Problem helfen dabei, Kubikmeter Containerkosten mit den Sekunden Transportkosten zu verbinden:

  • In jedem Fall müssen die Rückstände aus der Spenderzelle in die Behälterzelle verbracht werden, wenn dies die Gesamtzahl der Behälterzellen verringert, in denen sich die Waren befinden.
  • Es ist notwendig, ein Gleichgewicht zwischen dem Volumen der Container und der für den Umzug aufgewendeten Zeit herzustellen. Wenn beispielsweise die neue Lösung des Problems mit einem großen Volumengewinn verglichen wird und der Zeitverlust gering ist, müssen Sie eine neue auswählen.

Beginnen wir mit der letzten Anforderung. Um das mehrdeutige Wort „Balance“ zu spezifizieren, haben wir eine Umfrage unter Lagermitarbeitern durchgeführt, um Folgendes herauszufinden. Es sei ein Zellcontainervolumen vorhandend0 , in dem die Bewegung der Warenreste aus Spenderzellen zugeordnet ist und die Gesamtzeit einer solchen Bewegung beträgt T0 . Angenommen, es gibt mehrere alternative Optionen, um dieselbe Menge von Waren aus denselben Spenderzellen in andere Behälter zu legen, wobei jede Platzierung ihre eigenen Bewertungen hat d1 wo d1 < d0 und T1 wo T1 > T0 .

Die Frage ist: Was ist der minimale Lautstärkegewinn? d0d1 akzeptabel für einen bestimmten Wert des Zeitverlusts T1T0 ?Lassen Sie uns anhand eines Beispiels veranschaulichen. Ursprünglich sollten die Rückstände in einen Behälter mit einem Volumen von 1000 dm3 (1 m3) gegeben werden, und die Reisezeit betrug 70 Sekunden. Es besteht die Möglichkeit, Rückstände in einen anderen Behälter mit 500 dm3 und einer Zeit von 130 Sekunden zu geben. Frage: Sind wir bereit, weitere 60 Sekunden der Zeit des Ladenbesitzers für den Umzug aufzuwenden, um 500 dm3 freies Volumen zu sparen? Basierend auf einer Umfrage unter Lagermitarbeitern wurde die folgende Tabelle erstellt.


Abb. 5. Diagramm der Abhängigkeit der minimal zulässigen Volumeneinsparungen von der Zunahme der Differenz in der Betriebszeit.

Wenn die zusätzlichen Zeitkosten 40 Sekunden betragen, können wir sie nur dann ausgeben, wenn der Volumengewinn mindestens 500 dm3 beträgt. Trotz der Tatsache, dass in der Abhängigkeit eine leichte Nichtlinearität beobachtet wird, nehmen wir zur Vereinfachung weiterer Berechnungen an, dass die Abhängigkeit zwischen den Größen linear ist und durch die Ungleichung beschrieben wird

d0d110T1T0

In der folgenden Abbildung betrachten wir die folgenden Methoden zum Platzieren von Waren in Containern.


Abb. 6. Option (a): 2 Behälter, Gesamtvolumen 400 dm3, Gesamtzeit 150 s.

Abb. 6. Option (b): 2 Behälter, Gesamtvolumen 600 dm3, Gesamtzeit 190 s.

Abb. 6. Option (en): 1 Behälter, Gesamtvolumen 400 dm3, Gesamtzeit 200 s.

Option (a) der Wahl der Container ist der ursprünglichen Option vorzuziehen, da die Ungleichung gilt: (800-400) / 10> = 150-120, was 40> = 30 impliziert. Option (b) ist weniger bevorzugt als die ursprüngliche Option , da die Ungleichung nicht gilt: (800-600) / 10> = 190-150, was 20> = 40 impliziert. Aber Option (c) passt nicht in diese Logik! Betrachten Sie diese Option genauer. Einerseits ist die Ungleichung (800-400) / 10> = 200-120, was bedeutet, dass die Ungleichung 40> = 80 nicht erfüllt ist, was darauf hinweist, dass der Volumengewinn keinen so großen Zeitverlust wert ist.

Andererseits reduzieren wir mit dieser Option (c) nicht nur das gesamte belegte Volumen, sondern auch die Anzahl der belegten Zellen. Dies ist die erste von zwei wichtigen Anforderungen für die berechneten Lösungen für die oben aufgeführten Probleme. Damit diese Anforderung erfüllt werden kann, muss natürlich eine positive Konstante auf der linken Seite der Ungleichung hinzugefügt werden Const und eine solche Konstante muss nur hinzugefügt werden, wenn die Anzahl der Container abnimmt. Erinnern Sie sich daran yi Ist eine Variable gleich 1, wenn der Container i ausgewählt und 0, wenn der Container i nicht ausgewählt. Bezeichnen I0 - viele Behälter in der ursprünglichen Lösung und I1 - Viele Behälter in der neuen Lösung. Im Allgemeinen wird die neue Ungleichung folgendermaßen aussehen:

 sumi inI0 fracdi10+Const cdot sumi inI0yi left( sumi inI1 fracdi10+Const cdot sumi inI1yi right) geqT1T0

Wenn wir die obige Ungleichung transformieren, erhalten wir

 sumi inI0 fracdi10+Const cdot sumi inI0yi+T0 geq sumi inI1 fracdi10+Const cdot sumi inI1yi+T1

Basierend darauf haben wir eine Formel zur Berechnung der Gesamtkosten Fk eine Lösung für das Problem:

Fk= sumi inIk fracdi10+Const cdot sumi inIkyi+Tk.

Nun stellt sich die Frage : Welchen Wert sollte eine solche Konstante haben? Const ? Offensichtlich muss sein Wert groß genug sein, damit die erste Voraussetzung für die Lösung des Problems immer erfüllt ist. Sie können natürlich einen konstanten Wert von 10 3 oder 10 6 annehmen, aber ich möchte solche "magischen Zahlen" vermeiden. Wenn wir die Besonderheiten der Durchführung von Lageroperationen berücksichtigen, können wir mehrere fundierte numerische Schätzungen der Größe einer solchen Konstante berechnen.

Lass Smax - der maximale Abstand zwischen den Zellen des Lagers einer Zone ABC, in unserem Fall gleich 100 m dmax - das maximale Volumen des Zellencontainers im Lager, in unserem Fall 1000 dm3.

Der erste Weg, um den Wert zu berechnen Const . Betrachten Sie die Situation, wenn sich auf der ersten Ebene zwei Container befinden, in denen sich die Waren bereits physisch befinden, dh sie selbst Spenderzellen sind und die Kosten für den Transport der Waren in dieselben Zellen natürlich 0 betragen. Es ist notwendig, einen solchen konstanten Wert zu finden Const wobei es vorteilhaft wäre, die Rückstände immer von Behälter 1 zu Behälter 2 zu bewegen. Ersetzen der Werte Smax und dmax In die obige Ungleichung erhalten wir:

 fracdmax10+Const geqSmax cdotsrun+ fracdmax4 left(sget+sput rechts),

was folgt

Const geqSmax cdotsrun+dmax left( fracsget+sput4 frac110 right).

Wenn wir die Werte der durchschnittlichen Ausführungszeit von Elementaroperationen in die obige Formel einsetzen, erhalten wir

Const geq100 cdot1.5+1000 left( frac910 right) rightarrowConst geq1050.

Der zweite Weg, um den Wert zu berechnen Const . Stellen Sie sich eine Situation vor, in der es eine gibt N Spenderzellen, aus denen die Waren in Container 1 transportiert werden sollen S1j - Abstand von der Spenderzelle j zu Container 1. Es gibt auch Container 2, in dem sich bereits Waren befinden und dessen Volumen es Ihnen ermöglicht, die verbleibenden Waren aufzunehmen N Zellen. Der Einfachheit halber nehmen wir an, dass das Volumen der von Spenderzellen zu Behältern transportierten Waren gleich und gleich ist dmax/N . Es ist erforderlich, einen solchen konstanten Wert zu finden Const bei dem die Platzierung aller Rückstände aus N Zellen in Container 2 wären immer rentabler, als sie in verschiedene Container zu legen:

2 cdot fracdmax10+2 cdotConst+N left(S1j cdotsrun+ fracdmax4 cdotN left(sget+sput right) right) geq qquad qquad qquad qquad qquad qquad qquad qquad qquad qquad fracdmax10+Const+N cdot left(Smax cdotsrun+ fracdmax4 cdotN left(sget+sput right)) right).

Wir transformieren die Ungleichung, die wir bekommen

 fracdmax10+Konst+N cdotS1j cdotsrun geqN cdotSmax cdotsrun rightarrowConst geqN cdotsrun left(SmaxS1j right) fracdmax10.

Um den Wert der Menge zu "stärken" Const nehmen wir das an S1j = 0. Die durchschnittliche Anzahl von Zellen, die normalerweise an dem Verfahren zum Komprimieren des Restmaterials beteiligt sind, beträgt 10. Wenn wir die bekannten Werte der Mengen einsetzen, haben wir den folgenden konstanten Wert

Const geq10 cdot1.5 cdot100 frac100010 rightarrowConst geq1400.

Wir nehmen den größten für jede Option berechneten Wert, dies ist der Wert von Const für gegebene Lagerparameter. Der Vollständigkeit halber schreiben wir nun die Formel zur Berechnung der Gesamtkosten Fk für eine machbare Lösung k ::

Fk= sumi inIk fracdi10+1400 cdot sumi inIkyi+Tk.

Nach all den titanischen Bemühungen , die Eingabedaten zu konvertieren, können wir nun sagen, dass alle Eingabedaten in die gewünschte Form konvertiert wurden und für die Verwendung im Optimierungsalgorithmus bereit sind.

Fazit


Wie die Praxis zeigt, wird die Komplexität und Bedeutung der Aufbereitung und Konvertierung der Eingabedaten für den Algorithmus häufig unterschätzt. In diesem Artikel haben wir dieser Phase besondere Aufmerksamkeit geschenkt, um zu zeigen, dass nur qualitativ und mit Bedacht vorbereitete Eingabedaten die vom Algorithmus berechneten Entscheidungen für den Kunden wirklich wertvoll machen können. Ja, es gab viele Schlussfolgerungen aus den Formeln, aber wir haben Sie vor dem Kat gewarnt :)

Im nächsten Artikel werden wir endlich auf das eingehen, worüber die beiden vorherigen Veröffentlichungen nachgedacht haben - den diskreten Optimierungsalgorithmus.

Einen Artikel vorbereitet
Roman Shangin, Programmierer, Projektabteilung,
First Bit Company, Tscheljabinsk

Source: https://habr.com/ru/post/de463481/


All Articles