Aus Belohnungen lernen
Beim Reinforcement Learning ist das Ziel des Agenten aus programmiertechnischer Sicht die Maximierung des Gewinns als Summe der Belohnungen und Bestrafungen. Es kann anhand von einzelnen Belohnungen gelernt werden, beispielsweise als neuronales Netz. Auf diese Weise könnten auch Zwischenzustände unterschiedlich belohnt werden, in dem deren Nutzen berücksichtigt wird. Da der Anwendungsfall jedoch recht einfach ist, wird die Belohnungsfunktion vorgegeben und nur die bereits beschriebenen Zustände bestraft bzw. belohnt. Die Höhe der Belohnung und Bestrafungen sollte so gewählt werden, dass möglichst schnell eine sinnvolle Strategie gelernt werden kann. Für die Wahl gibt es keine genauen Regeln, sondern es werden verschiedene Größen ausprobiert und die Ergebnisse verglichen. Die Belohnungsfunktion muss genau auf die einzelnen Anwendungsfälle zugeschnitten sein, einzelne Bestrafungen können jedoch auch allgemein gültig sein (z.B. eine Bestrafung wenn die Kiste vom Band fällt). Im Anwendungsfall wird belohnt, wenn eine Kiste das richtige Ende des zweiten Förderbandes erreicht. Bestraft wird neben dem falschen Sortieren, das Überfahren von Kanten des Förderbandes. Das kann passieren, wenn sich das erste und das zweite Förderband gleichzeitig bewegen. Dafür gibt es zwei Möglichkeiten: das erste Förderband muss sich bewegen und das zweite Förderband muss sich in positive oder negative Richtung bewegen. Welche Kante überfahren wird spielt für die Bestrafung keine Rolle, genauso wenig wird berücksichtigt wie lange sich die Kiste in der Lichtschranke befindet und ob es in Folge des Überfahrens vom Förderband fällt. Der Agent bekommt eine Bestrafung, sobald eine Kiste über irgendeine Kante fährt. Um eine schnelle Lösung zu begünstigen und zu fördern ist eine weitere Bestrafung notwendig, diese wird gegeben, wenn die gewählte Handlung den Agenten nicht voranbringt, sondern der Zustand erhalten bleibt.
Ergebnisse und Ausblick
Das Hauptergebnis der Anwendung ist, dass der Agent in der Lage ist, Verhaltensstrategien zu erlernen, mit denen er die Förderbänder steuern und dadurch die Kisten sortieren kann. Nach Abschluss des Lernens verhält sich der Agent deterministisch, d.h. bei der richtigen Strategie erreicht er eine 100 Prozent korrekte Sortierung. Die Lernzeiten sind von der Belohnungsfunktion und Diskontierungsfaktor abhängig. Im Durchschnitt wurden ca. 300 Zyklen benötigt um eine erfolgreiche Verhaltensstrategie zu lernen. Das Reinforcement Learning wurde konzeptuell aber auch softwaretechnisch erfolgreich an eine HIL-Simulationsumgebung gekoppelt. Es ermöglicht die Variation der Erneuerungsfunktion sowie die Verwendung einer Zustands- und einer Zustandsaktionsbewertung. Das entwickelte Konzept kann an verschiedene Anwendungsfälle angebunden werden. Die Sensorsignale des Materialflusssystems wurden diskretisiert und daraus ein Zustandsraum und eine Belohnungsfunktion definiert. Für die Aktorsignale wurde ein diskreter Aktionsraum festgelegt. Anhand des Anwendungsfalls wurden Versuchsreihen mit Parametervariationen durchgeführt. Dabei wurde als Bewertungsfunktion sowohl die Zustands- als auch die Zustandsaktionsbewertung getestet, beide in Form einer Lookup-Tabelle. Als Erneuerungsfunktion wurden die Bellman-Optimalitätsgleichung und die zeitliche Differenzenmethode eingesetzt. Statt eine Verhaltensstrategie mithilfe der Bewertungsfunktion zu lernen, könnte auch versucht werden, direkt eine SPS-Steuerung zu lernen. Das ist entweder durch eine automatisierte Überführung der Bewertungsfunktion in eine SPS-Steuerung möglich oder durch die Auswahl von SPS-Befehlen statt den bisherigen Aktionen. Für das direkte Lernen von SPS-Befehlen müssen die Aktionen aber neu definiert und deren Anbindung an die Simulation verändert werden. Es müssen Aktionsprimitive, klar definierte minimale Aktionen formuliert und implementiert werden. In diesem Fall würde die Förderbandgeschwindigkeit nicht mehr direkt dem Motor aufgeprägt, sondern eine Steuerung zwischengeschaltet.