Die Handhabung der Waren in einem Hochregal durch ein Regalbediengerät (RBG) lässt sich als Reinforcement Learning Problem formulieren. Ziel des Prototyps in diesem Beitrag ist es, die grundlegende Funktionsweise eines Regalbediengerätes zu erlenen. Basierend auf diesen Grundlagen können komplexere Szenarien abgebildet werden um effizientere Strategien für bestehende oder zukünftige Hochregallager zu finden.
Reinforcement Learning baut auf dem Prinzip der Interaktion eines Agenten (Agent) mit einer Umgebung (Environment) auf. Der Agent kann per Aktion (Action) mit der Umgebung interagieren und so Einfluss auf sie nehmen. Der Zustand der Umgebung wird in Form einer Beobachtung (Observation) vom Agenten wahrgenommen. Dadurch entsteht ein Wechsel zwischen Aktion und Beobachtung. Zusätzlich zur Beobachtung enthält der Agent eine Belohnung (Reward) nach jeder Aktion. Ziel des Reinforcement Learning ist es, die Belohnung die ein Agent erhält zu maximieren. Während des Trainings wird das Verhalten des Agenten Schritt für Schritt angepasst um höhere Belohnungen erzielen zu können.
State Action Graph
Für den Prototypen werden das Regal und der Bedarf möglichst einfach dargestellt. Insbesondere der Bedarf kann auf komplexe Arten individuell formuliert werden, je nach Beschaffenheit des Prozesses in den das Hochregal eingebettet ist.
Der oben beschriebene Zustand des Hochregallagers muss in Form einer Observation codiert werden, um als Eingabe für den Algorithmus dienen zu können. Hierfür gibt es verschiedene Möglichkeiten. Eine einfache Variante ist es, jede relevante Variable in eine Liste zu schreiben und die komplette Liste als eindimensionale Eingabe zu verwenden. Hierbei würde die zweidimensionale Struktur des Regals umgeformt werden.
Eine Codierungsvariante, die die räumliche Struktur beibehält kann jedoch sinnvoller sein, da dadurch Verfahren verwendet werden können, die räumliche Strukturen nutzen wie z.B. Convolution-Netze. Eine solche Darstellung behält die zweidimensionale Anordnung des Regals bei. In der dritten Dimension (Tiefe bzw. 'Kanäle'/'Channels') können Informationen Codiert werden, wie z.B. Artikeltyp, RBG-Position, Artikelbedarf etc.
Beispielhafte Codierung eines Regals mit zwei Artikeltypen. 'Kanal' bezieht sich in dieser Grafik auf die Codierung der Informationen ('Channel'), nicht auf ein Kanal eines Kanalregals.
Die Formulierung der Belohnung ist entscheidend für den Lernerfolg und Sinnhaftigkeit des Verhalten des Agenten. Häufige kleine Belohnungen können dem Lernprozess helfen und ihn somit beschleunigen - geben aber auch Implizit Verhalten vor und müssen daher mit Bedacht gewählt werden. Die wichtigste Belohnung in diesem Szenario ist die Ablage von Waren für die Bedarf besteht. Weitere Hilfsbelohnungen wie z.B. für das Entnehmen von Ware aus dem Einlagerungspunkt und Bewegung von korrekter Ware zum Auslagepunkt können den Lernprozess unterstützen. Negative Belohnungen zu jedem Zeitschritt erzeugen eine Dringlichkeit in der Handlung des Agenten.
Es wird ein Beispielszenario geschaffen, um zu prüfen ob der trainierte Agent sinnvolle Aktionen wählt.
Zum Vergleich des gelernten Agenten wird ein regelbasiertes Verfahren als Baseline betrachtet. Das Grundprinzip ist es, Artikel aus dem Einlagerungsplatz auf einen freien Platz mit kleinstem Abstand zum Einlagerungsplatz zu legen. Befindet sich Bedarf im Regal, wird der benötigte Artikel mit dem kleinsten Abstand zum RBG zum Auslagerungsplatz gebracht. Somit sollen möglichst kurze Wege bevorzugt werden.
Pseudocode der Baseline Policy:
# if payload is not empty
# if payload is demand
# goto target and drop
# else (payload is not demand)
# if rack is full
# go to target and drop (free up new space if there is demand, rack is full and only non-demand items in rack)
# else
# goto closest empty slot and drop
# else (payload is empty)
# if demand in rack
# go to demand in rack and pick up
# else (demand not in rack)
# if at source
# pick
# if empty slots left
# go to source
# else (no empty slots left)
# if all demand slots are full
# if no demand in rack
# go to source (go to source to free spawn space for demanded item)
# else (not all demand slots full)
# go to target (for quick delivery at next demand)
In diesem Abschnitt sind verschiedene Ausschnitte des Verhalten eines trainierten Agenten dargestellt.
Nachschub |
---|
Nachschub wird als solcher erkannt und aus dem Einlagerungspunkt genommen um ihn zu verstauen. |
Verstauen |
---|
Nachschub, der nicht unmittelbar gebraucht wird, wird abgelegt. Der Lagerplatz wird als solcher verwendet. Somit wird Platz im Einlagerungspunkt für neuen Nachschub geschaffen und es kann schneller auf Bedarf reagiert werden wenn der entsprechende Artikel im Lager ist. |
Bedarf |
---|
Der Bedarf wird mit korrekten Gegenständen im Lager assoziiert und via Ablegen des Gegenstands im Auslagerungsbereich nachgekommen. |
Befüllung |
---|
Das Lager wird von links unten befüllt, es werden also kurze Strecken (zum Einlagerungspunkt) bevorzugt. |
Die Abbildung zeigt den Durchsatz von jeweils dem RL-Agenten und der Baseline über 1000 Zeitschritte hinweg (je 300 Wiederholungen, geglättet über 100 Samples, 95%-Konfidenzintervall). Bis ca. Zeitschritt 600 ist der RL-Agent im Mittel besser als die Baseline, danach wiederum die Baseline. Bereits in diesem simplen Szenario können in kurzer Zeit Strategien entdeckt werden, die eine konkurrenzfähige Alternative für eine starke Baseline darstellen. Mithilfe weiterer Optimierungen können die bestehenden Ansätze noch weiter ausgebaut werden. In komplexeren Szenarien besteht mehr Spielraum für fortgeschrittene Strategien, was wiederum Möglichkeiten für den RL-Agenten entfaltet.
Beim erstellen einer Umgebung für Reinforcement Learning gibt es verschiedenste Aspekte zu beachten. Zum Beispiel:
Das erleneren der Steuerung eines Regalbediengerät ist eine herausfordernde Aufgabe. Dieser Artikel zeigt, dass mithilfe von Reinforcement Learning die Steuerung eines Regalbediengeräts gelernt werden kann. Das gelernte Verhalten könnte zur Steuerung verwendet werden, oder dazu beitragen, bessere Bewegungs- und Belegungsstrategien für ein gegebenes Szenario zu identifizieren. Der erzielte Durchsatz ist konkurrenzfähig zu einem Regelbasierten Ansatz.
Ein robusterer, praxisorientierterer Ansatz könnte sein anstatt die komplette Steuerung zu lernen, die Auswahl bzw. das Umschalten zwischen etablierten Strategien gegeben der Bedarfs- und Lagersituation zu erlernen um so flexibel reagieren zu können.