-
Die Erfindung betrifft einen Auftragsplaner für Maschinen, insbesondere Produktionsmaschinen, zur sukzessiven Auswahl von Aufträgen über ein Graph Neural Network. Die Erfindung betrifft ferner ein Computerprogramm und ein maschinenlesbares Speichermedium sowie ein System, das zur Ausführung des Auftragsplaners ausgelegt ist.
-
Stand der Technik
-
Die Optimierung des Durchsatzes oder der Ressourcennutzung ist eine Herausforderung und birgt ein großes Potenzial für Kosteneinsparungen in Fertigungsbetrieben und ein großes Potenzial zur Steigerung der Produktivität.
-
Eine Herausforderung liegt in der kombinatorischen Natur des Problems. Es gibt viele mögliche Planungen, und das Problem, die beste Planung zu finden, ist oft NP-hart. Eine weitere Herausforderung ist seine Online- (oder dynamische) Natur. Zusätzliche Aufgaben treffen während der Ausführung der aktuellen Planung ein. Die Eigenschaften der eintreffenden Aufträge sind nicht mit Sicherheit bekannt, bevor sie eintreffen.
-
Mao et al. (https://arxiv.org/abs/1810.01963) verwendeten einen Algorithmus für bestärkendes Lernen REINFORCE mit „Graph Convolutional Embedding“ für die Auftragsplanung auf einem Cluster.
-
Vorteile der Erfindung
-
Die vorliegende Erfindung offenbart einen Auftragsplaner, der auf bestärkendem Lernen und vorzugsweise ferner auf globaler Suche basiert, genauer gesagt durch Kombinieren eines mit dem DQN-Algorithmus (Deep Q-Network) und mit MCTS (Monte-Carlo-Baum-Suche) trainierten Graph Convolutional Network.
-
Die Vorteile sind wie folgt: (1) Der Auftragsplaner weist eine gute Leistung auf, wenn die Planungsentscheidungen schnell getroffen werden müssen. In diesem Fall steht keine Zeit für Suche zur Verfügung, und es wird vorgeschlagen, eine Planung nur auf der Grundlage eines Wertnetzes des DQN zu erstellen. Experimente haben gezeigt, dass die mit dem Wertnetz (engl. value network) des DQN erstellten Planungen bereits Standardheuristiken zur Planung wie regelbasierte Planung, z. B. die Heuristik für gewichtete kürzeste Bearbeitungszeit, übertreffen. (2) Der Auftragsplaner kann eine beliebige verfügbare Zeit vollständig zur Deliberation nutzen. Wenn etwas Zeit zur Verfügung steht kann die Optimieren der Planung über MCTS erfolgen. Da MCTS ein Anytime-Algorithmus ist, kann er jederzeit angehalten werden und eine Ausgabeplanung erzeugen. Da die Ausgaben des Wertnetzes des DQN als Suchheuristik verwendet werden, ist die ausgegebene Planung mindestens so gut wie die Planung, die nur durch das Wertnetz erzeugt wird. Die Ausgabe verbessert sich kontinuierlich, je länger MCTS läuft. Wenn genügend Zeit zur Verfügung steht, kann MCTS bei der optimalen Planung ankommen. (3) Der Auftragsplaner kann Informationen darüber berücksichtigen, wie zusätzliche Aufgaben im Laufe der Zeit eintreffen.
-
Offenbarung der Erfindung
-
In einem ersten Aspekt der Erfindung wird ein Verfahren zum Planen einer Vielzahl von Aufträgen offenbart. Vorzugsweise handelt es sich um ein computerimplementiertes Verfahren.
-
Eine Zuteilung und/oder Reihung von Arbeit an industrielle ausführende Einheiten als Maschinen, insbesondere innerhalb von Zeitfenstern, kann als Planung bezeichnet werden. Die Menge von Aufträgen enthält alle Aufträge, die ausgeführt werden müssen und die aktuell zur Ausführung anstehen. Ein Auftrag kann als eine Aufgabe verstanden werden, die von der Maschine ausgeführt werden muss. Die Vielzahl von Maschinen können identische oder ähnliche Maschinen sein und können parallel betrieben werden. Die Maschinen können sich alle in einer Fabrik befinden oder über mehrere Fabriken verteilt sein.
-
Jeder Auftrag wird durch mindestens ein erstes Merkmal definiert, das eine Bearbeitungszeit des Auftrags kennzeichnet. Die Bearbeitungszeit kann eine Zeitdauer sein, die eine Maschine zum Bearbeiten des entsprechenden Auftrags benötigt. Optional wird mit einem zweiten Merkmal eine Wichtigkeit des Auftrags gekennzeichnet.
-
Wenn eine beliebige der Maschinen frei ist, wird ein Auftrag aus der Menge von Aufträgen zur Ausführung auf dieser Maschine ausgewählt und für diese Maschine eingeplant. Idealerweise wird der Auftrag so ausgewählt, dass die Gesamtfertigstellungszeit der Menge von Aufträgen minimiert wird. Unter einer freien Maschine kann verstanden werden, dass entweder die Maschine ihren aktuellen Auftrag beendet hat/der aktuelle Auftrag abgebrochen wurde und die Maschine einen neuen Auftrag starten kann oder die Maschine noch mit keinem jeglichen Auftrag gestartet ist. Wenn eine Maschine einen Auftrag ausführt, kann der entsprechende Zustand dieser Maschine als belegt bezeichnet werden.
-
Der Auftrag wird wie folgt ausgewählt. Ein Graph Neural Network (GNN) empfängt als Eingabe die Menge von Aufträgen und einen aktuellen Zustand von mindestens der Maschine, die frei ist. Das GNN wird dafür trainiert, eine Belohnung zu schätzen, die man erhält, wenn ein Auftrag so ausgeführt wird, dass die Gesamtfertigstellungszeit minimiert wird. Genauer gesagt wird das GNN dafür trainiert, dass es eine hohe Belohnung für eine kleine Fertigstellungszeit für die Menge von Aufträgen ausgibt.
-
Der aktuelle Zustand der Maschine kann die aktuelle Einrichtung und die verbleibende Bearbeitungszeit umfassen. Der Zustand einer Maschine kann ferner z. B. die Klasse umfassen, für die sie gerade eingerichtet ist, ob sie gerade von einem Auftrag belegt ist, und wenn ja, die verbleibende Bearbeitungszeit. Optional kann eine Zeitdauer bis zu den nächsten Wartungsarbeiten angegeben werden. Es ist auch möglich, dass das GNN als Eingabe die Zustände aller Maschinen empfängt. Dann werden vorzugsweise die nicht relevanten Maschinen und Aufträge maskiert, z. B. durch Nullen.
-
Das GNN gibt eine, insbesondere erwartete kumulative diskontierte, Belohnung für die Menge von Aufträgen aus, wenn diese hypothetisch auf den Maschinen, deren Zustände in das GNN eingegeben werden, gestartet werden. Es lässt sich sagen, dass die erwartete Gesamtfertigstellungszeit umso geringer ist, je größer die Belohnung ist. Der Auftrag für die freie Maschine wird in Abhängigkeit von der Ausgabe des Graph Neural Network ausgewählt, die die höchste Belohnung erzielt. Dann kann eine der freien Maschinen oder die freie Maschine einen Befehl zum Ausführen des ausgewählten Auftrags erhalten.
-
Es wird vorgeschlagen, dass das GNN als Eingabe einen, insbesondere zweiseitigen und ungerichteten, Graphen erhält, der zwei disjunkte unabhängige Mengen von Knoten (U, V) umfasst, wobei die erste Menge von Knoten (U) für jede Maschine ihren aktuellen Zustand und die zweite Menge von Knoten (V) die Merkmale jedes Auftrags innerhalb der Menge von Aufträgen umfasst. Ferner umfasst der Graph eine Menge von Kanten (E), wobei die Kanten eine Verbindung zwischen Knoten der ersten Menge von Knoten mit Knoten der zweiten Menge von Knoten kennzeichnen. Zusätzlich enthält der Graph einen globalen Informationsvektor, der für den gesamten Graphen relevant ist. Dieser kann auf null initialisiert werden.
-
Die Ausgabe des Graph Neural Networks ist dann ein Graph mit der gleichen Struktur, aber mit den aktualisierten Knoten der Mengen von Knoten U und V, Kanten und globalen Merkmalsvektoren. Die aktualisierten Kanten werden als die Belohnung, auch Q-Wert genannt, für die Einplanung eines der Aufträge auf einer der Maschinen, die durch die jeweilige Kante verbunden sind, interpretiert. Das aktualisierte globale Merkmal kann eine Leerlaufaktion der Maschine kennzeichnen. Dann ist es möglich, statt einen Auftrag abhängig von der Ausgabe des GNN auszuwählen, einen Leerlaufzustand der Maschine abhängig von der Ausgabe des GNN auszuwählen.
-
Der Vorteil der Verwendung von GNNs besteht darin, dass das gleiche Netz auf Probleme unterschiedlicher Größe, d. h. mit einer unterschiedlichen Anzahl von Aufträgen oder Maschinen, angewendet werden kann.
-
Es wird darauf hingewiesen, dass nach der Auswahl des Auftrags der Auftrag der Maschine zugewiesen wird, die dann mit der Ausführung des Auftrags beginnt. Dieser Vorgang kann wiederholt werden, bis alle Aufträge erledigt sind. Der ausgewählte Auftrag kann nachträglich aus der Menge von Aufträgen entfernt werden.
-
Es wird vorgeschlagen, dass der Auftrag durch ein drittes Merkmal definiert wird, das eine Klasse aus einer Vielzahl von Klassen kennzeichnet, wobei jede der Klassen eine entsprechende Einrichtung der Maschinen kennzeichnet, die zur Ausführung des entsprechenden Auftrags erforderlich ist. Darüber hinaus können die aktuellen Zustände der Maschinen ihre aktuelle Einrichtung kennzeichnen. Das Graph Neural Network erhält eine weitere Eingabe, nämlich Zeitstrafen, wenn aufgrund von zwei unmittelbar aufeinanderfolgenden Aufträgen unterschiedlicher Klassen für dieselbe Maschine eine Neuauslegung der Maschine durch eine Änderung der Einrichtung einer jeglichen Maschine erforderlich ist. Die Zeitstrafen können Werte sein, die proportional zu einer gemessenen oder vorbestimmten Zeit sein können, wobei es sich um gemessene Zeiten oder durch Erfahrungswerte über die Neuauslegung der Maschinen geschätzte Zeiten handeln kann.
-
Genauer gesagt kodiert die Menge von Kanten des Eingangsgraphen der GNN-Kantenmerkmale die Einrichtungszeit, die dazu erforderlich ist, den Auftrag zu verarbeiten, der dem Knoten der zweiten Menge von Knoten auf der entsprechenden Maschine der ersten Menge von Knoten entspricht.
-
Es wird ferner vorgeschlagen, dass alle Aufträge der Menge von Aufträgen in eine Warteschlange eingereiht werden, abhängig von der Ausgabe des GNN. Die Warteschlange definiert eine Reihenfolge, in der die Aufträge von der Vielzahl von Maschinen abgearbeitet werden. Vorzugsweise werden die Aufträge entsprechend der Warteschlange von den Maschinen abgearbeitet. Besonders bevorzugt wird die Warteschlange neu ausgewertet, nachdem einer der Aufträge der Warteschlange beendet wurde.
-
Es wird ferner vorgeschlagen, dass zusätzliche Aufträge zu gewissen Zeitpunkten während des Abarbeitens der Aufträge eintreffen und die zusätzlichen Aufträge zur Menge von Aufträge hinzugefügt werden. Der Vorteil ist, dass das Verfahren auch mit dynamischen Einstellungen umgehen kann, da die Flexibilität des Auftragsplaners erhöht ist. Um den Eintreffzeitpunkt bei der Auswahl der Aufträge zu berücksichtigen, kann jeder Auftrag durch ein weiteres Merkmal definiert werden, das einen Zeitstempel beim Eintreffen in der Auftragswarteschlange kennzeichnet.
-
Es wird ferner vorgeschlagen, dass eine Parametrisierung θ des Graph Neural Network durch bestärkendes Lernen, insbesondere durch Deep Q-Network Learning, optimiert wird. Vorzugsweise wird für das bestärkende Lernen eine simulierte Fabrik, ein so genannter digitaler Zwilling, verwendet, der die Dynamik der realen Fabrik widerspiegelt, genauer gesagt, wie sich der Zustand einer Fabrik ändert, wenn ein Auftrag gestartet wird. Man kann sagen, dass die simulierte Fabrik einer Umgebung entspricht, in der ein Agent der Algorithmen für bestärkendes Lernen aktiv ist und seine Strategie optimiert.
-
Es wird ferner vorgeschlagen, dass für die Auswahl des nachfolgenden Auftrags eine Monte-Carlo-Baum-Suche (MCTS) angewendet wird. Die Monte-Carlo-Baum-Suche baut iterativ einen Suchbaum auf, ausgehend vom aktuellen Zustand der Maschinen und der Menge von Aufträgen, wobei zum Ausweiten des Suchbaums die Ausgabe des Graph Neural Network als eine Suchheuristik verwendet wird. Abhängig vom Suchbaum wird der nachfolgende Auftrage ausgewählt und/oder wobei die Monte-Carlo-Baum-Suche eine Planung von Aufträgen ausgibt.
-
Der Vorteil des Kombinierens des Graph Neural Network mit der Monte-Carlo-Baum-Suche führt zu einer Planung, die sehr nahe an einer optimalen Planung liegt. Durch das GNN ist eine Simulation der Maschinen, insbesondere der Fabrik, nicht erforderlich.
-
Es wird ferner vorgeschlagen, dass zum Ausweiten des Suchbaums die Aktionen auf der Grundlage einer oberen Konfidenzgrenze ausgewählt werden. Dies bedeutet, dass Aktionen mit den höchsten Belohnungen in Abhängigkeit davon gewählt werden, wie oft die entsprechende Aktion bereits gewählt wurde.
-
Es wird ferner vorgeschlagen, den Suchbaum zu beschneiden, insbesondere indem nur eine vorbestimmte Anzahl k von Aufträgen mit den höchsten Belohnungen innerhalb mindestens eines Rollouts berücksichtigt wird. Der Vorteil ist eine überlegene Optimierung durch die reduzierte Komplexität des Suchbaums, was zu einem verbesserten Suchverhalten der MCTS führt.
-
Bei den Maschinen kann es sich um Produktionsmaschinen handeln, und Logistikroboter können dazu eingesetzt werden, die Produktionsmaschinen mit Produktionsmaterial zu versorgen, das für den aktuellen Auftrag der jeweiligen Maschine benötigt wird, wobei die Logistikroboter abhängig von den geplanten Aufträgen gesteuert werden.
-
Bei einer Produktionsmaschine kann es sich um eine Fertigungsmaschine handeln, z. B. eine Stanzmaschine, ein Schneidwerk oder ein Spindelbohrer, vorzugsweise eines Fertigungssystems, z. B. als Teil einer oder einer Vielzahl von Produktionslinien. Es wird ferner vorgeschlagen, dass ein Steuerungssystem die Maschinen in Abhängigkeit von den geplanten Aufträgen steuert.
-
In einem zweiten Aspekt der Erfindung entsprechen die Maschinen Depots oder Auslieferungsstandorten von Waren, wobei abhängig von der Menge von Aufträgen eine Transportroute für die Waren bestimmt wird. Für diesen Aspekt der Erfindung wird der Auftragsplaner auf logistische Probleme angewandt (z. B. Planung der Route eines Kuriers durch eine Stadt, wobei zusätzliche Punkte zum Aufnehmen/Abgeben von Artikeln hinzugefügt werden, während der Kurier unterwegs ist). Es wird darauf hingewiesen, dass der Auftragsplaner nicht auf diese speziellen Anwendungen beschränkt ist und auf eine Reihe verschiedener Online- oder Offline-Planungsprobleme oder kombinatorischer Optimierungsprobleme in verschiedenen industriellen Bereichen, z. B. in der Verpackungsindustrie, angewendet werden kann.
-
Ausführungsformen der Erfindung werden mit Bezug auf die folgenden Figuren erläutert. Die Figuren zeigen:
- 1 ein Flussdiagramm eines Verfahrens, das von einem Auftragsplaner ausgeführt wird; und
- 2 ein Trainingssystem.
-
Im Folgenden wird ein Auftragsplaner offenbart, der sowohl auf bestärkendem Lernen als auch auf globaler Suche aufbaut, genauer gesagt durch Kombinieren von Graph Convolutional DQN mit MCTS, wobei das eine vom anderen profitiert. Der Auftragsplaner ist in der Lage, eine Lösung eines als Graph dargestellten Planungsproblems direkt zu berechnen, ohne dafür externe Solver oder Simulationsumgebungen zu benötigen.
-
Zunächst wird die Einstellung eines Problems definiert, das vom Auftragsplaner gelöst werden kann.
-
Im Allgemeinen soll der Auftragsplaner in der Lage sein, ein Problem der Online-Planung, ein spezifisches kombinatorisches Online-Problem, zu lösen. Es ist zu beachten, dass der Auftragsplaner leicht auf andere kombinatorische Online-Probleme ausgedehnt werden kann, etwa das Problem des Handlungsreisenden und Fahrzeugrouting-Probleme, bei denen z. B. die Ziele online hinzugefügt werden. Die kombinatorischen Online-Optimierungsprobleme, beinhaltend logistische Online-Probleme (z. B. Planung der Route eines Kuriers durch eine Stadt, bei der zusätzliche Punkte zum Abholen/Abliefern von Artikeln hinzugefügt werden, während der Kurier unterwegs ist).
-
Im Folgenden werden in der Ausführungsform Planungsprobleme betrachtet, bei denen eine Anzahl von wartenden Aufträgen von einem Satz ähnlicher Maschinen bearbeitet werden muss, insbesondere die Planung in Produktionsfabriken (Bestimmung der Bearbeitungsreihenfolge von Waren bei verschiedenen Bearbeitungsschritten) sowie die Planung in anderen Industriebereichen, z. B. bei der Verpackung. Bei den Maschinen kann es sich um eine beliebige Art von Maschinen handeln, z. B. eine Produktionsmaschine, eine Transportmaschine und so weiter.
-
Die Aufträge können zu verschiedenen Klassen gehören. Wenn zwei Aufträge unterschiedlicher Klassen nacheinander auf derselben Maschine verarbeitet werden, muss die Einrichtung der Maschine geändert werden, was eine Zeitstrafe durch die Neuauslegung der Maschine zur Folge hat. Bei zwei aufeinanderfolgenden Aufträgen der gleichen Klasse gibt es keine solche Zeitstrafe. Zusätzlich zu ihren Klassen werden Aufträge durch ihre Bearbeitungszeiten, vorzugsweise durch ihre Gewichtung (d. h. Wichtigkeit) und vorzugsweise durch den Zeitpunkt ihres Eintreffens in der Warteschlange gekennzeichnet.
-
Die gewichtete Gesamtfertigstellungszeit (TWCT) kann wie folgt definiert werden:
wobei J die Menge von Aufträgen ist, w
0 das Gewicht des Auftrags j ist und C
o seine Fertigstellungszeit ist, d. h. die Differenz zwischen dem Zeitpunkt, an dem für j die Verarbeitung beendet ist, und dem Zeitpunkt, an dem er in der Warteschlange eingetroffen ist.
-
Der Auftragsplaner ist dafür ausgelegt, dass die TWCT minimiert wird.
-
Ein Zustand kann durch die Menge wartender Aufträge und deren Merkmale, wie oben definiert (z.B. Fertigstellungszeit, Gewichtung der Aufträge, ...), und den aktuellen Zustand der Maschinen gekennzeichnet werden. Konkret wird jede Maschine durch eine Klasse repräsentiert, für die sie derzeit eingerichtet ist, ob sie gerade durch einen Auftrag belegt ist und wenn ja, wie groß die verbleibende Bearbeitungszeit ist. Die Matrix von Einrichtungswechselzeiten ist ebenfalls beobachtbar. Es ist zu beachten, dass ein Zustand als ein Entscheidungspunkt behandelt wird, wenn es in diesem Zustand mindestens eine freie Maschine und einen wartenden Auftrag gibt.
-
Zusätzlich können empfangene Sensorsignale, z. B. von eingebauten Überwachungssensoren der Fertigungsmaschinen der Fabrik (z. B. aktuelle Auslastung, Wartungsbedarf) und Sensoren, die die Position und den Zustand von Aufträgen innerhalb der Fabrik (z. B. Siliziumwafer) überwachen, zur Kennzeichnung des Zustands verwendet werden. Optional kann ein Status der aktuellen Situation einer Materialversorgungskette dazu verwendet werden, den Zustand zu kennzeichnen.
-
Aktionen können als Tupel (j; m) repräsentiert werden und entsprechen dem Starten des Auftrags j auf der Maschine m. Wenn die Aktion ausgeführt wird, wird ein Ereignis, das eine Aktualisierung des Zustands repräsentiert, für den Zeitpunkt registriert, zu dem der Auftrag beendet wird. Alternativ kann eine „Kein-Betrieb“-(noop)-Aktion ausgeführt werden, die auf keiner der freien Maschinen einen Auftrag startet. In beiden Fällen wird die Simulation iterativ bis zum nächsten Ereignis vorgezogen, bis der nächste Entscheidungspunkt erreicht ist.
-
Es kann statische und dynamische Einstellungen geben. Bei statischen Einstellungen sind alle relevanten Aufträge im Ausgangszustand sichtbar, z. B. zu Beginn des Verfahrens oder vor dem Starten des Auftragsplaners. In der dynamischen Einstellung können zusätzliche Aufträge zu gewissen Zeitpunkten (d. h. in Eintreffintervallen) eintreffen, wobei die Anzahl der eintreffenden Aufträge zu Beginn jedes Intervalls durch eine Poisson-Verteilung für alle Klassen, jede mit ihrer eigenen Rate, geschätzt werden kann. Die Häufigkeit von Auftragsklassen kann dem Zipfschen Gesetz folgen. Die Episode wird beendet, wenn alle Aufträge eingetroffen und abgearbeitet sind.
-
Die sofortigen Belohnungen können als r
t = TWCT(s
t + 1) - TWCT(s
t) angegeben werden, wobei die Fertigstellungszeit durch die aktuelle Zeit für nicht abgeschlossene Aufträge ersetzt wird. Die Gesamtbelohnung einer Episode ergibt sich demnach zu:
-
Es ist zu beachten, dass die aktuelle Zeit bei S0 0 ist, so dass TWCT(S0) = 0 ist, und dass alle Aufträge bei ST abgeschlossen sind, so dass TWCT(ST) genau der TWCT-Zielwert ist.
-
Erklärung für die Wahl für das Deep Q-Netz (DGN): Q Graph Neural Network. Das oben beschriebene Problem der Online-Planung kann als ein Markov-Entscheidungsprozess (MDP) betrachtet werden, wobei S und A der Zustands- bzw. der Aktionsraum ist und P(S0|S, a) die Wahrscheinlichkeit des Übergangs vom Zustand s ∈ S zum Zustand s' ∈ S bei Anwendung der Aktion a ∈ A bezeichnet. Um die MDP-Formulierung zu lösen, wird einen Algorithmus für bestärkendes Lernen angewendet.
-
Vorzugsweise kann ein DQN-Algorithmus außerhalb einer Strategie verwendet werden, der eine Annäherung an die Q(s, a)-Funktion erlernt, die die kumulative diskontierte Belohnung für die Anwendung von a bei s und das anschließende Befolgen einer Strategie von Aktionen repräsentiert, die übermäßig oder explorativ sein könnte. Für weitere Informationen über die Q-Funktion wird der Leser auf das folgende Dokument verwiesen: Bertsekas, D. „Dynamic programming and optimal control“, Athena scientific Belmont, MA, 2005.
-
Aufgrund des großen Zustandsraums S und der Komplexität der Q-Funktion ist ein neuronales Netz, das durch θ parametriert ist, eine gängige Wahl für die Approximation der Q-Funktion. Diese Annäherung kann so trainiert werden, dass die quadrierte zeitliche Differenz, angegeben wie folgt, minimiert wird:
mit dem Diskontierungsfaktor y und einer unmittelbaren Belohnung r(s, a).
-
Bei der Implementierung des DQN-Algorithmus wird ein GNN als Approximation der Q-Funktion verwendet. GNN ist ein gebräuchlicher Name für ein Framework, bei dem ein neuronales Netz oder ein Satz von neuronalen Netzen wiederholt auf die Graphdarstellung der Eingabedaten angewendet wird. GNNs haben mehrere Eigenschaften, die in einem Kontext der kombinatorischen Optimierung wichtig sind: Sie sind permutationsäquivariant und können Beobachtungen unterschiedlicher Größe (d. h. unterschiedliche Anzahl von Knoten und Kanten) verarbeiten, solange die Dimensionalität der Merkmale konstant bleibt. Außerdem sind GNNs in der Lage, die relationale Verzerrung in Beobachtungen durch mehrstufige Informationsweitergabe innerhalb der Graphdarstellung, d. h. durch Message-Passing, zu nutzen.
-
Für das Planungsproblem wird jede Beobachtung durch einen bipartiten, ungerichteten Graphen repräsentiert, der durch das Tupel G = (w; U; V; E) repräsentiert wird.
-
In der vorgeschlagenen Kodierung entsprechen U und V zwei disjunkten, unabhängigen Mengen von Knoten, wobei ui der Merkmalsvektor von Maschine i und vj der Merkmalsvektor von Auftrag j ist. Die Merkmalsvektoren der Maschine und des Auftrags bestehen aus den oben beschriebenen Merkmalen. Der eigentliche Merkmalsvektor jedes Knotens ui ∈ U und vj ∈ V ist die Verkettung von Maschinen- und Auftragsmerkmalen, wobei die irrelevanten Dimensionen durch Nullen maskiert werden können. Die Mengen der Maschinen- und Auftragsknoten sind durch die Menge der Kanten E = (ek, mk, jk) miteinander verbunden, wobei ek ein Kantenmerkmalvektor, mk ein Index eines Maschinenknotens und jk ein Index eines Auftragsknotens ist, der durch die Kante k verbunden ist. Kantenmerkmale kodieren die Einrichtungszeit, die zur Bearbeitung des Auftrags jk auf der entsprechenden Maschine mk benötigt wird. Zusätzlich enthält die Graphdarstellung einen Parameter w, der den globalen Informationsvektor darstellt. Dieser Parameter w wird als globales Merkmal bezeichnet und wird für jede Beobachtung auf 0 initialisiert und für die Informationsweitergabe während des Message-Passing verwendet.
-
Vorzugsweise wird die GNN-Architektur mit kodierendem/dekodierendem Message-Passing verwendet, wie sie in Battaglia, P. W et al. „Relational inductive biases, deep learning, and graph networks“, arXiv preprint arXiv:1806.01261, 2018 beschrieben ist.
-
Die Ausgabe des GNN ist ein Graph der gleichen Struktur, aber mit den aktualisierten Knoten ui und vi und vj Kanten ek und globalen Merkmalsvektoren w. Das Merkmal ek der Kante k wird als der Q-Wert der Einplanung des Auftrags jk auf der Maschine mk und das globale Merkmal w als der Q-Wert der noop-Aktion interpretiert.
-
Zum Anlernen der Q-Funktion wird ein Simulator der Maschinen eingesetzt, der das Problem als diskrete Ereignissimulation modelliert. Vorzugsweise wird eine simulierte Fabrik, auch „digitaler Zwilling“ genannt, eingesetzt, die die Dynamik einer realen Fabrik widerspiegelt, d. h. wie sich der Zustand der Fabrik ändert, wenn ein Auftrag an einer Maschine gestartet wird und wie im Laufe der Zeit weitere Aufträge eintreffen. In einer alternativen Ausführungsform können aufgezeichnete Daten aus den Maschinen oder aus der Fabrik als Trainingsdaten zum Anlernen der Q-Funktion verwendet werden oder die umkodierten Daten können zum Aufbau des Simulators verwendet werden. Wie bereits oben erwähnt, wird das DGN-Lernen vorzugsweise zum Anlernen der Q-Funktion und zum Trainieren des GNN verwendet.
-
Nachdem das GNN trainiert wurde, kann es direkt zur Planung von Aufträgen auf einer Vielzahl von Maschinen verwendet werden. Wenn beispielsweise ein Entscheidungspunkt auftritt, gehen die oben beschriebenen Eingaben des GNN von der aktuellen Situation zu dem Zeitpunkt aus, an dem der Entscheidungspunkt auftritt. Abhängig von der Ausgabe des GNN wird aus der Menge der wartenden Aufträge der nächste Auftrag mit dem höchsten Q-Wert ausgewählt. Dieses Verfahren kann jedes Mal angewendet werden, wenn Entscheidungspunkte auftreten. Interessanterweise ist dieses Verfahren weder auf statische noch auf dynamische Einstellungen beschränkt. Für den Fall, dass der Entscheidungspunkt auftritt oder für den Fall, dass eine komplette Planung aller wartenden Aufträge in eine Planung oder eine Warteschlange eingeplant werden soll, kann eine Monte-Carlo-Baum-Suche verwendet werden. Die Monte-Carlo-Baum-Suche (MCTS) ist ein Online-Planungsverfahren für sequenzielle und (möglicherweise) stochastische Entscheidungsprobleme. MCTS funktioniert über die Suche nach der optimalen Entscheidung, die in jedem Zustand zu treffen ist, durch iteratives Abtasten von Rollouts: Sequenzen von Schritten, die im aktuellen Zustand beginnen und entweder in Endzuständen oder in Zuständen enden, die bis zum Ende des Planungshorizonts erreicht wurden. Diese Rollouts werden zum Aufbau eines Suchbaums verwendet, der Informationen über die betrachteten Zustände speichert. Zu diesen Informationen gehören Q-Wert-Schätzungen QT(s; a), die dazu verwendet werden, die Suche in den nachfolgenden Rollouts zu leiten und schließlich, wenn die Zeitbegrenzung erreicht ist, eine Entscheidung für den aktuellen Zustand auszugeben.
-
Während MCTS in der Lage ist, qualitativ hochwertige Entscheidungen zu finden, ohne jegliches domänenspezifisches Wissen einzubeziehen, kann die Verfügbarkeit guter domänenspezifischer Heuristiken den Suchprozess erheblich erleichtern und bessere Entscheidungen in kürzeren Deliberationszeiten liefern. Vorzugsweise wird eine Variation des MCTS-Algorithmus namens UCT (für weitere Informationen:
Kocsis, L. und Szepesvari, C. „Bandit based monte-carlo planning", in European Conference on Machine Learning, Seiten 282-293. Springer, 2006.) in Verbindung mit dem trainierten GNN angewendet. Insbesondere werden Rollouts abgetastet, indem Aktionen gemäß der Strategie für die obere Konfidenzgrenze (UCB, siehe auch
Kocsis et al. oder Liu et al. „Adapting improved upper confidence bounds for Monte-Carlo tree search", in: Advances in Computer Games. Springer, Cham, 2015. S. 53-64.) für Zustände ausgewählt werden, die sich innerhalb des Suchbaums befinden (d. h. dem Baum in vorangegangenen Rollouts hinzugefügt wurden), und ansonsten die Aktion mit der höchsten Q-Wert-Schätzung Q
N(s; a) = Q(s; a; θ) gewählt wird, die aus dem trainierten GNN erhalten wird. UCB gleicht Exploration und Exploitation aus, indem es zuerst alle Aktionen einmal ausprobiert und danach die Aktion wählt, die den folgenden Wert maximiert:
wobei n
s,a die Anzahl der Abtastungen der Aktion a im Zustand s bezeichnet, n
s = Σn
s,a und β der Explorationsfaktor ist.
-
Die Q-Werte in den einzelnen Zuständen werden geschätzt als:
wobei
die über die Abtastung (Rollout) i akkumulierte Belohnung vom Zustand s bis zum Ende des Rollouts ist.
-
Da die Anzahl der Aktionen in manchen Fällen recht groß sein kann, was häufig zu einer schlechten Leistung führt, kann ein Beschneidungsmechanismus angewendet werden, der das GNN zusätzlich ausnutzt. Bei der Suche werden nämlich nur die k Aktionen mit den höchsten Q-Werten-Schätzungen QN(s; a) berücksichtigt.
-
Ausgehend vom aktuellen Zustand kann die MCTS angewendet werden, um den Suchbaum zu erzeugen, wobei in Abhängigkeit vom Suchbaum die Planung von Aufträgen abgeleitet wird, z. B. durch Auswahl der Zweige des Suchbaums, die die kürzeste TWCT ergeben.
-
MCTS kann so lange ausgeführt werden, wie für die Optimierung zur Verfügung steht (z. B. Sekunden bis Minuten) oder bis eine optimale Auftragswarteschlange gefunden ist.
-
1 zeigt ein Flussdiagramm (10) einer Ausführungsform zum Trainieren des Auftragsplaners und zum Ausführen des Auftragsplaners.
-
Das Verfahren beginnt mit Schritt 11. In diesem Schritt wird der Simulator der Fabrik initialisiert.
-
Im nachfolgenden Schritt 12 wird das GNN trainiert, wobei ein Algorithmus für bestärkendes Lernen, insbesondere DGN, angewendet wird. Der Verstärkungsalgorithmus wird auf dem Simulator zu dem Zweck ausgeführt, den Simulator und sein Verhalten für gegebene Aktionen bei gegebenen Zuständen zu untersuchen.
-
Wenn das Training des GNN beendet ist, folgt Schritt 13. Für einen gegebenen Zustand der Maschinen und eine Menge von Aufträgen wird eine Warteschlange von Aufträgen ermittelt. Die Warteschlange wird vom MCTS wie oben beschrieben ermittelt.
-
Es wird darauf hingewiesen, dass das Ermitteln der Warteschlange von Aufträgen über die MCTS gestartet werden kann, wenn alle oder ein Teil der Maschinen frei sind oder wenn der Entscheidungspunkt für eine Maschine erreicht ist.
-
Nachdem die Warteschlange erhalten wurde, werden die Aufträge in Schritt 14 von den Maschinen abgearbeitet. Nachdem zum Beispiel eine Auftragswarteschlange durch die MCTS oder ein nächster Auftrag in Abhängigkeit vom Q-Wert ermittelt wurde, wird der nächste Auftrag der entsprechenden ermittelten Maschine zugewiesen. Die Maschine wird dann zum Ausführen ihres neu zugewiesenen Auftrags gesteuert.
-
Wird die Warteschlange von Aufträgen anschließend fortgesetzt, kann bei Erreichen eines Entscheidungspunktes entweder die MCTS erneut angewendet werden und der nächste Auftrag wird nicht aus der Reihenfolge der Warteschlange ausgewählt, sondern der nächste Auftrag wird über die durch den MCTS-Suchbaum ermittelte aktualisierte Warteschlange ausgewählt, oder der nächste Auftrag wird nur in Abhängigkeit vom Q-Wert des GNN ausgewählt, oder die Reihenfolge der Warteschlange wird weiter verwendet.
-
In einer weiteren Ausführungsform wird in Abhängigkeit vom nächsten ermittelten Auftrag ein Steuersignal ermittelt. Das Steuersignal dient zum Steuern der Maschine und/oder zum Steuern eines physischen Systems, z. B. eines computergesteuerten Roboters, der Aufträge in verfügbare Maschinen lädt und/oder die Maschine für die erforderliche Einrichtung für den nächsten Auftrag neu ausgelegt.
-
2 zeigt eine Ausführungsform eines Trainingssystems (20) zum Trainieren des GNN (22). Ein Trainingsmodul (21) stellt Trainingsdaten für das GNN (22) bereit, dessen Parameter θ in einem Speicher (23) abgelegt sind, und die Parameter werden in Abhängigkeit von der Ausgabe des GNN (22) durch vorzugsweise das bestärkende Lernen DGN aktualisiert.
-
Ein computerlesbarer Speicher (24) enthält Anweisungen, die bei ihrer Ausführung durch einen Computer (25) den Computer veranlassen, das Training des GNN durchzuführen.
-
Der Begriff „Computer“ umfasst eine beliebige Vorrichtung zum Verarbeiten von vordefinierten Rechenanweisungen. Diese Rechenanweisungen können in Form von Software oder in Form von Hardware oder auch in einer Mischform von Software und Hardware vorliegen.
-
Es versteht sich ferner, dass die Verfahren nicht nur wie beschrieben vollständig in Software umgesetzt werden können. Sie können auch in Hardware oder in einer Mischform aus Software und Hardware umgesetzt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Kocsis, L. und Szepesvari, C. „Bandit based monte-carlo planning“, in European Conference on Machine Learning, Seiten 282-293. Springer, 2006 [0054]
- Kocsis et al. oder Liu et al. „Adapting improved upper confidence bounds for Monte-Carlo tree search“, in: Advances in Computer Games. Springer, Cham, 2015. S. 53-64 [0054]