Die in Kapitel 5 vorgestellte Methode wurde mit der Zielstellung entworfen, Produktions- und Logistikplaner*innen sowie Wirtschaftsinformatiker*innen bei der Entwicklung und Integration von RL-trainierten agentenbasierten Produktionsablaufsteuerungen zu unterstützen. Die resultierenden Entscheidungssysteme sollen insbesondere eine kurzfristige operative Produktionsablaufplanung begünstigen, unter Berücksichtigung eines dynamischen stochastischen Auftragshorizonts sowie enger Zeitfenster für die Entscheidungsfindung. Im Folgenden soll anhand von drei Fallstudien nachgewiesen werden, dass durch die konsequente Anwendung der Methode Produktionsablaufsteuerungen entwickelt werden können, welche die beschriebenen Eigenschaften erfüllen. Zudem sollen anhand von jeder Fallstudie unterschiedliche Konzepte, die im Rahmen der Methode entwickelt wurden, evaluiert werden. Hierzu zählen insbesondere:

  • die Produktionsbereichsmodelle (Abbildung 5.3 in Abschnitt 5.2) sowie die Prozessmodelle der Auftragserzeugung (Abbildung 5.8 in Abschnitt 5.3.1.1), des Auftragsflusses (Abbildung 5.9 in Abschnitt 5.3.1.2) sowie der Produktionsressourcen (Abbildung 5.10 in Abschnitt 5.3.1.3) für den Entwurf von Agentenumgebungen;

  • die Konzepte zur Formulierung von Produktionsablaufentscheidungen als ML-Aufgaben aus Abschnitt 5.3.2;

  • die für Probleme der Produktionsablaufplanung adaptierte OpenAI-Gym-Schnittstelle aus Abschnitt 5.3.3;

  • die eigenentwickelte Trainingsprozedur für selbstimplementierte gradientenabhängige RL-Verfahren (Abbildung 5.25 in Abschnitt 5.3.4);

  • das Konzept für die Entwicklung von Belohnungsfunktionen aus Abschnitt 5.3.5.

Hingegen wird im Rahmen dieser Arbeit auf ausführliche Hyperparameterstudien für die eingesetzten RL-Verfahren zum Zweck der Optimierung des Agententrainings verzichtet. Für jede Fallstudie wurden geeignete Hyperparameter für das Agententraining durch eine manuelle Suche ermittelt. Der Verzicht auf umfassende Hyperparameterstudien dient nicht nur der Eingrenzung dieser Arbeit, sondern soll ebenfalls als Indiz dafür dienen, dass die vorgestellten Verfahren bereits ohne großen experimentellen Aufwand robust zu guten Ergebnissen konvergieren. Es ist anzunehmen, dass mithilfe von ausführlichen Hyperparameterstudien die Lösungsgüte weiter verbessert werden kann.

6.1 Flexible-Job-Shop-Problem mit flexibler Operationsplanung

Die erste Fallstudie adressiert die agentenbasierte Produktionsablaufsteuerung in einem Flexible-Job-Shop (FJS) -Problem mit flexibler Operationsplanung. Der DQN-Algorithmus wird für das Agententraining eingesetzt. Wie in den theoretischen Grundlagen unter Abschnitt 2.3.1.1 dargelegt, ist ein Job-Shop-Problem die mathematische Formalisierung des Fertigungstyps »Werkstattfertigung«. In einer Werkstattfertigung sind die Produktionsressourcen nicht in Reihe aufgestellt, sondern als Inseln organisiert. Ferner existiert keine feste Verkettung der Produktionsressourcen durch Fördertechnik. Aufträge werden stattdessen durch Flurfördergeräte oder durch den Menschen selbst transportiert. Die Werkstattfertigung birgt somit ein hohes Maß an Flexibilität für die Produktion von Aufträgen. Heutzutage gewinnt das Prinzip der Werkstattfertigung wieder zunehmend an wissenschaftlicher Relevanz, unter anderem aufgrund des Trends zur »Losgröße 1« oder durch moderne Fabrikkonzepte wie die Matrix-Produktion (Bauernhansl et al. 2014; Greschke et al. 2014). Das Vorgehen und die Ergebnisse der folgenden Fallstudie basieren im Wesentlichen auf einer vorausgegangenen Publikation (Lang et al. 2020a), die im Rahmen dieser Arbeit entstanden ist. Es sei jedoch darauf hingewiesen, dass die Experimente in dieser Arbeit unter anderen Parametern und unter Verwendung einiger zusätzlicher RL-Techniken wiederholt wurden. Vor diesem Hintergrund existieren unwesentliche Abweichungen zwischen den in Abschnitt 6.1.3 und den in (Lang et al. 2020a) dokumentierten Ergebnissen.

6.1.1 Problembeschreibung

Das in diesem Abschnitt behandelte FJS-Problem ist aus (Rajkumar et al. 2010) entnommen und wurde das erste Mal von Baykasoğlu und Özbakır (2009) beschrieben. Es handelt sich um ein FJS-Problem gemäß der Definition von bspw. Xie et al. (2019) oder Zhang et al. (2019). Dementsprechend ist das Problem als \(FJm\) charakterisiert, d. h., dass Fertigungsoperationen auf allen Ressourcen, unabhängig vom Produktionsbereich, bearbeitet werden können. Spezifischer kann das Problem als »Total Flexible-Job-Shop« klassifiziert werden, weil nicht nur einige, sondern alle Fertigungsoperationen von allen Produktionsressourcen bearbeitet werden können.

Das betrachtete Problem wird durch eine Menge von Aufträgen \(J\) und Produktionsressourcen \(M\) beschrieben. Die genaue Anzahl von Aufträgen \(\left| J \right|\) und Produktionsressourcen \(\left| M \right|\) variieren zwischen den Probleminstanzen. Alle Aufträge \(j = \left( {1, \ldots ,\left| J \right|} \right)\) sind zum Zeitpunkt null verfügbar, besitzen jeweils eine Fertigstellungsfrist \(d_{j}\) und müssen eine bestimmte Anzahl von Fertigungsoperationen durchlaufen, bevor sie das System verlassen.

Hinsichtlich der zu durchlaufenden Fertigungsoperationen wird das Problem zusätzlich durch eine flexible Operationsplanung erschwert, d. h., dass gewisse Freiheitsgrade hinsichtlich der Art und Durchführung von Fertigungsoperationen bestehen. Zu diesem Zweck müssen die mathematischen Formalismen, die in Abschnitt 2.3.1 eingeführt wurden, erweitert werden. Jeder Auftrag \(j\) besitzt eine Menge alternativer Operationspläne \(OP_{j}\). Unabhängig von der Probleminstanz ist im vorliegenden Problem jeder Auftrag durch genau vier Operationspläne charakterisiert (\(\left| {OP_{j} } \right| = 4 \forall j = \left( {1, \ldots ,\left| J \right|} \right)\) bzw. \(OP_{j,v} \forall v = \left( {1, \ldots ,4} \right) \forall j = \left( {1, \ldots ,\left| J \right|} \right)\)). Jeder Operationsplan \(OP_{j,v}\) eines Auftrags \(J_{j}\) beschreibt wiederum eine geordnete Menge von Operationen. Hierbei repräsentiert \(o_{j,v}\) Operation \(o\) von Operationsplan \(v\) von Auftrag \(j\). Die Anzahl von Operationen eines Operationsplans variiert zwischen zwei und vier Operationen. Die Operationen eines Operationsplans müssen entsprechend ihrer Reihenfolge innerhalb des Operationsplans abgearbeitet werden. Jede Operation kann auf jeder Produktionsressource bearbeitet werden, wobei die Bearbeitungszeit für eine Operation zwischen den verschiedenen Produktionsressourcen variiert. Vor diesem Hintergrund definiert \(o_{i,j,v}\) die Bearbeitungszeit der \(o\)-ten Operation des Operationsplans \(v\) von Auftrag \(j\) auf Produktionsressource \(i\). Die Bearbeitungszeiten von Operationen sind hierbei lediglich auftrags- und ressourcenspezifisch, nicht jedoch spezifisch für Operationspläne. Somit gilt \(o_{i,j,v} \in O_{j}\). Tabelle 6.1 beinhaltet eine aggregierte Sicht auf die Probleminstanzen. Eine vollständige Übersicht zu den Problemdaten ist als Anhang H dem elektronischen Zusatzmaterial beigefügt. Tabelle H-1 in Anhang H informiert über alle Operationspläne von allen Aufträgen aller Probleminstanzen. Tabelle H-2 in Anhang H enthält die Fertigstellungsfristen sowie die genauen Operationszeiten aller Aufträge auf allen Ressourcen für alle Probleminstanzen.

Als weitere Restriktion gilt, dass jede Produktionsressource nur einen Auftrag zur gleichen Zeit bearbeiten kann. Die Pufferkapazitäten vor den Produktionsressourcen werden als unendlich angenommen. Das Ziel ist die Ermittlung eines Produktionsablaufplans, in dem \(\left| J \right|\) Operationspläne ausgewählt und \(\mathop\sum\nolimits_{{j = 1}}^{{\left| J \right|}} {\left| {o_{{j,v}} } \right|}\) Operationen zu Produktionsressourcen alloziert werden. Die Güte eines Produktionsablaufplans soll sowohl anhand dessen Gesamtdauer \(C_{max}\) als auch anhand der resultierenden Gesamtverspätung über alle Aufträge \(T\) bewertet werden.

Tabelle 6.1 Aggregierte Darstellung der FJS-Probleminstanzen (in Anlehnung an Lang et al. 2020a)

6.1.2 Anwendung des DQN-Algorithmus zur Lösung des Problems

Im Folgenden wird dargelegt, wie der DQN-Algorithmus zum Zweck einer agentenbasierten Produktionsablaufsteuerung für das vorliegende FJS-Problem eingesetzt wird.

Entwurf der Agentenumgebung

Für die Modellierung der Agentenumgebung kann die geschilderte Problemstellung auf das in Abschnitt 5.2 eingeführte Modell für Produktionsbereiche mit lokalen Warteschlangen (Abbildung 5.3 (a)) reduziert werden. Gemäß diesem Modell kann die Problemstellung mithilfe der in Abschnitt 5.3.1 definierten Prozessmodelle als DES-basierte Agentenumgebung implementiert werden. Im Rahmen dieser Arbeit erfolgt die Implementierung mit der Python-Bibliothek Salabim. Zur Veranschaulichung der Implementierung zeigt Abbildung 6.1 einen Auszug aus dem animierten Simulationsmodell der 8 J \(\times\) 8M-Probleminstanz.

Definition der maschinellen Lernaufgaben

Um eine RL-agentenbasierte Produktionsablaufsteuerung zu realisieren, wird die Problemstellung im Folgenden auf zwei Entscheidungsprobleme heruntergebrochen: (i) die Auswahl von Operationsplänen für Aufträge vor deren Freigabe, (ii) die Zuordnung von Aufträgen zu Produktionsressourcen. Die Teilprobleme (i) und (ii) sollen jeweils mithilfe unterschiedlicher RL-trainierter Agenten gelöst werden.

Es sei angemerkt, dass es ebenfalls möglich ist die Reihenfolgebildung vor jeder Produktionsressource mittels eines Agenten zu steuern. Im Rahmen dieser Fallstudie wird diese Möglichkeit jedoch vernachlässigt. Der Grund ist zum einen, dass die erzielten Ergebnisse der RL-Agenten mit dem Lösungsansatz von Rajkumar et al. (2010) verglichen werden, der ebenfalls keine Reihenfolgeplanung berücksichtigt. Stattdessen wird in (Rajkumar et al. 2010) die Reihenfolgebildung über die EDD-Prioritätsregel gesteuert. Zum anderen bilden sich im betrachteten System keine signifikanten Warteschlangen, da die meisten Probleminstanzen, im Vergleich zur Anzahl zu produzierender Aufträge, eine hohe Anzahl von Produktionsressourcen aufweisen. Im Unterschied zu (Rajkumar et al. 2010) werden Auftragsreihenfolgen während des Agententrainings nicht über die EDD-, sondern über die FIFO-Prioritätsregel gesteuert, da eine zeitbasierte Belohnungsfunktion für die Bewertung von Agentenentscheidungen verwendet wird und die FIFO-Regel eine wesentlich einfachere Vorausberechnung von Fertigstellungszeitpunkten erlaubt.

Abbildung 6.1
figure 1

Animierte DES-Agentenumgebung des FJS-Problems mit acht Aufträgen und acht Produktionsressourcen (Lang et al. 2020a)

Für beide Agenten wird die Formulierung von Allokationsproblemen als ML-Aufgabe gemäß Abbildung 5.11 (Abschnitt 5.3.2.1) angewandt. Aufgrund der Tatsache, dass jeder Auftrag die gleiche Anzahl an Operationsplänen besitzt, kann deren Auswahl ebenfalls über einen diskreten Aktionsraum abgebildet werden. Vor diesem Hintergrund kann die für Allokationsprobleme ausgelegte Formulierungsvariante in Abbildung 5.11 ebenfalls für die Auswahl von Operationsplänen verwendet werden.

Implementierung des bestärkenden Lernverfahrens

Weil in beiden Problemen alle Entscheidungsalternativen jeweils über einen diskreten Aktionsraum abgebildet werden, eignet sich der DQN-Algorithmus zum Anlernen der Agenten. Eine ausführliche Beschreibung des DQN-Algorithmus befindet sich in Abschnitt 3.3.3 dieser Arbeit. Ergänzend zu der Beschreibung in Abschnitt 3.3.3 und der Implementierung in (Lang et al. 2020a) wurden zwei zusätzliche RL-Techniken berücksichtigt, die den Lernprozess stabilisieren:

  • Anstelle des konventionellen DQN-Verfahrens wird der Double-DQN-Algorithmus (van Hasselt et al. 2016) für das Agententraining verwendet. Im Double-DQN-Algorithmus ändert sich die Berechnung der Zielwerte der Aktionsnutzen. Anstelle von Formel (3.7) findet die folgende Berechnungsvorschrift Anwendung:

    $$U_{t} = R_{t + 1} + \left( {1 - ENDE_{t + 1} } \right)\gamma + q_{\pi } \left( {S_{t + 1} , \mathop {{\text{argmax}}}\limits_{a} q_{\pi } \left( {S_{t + 1} ,a;\theta } \right);\theta^{ - } } \right)$$
    (6.1)

Im Unterschied zum klassischen DQN-Algorithmus wird somit das diskontierte Maximum der durch den Ziel-Funktion-Approximator \(q_{\pi } \left( {s,a;\theta^{ - } } \right)\) prognostizierten Aktionsnutzen für den Folgezustand \(S_{t + 1}\) auf die Belohnung \(R_{t + 1}\) addiert. Stattdessen werden zunächst die Aktionsnutzen für \(S_{t + 1}\) unter Verwendung des eigentlichen Aktionsnutzenfunktion-Approximator \(q_{\pi } \left( {s,a;\theta } \right)\) prognostiziert. Der Index der Aktion, die den maximalen Nutzen verspricht, wird gespeichert. Erst darauffolgend werden die Aktionsnutzen für \(S_{t + 1}\) unter Verwendung des Ziel-Agenten \(q_{\pi } \left( {s,a;\theta^{ - } } \right)\) prognostiziert. Anstelle des maximalen Aktionsnutzens wird derjenige Nutzen diskontiert und auf \(R_{t + 1}\) addiert, der dem Index der Aktion entspricht, deren Nutzen unter \(q_{\pi } \left( {s,a;\theta } \right)\) maximal ist. Die Intention hinter der aktualisierten Berechnungsvorschrift ist, die Bewertung und Auswahl von zukünftigen Aktionsnutzen \(Q_{t + 1}\) zu entkoppeln und auf diese Weise das Risiko einer überoptimistischen Schätzung von Aktionsnutzen zu vermeiden.

  • Der Ziel-Aktionsnutzenfunktion-Approximator \(q_{\pi } \left( {s,a;\theta^{ - } } \right)\) wird nicht nach \(c\) Zeitschritten durch den Aktionsnutzenfunktion-Approximator \(q_{\pi } \left( {s,a;\theta } \right)\) überschrieben. Stattdessen wird \(q_{\pi } \left( {s,a;\theta^{ - } } \right)\) graduell durch Polyak-Mittelung aktualisiert. Das Verfahren zur Parameteraktualisierung mittels Polyak-Mittelung wird am Beispiel des DDPG-Algorithmus in Anhang D im elektronischen Zusatzmaterial erklärt.

Zustands- und Aktionsraum, versteckte Architektur sowie Belohnungsfunktion des Agenten

Tabelle 6.2 beinhaltet die wichtigsten Gestaltungsentscheidungen für die Implementierung der Agenten. Im Folgenden sollen diejenigen Gestaltungsentscheidungen näher beleuchtet werden, die nicht intuitiv verständlich sind. Die Ausgaben der versteckten Neuronenschichten des Agenten für die Ressourcenbelegungsplanung werden durch eine ELU (»Exponential Linear Unit«) -Aktivierungsfunktion verarbeitet. Hierbei handelt es sich um eine Aktivierungsfunktion, die im Rahmen des in Anhang A beigefügten Exkurses zu KNN (im elektronischen Zusatzmaterial) keine Erwähnung findet. Die ELU-Funktion ist folgendermaßen definiert.

$$\varphi \left( v \right) = \left\{ {\begin{array}{*{20}l} {v,} \hfill &\quad {wenn\;v > 0} \hfill \\ {e^{v} - 1,} \hfill &\quad {sonst} \hfill \\ \end{array} } \right.$$
(6.2)

Ihr grafischer Verlauf ähnelt der ReLU-Funktion (vgl. Abbildung A-1 (d) in Anhang A des elektronischen Zusatzmaterials). Für positive Eingaben geben die ReLU- und ELU-Funktion dieselben Ergebnisse zurück. Für negative Eingaben gibt die ELU-Funktion, im Kontrast zur ReLU-Funktion, nicht stets den Wert null zurück, sondern eine Ausgabe \(\ge - 1\), deren exakter Wert in Abhängigkeit von der Eingabe variiert. Die ELU-Funktion ist somit in der Lage negative Eingaben differenzierter zu verarbeiten als die ReLU-Funktion. In der vorliegenden Fallstudie ist diese Eigenschaft von Vorteil, da das Auftragsattribut »Aktuelle Unpünktlichkeit« sowohl positiv (Auftragsoperation ist verspätet) als auch negativ (Auftragsoperation ist verfrüht) ausgeprägt sein kann.

Ferner ist hervorzuheben, dass für die Auswahl von Operationsplänen ein Agentenmodell mit LSTM-Zellen innerhalb der versteckten Schichten verwendet wird. Der Aufbau und die Funktionsweise einer LSTM-Zelle wird in Anhang A im elektronischen Zusatzmaterial erklärt. Die Verwendung von LSTM-Zellen wird zum einen dadurch motiviert, dass für die Auswahl von Operationsplänen kaum geeignete Informationen für die Modellierung von Zuständen vorhanden sind, weil alle Aufträge zum Zeitpunkt null verfügbar sind. Damit einhergehend erfolgt ebenfalls die Auswahl aller Operationspläne zum Zeitpunkt null, zu welchem das Produktionssystem noch keine Aufträge enthält. Dementsprechend können keine Informationen des Produktionssystems bei der Zustandsbildung berücksichtigt werden. Zum anderen liegt die Annahme zugrunde, dass die Auswahl eines Operationsplans für einen Auftrag die Auswahl eines Operationsplans eines anderen Auftrags beeinflussen sollte, da die kombinierte Anwendung der ausgewählten Operationspläne maßgeblich die Ressourcenbelegung des Produktionssystems bestimmt. Da LSTM-Zellen rekurrente synaptische Verbindungen zu sich selbst pflegen, können sie sequenzielle Zusammenhänge zwischen aufeinanderfolgenden Entscheidungen für die Selektion von Operationsplänen berücksichtigen. Die Anzahl der versteckten Perzeptron-Neuronen (Agent für die Ressourcenbelegungsplanung) bzw. LSTM-Zellen (Agent für die Auswahl von Operationsplänen) pro Schicht wurde in grober Orientierung an die \(\left( {2n + 1} \right)\)-Regel ermittelt (Hecht-Nielsen 1987), wobei \(n\) der Anzahl von Eingabeneuronen entspricht. Eine weitere Herausforderung bei der Auswahl von Operationsplänen ist die Gestaltung der Belohnungsfunktion. Die in Abschnitt 5.3.5 angeführten Beispiele für Belohnungsfunktionen sind ungeeignet, weil die Auswahl von Operationsplänen weder einen unmittelbar quantifizierbaren Einfluss auf die Fertigstellungszeit von Aufträgen, geschweige denn auf die Arbeitslast der Produktionsressourcen ausübt. Als Kompromisslösung wird eine verzögerte Belohnungsstrategie implementiert, d. h. Belohnungen werden nicht unmittelbar nach der Auswahl eines Operationsplans vergeben, sondern erst nachdem alle Operationen des gewählten Plans bearbeitet wurden und der Auftrag das System verlässt.

Tabelle 6.2 Gestaltung der Agenten für die Ressourcenbelegungsplanung und für die Auswahl von Operationsplänen (in Anlehnung an Lang et al. 2020a)

Für beide Agenten wird eine abgewandelte Version von \({\mathcal{R}}_{T} \left( j \right)\) (siehe Formel (5.6)) als Belohnungsfunktion implementiert. Der Agent der Ressourcenbelegungsplanung erhält Belohnungen auf Basis der anteilsmäßigen Fertigstellungsfrist \(d_{j,v,o}\) und der anteilsmäßigen Unpünktlichkeit \(L_{j,v,o}\) von Operation \(o\) des gewählten Operationsplans \(v\) von Auftrag \(j\). Hingegen erhält der Agent für die Auswahl von Operationsplänen Belohnungen auf Basis der auftragsbezogenen Fertigstellungsfrist \(d_{j}\) und der auftragsbezogenen Unpünktlichkeit \(L_{j}\). Beide Agenten erhalten eine positive Belohnung, sofern die betrachtete Operation (Ressourcenbelegungsplanung) bzw. der gesamte Auftrag (Operationsplanung) pünktlich zum Fertigstellungszeitpunkt oder bis maximal 20 Prozent vor Eintritt der Fertigstellungsfrist abgeschlossen ist. Auf diese Weise soll der Agent angehalten werden, Aufträge mit engen Fertigstellungsfristen bevorzugt gegenüber Aufträgen mit toleranten Fertigstellungsfristen einzulasten.

6.1.3 Diskussion der Ergebnisse

Die Experimente dienen insbesondere der Beantwortung der folgenden Fragen: (i) Welche Lösungsgüte leisten die durch den DQN-Algorithmus trainierten Agenten im Vergleich zur Lösungsstrategie von Rajkumar et al. (2010)? (ii) Sind die DQN-trainierten Agenten für das Problem mit fünf Produktionsressourcen in der Lage, die erlernte Entscheidungspolitik auf Probleminstanzen mit fünf oder zehn Aufträgen zu interpolieren, sofern die Agenten anhand von zwanzig Aufträgen angelernt wurden? (iii) Sind die DQN-trainierten Agenten für das Problem mit fünf Produktionsressourcen in der Lage, die erlernte Entscheidungspolitik auf Probleminstanzen mit zehn oder zwanzig Aufträgen zu extrapolieren, sofern die Agenten anhand von fünf Aufträgen angelernt wurden?

Zur Beantwortung der Fragen werden in vier Experimenten jeweils zwei Agenten auf je einer der in Tabelle 6.1 (Abschnitt 6.1.1) gelisteten Probleminstanzen angelernt. In allen Experimenten werden die Agenten nacheinander trainiert. Der Agent für die Ressourcenbelegungsplanung wird in allen Experimenten zuerst trainiert.

Tabelle 6.3 Hyperparameter-Einstellungen für den DQN-Algorithmus

Während dessen Training erfolgt die Auswahl von Operationsplänen randomisiert. Für das Training des Agenten zur Selektion von Operationsplänen wird wiederum stets der zuvor angelernte Agent für die Ressourcenbelegungsplanung miteingebunden. Tabelle 6.3 beinhaltet die Hyperparameter, mit welchen beide Agenten trainiert wurden. Tabelle 6.4 zeigt die Lösungsgüte der Agenten auf den unterschiedlichen Probleminstanzen, gemessen an der Gesamtdauer des resultierenden Ablaufplans \(C_{max}\) und der Gesamtverspätung über alle Aufträge \(T\). Zum Vergleich sind ebenfalls die Ergebnisse der GRASP (Greedy Randomized Adaptive Search Procedure) -Metaheuristik gelistet, die von Rajkumar et al. (2010) für dieselben Probleminstanzen untersucht wurde.

Tabelle 6.4 Lösungsgüte des auf verschiedenen FJS-Probleminstanzen trainierten DQN-Algorithmus im Vergleich zum GRASP-Algorithmus von Rajkumar et al. (2010)

Die Ergebnisse zeigen, dass DQN für die jeweilige Probleminstanz, die während des Agententrainings beobachtet wurde, stets eine bessere Lösung erzielen kann als die GRASP-Metaheuristik. Darüber hinaus generiert DQN auch auf anderen Probleminstanzen gute Ergebnisse, die nicht während des Trainings beobachtet wurden. Allerdings ist kein Agent, der auf einer Probleminstanz mit fünf Produktionsressourcen angelernt wurde, in der Lage, auf allen 5M-Probleminstanzen bessere Ergebnisse zu erzielen als die GRASP-Metaheuristik. Diesbezüglich schneidet derjenige Agent am besten ab, welcher auf dem 20J\(\times\)5M-Problem angelernt wurde. Dieser Agent leistet ebenfalls auf dem 10J×5M-Problem bessere Ergebnisse als die GRASP-Metaheuristik. Hervorzuheben ist, dass der auf dem 20J×5M-Problem trainierte Agent ebenso bessere Ergebnisse auf dem 10J×5M-Problem leistet als derjenige Agent, der direkt auf dem 10J×5M-Problem trainiert wurde. Dies könnte als Indiz gedeutet werden, dass der Agent besser auf unbekannte Zustände interpolieren als extrapolieren kann. Dagegen spricht, dass der auf dem 20J×5M-Problem trainierte Agent ebenfalls auf dem 5J×5M-Problem bessere Ergebnisse erzielt als der auf dem 10J×5M-Problem trainierte Agent. Dies ist bemerkenswert, da der auf dem 10J×5M-Problem trainierte Agent ebenfalls nur auf das 5J×5M-Problem interpolieren muss. In Hinblick auf die Fertigstellungsfristen und die Anzahl von Aufträgen weisen zudem das 5J×5M-Problem und das 10J×5M-Problem eine höhere Ähnlichkeit zueinander auf als das 5J×5M-Problem zum 20J×5M-Problem. Vor diesem Hintergrund ist es ebenfalls möglich, dass das Training des DQN-Agenten auf dem 10J×5M-Problem unter ungünstigen Hyperparametern verlief. Eine eindeutige Aussage, ob der Agent das erlernte Wissen besser interpolieren oder extrapolieren kann, ist auf Basis der Ergebnisse in Tabelle 6.4 nicht möglich.

In allen Experimenten wurden beide Agenten jeweils auf einem Kern eines Prozessors des Modells »AMD EPYC 7702P 64-Core« trainiert, wobei jeder Prozessorkern eine Taktfrequenz von maximal 2 GHz aufweist. Das Training des Agenten für die Ressourcenbelegungsplanung und des Agenten für die Auswahl von Operationsplänen benötigt für das 5J\(\times\)5M-, 8J\(\times\)8M-, 10J\(\times\)5M-, und 20J\(\times\)5M-Problem jeweils in etwa 17, 23, 25 bzw. 72 Minuten. Wie jedoch die Lernkurven am Beispiel der Probleminstanz 5J\(\times\)5M in Abbildung 6.2 zeigen, werden die besten Ergebnisse mitunter wesentlich früher erzielt, nämlich nach ca. 1500 Episoden (Ressourcenbelegungsplanung) bzw. in den ersten 10 bis 100 Episoden (Auswahl von Operationsplänen). Der tatsächliche Trainingsaufwand ist somit geringer als die Rechenzeit vermuten lässt. Sobald das Training der Agenten beendet ist, benötigt die Generierung einer Lösung lediglich einen Simulationslauf, welcher weniger als eine Sekunde Rechenzeit beansprucht. In Abbildung 6.2 sticht hervor, dass die Lernkurven des Agenten für die Auswahl von Operationsplänen mit fortschreitenden Episoden kaum mehr Oszillationen unterliegen. Hingegen kann eine solche Entwicklung beim Training des Agenten für die Ressourcenbelegungsplanung nicht beobachtet werden. Dieser Umstand ist dadurch zu erklären, dass beim Training des Agenten für die Ressourcenbelegungsplanung die Operationspläne der Aufträge stets zufällig gewählt werden. Demgegenüber wird während des Agententrainings für die Auswahl von Operationsplänen der zuvor angelernte Agent für die Ressourcenbelegungsplanung stets miteingebunden. Sobald der Agent für die Auswahl von Operationsplänen zu einer fixen Entscheidungspolitik konvergiert und die Wahrscheinlichkeit für eine zufällige Aktion \(\varepsilon\) ihren Minimalwert erreicht, werden nur noch sehr selten Operationspläne zufällig ausgewählt. Hierdurch sinkt die Wahrscheinlichkeit für die Identifikation von besseren Lösungen und für eine erneute Anpassung der Entscheidungspolitik rapide ab. Die Trainingsmetriken für das 8J\(\times\)8M-, 10J\(\times\)5M-, und 20J\(\times\)5M-Problem sind als Anhang H dem elektronischen Zusatzmaterial beigefügt.

Abbildung 6.2
figure 2

Trainingsmetriken der Probleminstanz 5J×5M (a) für den Agenten der Ressourcenbelegungsplanung und (b) für den Agenten für die Auswahl von Operationsplänen

6.1.4 Erweiterung des Problems um einen dynamischen Auftragshorizont

Am Beispiel des auf dem 20J\(\times\)5M-Problem trainierten Agenten soll im Folgenden untersucht werden, ob die erlernte Entscheidungspolitik ebenfalls unter Berücksichtigung eines dynamischen Auftragshorizonts qualitativ hochwertige Ergebnisse liefert. Der auf dem 20J\(\times\)5M-Problem trainierte Agent wird für die folgenden Experimente ausgewählt, weil die Ergebnisse in Abschnitt 6.1.3 darauf hinweisen, dass dessen Entscheidungspolitik auf die anderen Probleminstanzen mit fünf Produktionsressourcen am besten skaliert. Die in Abschnitt 6.1.1 skizzierte Problemstellung wird zu diesem Zweck wie folgt abgewandelt:

  • Ausgangspunkt ist das 20J\(\times\)5M-Problem, demgemäß initial 20 Aufträge mit Fertigstellungsfristen zwischen 400 und 700 Zeiteinheiten freigegeben sind.

  • Zu zufälligen Zeitpunktpunkten gelangen neue Aufträge in das System. Zu jedem Zeitpunkt gelangt genau ein neuer Auftrag in das System.

  • Die zufälligen Zwischenankunftszeiten von Aufträgen sind normalverteilt mit einem Erwartungswert von zehn Zeiteinheiten und einer Standardabweichung von fünf Zeiteinheiten. Der minimale zeitliche Abstand zwischen der Ankunft von zwei Aufträgen beträgt null Zeiteinheiten.

  • Für die Bestimmung von möglichen Operationsplänen und -zeiten von neu eintreffenden Aufträgen wird jeweils ein Auftrag aus der Menge der zwanzig initial freigegebenen Aufträgen zufällig gleichverteilt ausgewählt. Der neu eintreffende Auftrag übernimmt sodann die Operationspläne und -zeiten des zufällig gewählten Auftrags.

  • Die Fertigstellungsfrist eines neu eintreffenden Auftrags wird aus dem Intervall \(\left[ {80, 600} \right]\) zufällig gleichverteilt ausgewählt und ist stets ganzzahlig.

Es werden vier Szenarien untersucht, in welchen (i) fünf, (ii) zehn, (iii) fünfzehn und (iv) zwanzig Aufträge während der Simulation zusätzlich eingelastet werden. Aufgrund der stochastischen Attribute und Zwischenankunftszeiten von neu eintreffenden Aufträgen werden die Ergebnisse je Experiment über 100 Simulationsläufe gemittelt. Zum Vergleich wird zusätzlich jedes Experiment unter Anwendung von zwei statischen Regeln für die Auswahl von Operationsplänen und für die Allokation von Aufträgen durchgeführt. Die Regel für die Auswahl von Operationsplänen wählt denjenigen Operationsplan, bei welchem die mittlere Bearbeitungszeit für alle Operationen minimal ist. Existieren mehrere Operationspläne mit minimalen Bearbeitungszeiten, wird der erste Operationsplan aus der Teilmenge der Operationspläne mit minimalen Bearbeitungszeiten gewählt. Die Regel für die Allokation von Aufträgen weist einen Auftrag stets derjenigen Produktionsressource zu, welche zum Entscheidungszeitpunkt die minimale Arbeitslast aufweist. Abbildung 6.3 stellt die Gesamtdauer des Ablaufplans und die Gesamtverspätung über alle Aufträge für alle vier Szenarien im Vergleich zur regelbasierten Lösungsstrategie grafisch dar. Die Diagramme zeigen, dass der DQN-Agent im Mittel stets bessere Ergebnisse erzielt als die regelbasierte Lösungsstrategie. Es ist anzunehmen, dass sich die Ergebnisqualität des DQN-Agenten nochmals steigert, wenn dieser direkt auf einem dynamischen Auftragshorizont angelernt wird. Das vorliegende Experiment soll jedoch an dieser Stelle hinreichend sein, um nachzuweisen, dass der angelernte DQN-Agent ebenfalls auf Probleminstanzen skalieren kann, die einen dynamischen Auftragshorizont aufweisen und in denen Aufträge mitunter zufällig attribuiert werden. Ergänzend zur Diagrammdarstellung in Abbildung 6.3 werden die Ergebnisse in Anhang H im elektronischen Zusatzmaterial tabellarisch zusammengefasst.

6.2 Dynamisches Parallel-Maschinen-Problem mit familienabhängigen Rüstzeiten und ressourcenabhängigen Bearbeitungsgeschwindigkeiten

Diese Fallstudie wurde konzipiert, um einen Funktionsnachweis für die erste Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe zu liefern. In dieser Variante erfolgt die Auswahl des nächsten Auftrags, indem zuvor alle verfügbaren Aufträge in einer Warteschlange priorisiert werden. Die entsprechende Formulierungsvariante wurde erstmals in Lang et al. (2021a) theoretisch vorgestellt. In der folgenden Fallstudie wird mithilfe des PPO-Algorithmus ein Agent angelernt, der die Steuerung der Produktionsabläufe als eine kombinierte Ressourcenbelegungs-, Reihenfolge- und Losgrößenplanung umsetzt.

Abbildung 6.3
figure 3

Lösungsgüte des DQN-Agenten auf der Probleminstanz 20J×5M mit dynamischen Auftragshorizont gemessen an (a) der mittleren Gesamtdauer des Ablaufplans und (b) der mittleren Gesamtverspätung über alle Aufträge

6.2.1 Problembeschreibung

In einem Parallel-Maschinen-Problem (PMP) müssen eine Menge von Aufträgen \(J\) von einer Menge von Produktionsressourcen \(M\) bearbeitet werden. Die Produktionsressourcen sind parallel aufgestellt, d. h. es existiert genau eine Produktionsstufe und alle Produktionsressourcen gehören derselben Produktionsstufe an. Ferner wird jeder Auftrag von genau einer Produktionsressource aus \(M\) bearbeitet, bevor er das System verlässt. Das vorliegende PMP ist dynamischer Natur, d. h. nicht alle Aufträge stehen zum Zeitpunkt null zur Verfügung, sondern kommen losweise zu vordefinierten Zeitpunkten in das System. Ein Los \(b\) besteht aus \(n_{b}\) Aufträgen und besitzt eine individuelle Freigabezeit \(r_{b}\), zu der alle Aufträge aus \(b\) in das System eintreten. Die Anzahl der Aufträge, die Anzahl der Produktionsressourcen und weitere Parameter sind abhängig von der jeweiligen Probleminstanz. Tabelle 6.5 enthält alle Parameter, die eine Probleminstanz charakterisieren, sowie mögliche Wertausprägungen.

Im Folgenden werden die Parameter und damit verbundene Restriktionen des PMP kurz dargestellt. Jeder Auftrag \(j\) ist durch genau eine Operationszeit \(o_{j}\) und eine Fertigstellungsfrist \(d_{j}\) charakterisiert. Im vorliegenden PMP sind alle Operationszeiten zufällig im Intervall \(\left[ {5, 15} \right]\) gleichverteilt (uniform). Alle Operationszeiten werden zu Beginn einer Episode ausgewürfelt. Fertigstellungsfristen werden ebenfalls zufällig nach dem Verfahren von Potts und van Wassenhove (1985) bestimmt. Konkret wird jede Fertigstellungsfrist aus der folgenden Gleichverteilung gezogen.

$$d_{j} = {\text{Uniform}}\left[ {\hat{W}_{i} *\left( {1 - w_{d} - \frac{D}{2}} \right),\hat{W}_{i} *\left( {1 - w_{d} + \frac{D}{2}} \right)} \right]$$
(6.3)

Der Parameter \(\hat{W}_{i}\) repräsentiert eine Schätzung der Arbeitslast, die von jeder Produktionsressource \(i\) im Mittel bewältigt werden muss. Für das vorliegende PMP wird \(\hat{W}_{i}\) wie folgt geschätzt.

$$\hat{W}_{i} = \frac{1}{\left| M \right|}\left( {\mathop \sum \limits_{j = 1}^{\left| J \right|} o_{j} + \left( {\frac{{\left| J \right| + \left| {Fam} \right|}}{2}} \right)*s} \right)$$
(6.4)
Tabelle 6.5 Parameter des Parallel-Maschinen-Problems

Bei dem zweiten Term in Formel (6.4) handelt es sich um eine Schätzung der mittleren Gesamtrüstzeit. Die mittlere Gesamtanzahl der Rüstungen wird als Durchschnitt der Anzahl von Aufträgen und der Anzahl von Auftragsfamilien angenommen. Die Entscheidung, ob eine Produktionsressource gerüstet werden muss oder nicht, hängt von der Familie des ausgewählten Auftrags und der aktuellen Rüstung der Produktionsressource ab. Jeder Auftrag gehört genau einer Auftragsfamilie an und jede Produktionsressource ist stets genau für eine Auftragsfamilie gerüstet. Hierbei beschreibt \(Fam\) die Menge von Familien, \(f_{j}\) die Familie von Auftrag \(j\) und \(f_{i}\) die Rüstung von Produktionsressource \(i\). Jeder Familie \(f\) gehören ein oder mehrere Aufträge an. Ferner können keine oder eine beliebige Anzahl von Produktionsressourcen mit derselben Familie gerüstet sein. Sofern ein Auftrag auf einer Produktionsressource eingelastet wird, dessen Familie nicht der Rüstung der Ressource entspricht \((f_{i} \ne f_{j} )\), muss eine Rüstzeit \(s\) veranschlagt werden. Nach Ablauf der Rüstzeit besitzt die Produktionsressource die richtige Rüstung, um den eingelasteten Auftrag zu bearbeiten \((f_{i} = f_{j} )\). Sofern \(f_{i}\) und \(f_{j}\) von Beginn an identisch sind, wird keine zusätzliche Rüstzeit veranschlagt.

Die Produktionsressourcen unterliegen verschiedenen Bearbeitungsgeschwindigkeiten. Bei dem ersten Typ von Produktionsressourcen handelt es sich um neue Maschinen, die einen Auftrag in kürzerer als der veranschlagten Operationszeit bearbeiten können \((v_{i} = 0,8)\). Der zweite Typ von Produktionsressourcen umfasst ältere Maschinen, welche exakt die veranschlagte Operationszeit für die Bearbeitung eines Auftrags benötigen \((v_{i} = 1,0)\).

Die Zielstellung ist die Minimierung der Gesamtverspätung über alle Aufträge \(T\).

6.2.2 Anwendung des PPO-Algorithmus zur Lösung des Problems

Der folgende Abschnitt beschreibt den Einsatz des PPO-Algorithmus, um eine agentenbasierte Produktionsablaufsteuerung für das vorliegende PMP zu trainieren.

Entwurf der Agentenumgebung und Definition der maschinellen Lernaufgabe

Das vorgestellte PMP kann gemäß Abbildung 5.3 (Abschnitt 5.2) entweder als Produktionsbereich mit lokalen Warteschlangen für jede Produktionsressource oder als Produktionsbereich mit zentraler Warteschlange für alle Produktionsressourcen modelliert werden. Wie bereits zu Beginn von Abschnitt 6.1.4 dargelegt, dient die vorliegende Fallstudie der Evaluation der ersten Formulierungsvariante von Sequenzierungsproblemen als ML-Aufgabe. Das volle Potenzial dieser Variante wird ausgeschöpft, wenn das PMP als Produktionsbereich mit einer zentralen Warteschlange für alle Produktionsressourcen modelliert wird (Abbildung 5.3 (b)). Auf diese Weise können die Ressourcenbelegungs- und Reihenfolgeplanung sowie die Losbildung kombiniert durch lediglich einen Agenten gesteuert werden. Hierbei wird ausschließlich die Reihenfolgeplanung explizit gesteuert, während die Ressourcenbelegungsplanung und Losbildung nur implizit berücksichtigt werden. Jedes Mal, wenn eine Produktionsressource verfügbar wird, ist der Agent angehalten, einen nachfolgenden Auftrag mittels Priorisierung auszuwählen (explizite Reihenfolgeplanung). Der ausgewählte Auftrag wird sofort auf der verfügbaren Produktionsressource eingelastet (implizite Ressourcenbelegungsplanung). Sofern der ausgewählte Auftrag einer anderen Familie angehört als der zuvor auf derselben Produktionsressource bearbeitete Auftrag, muss zunächst die Produktionsressource umgerüstet werden (impliziter Beginn eines neuen Produktionsloses). Andernfalls kann der Auftrag mit der aktuellen Ressourcenrüstung sofort bearbeitet werden (implizite Fortführung des aktuellen Produktionsloses).

Begründung der Auswahl des bestärkenden Lernverfahrens

Für das Training des Agenten wird der PPO-Algorithmus verwendet. Es handelt sich um ein stochastisches EPA-Verfahren, das ferner als AC-Verfahren klassifiziert ist. Der PPO-Algorithmus wird für das Training von Agenten zur Priorisierung von Aufträgen als besonders geeignet eingeschätzt, aufgrund des folgenden Sachverhalts: Vor der Auswahl eines spezifischen Auftrags aus \(n\) Aufträgen müssen zunächst \(n\) Prioritäten berechnet werden. Hierbei können bereits kleinste Veränderungen der Parameter der Entscheidungspolitik zu signifikanten Veränderungen der ausgegebenen Prioritäten führen. Infolgedessen unterscheiden sich die resultierenden Auftragssequenzen zwischen \(t\) und \(t + 1\) zum Teil stark voneinander. Über einen längeren Zeitraum betrachtet neigt der Agent auf diese Weise deutlich zu einer Exploration des Lösungsraums und vernachlässigt die Tiefenuntersuchung von vielversprechenden Regionen. Dies kann dazu führen, dass der Agent zu keiner Entscheidungspolitik konvergiert. Der PPO-Algorithmus adressiert genau diesen Aspekt, nämlich dass bereits kleinste Veränderungen in den Agentenparametern große Veränderungen in der Entscheidungspolitik hervorrufen können, durch zwei Techniken. Erstens werden die Parameter des Actor-Modells, welches die stochastische Entscheidungspolitik parametrisiert, stets im Verhältnis zu den Parametern der vergangenen Entscheidungspolitik aktualisiert. Zweitens wird die maximal tolerierte Abweichung von der vergangenen Entscheidungspolitik zusätzlich durch ein Clipping-Verfahren beschränkt. Eine ausführliche Beschreibung des PPO-Algorithmus ist als Anhang C dem elektronischen Zusatzmaterial beigefügt.

Zustandsraum des Agenten

Für die Priorisierung (Aktion) eines Auftrags werden die in Tabelle 6.6 gelisteten Attribute zu einem Zustandsvektor gebildet und vorwärts durch das Agentenmodell propagiert. Es müssen zunächst alle Aufträge in der Warteschlange priorisiert werden, bevor ein bestimmter Auftrag ausgewählt werden kann. Anstatt einzelne Zustandsvektoren vorwärts durch den Agenten zu propagieren, um Aufträge einzeln und nacheinander zu priorisieren, werden über eine Zustandsmatrix alle in der Warteschlange befindlichen Aufträge durch eine einzige Vorwärtspropagierung priorisiert. Hierbei repräsentiert jede Zeile den Zustand eines Auftrags und jede Spalte ein Attribut des jeweiligen Zustands. Abbildung 6.4 skizziert den Aufbau der Zustandsmatrix.

Tabelle 6.6 Attribute zur Bildung von Zuständen im Parallel-Maschinen-Problem
Abbildung 6.4
figure 4

Zustandsmatrix zur Priorisierung von Aufträgen im Parallel-Maschinen-Problem

Obgleich jeder Zustand aus den sechs Attributen in Tabelle 6.6 gebildet wird, besitzt die Zustandsmatrix 19 Spalten, d. h. jeder Zustandsvektor in der Matrix besteht aus 19 Elementen. Der Grund ist, dass die Auftragsfamilien, die Ressourcenrüstung und die Bearbeitungsgeschwindigkeit der Ressourcen binär 1-aus-n-kodiert sind. Die Binärvektoren von Auftragsfamilien und Ressourcenrüstungen sind jeweils siebenstellig, da maximal sieben Familien in jeder Probleminstanz existieren. Die Bearbeitungsgeschwindigkeit von Produktionsressourcen wird über einen zweistelligen Binärvektor abgebildet, da in allen Probleminstanzen lediglich zwei Bearbeitungsgeschwindigkeiten unterschieden werden. Die verschiedenen Farben in der Zustandsmatrix kennzeichnen unterschiedliche Werte der jeweiligen Attribute zu ein und demselben Zeitpunkt. Die Auftragsattribute (1–9) sind jeweils auftragsspezifisch ausgeprägt, jedoch stets identisch zu verschiedenen Entscheidungszeitpunkten. Hingegen sind die Attribute der verfügbaren Produktionsressource (10–19) zu ein und demselben Entscheidungszeitpunkt für alle auswählbaren Aufträge identisch, variieren jedoch zu unterschiedlichen Entscheidungszeitpunkten. Zu jedem Entscheidungszeitpunkt werden die gleiche Art und Anzahl von Attributen eingelesen. Die Anzahl der Spalten der Zustandsmatrix ist somit konstant. Jedoch reduziert sich die Anzahl der Matrixzeilen mit jedem ausgewählten Auftrag, weil ausgewählte Aufträge nach ihrer Bearbeitung das System verlassen und nicht nochmal ausgewählt werden können.

Architektur und versteckte Schichten des Agenten

Die Verwendung des PPO-Algorithmus erfordert, dass der Agent ein Actor- und ein Critic-Modell umfasst. Abbildung 6.5 visualisiert den Aufbau des Agenten.

Abbildung 6.5
figure 5

Architektur des Actor-Critic-Agenten für die Priorisierung von Aufträgen

Das Actor- und Critic-Modell teilen sich dieselbe Eingabeschicht, besitzen jedoch jeweils eine eigenständige versteckte Architektur und Ausgabeschicht. Die versteckte Architektur beider Modelle beinhaltet jeweils eine Schicht mit 32 bidirektionalen GRU-Zellen und daran anschließend eine Schicht mit 64 Perzeptron-Neuronen mit ReLU- Aktivierungsfunktion. Analog zur LSTM-Zelle gehört die GRU-Zelle zu den rekurrenten Neuronenmodellen und kann sequenzielle Zusammenhänge in Eingangsdatenströmen detektieren. Eine detaillierte Beschreibung der GRU-Zelle befindet sich in Anhang A im elektronischen Zusatzmaterial (Abbildung A-5). Durch Verwendung von bidirektionalen GRU-Zellen wird sichergestellt, dass der Agent für die Priorisierung eines Auftrags die Zustandsinformationen sowohl von vorgelagerten als auch von nachgelagerten Aufträgen berücksichtigt. Bidirektional bedeutet, dass die GRU-Zellen Zustandssequenzen beidseitig, von vorne nach hinten und von hinten nach vorn, einlesen. Folglich enthält der Ausgabevektor der GRU-Schicht doppelt so viele Werte wie die Anzahl der enthaltenen GRU-Zellen. Aus diesem Grund muss die daran anschließende Perzeptronen-Schicht doppelt so viele Neuronen beinhalten wie die vorgelagerte GRU-Schicht.

Aktionsraum des Agenten

Der Aktionsraum des Agenten ist kontinuierlich, d. h. sowohl das Actor- als auch das Critic-Modell besitzen lediglich ein Ausgabeneuron. Das Actor-Modell gibt die Priorität eines Auftrags aus, während das Critic-Modell den Nutzen für den eingegebene Zustand prognostiziert. Da der PPO-Algorithmus zu den stochastischen EPA-Verfahren zählt, wird der nächste zu produzierende Auftrag nicht unmittelbar auf Basis der maximalen Auftragspriorität gewählt. Stattdessen werden die Prioritäten für die Parametrisierung einer multinominalen Verteilung verwendet, die als stochastische Entscheidungspolitik dient. Hierbei stehen die Auswahlwahrscheinlichkeiten der Aufträge im gleichen Verhältnis zueinander wie die eingehenden Auftragsprioritäten. Aufgrund der losweisen Verarbeitung von Zuständen, handelt es sich bei den Ausgaben des Actor- und Critic-Modells um Vektoren, deren Länge der Anzahl von Zeilen der eingegebenen Zustandsmatrix entsprechen. Darauffolgend wird mithilfe der multinominalen Verteilung eine zufällige Aktion gewählt. Zusätzlich wird ebenfalls die logarithmische Auswahlwahrscheinlichkeit der gewählten Aktion ausgegeben. Im PPO-Algorithmus werden die Auswahlwahrscheinlichkeiten von gewählten Aktionen benötigt, um das Lernsignal des Actor-Modells zu berechnen (für eine detaillierte Erklärung siehe Anhang C im elektronischen Zusatzmaterial).

Belohnungsfunktion und Training des Agenten

Abschließend soll die Gestaltung der Belohnungsfunktion dargelegt werden, mit der die Aktionen des Agenten bewertet werden. In der vorliegenden Fallstudie hat ein zweistufiges Belohnungssystem die besten Lernfolge erzielt. Im ersten Trainingslauf werden die Entscheidungen des Agenten lediglich danach bewertet, ob durch den ausgewählten Auftrag die Produktionsressource umgerüstet werden muss. Der Agent erhält eine Belohnung von +1, wenn der ausgewählte Auftrag mit der aktuellen Rüstung der Produktionsressource bearbeitet werden kann. Demgegenüber erhält der Agent eine Bestrafung von −1, wenn für den ausgewählten Auftrag die Produktionsressource umgerüstet werden muss und sich gleichzeitig Aufträge in der Warteschlange befinden, deren Bearbeitung keine Umrüstung erfordern würde. Die Aktion des Agenten wird mit \(\pm 0\) bewertet, sofern der ausgewählte Auftrag eine Umrüstung erfordert, sich jedoch keine anderen Aufträge in der Warteschlange befinden, die mit der momentanen Rüstung der Produktionsressource bearbeitet werden können. Der ersten Trainingsstufe liegt die Überlegung zugrunde, dass jeder Rüstvorgang zu Lasten der Produktivzeit geht und das Risiko für verspätete Aufträge ansteigen lässt. Der Agent soll auf der ersten Trainingsstufe lernen, Aufträge so auszuwählen, dass die Anzahl benötigter Rüstvorgänge minimiert wird.

Darauffolgend wird der in der ersten Trainingsstufe angelernte Agent in die zweite Trainingsstufe eingebettet. Erst in der zweiten Trainingsstufe adressiert die Belohnungsfunktion die Minimierung der Gesamtverspätung über alle Aufträge. Für jeden ausgewählten Auftrag wird dessen Verspätung berechnet, sobald dessen Bearbeitung auf der Produktionsressource abgeschlossen wurde. Im Fall einer Verspätung wird der Agent mit der negativen Differenz zwischen dem Fertigstellungszeitpunkt und der Fertigstellungsfrist des Auftrags bestraft. Andernfalls erhält der Agent eine Belohnung von \(\pm 0\).

6.2.3 Diskussion der Ergebnisse

Der Agent wird in der ersten und zweiten Trainingsstufe lediglich auf einer Probleminstanz angelernt. Bezugnehmend auf Tabelle 6.5 (Abschnitt 6.2.1) wird die Probleminstanz für das Training mit minimalen Parametern konfiguriert. Vor diesem Hintergrund soll untersucht werden, ob der angelernte Agent auch auf größeren Probleminstanzen qualitativ hochwertige Lösungen generieren kann. Die Trainingsumgebung beinhaltet sechs Produktionsressourcen \(\left( {\left| M \right| = 6} \right)\), wobei die Ressourcen \(i = \left( {1, \ldots ,3} \right)\) Aufträge in kürzerer Zeit \(\left( {w_{1, \ldots ,3} = 0,8} \right)\) und die Ressourcen \(i = \left( {4, \ldots ,6} \right)\) Aufträge gemäß der geplanten Operationszeit bearbeiten \(\left( {w_{4, \ldots ,6} = 1,0} \right)\). In jeder Trainingsepisode werden \(\left| J \right| = 40\) Aufträge aus \(\left| {Fam} \right| = 5\) Auftragsfamilien bearbeitet. Für die Berechnung der Fertigstellungsfristen wird ein durchschnittlicher Verspätungsfaktor von \(w_{d} = 0,1\) sowie ein relativer Wertebereich der Fertigstellungsfristen von \(D = 0,15\) veranschlagt. Tabelle 6.7 zeigt die verwendeten Hyperparameter für das Agententraining. Die Bedeutung der meisten Hyperparameter wurde in Abschnitt 5.3.6 (insbesondere in Tabelle 5.4) diskutiert. Der Clipping-Term \(\epsilon\) und die Anzahl der Epochen pro Trainingsschritt sind PPO-spezifische Parameter. Ihre Bedeutung wird in Anhang C im elektronischen Zusatzmaterial dargelegt.

Tabelle 6.7 Hyperparameter-Einstellungen für den PPO-Algorithmus

Analog zur ersten Fallstudie in Abschnitt 6.1 wurde der Agent in der ersten und zweiten Trainingsstufe jeweils auf einem Kern eines »AMD EPYC 7702P 64-Core«-Prozessors trainiert. Hierbei beansprucht die erste Trainingsstufe eine Rechenzeit von ca. 31 Minuten, während die zweite Trainingsstufe etwa nach 106 Minuten abgeschlossen ist. Abbildung 6.6 zeigt die Lernkurven für beide Trainingsstufen. Die Lernkurve der ersten Trainingsstufe (Abbildung 6.6 (a)) verdeutlicht, dass die Verwendung einer Belohnungsfunktion, welche die Anzahl von Rüstvorgängen minimiert, ebenfalls mit einer Verringerung der Gesamtverspätung über alle Aufträge einhergeht. Jedoch konvergiert die Entscheidungspolitik erst in der zweiten Trainingsstufe, in der die Verspätung von Aufträgen als Belohnung herangezogen wird, zu einem Wert, der sich an \(T = 0\) annähert (Abbildung 6.6 (b)).

Abbildung 6.6
figure 6

Trainingsmetriken des PPO-Algorithmus für (a) den Agenten der ersten Trainingsstufe und für (b) den Agenten der zweiten Trainingsstufe

Die Lösungsqualität des angelernten Agenten wird auf 120 Probleminstanzen mit anderen Lösungsverfahren verglichen. Aufgrund der stochastischen Bearbeitungszeiten und Fertigstellungsfristen durchläuft der Agent jede Probleminstanz zehn Mal, um statistische Schwankungen in der Lösungsgüte abzubilden. Bei den verglichenen Lösungsverfahren handelt es sich um die Prioritätsregeln EDD, LST, SPT und MAS_PAR. Die MAS_PAR-Regel ist eine auftragsfamilien-basierte Prioritätsregel, die speziell für das PMP mit Rüstfamilienrestriktion gestaltet wurde (van der Zee 2015). Bei der MAS_PAR-Regel wird stets eine vollständige Familie auf der Produktionsressource bearbeitet. Sobald eine Produktionsressource verfügbar wird, wählt die MAS_PAR-Regel diejenige Familie, bei der das Verhältnis aus Umrüstzeit zur Anzahl der zu bearbeitenden Aufträge innerhalb der Familie am geringsten ist. Laut van der Zee (2015) erfolgt die Reihenfolgebildung innerhalb einer Familie gemäß der SPT-Regel. In der vorliegenden Arbeit wird stattdessen die EDD-Regel verwendet, da diese explizit die Minimierung von \(T\) adressiert.

Abbildung 6.7 veranschaulicht die mittlere Lösungsgüte der verschiedenen Ansätze über alle Probleminstanzen, kategorisiert nach verschiedenen Verspätungsfaktoren \(w_{d}\) und relativen Wertebereichen für die Fertigstellungsfristen \(D\). Jede Konfiguration von \(w_{d}\) und \(D\) umfasst 30 Probleminstanzen, die sich hinsichtlich der Anzahl der initialen Aufträge \(\left| {b = 0} \right|\), der Anzahl der Produktionsressourcen \(\left| M \right|\) und der Anzahl von Auftragsfamilien \(\left| {Fam} \right|\) unterscheiden. Die Gesamtverspätung über alle Aufträge ist somit stets über 30 Probleminstanzen gemittelt.

Abbildung 6.7
figure 7

Lösungsgüte des PPO-Agenten im Vergleich zu verschiedenen Prioritätsregeln

Abbildung 6.7 demonstriert, dass die Lösungsgüte des PPO-Algorithmus um ein Vielfaches besser ist als die Lösungsgüte von herkömmlichen Prioritätsregeln. Hierbei ist der Agent in der Lage auf Probleminstanzen, die während des Trainings nicht beobachtet wurden, gleichermaßen hochqualitative Ergebnisse zu erzielen. Eine erweiterte tabellarische Darstellung der Ergebnisdaten ist als Anhang I dem elektronischen Zusatzmaterial beigefügt. Hinsichtlich des Berechnungsaufwands können keine nennenswerten Unterschiede zwischen der Anwendung des trainierten Agenten und der Anwendung von Prioritätsregeln ausgemacht werden. Der angelernte Agent benötigt in etwa eine Sekunde Rechenzeit, um eine Probleminstanz vollständig zu lösen. Zusammengefasst kann dem PPO-Algorithmus eine absolute Dominanz gegenüber den untersuchten Prioritätsregel attestiert werden.

6.3 Zweistufiges Hybrid-Flow-Shop-Problem mit familienabhängigen Rüstzeiten

Die dritte Fallstudie repräsentiert eine reale Problemstellung aus der Industrie. Betrachtet wird das Produktionssystem eines Auftragsfertigers für elektronische Komponenten, in dem Bauelemente auf Leiterplatten verlötet werden und danach eine optische Qualitätskontrolle durchlaufen. Aus mathematischer Sicht handelt es sich um ein zweistufiges Hybrid-Flow-Shop (HFS) -Problem. Das Produktionsprogramm ist durch eine hohe Variantenvielfalt geprägt, aufgrund der das Unternehmen eine hohe Anzahl von Auftragsfamilien verwalten muss. Die Produktion einer Auftragsfamilie erfordert eine individuelle Rüstung des Bestückungsautomaten, wodurch zusätzliche Rüstzeiten entstehen. Derzeit basiert die Produktionsablaufplanung des Unternehmens maßgeblich auf menschlichen Erfahrungswissen. Bei der Erstellung eines Produktionsplans wird von einem statischen Auftragshorizont ausgegangen, d. h., dass eine fixe Menge von Aufträgen über eine bestimmte Planungsperiode eingelastet wird. Tatsächlich unterliegt die Produktion jedoch einem dynamischen Auftragshorizont, weil Kunden neue Aufträge direkt im ERP-System des Unternehmens platzieren können. Einige der wichtigsten Kunden setzen zudem sehr enge Lieferfristen, wodurch die Planung zusätzlich erschwert wird. Vor diesem Hintergrund würde das Unternehmen von einer automatisierten und echtzeitfähigen Produktionsablaufplanung profitieren.

Im Rahmen dieser Arbeit wird ein gradientenabhängiger und ein gradientenfreier RL-Ansatz für die agentenbasierte Steuerung der Produktion des Unternehmens untersucht. In der gradientenabhängigen Lösungsstrategie wird der A2C-Algorithmus angewandt, um einen Agenten hinsichtlich der Auswahl von Prioritätsregeln anzulernen (dritte Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe, siehe Abbildung 5.14 in Abschnitt 5.3.2.2). Im Zuge der gradientenfreien Lösungsstrategie wird der NEAT-Algorithmus zur Gestaltung und Parametrisierung von Agenten für (i) die Allokation von Aufträgen zu Produktionsressourcen (Abbildung 5.11 in Abschnitt 5.3.2.1) sowie für (ii) die Konstruktion von Auftragssequenzen mittels Priorisierung (zweite Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe, siehe Abbildung 5.13 in Abschnitt 5.3.2.2) untersucht. Die jeweiligen Lösungsstrategien werden in den Unterabschnitten 6.3.2 und 6.3.3 diskutiert. Im Folgenden sollen zunächst die wichtigsten Aspekte des betrachteten Produktionssystems aus Sicht der Ablaufplanung beschrieben werden.

6.3.1 Problembeschreibung

In dem betrachteten HFS muss eine Menge von Aufträgen \(J\) zwei Produktionsstufen \(\left( {\left| L \right| = 2} \right)\) durchlaufen. Die erste Produktionsstufe umfasst vier identische Produktionsressourcen \(i^{{\left( {l = 1} \right)}} = \left( {1, \ldots ,4} \right)\). Es handelt sich um Maschinen für die automatisierte Leiterplattenbestückung, im Folgenden als SMD (vom englischen Begriff »Surface Mount Device«) abgekürzt. Die zweite Produktionsstufe besteht aus fünf identischen Ressourcen \(i^{{\left( {l = 2} \right)}} = \left( {1, \ldots ,5} \right)\) für die automatische optische Inspektion (AOI) der bestückten Leiterplatten. Die Operationszeiten sind individuell für jeden Auftrag und jede Produktionsstufe festgelegt \(\left( {o_{j}^{\left( l \right)} \forall j = \left( {1, \ldots , \left| J \right|} \right) \forall l = \left( {1, 2} \right)} \right)\), jedoch sind innerhalb derselben Produktionsstufe die Operationszeiten eines Auftrags für alle Produktionsressourcen identisch.

In der ersten Produktionsstufe finden kleine und große Rüstprozesse statt. Für die Bearbeitung eines Auftrags muss eine SMD-Ressource entsprechend der Familie des Auftrags gerüstet werden. Analog zu dem in Abschnitt 6.2.1 beschriebenen PMP gehört jeder Auftrag genau einer Auftragsfamilie an und jede Produktionsressource ist zur selben Zeit genau für eine Auftragsfamilie gerüstet. Hierbei beschreibt \(Fam\) die Menge aller Familien, \(f_{j}\) die Familie von Auftrag \(j\) und \(f_{i}\) die Rüstung von SMD-Ressource \(i^{{\left( {l = 1} \right)}}\). Jeder Familie \(f\) gehören ein oder mehrere Aufträge an. Sofern ein Auftrag auf einer SMD-Ressource eingelastet wird, dessen Familie nicht der Rüstung der Ressource entspricht \((f_{i} \ne f_{j} )\), muss eine große Rüstzeit \(s_{major}^{\left( 1 \right)}\) von 65 Minuten veranschlagt werden. Nach Ablauf der Rüstzeit ist die SMD-Ressource mit der passenden Rüstung ausgestattet, um den aktuellen Auftrag zu bearbeiten \((f_{i} = f_{j} )\). Sofern \(f_{i}\) und \(f_{j}\) von Beginn an identisch sind, muss weiterhin eine kleine Rüstzeit \(s_{minor}^{\left( 1 \right)}\) von 20 Minuten für die Vorbereitung der Ressource berücksichtigt werden. Die AOI-Ressourcen der zweiten Produktionsstufe müssen ebenfalls für die Bearbeitung eines jeden Auftrags vorbereitet werden. Die Vorbereitungszeit \(s^{\left( 2 \right)}\) beträgt stets 25 Minuten und ist unabhängig von den Familien sowie der Reihenfolge der zu bearbeitenden Aufträge.

Jeder Auftrag besitzt eine Fertigstellungsfrist \(d_{j}\), bis zu welcher die zweite Produktionsstufe abgeschlossen werden soll. Die Güte eines Produktionsablaufplans wird anhand dessen Gesamtdauer \(C_{max}\) und der resultierenden Gesamtverspätung über alle Aufträge \(T\) bewertet. Ferner gelten für das HFS-Problem die folgenden weiteren Nebenbedingungen:

  • Alle Aufträge sind von Beginn an \((t_{sim} = 0)\) verfügbar.

  • Nach dem Start der Bearbeitung des ersten Auftrags in der ersten Produktionsstufe kommen keine neuen Aufträge in das System.

  • SMD-Ressourcen sind zum Start der Produktion für keine Auftragsfamilie gerüstet.

  • Jede SMD- und AOI-Ressource kann nur einen Auftrag zur gleichen Zeit produzieren.

  • Die Bearbeitung von Aufträgen kann nicht unterbrochen werden. Ein Auftrag muss zunächst vollständig bearbeitet werden, bevor der nächste Auftrag für die Produktion ausgewählt werden kann.

  • Zu jedem Zeitpunkt kann maximal eine SMD-Ressource mit derselben Familie gerüstet sein.

  • Das Problem ist als Permutations-Flow-Shop klassifiziert, d. h. Aufträge, welche die erste Produktionsstufe abschließen, werden derjenigen Produktionsressource zugewiesen, die am frühesten verfügbar wird (Emmons und Vairaktarakis 2013). Diese Nebenbedingung spiegelt den Produktionsprozess des Unternehmens am besten wider und ist dadurch zu begründen, dass in der Leiterplattenbestückungsindustrie üblicherweise die Qualität der Ablaufplanung für SMD-Ressourcen den größten Einfluss auf die Gesamtleistung des Produktionssystems ausübt (Csaszar et al. 2000).

Im Rahmen dieser Arbeit werden vier Probleminstanzen für das geschilderte HFS-Problem untersucht. Die Probleminstanzen stammen aus dem ERP-System des Unternehmens und repräsentieren historische Produktionsdaten. Jede Probleminstanz deckt eine Planungsperiode von ca. drei Wochen ab. Tabelle 6.8 beschreibt die Probleminstanzen anhand von einigen statistischen Kennzahlen. Die Kurtosis \(K\) der jeweiligen Auftragsattribute und die mittlere normalisierte Kurtosis \(\overline{K}\) der jeweiligen Datensätze sind ausschließlich für die Anwendung des NEAT-Algorithmus von Bedeutung. Beide Kennzahlen werden in Abschnitt 6.3.3 im Zuge der Experimente und Hyperparameter-Einstellungen für das Agententraining mit NEAT erläutert. Die vollständigen Datensätze sind online verfügbarFootnote 1. Weil es sich bei dem vorliegenden HFS-Problem um einen Permutations-Flow-Shop handelt, werden die in den Abschnitten 6.3.2 und 6.3.3 vorgestellten Lösungsansätze lediglich für das Training von Agenten für die erste Produktionsstufe (SMD) untersucht.

Tabelle 6.8 Aggregierte Darstellung der HFS-Probleminstanzen (in Anlehnung an Lang et al. 2021b)

6.3.2 Anwendung des A2C-Algorithmus zur Lösung des Problems

Im Rahmen der gradientenabhängigen Lösungsstrategie wird der A2C-Algorithmus für das Training von Agenten hinsichtlich der Auswahl von Prioritätsregeln untersucht. Eine detaillierte Beschreibung des A2C-Algorithmus ist als Anhang B dem elektronischen Zusatzmaterial beigefügt. Die agentenbasierte Auswahl von Prioritätsregeln beschreibt die dritte Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe (Abbildung 5.14 in Abschnitt 5.3.2.2). Die folgende Darstellung der gradientenabhängigen Lösungsstrategie basiert im Wesentlichen auf einer vorausgegangenen Publikation, die im Rahmen dieser Arbeit entstanden ist (Gerpott, Lang et al. 2022).

Entwurf der Agentenumgebung

Wie im Folgenden aufgezeigt wird, erfordert das vorliegende HFS-Problem eine integrative Betrachtung des Entwurfs der Agentenumgebung und der Gestaltung der Belohnungsfunktion. Grundsätzlich kommen sowohl das Produktionsbereichsmodell mit lokalen Warteschlangen als auch das Produktionsbereichsmodell mit zentraler Warteschlange (Abbildung 5.3 (a) bzw. (b) in Abschnitt 5.2) für die Implementierung des HFS-Problems als Agentenumgebung in Frage. Da die dritte Formulierungsvariante für Sequenzierungsprobleme eine kombinierte Ressourcenbelegungs-, Reihenfolge- und Losgrößenplanung erlaubt, ist es theoretisch ausreichend, die SMD-Stufe als Produktionsbereich mit zentraler Warteschlange zu modellieren. Die Restriktion, dass zu jedem Zeitpunkt maximal eine SMD-Ressource mit derselben Familie gerüstet sein darf, erfordert jedoch eine Erweiterung dieses Modells. Sofern ein ausgewählter Auftrag die Umrüstung einer SMD-Ressource bedingt, muss zunächst überprüft werden, ob zum aktuellen Zeitpunkt keine benachbarte SMD-Ressource Aufträge derselben Familie produziert. Ist dies nicht der Fall, können zwei Ansätze verfolgt werden, welche die Einhaltung der Restriktion sicherstellen:

  1. (i)

    Die umzurüstende SMD-Ressource wartet solange, bis das angeforderte Rüst-Kit verfügbar wird. Hierbei kann der Fall eintreten, dass mehrere SMD-Ressourcen zur gleichen Zeit auf dasselbe Rüst-Kit warten. Um Konflikte zu vermeiden wird für jede Auftragsfamilie eine Warteschlange erstellt, in welche sich die SMD-Ressource einreiht, sofern das Rüst-Kit nicht unmittelbar zur Verfügung steht. Alle Warteschlangen für Rüst-Kits werden nach dem FIFO-Prinzip abgearbeitet.

  2. (ii)

    Jede SMD-Ressource ist mit einem zusätzlichen lokalen Puffer ausgestattet. Sofern eine benachbarte SMD-Ressource zum gegenwärtigen Zeitpunkt einen anderen Auftrag derselben Familie bearbeitet, wird der ausgewählte Auftrag in den lokalen Puffer der bereits gerüsteten SMD-Ressource verschoben. Die verfügbare SMD-Ressource, für welche der verschobene Auftrag ursprünglich ausgewählt wurde, erhält durch den Agenten den Auftrag mit der nächsthöchsten Priorität. Hierbei ist es möglich, dass der alternativ zugewiesene Auftrag ebenfalls verschoben wird, sofern eine andere SMD-Ressource zum aktuellen Zeitpunkt einen anderen Auftrag derselben Familie bearbeitet. Der Prozess wiederholt sich solange, bis ein Auftrag ausgewählt wurde, für dessen Familie keine andere SMD-Ressource gerüstet ist oder bis keine Aufträge in der zentralen Warteschlange vorhanden sind. SMD-Ressourcen arbeiten stets zuerst die Aufträge in ihrem lokalen Puffer nach dem FIFO-Prinzip ab, bevor sie einen Auftrag aus der zentralen Warteschlange für SMD-Ressourcen anfordern.

Ansatz (i) besitzt gegenüber (ii) den Vorteil, dass Entscheidungen stets im Sinne des Agenten getroffen werden. Hingegen werden in Ansatz (ii) Agentenentscheidungen verworfen und durch alternative Entscheidungen ersetzt, sofern ein Rüstkonflikt eintreten würde. Dies kann den Lernprozess erschweren, da alternativ getroffene Entscheidungen nicht unmittelbar durch den Agenten beobachtet werden können. Hingegen erlaubt Ansatz (ii) eine einfachere Berechnung von zeitbasierten Belohnungen. Durch den A2C-Algorithmus trainierte Agenten sollen unter anderem auf Basis der Unpünktlichkeit von Aufträgen in der ersten Produktionsstufe belohnt werden. Die anteilsmäßige Unpünktlichkeit eines Auftrags kann in Ansatz (ii) gemäß Formel (5.4) berechnet werden, wenn der Auftrag auf der verfügbaren SMD-Ressource bearbeitet werden kann, bzw. gemäß Formel (5.5), sofern der Auftrag auf eine andere Ressource umverteilt werden muss. In Ansatz (ii) ist bei einem Rüstkonflikt Formel (5.5) nicht anwendbar, da keine zusätzlichen lokalen Puffer existieren. Alternativ müsste ein Berechnungsverfahren implementiert werden, das die voraussichtliche Wartezeit abschätzt, bis das angeforderte Rüst-Kit für die SMD-Ressource verfügbar wird. Eine exakte Berechnung der Wartezeit ist nicht möglich, da nicht vorhersehbar ist, ob die SMD-Ressource, welche das angeforderte Rüst-Kit zum Zeitpunkt nutzt, nach dem aktuell in Bearbeitung befindlichen Auftrag einen weiteren Auftrag derselben Familie auswählt. Vor diesem Hintergrund wird für das Training mit dem A2C-Algorithmus die Agentenumgebung gemäß Ansatz (ii) angepasst, um Rüstkonflikte zu vermeiden. Demzufolge wird jede SMD-Ressource der ersten Produktionsstufe mit einem zusätzlichen lokalen Puffer ausgestattet.

Die zweite Produktionsstufe wird ebenfalls als Produktionsbereich mit zentraler Warteschlange modelliert. In der zweiten Produktionsstufe werden Aufträge nach dem FIFO-Prinzip abgearbeitet, d. h. sobald eine AOI-Ressource verfügbar ist, wird der vorderste Auftrag aus der zentralen Warteschlange für AOI-Ressourcen ausgewählt. Abbildung 6.8 zeigt einen Ausschnitt des animierten Simulationsmodells.

Definition der maschinellen Lernaufgabe und des Aktionsraums des Agenten

Wie bereits einleitend erwähnt, soll im Rahmen der gradientenabhängigen Lösungsstrategie die dritte Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe evaluiert werden. Jedes Mal, wenn eine SMD-Ressource verfügbar wird, entscheidet sich der Agent in Abhängigkeit vom aktuellen Zustandsvektor für eine Prioritätsregel. Durch die Anwendung der Prioritätsregel wird der nächste zu produzierende Auftrag für die verfügbare SMD-Ressource ausgewählt. Der Agent besitzt somit einen diskreten Aktionsraum.

Abbildung 6.8
figure 8

Animierte DES-Agentenumgebung des zweistufigen HFS-Problems für die A2C- Implementierung

Für die vorliegende Problemstellung werden sechs Prioritätsregeln definiert, zwischen denen sich der Agent entscheiden kann. Das Agentenmodell besitzt demzufolge sechs Ausgabeneuronen. Die untersuchten Prioritätsregeln werden in Tabelle 6.9 gelistet. In den mathematischen Definitionen der Prioritätsregeln bildet die Indexvariable \(q\) auf alle auswählbaren Aufträge in der SMD-Warteschlange ab. Die Prozesszeit \(p_{q}^{\left( l \right)}\) subsumiert die Operationszeit \(o_{q}^{\left( l \right)}\) und die Rüstzeit \(s_{minor}^{\left( 1 \right)}\), \(s_{major}^{\left( 1 \right)}\) oder \(s^{\left( 2 \right)}\) (abhängig von der Produktionsstufe und ggf. von der Familie des Auftrags und der Rüstung der verfügbaren SMD-Ressource). Da die Güte eines Produktionsablaufplans sowohl anhand dessen Gesamtdauer \(C_{max}\) als auch anhand der resultierenden Gesamtverspätung über alle Aufträge \(T\) bewertet wird, werden im Aktionsraum des Agenten Prioritätsregeln für beide Optimierungskriterien berücksichtigt. Die Prioritätsregeln, die mit den Aktionsindizes 1–3 assoziiert werden, tragen zu einer Minimierung von \(T\) bei. Die mit den Aktionsindizes 4 und 5 assoziierten Prioritätsregeln adressieren die Minimierung von \(C_{max}\).

Hinsichtlich der LPT-Regel hat sich im Rahmen von Voruntersuchungen herausgestellt, dass insbesondere in zweistufigen Flow-Shop-Systemen die Auswahl des Auftrags mit der längsten Operationszeit teilweise zu einer Verringerung der Gesamtdauer des Ablaufplans führen kann. Die Anwendung der LPT-Regel kann u. U. verhindern, dass einzelne Aufträge mit besonders langen Operationszeiten erst am Ende des Produktionszyklus auf der AOI-Stufe bearbeitet werden, während das restliche Produktionsprogramm bereits abgearbeitet wurde und die verbleibenden AOI-Ressourcen sich im Leerlauf befinden. Die mit der sechsten Aktion assoziierte FAM_EDD-Regel stellt einen Kompromiss zwischen der Minimierung von \(C_{max}\) und \(T\) her, indem lediglich derjenige Auftrag mit der geringsten Fertigstellungsfrist gewählt wird, der keine große Umrüstung der verfügbaren SMD-Ressource erfordert. In Formel (6.11) bezeichnet der Index \(SMD\) die verfügbare SMD-Ressource, die den nächsten zu bearbeitenden Auftrag anfordert.

Tabelle 6.9 Aktionsraum des Agenten im HFS-Problem für die A2C-Implementierung (in Anlehnung an Gerpott, Lang et al. 2022)

Zustandsraum des Agenten

Der in jedem Zeitschritt eingelesene Zustand sollte ebensolche Informationen berücksichtigen, durch die der Agent ein möglichst umfassendes Bild der Produktionsumgebung erhält, um auf geeignete Prioritätsregeln für die Auswahl von Aufträgen schließen zu können. In der vorliegenden Lösungsstrategie beinhaltet jeder Zustandsvektor auftragsbezogene Warteschlangenstatistiken sowie verschiedene Attribute der SMD-Ressourcen. Tabelle 6.10 listet alle Warteschlangen- und SMD-Attribute auf, die in die Zustandsbildung einfließen.

Belohnungsfunktion des Agenten

Um gleichermaßen die Gesamtdauer des Ablaufplans \(C_{max}\) und die Gesamtverspätung über alle Aufträge \(T\) bei der Bewertung von Agentenentscheidungen zu adressieren, wird im Folgenden eine multikriterielle Belohnungsfunktion \({\mathcal{R}}_{Total}\) hergeleitet, welche die Optimierung beider Zielkriterien ausbalanciert.

$${\mathcal{R}}_{Total} = \omega_{C} {\mathcal{R}}_{C} + \omega_{T} {\mathcal{R}}_{T}$$
(6.11)

Hierbei repräsentieren \({\mathcal{R}}_{C}\) und \({\mathcal{R}}_{T}\) die Belohnungsfunktionen für die Minimierung von \(C_{max}\) bzw. von \(T\). Die Koeffizienten \(\omega_{C}\) und \(\omega_{T}\) gewichten den Einfluss beider Belohnungsfunktionen auf die Gesamtbelohnung. Im Rahmen dieser Arbeit werden beide Koeffizienten stets mit dem Wert 0,5 initialisiert, wodurch \({\mathcal{R}}_{C}\) und \({\mathcal{R}}_{T}\) gleichermaßen in \({\mathcal{R}}_{Total}\) eingehen. Die Teilbelohnungsfunktion \({\mathcal{R}}_{C}\) für die Optimierung von \(C_{max}\) ist so gestaltet, dass der Agent motiviert ist, alle Ressourcen einer Produktionsstufe möglichst hoch und gleichmäßig auszulasten.

Tabelle 6.10 Attribute zur Bildung von Zuständen im HFS-Problem für die A2C-Implementierung (in Anlehnung an Gerpott, Lang et al. 2022)
$${\mathcal{R}}_{C} = - \frac{{Scale_{C} }}{\left| L \right|}*\mathop \sum \limits_{l = 1}^{\left| L \right|} \frac{{\left| {\overline{o}_{last}^{\left( l \right)} - \overline{o}^{\left( l \right)} } \right|}}{{o_{max}^{\left( l \right)} - \overline{o}^{\left( l \right)} }}$$
(6.12)

mit

$$Scale_{C} = 10 ;{\kern 1pt} {\kern 1pt} \overline{o}_{last}^{\left( l \right)} = \frac{{\mathop \sum \nolimits_{k = 1}^{5} o_{k}^{\left( l \right)} }}{5} ;{\kern 1pt} \overline{o}^{\left( l \right)} = \frac{{\mathop \sum \nolimits_{j = 1}^{\left| J \right|} o_{j}^{\left( l \right)} }}{\left| J \right|} ;{\kern 1pt} o_{max}^{\left( l \right)} = \mathop {\max }\limits_{j} \left( {o_{j}^{\left( l \right)} } \right)$$
(6.13)

Um eine möglichst hohe und gleichmäßige Ressourcenauslastung zu erreichen, bildet die Teilbelohnungsfunktion in Formel (6.13) für jede Produktionsstufe \(l\) die durchschnittliche Operationszeit über alle Aufträge \(\overline{o}^{\left( l \right)}\) sowie über die letzten fünf ausgewählten Aufträge \(\overline{o}_{last}^{\left( l \right)}\). Je Produktionsstufe wird die absolute Differenz zwischen beiden Mittelwerten berechnet und normalisiert. Über den Skalierungsfaktor \(Scale_{C}\) wird die Belohnung in den Wertebereich \(\left( { - 10, 0} \right)\) verschoben. Die Intention hinter der Berechnungsvorschrift ist, dass der Agent umso kleinere Bestrafungen erhält, desto ausgewogener die Auswahl von Aufträgen aus den zentralen Warteschlangen der SMD- und AOI-Stufe erfolgt. Die Auswahl von Aufträgen ist umso ausgewogener, je dichter sich der gleitende Mittelwert der Bearbeitungszeiten über die zuletzt ausgewählten Aufträge am tatsächlichen Mittelwert der Bearbeitungszeiten über alle Aufträge befindet. Obgleich die Entscheidungen des Agenten unmittelbar nur die erste Produktionsstufe betreffen, bewertet die Belohnungsfunktion \({\mathcal{R}}_{C}\) ebenfalls die Ausgewogenheit der Auftragsauswahl in der zweiten Produktionsstufe. Dies hat den Hintergrund, dass die Auftragsauswahl in der ersten Stufe maßgeblich beeinflusst, wie viele und welche Aufträge in der zweiten Stufe zur Auswahl stehen. Vor diesem Hintergrund kann der Fall eintreten, dass Auswahlentscheidungen, welche die erste Produktionsstufe nur suboptimal auslasten, zu einer besseren Auslastung der zweiten Produktionsstufe führen und somit in der Gesamtbilanz besser sind.

Die Teilbelohnungsfunktion \({\mathcal{R}}_{T}\) für die Optimierung von \(T\) basiert im Wesentlichen auf Formel (5.4) zur Berechnung der anteilsmäßigen Unpünktlichkeit einer Auftragsoperation \(L_{j,o}\) und der hierauf aufbauenden Belohnungsfunktion \({\mathcal{R}}_{L} \left( j \right)\) aus Formel (5.7). Die konkreten Berechnungsvorschriften sind in den folgenden Formeln (6.15) und (6.16) dargelegt.

$$\mathcal{R}_{T} = \left\{ {\begin{array}{*{20}l} {\frac{{Scale_{T} *L_{j}^{{(1)}} }}{{\widehat{E}_{{\max }} }},} \hfill & {wenn\;L_{j}^{{(1)}} \le 0} \hfill \\ { - W_{T} *\left( {\frac{{Scale_{T} *L_{j}^{{(1)}} }}{{\widehat{T}_{{\max }} }}} \right),} \hfill & {sonst} \hfill \\ \end{array} } \right.$$
(6.14)

mit

$$Scale_{T} = 10 ;{\kern 1pt} w_{T} = 4 ;L_{j}^{\left( 1 \right)} = \left( {t_{sim} - d_{j} } \right)*\left( {\frac{{p_{j}^{\left( 1 \right)} }}{{\mathop \sum \nolimits_{l = 1}^{\left| L \right|} p_{j}^{\left( l \right)} }}} \right)$$
(6.15)

Formel (6.15) erweitert Formel (5.7) um ein Normalisierungsverfahren, das Bestrafungen in den Wertebereich \(\left( { - 10, 0} \right)\) verschiebt. Die maximale Verfrühung und Verspätung werden durch die in Abschnitt 5.3.5.1 entwickelten Formeln (5.10) und (5.11) geschätzt. Ferner verändert sich die Berechnungsvorschrift für die anteilsmäßige Verspätung. Anstelle der Verspätung einer Auftragsoperation wird die Verspätung des Auftrags auf der ersten Produktionsstufe berechnet. Diese Veränderung ist jedoch rein formell und der mathematischen Definition des HFS-Problems geschuldet. Da beide Produktionsstufen mit jeweils genau einer Auftragsoperation assoziiert werden, handelt es sich im Grunde genommen um dieselbe Berechnungsvorschrift. In Formel (6.15) werden sowohl verfrühte als auch verspätete Aufträge bestraft, wobei verspätete Aufträge um das Vierfache härter bestraft werden als verfrühte Aufträge.

Versteckte Architektur des Agenten und Hyperparameter-Einstellungen für das Agententraining

Für das Agententraining werden die Hyperparameter aus Tabelle 6.11 verwendet. Tabelle 6.11 gibt ebenfalls Auskunft über die versteckte Architektur des Agenten. Im Folgenden werden die wichtigsten Gestaltungsentscheidungen kurz erläutert.

Analog zum PPO-Algorithmus besteht der Agent aus einem Actor- und einem Critic-Modell. In Kontrast zur Architektur des Actor-Critic-Agenten für das in Abschnitt 6.1.4 skizzierte PMP (Abbildung 6.5), teilen sich das Actor- und Critic-Modell keine gemeinsame Eingabeschicht. Ferner besitzen beide Modelle keine rekurrenten Neuronen. Die versteckte Architektur des Actor- und Critic-Modells ähnelt der des Agenten für die Ressourcenbelegungsplanung des in Abschnitt 6.1 untersuchten FJS-Problems. Anstatt der ELU-Funktion werden die Ausgaben der versteckten Schichten durch eine ReLU-Funktion verarbeitet.

Für die vorliegende Fallstudie wird der A2C-Algorithmus der Programmbibliothek Stable Baselines verwendet. Die Lernparameter \(c_{V}\) und \(c_{H}\) sind spezifische Parameter der Stable-Baselines-Implementierung. Die in Anhang B (im elektronischen Zusatzmaterial) definierte Lernsignalfunktion des Actor-Modells

Tabelle 6.11 Hyperparameter-Einstellungen für den A2C-Algorithmus (in Anlehnung an Gerpott, Lang et al. 2022)

(Formel (B.3)) wird insofern erweitert, dass wahlweise ein Entropie-Term dem Lernsignal hinzugefügt werden kann, der die Exploration des Agenten forciert. Der Einfluss der Entropie wird über den Koeffizienten \(c_{H}\) gesteuert. Zusätzlich kann der Einfluss der Zustandsnutzenfunktion auf das Lernsignal über den Koeffizienten \(c_{V}\) feinjustiert werden. Die vollständige Lernsignalfunktion des Actor-Modells in der Stable-Baselines-Implementierung kann somit wie folgt formuliert werden.

$$\delta_{A} = \frac{1}{n}\mathop \sum \limits_{k = t - n}^{t} \left( {c_{V} *Adv_{k} *\log \pi \left( {A_{k} {|}S_{k} ;\theta_{A} } \right) + c_{H} *H(\pi \left( {S_{k} ;\theta_{A} } \right)} \right)$$
(6.16)

Der Term \(H(\pi \left( {S_{k} ;\theta_{A} } \right)\) repräsentiert die Entropie der aus der Entscheidungspolitik \(\pi (a|s;\theta_{A} )\) resultierenden Multinominalverteilung unter dem gegebenen Zustand \(S_{k}\). In Vorexperimenten hat sich herausgestellt, dass sich die Lösungsgüte des Agenten nicht durch eine entropie-induzierte Exploration verbessert. Aus diesem Grund wird in den finalen Experimenten auf die Berechnung einer Entropie verzichtet \(\left( {c_{H} = 0} \right)\). Als Optimierungsverfahren wird der RMSProp-Algorithmus verwendet. Hierbei handelt es sich um das Standardoptimierungsverfahren für die A2C-Implementierung in Stable Baselines.

Trainingsergebnisse und Evaluation

Der Agent wurde auf einem Kern eines Prozessors des Modells »Intel i5–6500« trainiert. Der Prozessorkern besitzt eine maximale Taktfrequenz von 3,20 GHz. Die Simulation von 2.500 Trainingsepisoden beansprucht in etwa 40 Minuten Rechenzeit. Für das Training wurde ausschließlich Datensatz 1 verwendet. Die Datensätze 2–4 dienen der Evaluation des trainierten Agenten. Abbildung 6.9 veranschaulicht den Trainingsverlauf des Agenten anhand von sechs Lernkurven. Die linke Seite von Abbildung 6.9 zeigt die Gesamtdauer des Ablaufplans \(C_{max}\), die Gesamtverspätung über alle Aufträge \(T\) sowie die kumulierte Belohnung am Ende einer Episode \(G_{T}\). Die drei Kennzahlen zeigen, dass zwischen Episode 500 und 600 der Agent sich temporär einer lokalen optimalen Strategie annähert, im weiteren Verlauf jedoch zu einer schlechteren finalen Strategie konvergiert. Die Verschlechterung des Agenten betrifft ausschließlich das Optimierungskriterium \(C_{max}\). Die Gesamtverspätung über alle Aufträge pendelt sich etwa nach 500 Episoden auf den Wert null ein.

Abbildung 6.9
figure 9

Trainingsmetriken des A2C-trainierten Agenten auf Datensatz 1 des HFS-Problems (in Anlehnung an Gerpott, Lang et al. 2022)

Die rechte Seite von Abbildung 6.9 zeigt, für welche Prioritätsregeln sich der Agent in jeder Episode entscheidet, wie viele Aufträge verfrüht und verspätet fertiggestellt werden und wie sich die maximale und durchschnittliche Verfrühung \(E_{max}\) bzw. \(E_{avg}\) sowie die maximale und durchschnittliche Verspätung \(T_{max}\) bzw. \(T_{avg}\) über die Episoden entwickeln. In den besten Strategien zwischen Episode 500 und 600 wählt der Agent einigermaßen ausgewogen zwischen den verfügbaren Prioritätsregeln, wobei eine Präferenz für diejenigen Prioritätsregeln zu beobachten ist, welche die Gesamtverspätung über alle Aufträge minimieren. In der schlechteren finalen Strategie wählt der Agent in den meisten Fällen die LST-Prioritätsregel und in nur wenigen Entscheidungssituationen die EDD-Prioritätsregel. Die Ursachen, warum der Agent nach ca. 500 Episoden zu einer schlechteren Entscheidungspolitik konvergiert, bedarf einer tieferen Analyse und soll Gegenstand zukünftiger Forschungsarbeiten sein. Die Entwicklung der Unpünktlichkeit der Aufträge entspricht dem Verlauf der Gesamtverspätung über alle Aufträge. Sowohl die Kurve für \(T_{max}\) als auch für \(T_{avg}\) konvergieren im Verlauf der Episoden gegen null.

Für die Evaluation der Lösungsgüte auf den Datensätzen 2–4 und den Vergleich mit anderen Lösungsverfahren wird die als am besten identifizierte Entscheidungspolitik zwischen Episode 500 und 600 herangezogen. Tabelle 6.12 zeigt die Lösungsgüte des trainierten Agenten, gemessen an der Gesamtdauer des Ablaufplans \(C_{max}\) und der Gesamtverspätung über alle Aufträge \(T\), auf allen vier Datensätzen.

Tabelle 6.12 Lösungsgüte des A2C-trainierten Agenten auf allen vier Datensätzen des HFS-Problems

Die Ergebnisse verdeutlichen, dass der Agent ebenfalls auf Datensatz 4, der während des Trainings nicht beobachtet wurde, einen Produktionsplan identifizieren kann, bei welchem keine Verspätungen auftreten. Verspätungen treten hingegen in den Produktionsplänen für die Datensätzen 2 und 3 auf, die ebenfalls nicht während des Trainings beobachtet wurden. In Abschnitt 6.3.4 wird jedoch aufgezeigt, dass die Lösungsgüte des A2C-Algorithmus mit den meisten konventionellen Lösungsverfahren konkurrieren kann oder diese sogar übertrifft. Zuvor soll im Folgenden jedoch erst die gradientenfreie Lösungsstrategie beschrieben werden.

6.3.3 Anwendung des NEAT-Algorithmus zur Lösung des Problems

Der NEAT-Algorithmus wird stellvertretend für die Klasse gradientenfreier RL-Verfahren für das vorliegende HFS-Problem untersucht. Vor dem Hintergrund, dass das HFS-Problem den einzigen Untersuchungsgegenstand für gradientenfreie RL-Verfahren repräsentiert, werden im Folgenden mehrere Varianten zur Formulierung von Entscheidungsproblemen der Produktionsablaufplanung als ML-Aufgabe untersucht. Die nachfolgenden Ausführungen basieren im Wesentlichen auf zwei vorausgegangenen Publikationen, die im Rahmen dieser Arbeit entstanden sind (Lang et al. 2020b; Lang et al. 2021b).

Entwurf der Agentenumgebung

Zunächst sollen die Unterschiede hinsichtlich der Implementierung der Agentenumgebung im Vergleich zur gradientenabhängigen Lösungsstrategie dargestellt werden. Einleitend zeigt Abbildung 6.10 einen Ausschnitt aus dem animierten Simulationsmodell.

Abbildung 6.10
figure 10

Animierte DES-Agentenumgebung des zweistufigen HFS-Problems für die NEAT-Implementierung

Erstens werden die SMD- und AOI-Stufe nicht als Produktionsbereiche mit zentraler Warteschlange implementiert. Stattdessen wird für die Modellierung das Produktionsbereichsmodell mit lokalen Warteschlangen für jede Produktionsressource (Abbildung 5.3 (b) in Abschnitt 5.2) verwendet. Der Grund für diese Entscheidung ist, dass der NEAT-Algorithmus anhand von verschiedenen Formulierungsvarianten für ML-Aufgaben untersucht werden soll. Durch das Produktionsbereichsmodell gemäß Abbildung 5.3 (b) kann der NEAT-Algorithmus sowohl für das Training von Agenten mit diskreten Aktionsraum (für die Auftragsallokation) als auch für das Training von Agenten mit kontinuierlichem Aktionsraum (für die prioritätsbasierte Auftragssequenzierung) untersucht werden. Zweitens ist es nicht notwendig die Restriktion, dass zu jedem Zeitpunkt nur eine SMD-Ressource für dieselbe Familie gerüstet sein darf, über Modellierungsansatz (ii) zu implementieren. Wie bereits zu Beginn von Abschnitt 6.3.2 erläutert, besitzt Modellierungsansatz (ii) den Nachteil, dass ungültige Agentenentscheidungen verworfen und durch Alternativentscheidungen ersetzt werden, die nicht unmittelbar durch den Agenten beobachtet werden können. Bei Anwendung des A2C-Algorithmus kann durch Modellierungsansatz (ii) gewährleistet werden, dass für jede Aktion die (stufenbezogene) Fertigstellung mit einer Belohnung bewertet wird, die mit der Gesamtdauer des Ablaufplans \(C_{max}\) und der Gesamtverspätung über alle Aufträge \(T\) korreliert. Weil im NEAT-Algorithmus die Belohnung lediglich der Bewertung einer vollständigen Lösung dient, nicht jedoch die Richtung der Optimierung steuert, ist es nicht notwendig, dass jede Aktion durch eine spezifische Belohnung quittiert wird. Stattdessen ist es ausreichend, die Optimierungskriterien am Ende einer Episode für die Berechnung der Belohnung heranzuziehen. Demzufolge wird für die gradientenfreie Lösungsstrategie Modellierungsansatz (i) zur Vermeidung von Rüstkonflikten implementiert, bei dem keine Agentenentscheidungen verworfen werden und eine SMD-Ressource solange wartet, bis das angeforderte Rüst-Kit verfügbar ist. Drittens muss das Simulationsmodell nicht zusätzlich mit der OpenAI-Gym-Schnittstelle ausgestattet werden. Da Belohnungen lediglich am Ende einer Episode vergeben werden, entfällt die Anforderung, dass die Umgebung schrittweise ausführbar sein muss.

Definition der maschinellen Lernaufgaben sowie Zustands- und Aktionsräume der Agenten

Abbildung 6.11 präsentiert vier Strategien, um durch den NEAT-Algorithmus angelernte Agenten für die Produktionsablaufplanung in der ersten Stufe des vorliegenden HFS-Problems einzusetzen. Im Folgenden sollen die Strategien kurz erläutert werden.

Abbildung 6.11
figure 11

NEAT-Lösungsstrategien für die Produktionsablaufplanung im HFS-Problem (in Anlehnung an Lang et al 2021b)

PRE-SEQ-KNN und POST-SEQ-KNN beschreiben Strategien zur Sequenzierung von Aufträgen. Beide Strategien basieren auf der zweiten Variante zur Formulierung von Sequenzierungsproblemen als ML-Aufgabe, nach der eine Auftragssequenz durch Priorisierung einzelner Aufträge iterativ konstruiert wird (Abbildung 5.13 in Abschnitt 5.3.2.2). Abbildung 6.12 veranschaulicht die Zustands- und Aktionsräume der Agenten für beide Strategien.

Abbildung 6.12
figure 12

Zustands- und Aktionsraum der Strategien (a) PRE-SEQ-KNN und (b) POST-SEQ-KNN (in Anlehnung an Lang et al. 2021b)

In der Strategie PRE-SEQ-KNN wird eine Auftragssequenz noch vor der Initialisierung der Simulation konstruiert und an das Simulationsmodell übergeben. Es werden keine Attribute von Produktionsressourcen in der Zustandsbildung berücksichtigt, da diese vor dem Start der Simulation für alle Aufträge gleich wären und somit keine zusätzliche Informationen für die Priorisierung von Aufträgen böten. Somit besteht ein Zustand lediglich aus Auftragsattributen, respektive aus (1) der Fertigstellungsfrist \(d_{j}\), aus (2) der Familie \(f_{j}\) sowie aus den Bearbeitungszeiten auf der (3) SMD- und (4) AOI-Produktionsstufe \(o_{j}^{\left( 1 \right)}\) und \(o_{j}^{\left( 2 \right)}\) eines Auftrags. Die Sequenz wird darauffolgend nach dem FIFO-Prinzip vom Produktionssystem verarbeitet. Hingegen erfolgt in der Strategie POST-SEQ-KNN die Priorisierung eines Auftrags erst, nachdem dieser einer Produktionsressource zugewiesen wurde. Ergänzend zu den Auftragsattributen der Strategie PRE-SEQ-KNN (1–4) wird die aktuelle Rüstung der zugewiesenen SMD-Ressource \(f_{SMD}\) (5) als Systemattribut in die Zustandsbildung miteinbezogen. Bei dieser Strategie wird der Agent als Eingabeparameter an das Simulationsmodell übergeben und in dieses eingebettet, um für Entscheidungen während der Simulation konsultiert zu werden.

Die Strategien F-ALLOK-KNN und J-ALLOK-KNN dienen der Allokation von Aufträgen zu Produktionsressourcen und modellieren das entsprechende Entscheidungsproblem als ML-Aufgabe gemäß Abbildung 5.11 (Abschnitt 5.3.2.1). Abbildung 6.13 zeigt die Zustands- und Aktionsräume der Agenten für beide Strategien. Die erste Allokationsstrategie F-ALLOK-KNN verteilt Auftragsfamilien anstatt einzelner Aufträge auf SMD-Ressourcen. Alle Allokationsentscheidungen finden vor der Initialisierung der Simulation statt. Für jede beobachtete Familie \(f_{obs}\), die einer SMD-Ressource zugewiesen werden soll, analysiert der Agent einen Zustand bestehend aus 17 Attributen. Es handelt sich hierbei um die Summe der Operationszeiten über alle Aufträge der beobachteten Familie für (1) die SMD- und (2) AOI-Produktionsstufe sowie um (3) die Summe, (4) das Minimum, (5) den Mittelwert, (6) das Maximum, und die (7–9) 0,25-, 0,5- (Median) und 0,75-Quantile der Fertigstellungsfristen über alle Aufträge der beobachteten Familie. Weiterhin analysiert der Agent auf Basis vorangegangener Allokationsentscheidungen, (10–13) welche Arbeitslast und (14–17) wie viele unterschiedliche Familien auf den SMD-Ressourcen zu erwarten sind. Das Ergebnis ist eine Zuordnungstabelle, die Auftragsfamilien auf SMD-Ressourcen abbildet und als

Abbildung 6.13
figure 13

Zustands- und Aktionsraum der Strategien (a) F-ALLOK-KNN und (b) J-ALLOK-KNN (in Anlehnung an Lang et al. 2021b)

Eingabeparameter des Simulationsmodells dient. Während der Simulation wird für jede Allokationsentscheidung die Familie des Auftrags analysiert und gemäß der Zuordnungstabelle einer SMD-Ressource zugewiesen. Die zweite Allokationsstrategie J-ALLOK-KNN verteilt Aufträge unmittelbar zur Simulationslaufzeit auf die verschiedenen SMD-Ressourcen. Analog zur Sequenzierungsstrategie POST-SEQ-KNN wird der Agent als Eingabeparameter an das Modell übergeben und in dieses integriert. Für jede Allokationsentscheidung analysiert der Agent neun Zustandsinformationen. Die Auftragsattribute (1–4) sind deckungsgleich mit dem Zustandsraum der Sequenzierungsstrategie PRE-SEQ-KNN. Ferner analysiert der Agent (5–8) die aktuelle Arbeitslast aller SMD-Ressourcen \(W_{1, \ldots ,4}^{\left( 1 \right)}\) sowie (9) die zum Zeitpunkt noch unverteilte Arbeitslast \(W^{\left( 0 \right)}\), gemessen an der SMD-Bearbeitungszeit aller Aufträge, die noch keiner SMD-Ressource zugewiesen wurden.

Experimente und Hyperparameter-Einstellungen für das Agententraining

Die Trainingsexperimente konzentrieren sich auf die Untersuchung verschiedener Kombinationen von Allokations- und Sequenzierungsstrategien. Tabelle 6.13 enthält eine Übersicht zu allen durchgeführten Experimenten. In den Experimenten, in denen eine Prioritätsregel für die Sequenzierung zum Einsatz kommt, wird stets vor der Initialisierung der Simulation eine Auftragsreihenfolge gemäß der gewählten Regel konstruiert (analoges Prinzip zu PRE-SEQ-KNN). Auf eine Untersuchung von Prioritätsregeln für die Sequenzierung von Aufträgen nach der Allokation zu einer SMD-Ressource wird im Rahmen dieser Arbeit verzichtet, da in Voruntersuchungen keine signifikanten Ergebnisunterschiede zwischen der Anwendung von Prioritätsregeln vor und nach der Allokation beobachtet werden konnten. Aufgrund der stochastischen Suche unterliegt das Agententraining mit NEAT statistischen Schwankungen. Aus diesem Grund werden für jedes der gelisteten Experimente zehn Beobachtungen durchgeführt. Während in den Experimenten 01–09 lediglich ein Agent trainiert wird, der entweder für die Allokation oder Sequenzierung von Aufträgen verantwortlich ist, werden in den Experimenten 10–13 stets zwei Agenten trainiert, die das Allokations- und Sequenzierungsproblem kombiniert lösen. Die Gestaltung des Ablaufs für das Training von zwei Agenten erfordert einige konzeptionelle Vorüberlegungen. Aus Implementierungssicht ist das Training von beiden Agenten nacheinander am einfachsten umzusetzen. Hierbei wird bspw. zunächst

Tabelle 6.13 Übersicht zu den durchgeführten NEAT-Experimenten (in Anlehnung an Lang et al. 2021b)

der Allokations- und anschließend der Sequenzierungsagent trainiert. In diesem Fall würde der Allokationsagent unter Verwendung einer Prioritätsregel zur Auftragssequenzierung (z. B. FIFO) angelernt werden. Darauffolgend wird für das Training des Sequenzierungsagenten der beste Agent aus dem vorherigen Trainingslauf für die Allokation von Aufträgen verwendet. Der geschilderte Ablauf kann auch umgekehrt durchlaufen werden, indem NEAT zuerst den Agenten für die Sequenzierung und anschließend den Agenten für die Allokation von Aufträgen trainiert. Ein Problem dieser Strategie ist, dass der erste Agent stets in Verbindung mit einem regelbasierten Ansatz und nicht im Verbund mit dem zweiten Agenten trainiert wird. Auf diese Weise können beide Agenten ihre Entscheidungsstrategien nicht aufeinander abstimmen. Alternativ wird für die Experimente 10–13 eine kompetitive, rundenbasierte Ausführung des NEAT-Algorithmus implementiert, wodurch das Training beider Agenten integriert erfolgt.

Abbildung 6.14 zeigt das Flussdiagramm des kompetitiven, rundenbasierten Trainingsprozesses. Hierbei repräsentieren rot-grüne Blöcke den Trainingsprozess des Allokationsagenten und blau-orange Blöcke den Trainingsprozess des Sequenzierungsagenten. Der Trainingsprozess startet mit der Suche nach einer initialen KNN-Repräsentation für den Allokationsagenten, unter Verwendung der FIFO-Prioritätsregel für die Sequenzierung von Aufträgen. Diese ist gewöhnlich nach einer Generation gefunden, da zu Beginn die globale beste Belohnung mit einem hohen negativen Wert initialisiert wird, welche von den meisten Genomen der initialen Population bereits übertroffen wird. Die letzte Generation der Population sowie deren bestes Genom werden gespeichert. Die Fitness des besten Genoms wird fortan als neue globale beste Belohnung verwendet. Im Folgenden versucht der NEAT-Algorithmus für das Sequenzierungsproblem, eine KNN-Repräsentation zu finden, welche eine bessere Fitness erzielt als die neue globale beste Belohnung. Bei der Bewertung eines Sequenzierungsgenoms wird das beste Genomdes zuvor ausgeführten NEAT-Algorithmus für die Auftragsallokation verwendet und umgekehrt. Sobald der NEAT-Algorithmus für die Auftragssequenzierung ein Genom findet, das die globale beste Belohnung überschreitet, speichert der Algorithmus die aktuelle Population sowie das Genom mit der besten Fitness, bevor das Verfahren terminiert. Die Fitness des besten Genoms wird als neue globale Belohnung gesetzt. Der NEAT-Algorithmus für das Allokationsproblem evolviert nun die letzte Generation des vorherigen Allokationsexperiments, anstatt eine neue Population von Grund auf zu erstellen. Dieser Prozess wird so lange wiederholt, bis beide Algorithmen die globale beste Belohnung innerhalb einer benutzerdefinierten Anzahl von Generationen nicht mehr verbessern können.

In allen Experimenten werden die Datensätze 2 und 3 für das Training sowie die Datensätze 1 und 4 für die Evaluation der trainierten Agenten verwendet. In Vorexperimenten hat sich herausgestellt, dass der Agent nicht in der Lage ist, seine Entscheidungspolitik auf andere Probleminstanzen zu generalisieren, sofern nur ein Datensatz für das Agententraining verwendet wird. Die Entscheidung zur Verwendung der Datensätze 2 und 3 für das Agententraining basiert auf einer ausführlichen statistischen Analyse in (Lang et al. 2021b). In dieser wurde für alle Datensätze die Anzahl von Ausreißern für jedes Auftragsattribut über die Kurtosis \(K\) und für den jeweils gesamten Datensatz über die gemittelte normalisierte Kurtosis \(\overline{K}\) quantifiziert. Die Kurtosis beschreibt die Wölbung einer zufallsverteilten Größe. Eine geringe Kurtosis weist darauf hin, dass die Werte einer Datenreihe eher gleichmäßig verteilt sind, während eine hohe Kurtosis auf eine größere, unregelmäßigere Streuung der Daten und damit auf ein höheres Maß an Ausreißern hinweist. Tabelle 6.8 (Abschnitt 6.3.1) enthält die Kurtosis \(K\) für jedes Auftragsattribut sowie die gemittelte normalisierte Kurtosis \(\overline{K}\) für jeden Datensatz. Die Datensätze 2 und 3 weisen die geringste gemittelte normalisierte Kurtosis auf und somit die geringste Anzahl an statistischen Ausreißern. Es ist somit anzunehmen, dass der Agent auf den Datensätzen 2 und 3 einfacher zu einer Entscheidungspolitik konvergiert. Aus diesem Grund werden die Datensätze 2 und 3 als Trainingsdatensätze gewählt.

Abbildung 6.14
figure 14

Algorithmischer Ablauf des kompetitiven, rundenbasierten NEAT-Trainingsprozesses (in Anlehnung an Lang et al. 2021b)

Als Belohnungsfunktion wird die negative Gesamtverspätung über alle Aufträge \(\left( { - 1} \right)*T\) verwendet. In jeder Generation wird jedes Genom zuerst anhand von Datensatz 2 und danach anhand von Datensatz 3 bewertet. Die Belohnung eines Genoms entspricht der negativen Summe der Gesamtverspätung über alle Aufträge und Datensätze. Die Gesamtdauer des Ablaufplans \(C_{max}\) wird lediglich als sekundäres Optimierungskriterium berücksichtigt. Sofern mehrere Genome die niedrigste Gesamtverspätung über alle Aufträge aufweisen, wird von diesen Genomen dasjenige gewählt, bei dem die geringste Gesamtdauer des Ablaufplans resultiert.

Für das Agententraining werden zwei unterschiedliche Hyperparameter-Konfigurationen definiert. Zunächst werden die Experimente 01–13 mit den Hyperparameter-Einstellungen durchgeführt, die in Tabelle 6.14 gelistet sind. Die Hyperparameter-Einstellungen basieren auf dem Anwendungsbeispiel »OpenAI Lander«, das Bestandteil der Softwarebibliothek »neat-python« ist (McIntyre et al. 2017a). Im OpenAI-Lander-Beispiel muss ein Agent eine Mondlandefähre so steuern, dass diese in einem bestimmten Bereich auf dem Mond landet. Im Vergleich zu den anderen Beispielen erscheinen die Hyperparameter-Einstellungen des OpenAI-Lander-Beispiels am geeignetsten, da die Eingabe- und Ausgabeschicht des Agenten zur Steuerung der Mondlandefähre (acht Eingänge bzw. vier Ausgänge) den Eingabe- und Ausgabeschichten der Agenten für die Allokation von Aufträgen am meisten ähneln. Aufgrund der Tatsache, dass die beiden Strategien F-ALLOK-KNN und J-ALLOK-KNN die größte Anzahl von Eingabe- und Ausgabeneuronen besitzen, ist anzunehmen, dass die Identifikation einer geeigneten KNN-Architektur für beide Allokationsstrategien anspruchsvoller ist als für beide Sequenzierungsstrategien. Aus diesem Grund wurde eine Referenzkonfiguration für die Hyperparameter gesucht, die insbesondere für das Training der Allokationsagenten geeignet erscheint. Es wurden wenige Adaptionen an der Hyperparameter-Konfiguration des OpenAI-Lander-Beispiels vorgenommen, die im Folgenden diskutiert werden sollen. In den Experimenten 01–09 wird die Population jeweils über 500 Generationen evolviert. In den Experimenten 10–13, in denen zwei NEAT-Algorithmen rundenbasiert gegeneinander antreten, muss jede NEAT-Instanz in jeder Runde innerhalb von maximal 50 Generationen eine bessere Belohnung erzielen als die zum Zeitpunkt global beste Belohnung. Die Populationsgröße wird von 150 auf 250 erhöht, um eine höhere Anzahl verschiedener Lösungskandidaten zu untersuchen, weil die Genome der Allokationsstrategien eine höhere Anzahl von Eingabe- und Ausgabeneuronen besitzen als die Genome des OpenAI-Lander-Beispiels. Ferner wird lediglich die Sigmoid-Funktion als mögliche Aktivierungsfunktion erlaubt, sodass alle Neuronen Ausgaben zwischen null und eins produzieren. Die Festlegung auf lediglich eine Aktivierungsfunktion dient als Maßnahme, um das Risiko einer Überanpassung auf die Trainingsdaten zu reduzieren. Mithilfe der zweiten Hyperparameter-Konfiguration soll erforscht werden, welche Lösungsqualität mithilfe des kompetitiven, rundenbasierten NEAT-Trainingsprozesses möglich ist, sofern entweder die Rechenzeit für das Agententraining vernachlässigbar ist oder u. U. die Hyperparameter des Agententrainings experimentell optimiert werden. Zu diesem Zweck werden einige Hyperparameter verändert, um eine größere Exploration des Lösungsraums zu Lasten der algorithmischen Laufzeit zu erlauben. So werden die Mutationswahrscheinlichkeiten von Neuronen und Synapsen verdoppelt. Ebenso werden die Wertebereiche und Mutationsraten von synaptischen Gewichten sowie von neuronalen Bias-Termen und Reaktivitätskoeffizienten verdoppelt. Ferner wird die Größe von jeder Population auf 1000 Genome erhöht. Schließlich wird die Anzahl der Generationen, in welcher eine NEAT-Instanz eine bessere Lösung als die globale beste Belohnung ermitteln muss, von 50 auf 100 erhöht.

Tabelle 6.14 Hyperparameter-Einstellungen für NEAT (in Anlehnung an Lang et al. 2021b)

Trainingsergebnisse und Evaluation

Abbildung 6.15
figure 15

Boxplot-Diagramme für die Gesamtverspätung über alle Aufträge und für die Gesamtdauer der Ablaufpläne für die Experimente 01–13 (in Anlehnung an Lang et al. 2021b)

Wie in Abbildung 6.15 ersichtlich, variiert die Lösungsgüte der trainierten Agenten zwischen den Experimenten mitunter deutlich und unterliegt teilweise hohen Schwankungen. Abbildung 6.15 zeigt die resultierende Gesamtverspätung über alle Aufträge \(T\) (oben) bzw. die resultierenden Gesamtzeiten der Ablaufpläne \(C_{max}\) (unten) der trainierten Agenten als Boxplot-Diagramme. In beiden Boxplot-Diagrammen sind die Experimente nicht nach aufsteigenden Indizes, sondern jeweils aufsteigend nach \(T\) bzw. \(C_{max}\) sortiert. Die vollständigen Ergebnisdaten sind als Anhang J dem elektronischen Zusatzmaterial beigefügt. Bezogen auf das primäre Belohnungskriterium \(T\) ist zu erkennen, dass der Agent in allen Experimenten in der Lage ist, auf den Testdatensätzen ähnliche Ergebnisse zu erzielen wie auf den Trainingsdatensätzen. Lediglich in einigen Allokationsexperimenten, in welchen eine statische Prioritätsregel für die Auftragssequenzierung zum Einsatz kommt, leistet der trainierte Agent auf dem vierten Datensatz erkennbar andere Ergebnisse als auf den verbleibenden Datensätzen. Ferner ist ersichtlich, dass das Training von Allokationsagenten in Kombination mit den meisten statischen Prioritätsregeln zu wesentlich schlechteren Ergebnissen führt, verglichen zu denjenigen Experimenten, in denen ein Sequenzierungsagent ausschließlich oder in Kombination mit einem Allokationsagenten trainiert wird. Eine nachvollziehbare Ausnahme bildet die EDD-Prioritätsregel, welche für die Minimierung der Gesamtdauer des Ablaufplans prädestiniert ist. Hinsichtlich des sekundären Belohnungskriteriums \(C_{max}\) pendeln sich die meisten der untersuchten Strategien in einer Zeitspanne zwischen 20.000 und 30.000 Minuten ein. Es ist zu beobachten, dass in einigen Replikationen Ablaufpläne mit einer Gesamtdauer von weit unter 20.000 Minuten erzielt werden. Im Allgemeinen sind die statistischen Schwankungen von \(C_{max}\) wesentlich stärker ausgeprägt als von \(T\), da \(C_{max}\) lediglich als sekundäres Belohnungskriterium bei der Evaluation von Genomen miteinbezogen wird.

Tabelle 6.15 Lösungsgüte der besten NEAT-trainierten Agenten auf allen vier Datensätzen des HFS-Problems

Unter denjenigen Experimenten, in welchen sowohl ein Allokations- als auch ein Sequenzierungsagent angelernt werden, weist Experiment 12 (PRE-SEQ-KNN&F-ALLOK-KNN) die besten Ergebnisse für \(T\) und \(C_{max}\) auf. Vor diesem Hintergrund wird Experiment 12 unter Verwendung der zweiten Hyperparameter-Konfiguration wiederholt, um zu überprüfen, ob eine höhere Lösungsgüte erreicht werden kann, wenn ein größerer Lösungsraum, unter Inanspruchnahme von mehr Rechenzeit und -ressourcen, durchsucht wird. Die Ergebnisse der zehn Replikationen sind in Tabelle J-4 in Anhang J im elektronischen Zusatzmaterial dargestellt. Durch die Vergrößerung des durchsuchbaren Lösungsraums können erstmals ein Allokations- und Sequenzierungsagent ermittelt werden, die sowohl auf den Trainings- als auch auf den Testdatensätzen Produktionspläne ohne verspätete Aufträge erzeugen. Zusammengefasst werden in Tabelle 6.15 die Ergebnisse der besten beiden NEAT-Experimente dargestellt. Neben der kombinierten Allokations- und Sequenzierungsstrategie PRE-SEQ-KNN&F-ALLOK-KNN leistet Experiment 1, in welchem nur ein Agent für die Sequenzierung angelernt wird, die besten Ergebnisse.

6.3.4 Vergleich mit anderen Lösungsverfahren

Abschließend zu dieser Fallstudie sollen die Lösungsgüte des A2C- und des NEAT-Algorithmus mit anderen Lösungsverfahren verglichen werden. In der Vergangenheit untersuchten Aurich et al. (2016) und Nahhas et al. (2016) die Metaheuristiken »Simulated Annealing« (SA), »Tabu Search« (TS) sowie einen genetischen Algorithmus (GA) für die Auftragsreihenfolge- und Ressourcenbelegungsplanung im vorliegenden HFS-Problem. Ferner untersuchten die Autoren eine eigens entwickelte und für das HFS-Problem spezifizierte Heuristik, die unter dem Namen »Integrated Simulation-Based Optimization« (ISBO) veröffentlich wurde. Sowohl die Metaheuristiken als auch die ISBO-Heuristik lösen das Allokationsproblem auf der SMD-Stufe, ohne die daran anschließende AOI-Stufe zu betrachten. Ebenfalls sollen der A2C- und der NEAT-Algorithmus mit der EDD- und SPT-Regel verglichen werden. Beide Sequenzierungsregeln werden im Verbund mit der Allokationsregel »Minimale Arbeitslast« (MIN-WL) untersucht. Darüber hinaus werden die Ergebnisse der Fertigungsplanung (FP) des Unternehmens in den Vergleich miteinbezogen. Die Einlastung von Aufträgen erfolgt derzeit manuell durch die verantwortlichen Stellen in der Fertigungsplanung, wobei der Fokus auf der Vermeidung von großen Umrüstprozessen liegt.

Abbildung 6.16 bewertet alle genannten Lösungsverfahren anhand der Gesamtdauer des Ablaufplans \(C_{max}\) und anhand der Gesamtverspätung über alle Aufträge \(T\). Die Ergebnisdaten in Abbildung 6.16 sind ebenfalls in Anhang J im elektronischen Zusatzmaterial tabellarisch hinterlegt (Tabelle J-5). Sowohl der A2C-Algorithmus als auch die besten beiden NEAT-Lösungsstrategien produzieren für beide Optimierungskriterien stets bessere Ergebnisse als die derzeitige Fertigungsplanung des Unternehmens und die auf statischen Planungsregeln basierenden Lösungsansätze. Hinsichtlich des

Abbildung 6.16
figure 16

Vergleich des A2C- und des NEAT-Algorithmus mit anderen Lösungsverfahren

Optimierungskriteriums \(C_{max}\) wird der A2C-Algorithmus im Mittel nur durch den genetischen Algorithmus geschlagen. Der NEAT-Algorithmus liefert in Bezug auf \(C_{max}\) in etwa die gleiche Lösungsgüte wie die Metaheuristiken »Simulated Annealing« und »Tabu Search«. Die schlechtere Performanz des NEAT-Algorithmus ist insofern nicht ungewöhnlich, da die Gesamtdauer des Ablaufplans in dessen Belohnungsfunktion nur ein sekundäres Auswahlkriterium darstellt. Hinsichtlich des Optimierungskriteriums \(T\) generieren beide NEAT-Strategien im Mittel bessere Ergebnisse als der A2C-Algorithmus und die ISBO-Heuristik. Die schlechtere Performanz des A2C-Algorithmus ist ebenfalls nicht ungewöhnlich, da dessen Entscheidungspolitik unter einer multikriteriellen Belohnungsfunktion angelernt wurde, die \(C_{max}\) und \(T\) gleichermaßen gewichtet. Lediglich die NEAT-Strategie, in der ein Allokations- und Sequenzierungsagent im Verbund angelernt werden, ist in der Lage, Ablaufpläne zu generieren, in denen keine Fertigstellungsfristen verletzt werden. Diesbezüglich erreicht NEAT dieselbe Lösungsgüte wie die drei verglichenen Metaheuristiken. Hinsichtlich des Berechnungsaufwands für die Generierung einer Lösung sind deutliche Unterschiede zwischen den heuristischen und agentenbasierten Verfahren auf der einen Seite und den Metaheuristiken auf der anderen Seite zu erkennen.

Tabelle 6.16 vergleicht den Berechnungsaufwand für die Generierung der präsentierten Lösungen anhand der Anzahl der benötigten Simulationsläufe. Mit Ausnahme der NEAT-Strategie PRE-SEQ-KNN&F-ALLOK-KNN ist zu beobachten, dass das Agententraining mithilfe des A2C- und NEAT-Algorithmus in etwa denselben Berechnungsaufwand erfordert wie die Anwendung der Metaheuristiken »Simulated Annealing«, »Tabu Search« und »Genetischer Algorithmus« zur Generierung von lediglich einer lokalen besten Lösung für einen Datensatz. Die NEAT-Strategie PRE-SEQ-KNN&F-ALLOK-KNN birgt mutmaßlich noch hohe Verbesserungspotenziale zur Reduzierung des Berechnungsaufwands. Mögliche Maßnahmen sind z. B. die Verwendung von bereits vortrainierten KNN als Startlösung, die Initialisierung der globalen besten Belohnung mit besseren Werten oder die Einführung einer Restriktion, dass jedes NEAT-Verfahren die globale Belohnung nicht nur schlagen, sondern um einen benutzerdefinierten absoluten oder relativen Wert überbieten muss.

Tabelle 6.16 Berechnungsaufwand der Lösungsverfahren gemessen an der Anzahl der benötigten Simulationsläufe

Im Gegensatz zu den metaheuristischen Ansätzen und analog zu den heuristischen Lösungsstrategien sind die Agenten nach dem Training in der Lage innerhalb eines Simulationslaufs einen vollständigen Produktionsablaufplan für eine beliebige Anzahl von Aufträgen zu generieren. Darüber hinaus eignen sich die heuristischen und agentenbasierten Lösungsstrategien für eine echtzeitfähige Produktionssteuerung, da auftragsweise Allokations- und Sequenzierungsentscheidungen zur Laufzeit getroffen werden.

Obgleich die ISBO-Heuristik und die trainierten Agenten gleichermaßen nur ein Simulationslauf für die Generierung einer vollständigen Lösung benötigen, weist die ISBO-Heuristik eine höhere Zeitkomplexität auf, was im Folgenden anhand der Anzahl benötigter Rechenschritte aufgezeigt werden soll. Bei der ISBO-Heuristik ist die Anzahl der Rechenschritte von der Anzahl der auftretenden Umplanungsereignisse abhängig. Immer dann, wenn ein Auftrag die SMD-Stufe abschließt, überprüft die ISBO-Heuristik für diejenige Familie, die den Auftrag mit der geringsten Fertigstellungsfrist enthält und die zum Zeitpunkt auf keiner SMD-Ressource gerüstet ist, ob die fristgerechte Bearbeitung des Auftrags mit der geringsten Fertigstellungsfrist gefährdet ist. Zu diesem Zweck sortiert die Heuristik alle Auftragsfamilien in aufsteigender Reihenfolge der Fertigstellungsfristen aller nicht produzierten Aufträge. Danach weist die ISBO-Heuristik die erste Familie der sortierten Menge der verfügbaren SMD-Ressource zu, sofern ansonsten der Auftrag mit der geringsten Fertigstellungsfrist innerhalb dieser Familie nicht fristgerecht bearbeitet werden könnte. Andernfalls wird die Bearbeitung der Aufträge der aktuell gerüsteten Familie fortgesetzt.

Um die Zeitkomplexität der ISBO-Heuristik für den ungünstigsten Fall zu approximieren, seien \(\left| J \right|\) Aufträge angenommen, wobei alle Aufträge unterschiedlichen Familien angehören \(\left( {\left| J \right| = \left| {Fam} \right|} \right)\). Die Zeitkomplexität für die Sortierung aller Familien nach aufsteigenden Fertigstellungsfristen hängt maßgeblich vom verwendeten algorithmischen Verfahren ab. Nachfolgend sei angenommen, dass für die Sortierung der Auftragsfamilien der Bubblesort-Algorithmus angewandt wird. Ferner sei angenommen, dass \(\left| {Fam} \right| = n\) Auftragsfamilien zu sortieren sind. Im schlechtesten Fall benötigt der Algorithmus \(\left( {n^{2} - n} \right) / 2\) Vergleichsoperationen bzw. \(\left( {n^{2} - n} \right)* 1,5\) Austauschoperationen für die vollständige Sortierung der Auftragsliste (Wirth 1983, S. 105). In beiden Termen repräsentiert \(n^{2}\) die höchste Potenz, sodass dem Bubblesort-Algorithmus eine Zeitkomplexität von \(O\left( {n^{2} } \right)\) zugeschrieben werden kann. Insgesamt finden \(\left| J \right|\) Sortiervorgänge während eines Simulationslaufs statt. In Bezug auf die ISBO-Heuristik muss berücksichtigt werden, dass die Anzahl der zu sortierenden Aufträge mit der Anzahl der Umplanungsentscheidungen abnimmt, weil immer nur dann ein Umplanungsereignis stattfindet, sobald ein Auftrag die SMD-Bearbeitungsstufe abgeschlossen hat. Daher variiert die Anzahl der zu sortierenden Aufträge zwischen 1 und \(\left| J \right|\). Für dieses Beispiel sei angenommen, dass \(n\) die Laufvariable für Aufträge repräsentiert. Folglich finden im ungünstigsten Fall \(\mathop \sum \nolimits_{n = 1}^{\left| J \right|} \left( {n^{2} - n} \right) / 2\) Vergleichsoperationen bzw. \(\mathop \sum \nolimits_{n = 1}^{\left| J \right|} \left( {n^{2} - n} \right)* 1,5\) Austauschoperationen für die Berechnung einer Lösung statt. Auch in diesem Fall repräsentiert \(n^{2}\) die höchste Potenz in beiden Termen, sodass ebenfalls der ISBO-Heuristik eine Laufzeitkomplexität von \(O\left( {n^{2} } \right)\) zugeschrieben werden kann. Somit wächst im schlechtesten Fall der Berechnungsaufwand mindestens quadratisch in Abhängigkeit der Anzahl einzulastender Aufträge.

Bei der agentenbasierten Produktionsablaufplanung hängt die Anzahl der Berechnungsschritte von der Anzahl der einzulastenden Aufträge und der Anzahl der Matrixmultiplikationen für die Vorwärtspropagierung der Zustände ab. Die Anzahl der Matrixmultiplikationen ist jedoch für ein und dasselbe KNN stets konstant und daher für die Berechnung der Zeitkomplexität vernachlässigbar. Aus diesem Grund kann die Zeitkomplexität eines jeden KNN für die Berechnung einer vollständigen Lösung auf \(O\left( n \right)\) reduziert werden, wobei \(n = \left| J \right|\) gilt. Der Berechnungsaufwand steigt somit lediglich linear zur Anzahl der einzulastenden Aufträge. Die unterschiedlichen Komplexitäten können anhand der Rechenzeit für ein Simulationsexperiment bemessen werden. So benötigt ein A2C- bzw. NEAT-trainierter Agent weniger als eine Sekunde, um einen vollständigen Produktionsablaufplan zu erstellen und zu evaluieren. Hingegen benötigt die ISBO-Heuristik für dieselbe Aufgabe 8 bis 18 Sekunden. Die Differenz kann jedoch nicht ausschließlich auf die unterschiedlichen Zeitkomplexitäten zurückgeführt werden. Ein weiterer Einflussfaktor ist die Verwendung von unterschiedlichen Werkzeugen für die Implementierung der Simulationsmodelle.

Zusammengefasst liefern der A2C- und der NEAT-Algorithmus bessere Ergebnisse als die derzeitige Fertigungsplanungsstrategie des Unternehmens und als die Verwendung von regelbasierten Ansätzen. Zudem ist die Lösungsgüte beider ML-Verfahren mit der selbstentwickelten und auf das Problem zugeschnittenen ISBO-Heuristik sowie mit den metaheuristischen Verfahren vergleichbar. Mitunter generieren der A2C- und der NEAT-Algorithmus sogar bessere Ergebnisse bei einem geringeren Berechnungsaufwand als die ISBO-Heuristik und die metaheuristischen Verfahren. Hinsichtlich des Berechnungsaufwands sind die trainierten Agenten mit den regelbasierten Ansätzen vergleichbar.

Im Vergleich zum NEAT-Algorithmus scheint die durch den A2C-Algorithmus erlernte Entscheidungspolitik besser auf unbekannte Daten generalisieren zu können. Der A2C-Algorithmus wurde lediglich auf Datensatz 1 angelernt, wohingegen der NEAT-Algorithmus mindestens zwei Datensätze beobachten musste, um ebenfalls gute Ergebnisse auf anderen Datensätzen zu erzielen.