Zielstellung des folgenden Kapitels ist die theoretische Fundierung der Produktionsablaufplanung. Zunächst erfolgt in Abschnitt 2.1 eine Begriffsdefinition sowie eine thematische Einordnung in die Produktionsplanung und -steuerung (PPS). Anschließend wird in Abschnitt 2.2 der Prozess der Produktionsablaufplanung im Kontext des etablierten Aachener PPS-Modells skizziert. Abschnitt 2.3 widmet sich der Produktionsablaufplanung aus Sicht der mathematischen Optimierung.

2.1 Begriffsbestimmung und thematische Abgrenzung

Die Produktionsablaufplanung ist eine Unteraufgabe der Produktionsplanung und -steuerung. Die Produktionsplanung und -steuerung (PPS) beschreibt „[…] die räumliche, zeitliche und mengenmäßige Planung, Steuerung und Kontrolle des gesamten Geschehens im Produktionsbereich“ (Drexl et al. 1994, S. 1022). Hierbei sieht sich die Produktionsplanung in der Rolle der Ausgestaltung aller Einzelprozesse in der Fertigung und Montage, während die Produktionssteuerung den Fertigungs- und Montageablauf im Zuge der Auftragsabwicklung regelt (Schuh et al. 2012a, S. 29). Wichtige Zielstellungen der PPS sind u. a. eine hohe Termin- und Mengentreue, eine optimale Kapazitätsauslastung, kurze Durchlaufzeiten, eine minimale Kapitalbindung durch niedrige Lager- und Umlaufbestände, eine hohe Flexibilität und die Minimierung von Kosten (Schenk et al. 2014, S. 391).

Die wissenschaftliche Literatur bietet eine Vielzahl von Modellen, welche die PPS theoretisch fundieren. Eine Literaturrecherche und Übersicht zu PPS-Modellen im deutschsprachigen Raum bieten Meudt et al. (2017). Obgleich in den verschiedenen Modellen die Aufgaben der PPS zeitlich und organisatorisch ähnlich strukturiert sind, existiert kein modellübergreifender Standard hinsichtlich der Verwendung von Begriffen. Vor diesem Hintergrund wird der Begriff der Produktionsablaufplanung nicht in allen PPS-Modellen verwendet. In der Literatur dienen u. a. die Begriffe »Auftragssteuerung« (Zäpfel 1982), »Feinsteuerung« (Scheer 1995), »Fertigungssteuerung« (Lödding 2016), »Eigenfertigungssteuerung und -planung« (Schotten 1998; Luczak und Eversheim 1999; Schuh und Stich 2012a) oder »Ablaufplanung« (Kistner und Steven 2001; Siepermann 2013) als Synonyme, wobei ebenfalls keine vollständige Kongruenz zwischen den Definitionen der verschiedenen Begriffe besteht.

Alle genannten Begriffe haben jedoch gemeinsam, dass sie einen Teilprozess der PPS beschreiben, der auf der kurzfristigen operativen Entscheidungsebene an der Schnittstelle zwischen der Produktionsplanung und der Produktionssteuerung stattfindet (vgl. Meudt et al. 2017). Im Rahmen dieser Arbeit wird der Begriff »Produktionsablaufplanung« (Dyckhoff und Spengler, S. 241) verwendet, um diesen Prozess zu benennen. Diese Entscheidung fußt zum einen darauf, dass der Begriff »Ablaufplanung« als Übersetzung des englischen und international etablierten Begriffs »Scheduling« verwendet wird (vgl. Nebl 1997, 341 f.; Adam 2001, 535 f.), zum anderen darauf, dass der Begriff »Produktion« den betriebswirtschaftlichen Charakter der Ablaufplanung besser widerspiegelt als bspw. der technisch orientierte Begriff der Fertigung. Im Rahmen dieser Arbeit wird die Produktionsablaufplanung wie folgt definiert.

Arbeitsdefinition: Produktionsablaufplanung

In Orientierung an Dyckhoff und Spengler (2007, S. 241), Schuh et al. (2012b, S. 188 ff.), Meudt et al. (2017) sowie Wiendahl und Wiendahl (2019, S. 286 f.)

Die Produktionsablaufplanung im engeren Sinne umfasst die Zuordnung von Produktionsaufträgen oder Produktionslosen zu verfügbaren Produktionsressourcen, im Folgenden »Ressourcenbelegungsplanung« genannt, sowie die Reihenfolge bildung der durchzuführenden Arbeitsumfänge an Produktionsaufträgen oder Produktionslosen auf der zugeordneten Produktionsressource, im Folgenden »Auftragsreihenfolgeplanung« genannt. Im weiteren Sinne umfasst die Produktionsablaufplanung ebenfalls die Konsolidierung von Produktionsaufträgen zu Produktionslosen, im Folgenden »Losgrößenplanung« genannt, welche vor der Ressourcenbelegungs- und Reihenfolgeplanung stattfindet, jedoch nicht für alle Auftragsabwicklungstypen erforderlich ist. Das Ergebnis der Produktionsablaufplanung ist der Produktionsablaufplan, der definiert, zu welchem Zeitpunkt welcher Auftrag bzw. welches Produktionslos auf welcher Ressource bearbeitet wird.

Diese Definition ist den Zwecken und dem Forschungsgegenstand dieser Arbeit dienlich, vernachlässigt jedoch einige Aktivitäten, die manche PPS-Modelle der kurzfristigen operativen Entscheidungsebene zuordnen. Hierunter fällt insbesondere der Prozess der Auftragsfreigabe, welcher u. a. von Corsten und Gössinger (2016) sowie Wiendahl und Wiendahl (2019) der Produktionssteuerung zugerechnet wird. Im Rahmen der Auftragsfreigabe werden die Reihenfolge und die Zeitpunkte zur Einlastung von Aufträgen in das Produktionssystem festgelegt (Lödding 2016, S. 8). Die Vernachlässigung von Auftragsfreigabeprozessen ist im Rahmen dieser Arbeit zulässig, da durch Beispiele der Auftragsreihenfolgeplanung, der Einsatz von bestärkenden Lernverfahren an sehr ähnlich gearteten Problemen (Sequenzierungsproblem) demonstriert wird. Gewonnene Erkenntnisse hinsichtlich der Modellierung, des Einsatzes und der Lösungsqualität von bestärkenden Lernverfahren werden vor diesem Hintergrund für andere Sequenzierungsprobleme der PPS weitgehend übertragbar sein. Abbildung 2.1 zeigt ein Gantt-Diagramm eines beispielhaften Produktionsablaufplans, welcher alle Charakteristiken der Arbeitsdefinition widerspiegelt.

Abbildung 2.1
figure 1

Beispielhafter Produktionsablaufplan für vier Aufträge mit jeweils zwei oder drei auszuführenden Operationen verteilt auf drei Produktionsressourcen

In diesem Beispiel werden vier Aufträge auf drei Produktionsressourcen M1, …, 3 gefertigt. Die Produktionsressourcen sind der Ordinate des Diagramms zugeordnet, während auf der Abszisse die Zeit abgetragen ist. Die Fertigung der Aufträge 1 bis 3 erfordert die Durchführung von jeweils drei Operationen O1, …, 3. Die Fertigung von Auftrag 4 erfordert lediglich die Operationen O1 und O2. Die Balkensegmente geben Aufschluss darüber, zu welchem Zeitpunkt auf welcher Ressource welche Operation von welchem Auftrag gestartet wird, andauert und endet. Dem Beispiel liegt die Annahme zugrunde, dass alle Operationen von allen Aufträgen auf allen Ressourcen durchgeführt werden können. Sofern vorher eine Losgrößenplanung stattfindet, würden in Abbildung 2.1 die Operationen von Produktionslosen anstatt von einzelnen Aufträgen abgetragen werden.

2.2 Prozess der Produktionsablaufplanung

Für ein besseres Verständnis und zur Präzisierung des Forschungsgegenstands soll im Folgenden das Vorgehen der Produktionsablaufplanung im Rahmen eines etablierten PPS-Modells erläutert werden. Zu diesem Zweck bezieht sich diese Arbeit auf das Aachener PPS-Modell, welches ursprünglich von Schotten (1998) sowie Luczak und Eversheim (1999) erdacht und von Schuh und Stich (2012a, 2012b) weiterentwickelt wurde. Eine Orientierung am Aachener PPS-Modell ist naheliegend, da es insbesondere im deutschsprachigen Raum ein etabliertes Modell zur Gestaltung von PPS-Systemen darstellt (Lödding 2016, S. 6; Meudt et al. 2017). Im Folgenden wird das Prozessmodell der Eigenfertigungsplanung und -steuerung aus dem Aachener PPS-Modell herangezogen, um das Vorgehen der Produktionsablaufplanung zu erklären. Gemäß Meudt et al. (2017) siedelt sich die Eigenfertigungsplanung und -steuerung im Aachener PPS-Modell an der Schnittstelle zwischen der Produktionsplanung und der Produktionssteuerung an, was den Betrachtungsbereich dieser Arbeit am besten widerspiegelt. Das Aachener PPS-Modell definiert hierbei für verschiedene Auftragsabwicklungstypen unterschiedliche Prozessmodelle, im Einzelnen für den Auftragsfertiger (Schuh et al. 2012b, S. 150 ff.), für den Rahmenauftragsfertiger (Schuh et al. 2012b, S. 164 f.), für den Variantenfertiger (Schuh et al. 2012b, S. 178 f.) sowie für den Lagerfertiger (Schuh et al. 2012b, S. 188 ff.)

Eine Erläuterung aller Prozessmodelle würde über den Rahmen dieser Arbeit hinausgehen. Aus diesem Grund präsentiert Abbildung 2.2 ein aggregiertes Prozessmodell der Eigenfertigungsplanung und -steuerung, welches die Charakteristiken aller Auftragsabwicklungstypen vereint. Das aggregierte Prozessmodell basiert im Wesentlichen auf dem Prozessmodell der Eigenfertigungsplanung und -steuerung des Auftragsfertigers, da dieses die größte Komplexität aufweist und die Prozesse der anderen Auftragsabwicklungstypen unter diesem subsumiert werden können. Die wesentlichen Aufgaben der Eigenfertigungsplanung und -steuerung sind die Losgrößenrechnung, die Feinterminierung, die Ressourcenfeinplanung, die Reihenfolgebildung, die Verfügbarkeitsprüfung und die Auftragsfreigabe (Schuh et al. 2012a, S. 51)

Im Rahmen der Losgrößenrechnung, die gemäß der in Abschnitt 2.1 präsentierten Arbeitsdefinition zur Produktionsablaufplanung im weiteren Sinne gehört, werden die in jedem Produktionsbereich auszuführenden Operationen in Lose unterteilt. Eine effiziente Losbildung ist insbesondere dann relevant, wenn Rüstzeiten und -kosten zwischen der Durchführung unterschiedlicher Produktionsoperationen bestehen. In diesem Fall besteht die Herausforderung darin, einen Kompromiss zwischen hohen Umlaufbeständen und einer geringen Anzahl von Rüstvorgängen bzw. zwischen niedrigen Umlaufbeständen und einer hohen Anzahl von Rüstvorgängen auszumachen (Schuh et al. 2012a, S. 53; Glaser et al. 1992; Kurbel 2003). Obgleich die Losgrößenrechnung ebenfalls als mathematisches Optimierungsproblem modelliert werden kann, wird sie in dieser Arbeit nicht gesondert betrachtet. In Kapitel 4 werden jedoch einige Arbeiten besprochen, die eine implizite Losgrößenoptimierung über das Entscheidungsproblem erlauben, ob eine Ressource auf einen neuen Produkttypen umgerüstet oder ob die aktuelle Rüstung beibehalten werden soll. Zudem ist die in Kapitel 5 vorgestellte Methode zum Einsatz von bestärkenden Lernverfahren für die Produktionsablaufplanung imstande, die Minimierung von Rüstvorgängen als Zielkriterium zu berücksichtigen.

Abbildung 2.2
figure 2

Aggregiertes Prozessmodell der Eigenfertigungsplanung und -steuerung des Aachener PPS-Modells (in Anlehnung an Schuh et al. 2012b, S. 151)

Die daran anschließenden Aufgaben »Feinterminierung«, »Ressourcenfeinplanung« und »Reihenfolgeplanung« entsprechen der in Abschnitt 2.1 formulierten Definition der Produktionsablaufplanung im engeren Sinne. Die Feinterminierung ermittelt für alle Lose bzw. für die zu produzierenden Einzelaufträge die Start- und Endtermine, berücksichtigt hierbei jedoch noch nicht das verfügbare Kapazitätsangebot der Produktionsressourcen. Erst während der Ressourcenfeinplanung erfolgt eine Gegenüberstellung des aus der Feinterminierung resultierenden Kapazitätsbedarfs mit den durch die Produktionsressourcen bereitgestellten Kapazitäten. Im Fall einer Kapazitätsüberlastung können das Kapazitätsangebot und die Kapazitätsnachfrage bspw. durch zusätzliche Schichten oder durch Neuterminierung von Arbeitsgängen miteinander abgestimmt werden. Anstelle der aufeinanderfolgenden Feinterminierung und Ressourcenfeinplanung kann ebenfalls eine kombinierte Ressourcenbelegungsplanung durchgeführt werden. Hierbei werden für die durchzuführenden Produktionsoperationen die Start- und Endtermine sowie die Kapazitätszuordnung simultan geplant (Schuh et al. 2012a, S. 54 f.). Je nach Auftragsabwicklungstyp empfiehlt das Aachener PPS-Modell eine Feinterminierung mit anschließender Ressourcenfeinplanung oder eine kombinierte Ressourcenbelegungsplanung (siehe Abbildung 2.2). Entsprechend der in Abschnitt 2.1 formulierten Definition für die Produktionsablaufplanung bezieht sich diese Arbeit stets auf die kombinierte Ressourcenbelegungsplanung. Die in Abschnitt 2.3 vorgestellten Optimierungsmodelle für die Produktionsablaufplanung erlauben eine simultane Betrachtung von Feinterminierung und Ressourcenfeinplanung, sodass eine gesonderte Berücksichtigung hinfällig wird. Das Ergebnis der Ressourcenbelegungsplanung ist die Verteilung von an Produktionsaufträgen auszuführenden Operationen auf die verfügbaren Produktionskapazitäten. Im Rahmen der Reihenfolgeplanung wird schließlich festgelegt, in welcher Reihenfolge die einer Produktionskapazität zugeordneten Operationen abgearbeitet werden (Schuh et al. 2012a, S. 55 f.). Die Reihenfolgebildung kann hierbei verschiedenen Zielkriterien unterliegen, z. B. der Minimierung von Zykluszeiten, Verspätungen oder Rüstvorgängen.

Der resultierende Produktionsablaufplan (im Aachener PPS-Modell und in Abbildung 2.2 als »Werkstattprogrammvorschlag« bezeichnet) wird durch Prüfung der Verfügbarkeit der notwendigen Ressourcen, Materialien und Kapazitäten plausibilisiert. Sofern der Plan nicht realisierbar ist, muss das Eigenfertigungsprogramm (Produktionsprogramm) einer kritischen Prüfung unterzogen und ggf. die Produktionsbedarfsplanung oder der Produktionsablaufplan angepasst werden. Andernfalls werden die Aufträge gemäß der im Produktionsablaufplan festgelegten Starttermine freigegeben (Schuh et al. 2012a, S. 57).

2.3 Mathematische Optimierung der Produktionsablaufplanung

Die Produktionsablaufplanung kann zu großen Teilen über mathematische Modelle formalisiert und optimiert werden. Die in Kapitel 5 vorgestellte Methode zum Einsatz von bestärkenden Lernverfahren für die Produktionsablaufplanung erfordern ebenfalls eine modellhafte Abbildung der zu optimierenden Planungsprobleme. Vor diesem Hintergrund wird nachstehend ein Formalismus zur Beschreibung von Problemen der Produktionsablaufplanung dargelegt, welcher in den folgenden Kapiteln Anwendung findet. Im Anschluss daran werden Methoden aufgezeigt, mit welchen Probleme der Produktionsablaufplanung als mathematische Optimierungsmodelle implementiert werden können. Zu guter Letzt werden die gängigen Lösungsverfahren zur Berechnung und Optimierung von Produktionsablaufplänen sowie deren Vor- und Nachteile beschrieben.

2.3.1 Mathematische Formalisierung

Aus mathematischer Sicht liegt jedem Ablaufplanungsproblem im Allgemeinen und jedem Problem der Produktionsablaufplanung im Speziellen die Überlegung zugrunde, dass eine endliche Menge von Aufträgen \(J\) (jobs) durch eine endliche Menge von Ressourcen \(M\) (machines) bearbeitet werden muss (Brucker 2007, S. 1). Hierbei entsprechen die Kardinalitäten von \(J\) und \(M\), also \(\left| J \right|\) und \(\left| M \right|\), der Anzahl einzuplanender Aufträge bzw. der Anzahl vorhandener Ressourcen. Anstelle der Kardinalitäten werden in der Scheduling-Literatur oftmals der Parameter \(m\) zur Angabe der Ressourcenanzahl und der Parameter \(n\) zur Angabe der Auftragsanzahl verwendet. Im Folgenden werden einzelne Aufträge primär über die Laufvariable \(j\) und einzelne Ressourcen primär über die Laufvariable \(i\) indiziert, sodass gilt \(j = \left( {1, \ldots ,\left| J \right|} \right)\) bzw. \(i = \left( {1, \ldots ,\left| M \right|} \right)\). Die Fertigstellung eines jeden Auftrags \(j\) erfordert die Durchführung einer bestimmten Anzahl von Operationen aus einer endlichen Menge von Operationen \(O_{j}\). Die Kardinalität \(\left| {O_{j} } \right|\) definiert die Anzahl der Operationen, die an einem Auftrag durchgeführt werden können. Für die Indizierung einzelner Operationen wird im Folgenden primär die Laufvariable \(o\) verwendet, sodass gilt \(o_{j} \forall o = \left( {1, \ldots ,\left| {O_{j} } \right|} \right)\). Jede Operation \(o_{j}\) ist durch eine Bearbeitungszeit definiert. Sofern unterschiedliche Ressourcen die gleichen Operationen durchführen können, kann die Bearbeitungszeit für eine Operation auf unterschiedlichen Ressourcen variieren. In diesem Fall definiert \(o_{i,j}\) die Bearbeitungszeit für Operation \(o\) des Auftrags \(j\) auf Ressource \(i\). Des Weiteren ist für einige Probleme eine endliche Menge von Produktionsstufen (bei Fließfertigungen) bzw. Produktionsbereichen (bei Werkstatt- oder Inselfertigungen) \(L\) charakteristisch, wobei jeder Produktionsstufe bzw. jedem Produktionsbereich \(l\) eine bestimmte Menge von Ressourcen \(M^{\left( l \right)} \subseteq M\) zugeordnet ist. Ressource \(i\) in Stufe bzw. Bereich \(l\) wird dann als \(i^{\left( l \right)}\) deklariert. Diese einführenden Definitionen sind zunächst ausreichend, um die mathematische Formalisierung der Ablaufplanung im Folgenden weiterauszubauen. In späteren Abschnitten werden die bisherigen Definitionen je nach Bedarf und Notwendigkeit erweitert.

Gewöhnlich werden Probleme der Ablaufplanung gemäß der Notation von Graham et al. (1979) als Tripel \(\alpha \left| { \beta } \right| \gamma\) charakterisiert (vgl. Jaehn und Pesch 2014, S. 12; Pinedo 2016, S. 14), dessen Felder im Folgenden erläutert werden.

2.3.1.1 Probleme

Der Parameter \(\alpha\) definiert die Problemart und -eigenschaften. Im Folgenden werden die Grundprobleme der Ablaufplanung gelistet, ergänzt durch einige Modifikationen, die insbesondere in der Produktion und Logistik häufig auftreten. Die folgende \(\alpha\)-Notation basiert im Wesentlichen auf Pinedo (2009, S. 22 ff.) sowie Jaehn und Pesch (2014, S. 12). Die \(\alpha\)-Notation des Hybrid Flow-Shops und des Flexible Job-Shops sind eigens für diese Arbeit formuliert, da die Literatur für beide Probleme keine einheitliche Notation bietet (vgl. z. B. Pinedo 2016, S. 15; Ruiz und Vázquez-Rodríguez 2010, S. 2).

\(\bf{1}\)

Ein-Maschinen-Problem – Es existiert nur eine Ressource (\(\left| M \right| = m = 1)\), welche alle Aufträge bearbeitet. Alle Aufträge müssen jeweils nur eine Operation durchlaufen (\(\left| {O_{j} } \right| = 1 \forall j = \left( {1, \ldots ,\left| J \right|} \right))\). Die Optimierung beschränkt sich somit auf die Lösung eines Sequenzierungsproblems (optimale Reihenfolge der auszuführenden Operationen)

\({\varvec{Pm}}\)

Parallel-Maschinen-Problem – Es existieren \(m\) identische Ressourcen, die parallel arbeiten. Alle Aufträge müssen jeweils nur eine Operation durchlaufen \(\left( {\left| {O_{j} } \right| = 1 \forall j = \left( {1, \ldots ,\left| J \right|} \right)} \right)\). Jeder Auftrag wird nur von einer Ressource bearbeitet. Die Optimierung umfasst die Lösung eines Allokationsproblems (optimale Zuweisung von Aufträge zu Ressourcen) sowie die Lösung von \(\left| M \right|\) Sequenzierungsproblemen (optimale Reihenfolge der auszuführenden Operationen auf jeder Ressource)

\({\varvec{Fm}}\)

Flow-Shop-Problem – Es existieren \(m\) unterschiedliche Ressourcen. Jede Ressource ist genau einer Bearbeitungsstufe zugeordnet und umgekehrt (\(m = \left| L \right|\)). Jeder Auftrag muss von jeder Ressource bearbeitet werden. Es gilt \(\left| {O_{j} } \right| = m \forall j = \left( {1, \ldots ,\left| J \right|} \right)\), wobei jede Operation von genau einer Ressource durchgeführt wird. Die Bearbeitungsreihenfolge der Operationen ist für alle Aufträge gleich. Ein Flow-Shop ist somit die mathematische Formalisierung einer Fließfertigung mit jeweils einer Bearbeitungskapazität pro Produktionsstufe.

\({\varvec{HF}}\left( {{\varvec{m}}^{\left( 1 \right)} , \ldots ,\user2{ m}^{{\left( {\left| {\varvec{L}} \right|} \right)}} } \right)\)

Hybrid-Flow-Shop-Problem – Es handelt sich um eine Verallgemeinerung des Flow-Shops mit dem Unterschied, dass jede Bearbeitungsstufe \(l\) eine spezifische Bearbeitungskapazität \(m^{\left( l \right)}\) besitzt, d. h. entweder aus einer oder aus mehreren parallel arbeitenden Ressourcen besteht. Jeder Auftrag wird nur von einer Ressource pro Bearbeitungsstufe bearbeitet. In der Literatur wird dieses Problem häufig auch als Flexible-Flow-Shop bezeichnet (Gondek 2011).

\({\varvec{Jm}}\)

Job-Shop-Problem – Es handelt sich um eine Verallgemeinerung des Flow-Shops mit dem Unterschied, dass die Bearbeitungsreihenfolge der Operationen nicht für alle Aufträge gleich, jedoch weiterhin fest definiert ist. Hierbei muss nicht jeder Auftrag von jeder Ressource bearbeitet werden. Das Job-Shop-Problem ist somit die mathematische Formalisierung einer Werkstattfertigung mit jeweils einer Bearbeitungskapazität pro Produktionsschritt.

\({\varvec{FJ}}\left( {{\varvec{m}}^{\left( 1 \right)} , \ldots ,\user2{ m}^{{\left( {\left| {\varvec{L}} \right|} \right)}} } \right)\)*1

bzw. \({\varvec{FJm}}\)*2

Flexible-Job-Shop-Problem – Es handelt sich um eine Verallgemeinerung des Job-Shops mit dem Unterschied, dass jeder Produktionsbereich \(l\) eine spezifische Bearbeitungskapazität \(m^{\left( l \right)}\) besitzt, d. h. entweder aus einer oder aus mehreren parallel arbeitenden Ressourcen besteht. Jede Operation eines Auftrags wird nur von einer Ressource der entsprechenden Bearbeitungsstufe durchgeführt. Die Art und Anzahl der durchzuführenden Operationen sowie deren Bearbeitungsreihenfolge sind weiterhin auftragsspezifisch (Pinedo 2009, S. 23 f.). Gemäß dieser Erklärung*1 handelt es sich beim Flexible-Job-Shop um das Gegenstück des Hybrid-Flow-Shops. Alternativ bietet die wissenschaftliche Literatur, z. B. Xie et al. (2019), Zhang et al. (2019), eine weitere Definition*2, die gleichermaßen anerkannt ist. Nach dieser zeichnet sich der Flexible-Job-Shop dadurch aus, dass bestimmte oder alle Operationen auf allen Ressourcen, unabhängig vom Produktionsbereich, durchgeführt werden können. Je nachdem, ob alle oder nur bestimmte Operationen ressourcenflexibel bearbeitet werden können, handelt es sich um einen Total Flexible-Job-Shop oder um einen Partial Flexible-Job-Shop.

\({\varvec{Om}}\)

Open-Shop-Problem – Es handelt sich um eine weitere Verallgemeinerung des Flow-Shops, mit dem Unterschied, dass keine Einschränkungen hinsichtlich der Bearbeitungsreihenfolge existieren. Jeder Auftrag muss weiterhin von jeder Ressource bearbeitet werden, kann diese aber in beliebiger Reihenfolge durchlaufen.

2.3.1.2 Nebenbedingungen

Der Parameter \(\beta\) definiert Nebenbedingungen, d. h. Vorgaben und Restriktionen, für die Erstellung eines zulässigen Ablaufplans. Hierbei ist \(\beta\) nicht auf einen Wert beschränkt, sondern kann ebenfalls eine Liste von Nebenbedingungen enthalten. Ursprünglich definierten Graham et al. (1979) sechs Arten von Nebenbedingungen \(\beta_{1} , \ldots , \beta_{6}\), die bis heute um viele Weitere ergänzt wurden. Im Folgenden werden einige der wichtigsten und am weitest verbreiteten Nebenbedingungen für Ablaufplanungsprobleme in der Produktion und Logistik gelistet, die mitunter für die Anwendungsbeispiele in Kapitel 6 von Relevanz sind (Jaehn und Pesch 2014, S. 13 f.; Pinedo 2016, S. 15 ff.).

\({\varvec{r}}_{{\varvec{j}}}\)

Release dates – Früheste Freigabezeit – Die Bearbeitung der ersten Operation eines jeden Auftrags \(j\) darf erst nach dessen jeweiligen Freigabezeit \(r_{j}\) starten. Ist \(r_{j}\) nicht als Nebenbedingung gelistet, stehen alle Aufträge zum Zeitpunkt \(t = 0\) zur Verfügung.

\({\varvec{pmtn}}\)

Preemptions – Unterbrechungen – Operationen von Aufträgen können beliebig unterbrochen und fortgeführt werden. Unterbrechungen haben keinen Einfluss auf die für eine Operation veranschlagte Bearbeitungszeit. Ist \(pmtn\) nicht als Nebenbedingung gelistet, müssen Operationen von Aufträgen stets ohne Unterbrechung durchgeführt werden.

\({\varvec{prec}}\)

Precedence – Vorrangbeziehungen – Es existieren eine oder mehrere Vorrangbeziehungen \(j \to k\), d. h. Die Bearbeitung eines bestimmten Auftrags \(k\) darf erst dann starten, wenn die Bearbeitung eines bestimmten Auftrags \(j\) beendet ist. Ist \(prec\) nicht als Nebenbedingung gelistet, können Aufträge in beliebiger Reihenfolge bearbeitet werden.

\({\varvec{s}}_{{{\varvec{jk}}}}\)*1

\({\varvec{fmls}}\)*2

Setup times – (Familien-)Reihenfolgeabhängige Rüstzeiten – Nach der Bearbeitung eines bestimmten Auftrags \(j\) und vor der Bearbeitung des nachfolgenden Auftrags \(k\) muss eine zusätzliche Rüstzeit \(s_{jk}\) berücksichtigt werden, während welcher die Ressource keine Aufträge bearbeitet. Der Parameter \(s_{0k}\) repräsentiert die initiale Rüstzeit, sofern Auftrag \(k\) als erstes auf einer Ressource bearbeitet wird. Rüstzeiten können entweder auf Auftrags-*1 oder Familienebene*2 definiert sein. Im ersten Fall bestehen Rüstzeiten zwischen allen Aufträgen. Im zweiten Fall werden Aufträge sogenannten Familien zugeordnet. Es bestehen dann lediglich Rüstzeiten zwischen Aufträgen von unterschiedlichen Familien. Sofern reihenfolgeunabhängige Rüstzeiten vorliegen, müssen diese nicht explizit modelliert, können stattdessen in den Bearbeitungszeiten als Zuschlag berücksichtigt werden.

\({\varvec{brkdwn}}\)

Breakdowns – Ressourcenausfälle – Ressourcen sind nicht zu jedem Zeitpunkt verfügbar. Der zeitliche Abstand zwischen zwei Ausfällen sowie die Ausfalldauer können entweder durch eine konstante Zeit (i. d. R. für geplante Ausfälle, z. B. Schichtwechsel oder Wartung) oder durch eine Zufallsverteilung (i. d. R. für ungeplante Ausfälle, z. B. Störungen) definiert sein. Ist \(brkdwn\) nicht als Nebenbedingung gelistet, sind alle Ressourcen zu jedem Zeitpunkt verfügbar

\({\varvec{prmu}}\)

Permutation – Eine Nebenbedingung, die ausschließlich in Flow-Shop-Problemen auftreten kann. Die Bearbeitungsreihenfolge von Aufträgen muss auf allen Ressourcen gleich sein. Ist \(prmu\) nicht als Nebenbedingung gelistet, können Ressourcen wartende Aufträge in beliebiger Reihenfolge abarbeiten.

\({\varvec{rcrc}}\)

Recirculation – Rezirkulation – Eine Nebenbedingung, die ausschließlich in Job-Shop-Problemen auftreten kann. Aufträge besuchen eventuell eine Ressource bzw. einen Bearbeitungsbereich mehrere Male zur Durchführung unterschiedlicher Operationen. Ist \(rcrc\) nicht als Nebenbedingung gelistet, wird jeder Auftrag von jeder Ressource höchstens einmal bearbeitet.

2.3.1.3 Zielfunktionen

Der Parameter \(\gamma\) definiert Zielfunktionen, nach welchen die Erstellung des Ablaufplans optimiert werden soll. Analog zu \(\beta\) ist \(\gamma\) ebenfalls nicht auf einen Wert beschränkt, sondern kann eine beliebige Anzahl von Zielfunktionen enthalten. Im Folgenden werden die geläufigsten Zielfunktionen zur Optimierung von Ablaufplänen gelistet (Baker und Trietsch 2009, S. 12 f.; Jaehn und Pesch 2014, S. 14 f.; Pinedo 2016, S. 18 f.). Hierbei können diejenigen Zielfunktionen, welche eine Summation über alle Aufträge durchführen, auf solche Weise verallgemeinert werden, dass einzelne Aufträge individuell gewichtet (\(\omega_{j} \forall j \in \left\{ {1, \ldots , \left| J \right|} \right\}\)) werden können.

\({\varvec{F}}\):

Total Flowtime – Kumulierte Durchlaufzeit – Die Durchlaufzeit eines einzelnen Auftrags \(F_{j}\) berechnet sich aus der Differenz seiner Fertigstellungszeit \(C_{j}\) und dessen Freigabezeit \(r_{j}\). Die kumulierte Durchlaufzeit \(F\) bildet sich über die Summe aller Auftragsdurchlaufzeiten:

$$F = \mathop \sum \limits_{j}^{\left| J \right|} F_{j} = \mathop \sum \limits_{j}^{\left| J \right|} \left( {C_{j} - r_{j} } \right)$$
(2.1)
\({\varvec{C}}_{{{\varvec{max}}}}\) :

Makespan – Gesamtdauer des Ablaufplans – Die Gesamtdauer eines Ablaufplans ermittelt sich über den Fertigstellungszeitpunkt des letzten fertiggestellten Auftrags:

$$C_{max} = {\text{max}}\left( {C_{j} \forall j = \left( {1, \ldots , \left| J \right|} \right)} \right)$$
(2.2)
\({\varvec{T}}\) :

Total Tardiness – Gesamtverspätung über alle Aufträge – Die Terminüberschreitung eines einzelnen Auftrags \(T_{j}\) ist entweder gleich null, sofern der Auftrag vor seiner Fertigstellungsfrist \(d_{j}\) fertiggestellt wurde, oder gleich der Differenz aus Fertigstellungszeit \(C_{j}\) und Fertigstellungsfrist \(d_{j}\). Die Gesamtverspätung über alle Aufträge bildet sich über die Summe aller Terminüberschreitungen:

$$T = \mathop \sum \limits_{j}^{\left| J \right|} T_{j} = \mathop \sum \limits_{j}^{\left| J \right|} \max \left( {0, C_{j} - d_{j} } \right)$$
(2.3)
\({\varvec{U}}\) :

Total Unit Penalty – Anzahl verspäteter Aufträge – Ein Auftrag gilt als verspätet, falls seine Fertigstellungszeit größer als die Fertigstellungsfrist ist. In diesem Fall wird der Auftrag bestraft (\(U_{j} = 1\)). Andernfalls wird der Auftrag nicht bestraft (\(U_{j} = 1\)). Die Anzahl verspäteter Aufträge bildet sich über die Summe vergebener und nicht vergebener Strafen:

$$U = \mathop \sum \limits_{j}^{\left| J \right|} \left( {U_{j} = \left\{ {\begin{array}{l} {1, ~wenn~C_{j} > d_{j} } \\ {0,~sonst } \\ \end{array} } \right.} \right)$$
(2.4)
\({\varvec{L}}_{{{\varvec{max}}}}\) :

Maximum Lateness – Maximale Verspätung – Die Unpünktlichkeit eines einzelnen Auftrags \(L_{j}\) bildet sich aus der Differenz zwischen dessen Fertigstellungszeit \(C_{j}\) und dessen Fertigstellungsfrist \(d_{j}\). Im Gegensatz zur Terminüberschreitung \(T_{j}\) kann die Unpünktlichkeit eines Auftrags sowohl positiv als auch negativ sein. Für die maximale Verspätung gilt dann:

$$L_{max} = \max \left( {L_{j} \forall j = \left( {1, \ldots , \left| J \right|} \right)} \right) = \max \left( {C_{j} - d_{j} \forall j = \left( {1, \ldots , \left| J \right|} \right)} \right)$$
(2.5)

2.3.2 Modellbildung

Für die mathematische Optimierung von Produktionsablaufplänen muss das zugrundeliegende Produktionssystem als experimentierbares Modell implementiert werden. Ein Modell ist eine „vereinfachte Nachbildung eines […] Systems mit seinen Prozessen in einem anderen begrifflichen oder gegenständlichen System. […] Es unterscheidet sich hinsichtlich der untersuchungsrelevanten Eigenschaften nur innerhalb eines vom Untersuchungsziel abhängigen Toleranzrahmens vom Vorbild“ (VDI 3633 Blatt 1, S. 3). Es existiert eine Vielzahl von Modellierungsmethoden und Modellen. Abbildung 2.3 zeigt ein Klassifikationsschema, welches Modelle hinsichtlich ihrer Art und Weise der Nachbildung des Untersuchungsgegenstands unterteilt.

Abbildung 2.3
figure 3

(In Anlehnung an Page 1991, S. 5; Frank 1999, S. 51)

Klassifikation von Modellen und Modellierungsmethoden.

Die mathematische Optimierung von Produktionsablaufplänen erfordert mathematische Modelle der zugrundeliegenden Produktionssysteme. Diese können entweder analytischer oder algorithmische Natur sein. Differentialgleichungen eignen sich nur bedingt für die Modellbildung – viele Produktionsprozesse haben einen diskreten Charakter, weil die zu produzierenden Aufträge oftmals klar voneinander separierte Stückgüter sind. Hieraus resultieren für die Produktionsablaufplanung diskrete, kombinatorische Optimierungsprobleme, welche nicht vollständig differenzierbar sind. Nichtsdestotrotz kann gewöhnlich jedes Produktionssystem durch algebraische Gleichungen modelliert werden. In der Literatur werden Probleme der Ablaufplanung häufig als (gemischt-)ganzzahlige Optimierungsprobleme modelliert. Abschnitt 2.3.2.1 widmet sich der ganzzahligen und gemischt-ganzzahligen linearen Programmierung als Modellierungsmethode für Probleme der Produktionsablaufplanung. Für die algorithmische Modellbildung von Produktionssystemen eignen sich algorithmische Prozessbeschreibungen. Aufgrund des bereits erwähnten diskreten Charakters vieler Produktionsprozesse und -systeme eignet sich insbesondere die ereignisdiskrete Simulation für die Modellbildung. Aus diesem Grund wird in Abschnitt 2.3.2.2 die ereignisdiskrete Simulation als Modellbildungsmethode für Probleme der Produktionsablaufplanung diskutiert.

2.3.2.1 Ganzzahlige und gemischt-ganzzahlige lineare Programmierung

Ein lineares Programm (LP) im Allgemeinen modelliert ein mathematisches Optimierungsproblem über eine lineare Zielfunktion, die entweder minimiert oder maximiert werden soll, sowie das zugrundeliegende System bzw. den zugrundeliegenden Prozess über eine Menge von linearen (Un-) Gleichungen. Diese werden als Nebenbedingungen bezeichnet und schränken den zulässigen Lösungsraum ein. Jede (Un-)Gleichung wird in Abhängigkeit von ganzzahligen und / oder kontinuierlichen Entscheidungsvariablen formuliert, welche gewöhnlich nichtnegative Werte annehmen müssen. Bei einem ganzzahligen linearen Programm (ILP – vom englischen Begriff »Integer Linear Program«) sind die (Un-)Gleichungen ausschließlich von ganzzahligen Entscheidungsvariablen abhängig. In einem gemischt-ganzzahligen linearen Programm (MILP – vom englischen Begriff »Mixed Integer Linear Program«) existiert mindestens eine (Un-)Gleichung, die abhängig von einer oder mehreren ganzzahligen Variablen ist, und mindestens eine (Un-)Gleichung, die abhängig von einer oder mehreren kontinuierlichen Entscheidungsvariablen ist (Zimmermann 2008, S. 111; Kallrath 2013, S. 14; Domschke et al. 2015, S. 17 f.). Bei Optimierungsproblemen der Ablaufplanung ist die Zielfunktion gewöhnlich eine zu minimierende Funktion der Form:

$$Min~z = \mathop \sum \limits_{g = 1}^{\left| \gamma \right|} \omega_{g} \gamma_{g}$$
(2.6)

Formel (2.6) gilt sowohl für einfache Zielfunktionen mit lediglich einer zu optimierenden Zielstellung (\(\omega_{g} = 1 \Leftrightarrow g = 1 \wedge \left| \gamma \right| = 1\)) als auch für multikriterielle Zielfunktionen mit mehreren zu optimierenden Zielstellungen \((\omega_{g} \in {\mathbb{R}}^{ + } \forall g = \left( {1, \ldots ,\left| \gamma \right|} \right) \Leftrightarrow \left| \gamma \right| > 1)\) Der Parameter \(\omega_{g}\) repräsentiert die Gewichtung der entsprechenden Zielfunktion \(\gamma_{g}\) Die Formulierung von Nebenbedingungen hängt maßgeblich von der Kodierung der Entscheidungsvariablen ab. Diesbezüglich sind für die Ablaufplanung insbesondere drei Ansätze weit verbreitet:

  • Die rangbasierte Kodierung von Wagner (1959)

    $$x_{ijk} = \left\{ \begin{array}{ll} 1, & \quad wenn\,Auftrag\,i\,an\,Position\,j\,in\,der\,Auftragssequenz \\ & \quad vor\,Ressource\,k\,platziert\,werden\,soll \hfill \\ \hfill \\ 0,&\quad sonst \hfill \\ \end{array} \right.$$
    (2.7)
  • Die zeitbasierte Kodierung von Bowman (1959)

    $$x_{ikt} = \left\{ \begin{array}{ll} 1, & \quad wenn\,Auftrag\,i\,auf\,Ressource\,k\,in\,Periode\,t \\ & \quad produziert\,werden\,soll \hfill \\ \hfill \\ 0, & \quad \,sonst \hfill \\ \end{array} \right.$$
    (2.8)
  • Die disjunktiv-vorrangbasierte Kodierung von Manne (1960)

    $$x_{ijk} = \left\{ \begin{array}{ll} 1, & \quad wenn\,Auftrag\,i\,vor\,Auftrag\,j\,auf\,Ressource\,k \hfill \\ & \quad produziert\,werden\,soll \hfill \\ \hfill \\ 0,& \quad sonst \hfill \\ \end{array} \right.$$
    (2.9)

Laut verschiedenen Studien (u. a. Pan 1997; Ku und Beck 2016) wird die disjunktiv-vorrangbasierte Kodierung als am effizientesten eingeschätzt, da sie für viele Ablaufplanungsprobleme die geringste Anzahl an Entscheidungsvariablen benötigt. Jeder der drei Kodierungsansätze erlaubt die Formulierung eines rein ganzzahligen Optimierungsproblems. Darüber hinaus finden sich in der Literatur mathematische Modelle, welche neben binären Entscheidungsvariablen kontinuierliche Hilfsvariablen verwenden, um bspw. bei einer rangbasierten oder disjunktiv-vorrangbasierten Kodierung zusätzlich die Wartezeiten von Aufträgen oder die Stillstandzeiten zwischen aufeinanderfolgenden Aufträgen zu berechnen (vgl. Pinedo 2016, S. 157).

Der Vorteil eines (M)ILP liegt insbesondere in dessen Berechnungseffizienz, da das vollständige Produktionssystem über einfache lineare mathematische Gleichungen abgebildet wird. Darüber hinaus fördert eine mathematische Modellierung ein tiefgreifendes Verständnis hinsichtlich der abgebildeten Prozesse und deren Zusammenhänge (Kallrath 2013, S. 36).

Die Nachteile eines (M)ILP liegen zum einen in der komplizierten Modellierung von Nebenbedingungen. Bestimmte Eigenschaften eines Produktionssystems können häufig nicht als lineare Gleichungen und ausschließlich mithilfe von Entscheidungsvariablen modelliert werden. Oftmals bedarf es mehrerer Gleichungen und zusätzlicher Schlupfvariablen, um alle relevanten Eigenschaften eines Produktionssystems abzubilden. Des Weiteren ist ein (M)ILP ungeeignet, um dynamische Ablaufplanungsprobleme abzubilden, bei welchen sich die Eingangsdaten zur Laufzeit verändern, sowie ebenfalls nicht geeignet für einige Arten von stochastischen Ablaufplanungsproblemen, bei welchen z. B. zur Laufzeit zufällige Störungen auftreten. Der Grund hierfür ist, dass die Nebenbedingungen eines (M)ILP nicht den eigentlichen Prozess in seiner Dynamik und Ablaufreihenfolge abbilden. Aus diesem Grund können dynamische und datengetriebene Steuerungsansätze, z. B. maschinelles Lernen, nur unter einem erheblichen Modellierungsaufwand mit einem (M)ILP integriert werden.

Einen alternativen Modellierungsansatz, der die Nachteile von (M)ILP adressiert, bietet die ereignisdiskrete Simulation.

2.3.2.2 Ereignisdiskrete Simulation

Die ereignisdiskrete Simulation (DES – vom englischen Begriff »Discrete Event Simulation«) ist eine Methode zur Modellierung und Simulation von Warteschlangensystemen und -prozessen. Kerncharakteristik der DES ist, dass sich die Modellzustände nicht kontinuierlich, also in konstanten infinitesimalen Zeitschritten ändern, sondern sprunghaft zu diskreten und möglicherweise zufälligen Zeitpunkten (Law 2015, S. 6; Schriber et al. 2017, S. 736). Hierbei schreitet die Simulationszeit in Abhängigkeit von den abgearbeiteten Ereignissen voran (Law 2015, S. 7). Zustandsänderungen werden mit im Voraus geplanten Ereignissen verbunden, die in einer (Banks et al. 2010, S. 110) oder mehreren Listen (Schriber et al. 2017, S. 738) organisiert sind und von einem Ereignisverwalter ausgeführt werden. Das Auftreten von Ereignissen unterliegt dem durch Anwender*innen modellierten Prozess. DES wird häufig in Produktion und Logistik eingesetzt, da die meisten Produktions- und Logistikprozesse einen diskreten Charakter haben (Scholz-Reiter et al. 2007, S. 126).

Ein DES-Modell besteht aus einer Menge sogenannter Entitäten. Entitäten sind Objekte, welche eine Menge von Attributen besitzen und ihren Zustand (Werte von Attributen) in Abhängigkeit von Ereignissen verändern. Zustandsänderungen von Entitäten können wiederum neue Ereignisse hervorrufen. Entitäten können bspw. Menschen, Produkte, Maschinen u. v. m. repräsentieren (Banks et al. 2010, S. 30; Law 2015, S. 3). Ferner können Entitäten in Flussobjekte und Ressourcen unterteilt werden (vgl. Schriber et al. 2017, S. 736). Flussobjekte werden während der Simulation erzeugt, durchlaufen das System und werden am Systemausgang vernichtet. Im Beispiel der Produktionsablaufplanung würden die zu allozierenden und zu sequenzierenden Aufträge durch Flussobjekte repräsentiert werden. Ressourcen sind i. d. R. kapazitätsbeschränkte Bestandteile des Systems, die entweder ortsgebunden oder ortsveränderlich sind. Ressourcen werden von Flussobjekten zur Ausführung von Operationen beansprucht. Eine Operation simuliert einen Zeitverbrauch, der durch einen Start- und Endzeitpunkt definiert ist. Der Endzeitpunkt kann hierbei fix vorbestimmt oder unbestimmt sein und stattdessen vom Eintritt einer Bedingung abhängen. Das Flussobjekt blockiert eine Kapazitätseinheit der Ressource über die gesamte Operationszeit. In der Produktionsablaufplanung werden z. B. Maschinen und Montagestationen durch ortsgebundene Ressourcen abgebildet, während bspw. Maschinenbediener*innen und Montagearbeiter*innen durch ortsveränderliche Ressource modelliert werden. Vor einer Ressource bilden sich Warteschlangen von Flussobjekten, sofern die Kapazitätsnachfrage von Flussobjekten das Kapazitätsangebot einer Ressource zu einem bestimmten Zeitpunkt übersteigt.

Die Art und Weise, wie DES-Modelle implementiert werden, hängt stark von der Entwicklungsumgebung ab. Vornehmlich werden grafische oder sprachliche Beschreibungsformen oder eine Kombination aus beiden verwendet (VDI 3633 Blatt 1). In grafischen Beschreibungsformen werden DES-Modelle vornehmlich als Flussdiagramme modelliert, welche den simulierten Prozess abbilden. Sprachliche Beschreibungsformen verwenden rudimentäre Programmier- oder spezifische Simulationssprachen, um Systeme und Prozesse zu modellieren.

Der Hauptvorteil der DES ist, dass Systeme und Prozesse in beliebiger Genauigkeit abgebildet werden können, da jeder Prozess durch beliebig viele Ereignisse modelliert werden kann (Kuhn und Rabe 1998, S. 4). Des Weiteren erlaubt die prozessgetreue Abbildung und Ausführung von DES-Modellen die internen Zusammenhänge und Abhängigkeiten eines komplexen Systems unter Berücksichtigung unterschiedlicher Eingangsdaten und Parameter zu untersuchen (Banks et al. 2010, S. 22).

Der Hauptnachteil von DES-Modellen ist die mitunter vergleichsweise hohe Rechenzeit, insbesondere bei komplexen Modellen, da alle relevanten Systemkomponenten als einzelne Objekte abgebildet werden (Law 2015, S. 2). Aus diesem Grund sollten DES-Modelle das zugrundeliegende System so einfach wie möglich und nur so komplex wie nötig abbilden. Eine effiziente und den Anforderungen entsprechende Modellbildung erfordert i. d. R. viel Erfahrung und Einarbeitungszeit (Banks et al. 2010, S. 24).

2.3.3 Konventionelle Lösungsverfahren

Im Folgenden werden die in der wissenschaftlichen Literatur am häufigsten beschriebenen und in der Industrie gebräuchlichsten Lösungsverfahren für die Produktionsablaufplanung skizziert. Diese lassen sich in ganzzahlige lineare Optimierungsverfahren, Heuristiken und Metaheuristiken unterteilen. Bezugnehmend auf Abbildung 1.2 in Abschnitt 1.1 sei darauf hingewiesen, dass Prioritätsregeln und spezifische Heuristiken in Abschnitt 2.3.3.2 zusammengefasst behandelt werden.

2.3.3.1 Ganzzahlige lineare Optimierung

Verfahren der ganzzahligen linearen Optimierung werden auch exakte Verfahren genannt, da sie in endlich vielen Schritten eine optimale Lösung garantieren (Domschke et al. 2015, S. 135). Grundsätzlich können diese Verfahren wie folgt klassifiziert werden (Dempe und Schreier 2006; Zimmermann 1988; Domschke et al. 2015, S. 134):

  • Dekompositionsverfahren, welche sich wiederum aufteilen in:

    1. Entscheidungsbaumverfahren

    2. Dynamische Programmierung

  • Schnittebenenverfahren

Die Grundidee aller Dekompositionsverfahren ist ein Problem in viele kleine Teilprobleme zu zerlegen. Aus den Optima aller Teilprobleme resultiert die optimale Lösung des Gesamtproblems.

Bei Entscheidungsbaumverfahren wird das Gesamtproblem in Form eines Entscheidungsbaums in Teilprobleme aufgeteilt. Die vollständige Enumeration des Lösungsraums lässt sich als Entscheidungsbaum formulieren. Ausgehend von der ersten Entscheidungsvariable werden Zweige für alle möglichen Werte gebildet. Für jeden Wert der ersten Entscheidungsvariable werden Verzweigungen für alle möglichen Werte der zweiten Entscheidungsvariable gebildet. Das Prinzip setzt sich für alle weiteren Entscheidungsvariablen fort, sodass der vollständige Lösungsraum modelliert wird. Abbildung 2.4 illustriert den Entscheidungsbaum für drei binäre Variablen \(x_{1}\), \(x_{2}\) und \(x_{3}\).

Abbildung 2.4
figure 4

Beispielhafter Entscheidungsbaum für drei binäre Variablen

Bereits bei dieser geringen Anzahl von Entscheidungsvariablen resultieren 15 auszuwertende Teilprobleme. In diesem Fall steigt mit zunehmender Variablenanzahl die Menge an Teilprobleme überexponentiell, und zwar um \(2*\left( {2^{n} } \right) - 1\), wobei \(n\) die Anzahl der binären Entscheidungsvariablen repräsentiert. Aus diesem Grund ist für größere Probleme eine vollständige Enumeration i. d. R. nicht durchführbar. Stattdessen kann auf Verfahren der unvollständigen Enumeration zurückgegriffen werden. Das bekannteste Verfahren dieser Gruppe ist der Branch-And-Bound (B&B) -Algorithmus, welcher ursprünglich von Land und Doig (1960) entwickelt wurde. Die Idee des B&B-Verfahrens ist zunächst das Gesamtproblem durch geeignete Separationstechniken in Teilprobleme zu verzweigen (Branching). Des Weiteren verwendet das Verfahren obere und untere Schranken (Bounding), um frühzeitig unbrauchbare Lösungen zu identifizieren bzw. die relative Güte einer Lösung zu bewerten. Zielstellung ist es, bestimmte Verzweigungen im Entscheidungsbaum nicht mehr ausloten zu müssen und somit Rechenzeit einzusparen. Bei Minimierungsproblemen gilt die obere Schranke als Richtwert, ob eine Lösung weiterverfolgt werden soll (Lösung < obere Schranke) oder nicht. Die obere Schranke wird zu Beginn entweder mit \(+ \infty\) initialisiert oder mithilfe einer Heuristik berechnet. Immer dann, wenn B&B eine bessere Lösung als die obere Schranke findet, wird diese durch die bisher beste gefundene Lösung überschrieben. Die untere Schranke hingegen ist ein Indikator für die beste zu erreichende Lösung und kann bspw. verwendet werden, um ein vorzeitiges Abbruchkriterium zu definieren. Die untere Schranke wird i. d. R. durch eine Relaxation des eigentlichen Problems ermittelt, das in Polynomialzeit optimiert werden kann. In einigen Fällen kann bspw. durch Weglassen der Ganzzahligkeitsbedingung eine optimale Lösung mithilfe des Simplex-Algorithmus berechnet werden (vgl. Dempe und Schreier 2006, S. 185 f.; Zimmermann 2008, S. 252 f.; Domschke et al. 2015, S. 140 f.). B&B ist kein generisches Verfahren, das ohne Anpassung auf jedes kombinatorische Optimierungsproblem angewandt werden kann. Vielmehr handelt es sich um ein allgemeines Handlungsprinzip, welches problemspezifisch zu implementieren ist. Konkret betrifft dies die Separationstechniken zum Aufbau des Entscheidungsbaums sowie die Methoden zum Ausloten von Verzweigungen sowie zur Berechnung von oberen und unteren Schranken. Aufgrund der hohen Rechenzeit beschränkt sich in der Ablaufplanung der Einsatz von B&B-Techniken i. d. R. auf vergleichsweise kleine Probleminstanzen mit wenigen Aufträgen und Ressourcen (Ruiz und Vázquez-Rodríguez 2010; Zhang et al. 2019).

Bei der dynamischen Programmierung (DP), deren Ursprünge auf Bellman (1951) zurückgehen, wird ein Gesamtproblem in eine Sequenz aufeinanderfolgender Teilprobleme unterteilt. Das Gesamtproblem wird durch stufenweise Berechnung der Teilprobleme optimiert. Jedes Teilproblem bzw. jede Optimierungsstufe wird durch eine Menge von Zuständen (Eingang) und Entscheidungen (Ausgang) beschrieben. Die Entscheidung einer Optimierungsstufe geht als Zustandsgröße in die darauffolgende Stufe ein. Analog zu B&B-Verfahren repräsentiert DP kein generisches Lösungsverfahren, sondern ein Handlungsprinzip, welches stets problemspezifisch konzeptioniert und implementiert werden muss (Dempe und Schreier 2006, S. 208; Zimmermann 2008, S. 233 f.; Domschke et al. 2015, S. 165). Laut Domschke et al. sind DP-Methoden weitaus schwerer zugänglich als bspw. lineare Optimierungsansätze. Womöglich finden sich aus diesem Grund nur wenige Anwendungsbeispiele für PPS-Probleme. Ruiz und Vázquez-Rodríguez (2010) berichten in ihrer umfangreichen Literaturrecherche zu hybriden Flow-Shop-Problemen lediglich von zwei Publikationen, die DP zur Lösung von kleinen Probleminstanzen einsetzen. In den bekannten Literaturstudien zu Job-Shop-Problemen (Chaudhry und Khan 2016; Xie et al. 2019; Zhang et al. 2019) wird von keinen Arbeiten berichtet, die DP als Lösungsverfahren einsetzen. Ungeachtet dessen existieren Arbeiten zur Anwendung von DP für Job-Shop-Probleme. Besondere Erwähnung soll die Arbeit von Gromicho et al. (2012) finden, die ein DP-Verfahren beschreibt, dass Job-Shop-Probleme optimal löst und eine mindestens exponentiell geringere Laufzeitkomplexität als die vollständige Enumeration des Lösungsraums besitzt. Konkret löst das DP-Verfahren der Autoren Probleminstanzen mit fünf Ressourcen und zehn Aufträgen in ca. 16 bis 33 Minuten.

Die Grundidee des Schnittebenenverfahrens geht auf Gomory (1958) zurück. Zunächst wird ein gegebenes ganzzahliges Optimierungsproblem um dessen Ganzzahligkeitsbedingung vereinfacht, sodass die resultierende LP-Relaxation grafisch oder mithilfe des Simplex-Algorithmus gelöst werden kann. Das Optimum der LP-Relaxation gilt fortan als obere Schranke für die Ermittlung der ganzzahligen Lösung. Nun wird durch schrittweises Hinzufügen zusätzlicher Nebenbedingungen – sogenannter Schnittebenen – versucht, für jede Entscheidungsvariable ein ganzzahliges Optimum zu finden. Jede Schnittebene wird so formuliert, dass die aktuelle Lösung der LP-Relaxation außerhalb, jedoch alle zulässigen Punkte des ganzzahligen Optimierungsproblems innerhalb von ihr liegen. Jedes Mal, wenn eine neue Schnittebene eingeführt wird, erfolgt eine weitere Iteration mit dem Simplex-Algorithmus, sodass sich eine neue Lösung ergibt. Sofern diese ganzzahlig ist, handelt es sich um die optimale Lösung. Andernfalls wird die Lösung zur Konkretisierung der oberen Schranke verwendet. Die Prozedur wiederholt sich für jede nichtganzzahlige Entscheidungsvariable, bis eine ganzzahlige Lösung gefunden wird oder bis nachgewiesen werden kann, dass für das vorliegende Problem keine zulässige ganzzahlige Lösung existiert (vgl. Dempe und Schreier 2006, S. 197 ff.; Zimmermann 2008, S. 115 ff.). Schnittebenenverfahren werden heutzutage kaum noch als alleinige Methode zur Berechnung ganzzahliger Optimierungsprobleme verwendet. Bereits in den 1960er und 1970er Jahren stellte sich heraus, dass das schrittweise Hinzufügen von Nebenbedingungen und Lösen mit dem Simplex-Algorithmus kein effizientes Vorgehen darstellt (Zimmermann 2008, S. 310). Allerdings kann das Schnittebenenprinzip in Kombination mit B&B implementiert werden, um präzisere Schranken als Entscheidungsmaß für das Ausloten von Teilproblemen zu berechnen. Die Kombination beider Methoden ist als Branch-And-Cut (B&C) -Verfahren bekannt (Zimmermann 2008, S. 313). In den gängigen Literaturstudien zu Lösungsmethoden für Ablaufplanungsprobleme werden weder Arbeiten zu Schnittebenen- noch zu B&C-Verfahren gelistet (Ruiz und Vázquez-Rodríguez 2010; Chaudhry und Khan 2016; Xie et al. 2019; Zhang et al. 2019). Gleichwohl existieren einige Arbeiten, welche B&C-Verfahren für einfache Ablaufplanungsprobleme untersuchen. So präsentieren Stecco et al. (2008) ein B&C-Verfahren für ein Ein-Maschinen-Problem mit reihenfolge- und zeitabhängigen Rüstzeiten, während Kis und Kovács (2012) ein B&C-Verfahren für ein Parallel-Maschinen-Problem untersuchen. Für komplexere Ablaufplanungsprobleme, wie bspw. Hybrid-Flow-Shops oder Job-Shops, finden sich in der wissenschaftlichen Literatur keine Anwendungsbeispiele.

2.3.3.2 Heuristiken

Eine Heuristik ist ein Algorithmus, der für ein gegebenes Optimierungsproblem eine zulässige Lösung berechnet. Wenn die resultierende Lösung für jede Eingabe optimal ist, handelt es sich gleichzeitig um ein exaktes Lösungsverfahren (Korte und Vygen 2018, S. 436), andernfalls um ein Näherungsverfahren (vgl. Dempe und Schreier 2006, S. 215). Das Hauptmerkmal jeder Heuristik ist, dass sie nach definierten Regeln und Schrittfolgen lediglich einen Teil des gesamten Lösungsraums analysiert. Bei Näherungsverfahren kann nicht nachgewiesen werden, dass sich das globale Optimum nicht im ausgeschlossenen Lösungsraum befindet, weswegen für die ermittelte Lösung ebenfalls kein Optimalitätsnachweis möglich ist (vgl. Zimmermann 2008, S. 273 f.).

Es existieren vergleichsweise wenige Heuristiken, die ein Problem optimal lösen können. Ihr Einsatz ist auf sehr spezifische und einfache Probleme limitiert. Für das Ein-Maschinen-Problem wurden problemspezifische Heuristiken von Moore (1968) und Lawler (1973) entwickelt. Moore’s Algorithmus minimiert die Anzahl verspäteter Aufträge, während Lawler’s Algorithmus die zeitabhängigen Produktionskosten minimiert, wobei zusätzlich Vorrangbedingungen zwischen den Aufträgen bestehen. Darüber hinaus existieren für bestimmte Flow-Shop-Konfigurationen exakte Heuristiken. Eine der ältesten und populärsten Heuristiken dieser Art stammt von Johnson (1954), welche die Gesamtdauer eines Ablaufplans für einen zweistufigen Flow-Shop mit genau einer Ressource pro Stufe minimiert. Aufbauend auf Johnson’s Algorithmus präsentieren Campbell et al. (1970) eine Heuristik, welche für Flow-Shops mit beliebiger Anzahl von Stufen und jeweils einer Ressource pro Stufe einen Produktionsplan mit minimaler Gesamtdauer berechnet. Die Idee des Ansatzes ist ein n-stufiges Flow-Shop-Problem in n-1 zweistufige Flow-Shop-Probleme aufzuteilen und mit Johnson’s Algorithmus zu lösen. Von den resultierenden Lösungen wird nun die beste Lösung für das Gesamtproblem gewählt. Für Parallel-Maschinen-Probleme ist die Heuristik von Sahni (1979) von größerer Bekanntheit. Diese findet einen Plan, der keine Fertigstellungsfristen von Aufträgen verletzt, unter der Annahme, dass die Bearbeitung von Aufträgen unterbrochen werden kann. Alle beschriebenen Heuristiken lösen das jeweilige Problem für eine beliebige Anzahl von Aufträgen in Polynomialzeit. Gleichbedeutend sind diese Probleme nicht der Komplexitätsklasse »NP« zuzuordnen, zu welcher bspw. viele Hybrid-Flow-Shop- und Job-Shop-Probleme gehören und für welche nach aktuellem Stand der Wissenschaft und Technik keine exakten heuristischen Verfahren existieren. T'kindt und Billaut (2006) beschreiben eine Vielzahl weiterer Heuristiken, die spezifische Ablaufplanungsprobleme größtenteils optimal, teilweise non-optimal in Polynomialzeit lösen.

Ebenfalls zur Klasse der Heuristiken gehören sogenannte Prioritätsregeln, welche u. a. auch in etablierten PPS-Modellen zur Auftragssequenzierung vor Maschinen und Arbeitsstationen empfohlen werden (vgl. Schuh et al. 2012a, S. 53; Wiendahl und Wiendahl 2019, S. 334 f.). Obgleich Prioritätsregeln durch ihre einfache Anwendbarkeit und Echtzeitfähigkeit überzeugen, sind insbesondere bei hochdimensionalen und stark beschränkten Ablaufplanungsproblemen die Pläne weit entfernt von der optimalen Lösung (Chandra und Talavage 1991). Sofern Prioritätsregeln nicht statisch, sondern dynamisch-situativ angewandt werden, können sie ebenfalls für komplexere Probleme hochqualitative Lösungen erzielen. Dies wurde u. a. in zwei Vorarbeiten nachgewiesen, in denen mithilfe von genetischen Algorithmen die besten Prioritätsregeln für fixe Zeitintervalle gesucht wurden (Rolf et al. 2020a; Rolf et al. 2020b). Die in Kapitel 5 vorgestellte Methode zum Einsatz von bestärkenden Lernverfahren für die Produktionsablaufplanung kann u. a. für das Training eines intelligenten Agenten eingesetzt werden, der dynamisch die Prioritätsregel für eine Ressource anpasst, unter Einbeziehung aktueller Umgebungs- und Zustandsdaten. Vor diesem Hintergrund sollen im Folgenden einige der in der Literatur am häufigsten gelisteten Prioritätsregeln kurz vorgestellt werden (T'kindt und Billaut 2006, S. 21 f.; Pinedo 2016, S. 376 f.; Wiendahl und Wiendahl 2019, S. 334 ff.).

\({\varvec{FIFO}}\)

First In – First Out – Alle Aufträge werden in aufsteigender Reihenfolge gemäß ihres Eintrittszeitpunkts in das System bzw. – sofern alle Aufträge zum Zeitpunkt \(t = 0\) verfügbar sind – in aufsteigender Reihenfolge gemäß ihrer Position in der Auftragsliste abgearbeitet.

\({\varvec{SPT}}\)

Shortest Processing Time (Kürzeste Bearbeitungszeit) – Alle Aufträge werden in aufsteigender Reihenfolge gemäß ihrer benötigten Prozesszeit bearbeitet. Diese Regel berechnet für das Ein-Maschinen-Problem, ohne weitere Restriktionen, den Ablaufplan mit der geringsten Gesamtdauer \(C_{max}\).

\({\varvec{LPT}}\)

Longest Processing Time (Längste Bearbeitungszeit) – Alle Aufträge werden in aufsteigender Reihenfolge gemäß ihrer benötigten Prozesszeit bearbeitet.

\({\varvec{EDD}}\)

Earliest Due Date (Früheste Fertigstellungsfrist) – Alle Aufträge werden in aufsteigender Reihenfolge gemäß ihrer Fertigstellungsfrist bearbeitet. Diese Regel berechnet für das Ein-Maschinen-Problem, ohne weitere Restriktionen, den Ablaufplan mit der geringsten Gesamtverspätung \(T\) sowie mit der geringsten maximalen Verspätung \(L_{max}\) über alle Aufträge.

\({\varvec{LST}}\)

Least Slack Time (Geringste Schlupfzeit) – Die Schlupfzeit eines Auftrags ist die verbleibende Zeitspanne bis zu dessen Fertigstellungsfrist. Alle Aufträge werden in aufsteigender Reihenfolge gemäß ihrer Schlupfzeit sortiert.

2.3.3.3 Metaheuristiken

Metaheuristiken sind generische, iterative sowie gewöhnlich nichtdeterministische Algorithmen, welche unter Einsatz von einer oder mehreren untergeordneten Heuristiken, z. B. Nachbarschaftssuche, paarweiser Austausch, Rekombination von Lösungen u. v. m., den Lösungsraum eines Optimierungsproblems durchsuchen (vgl. Osman und Laporte 1996; Blum und Roli 2003; Hussain et al. 2019).

Oftmals sind die Suchstrategien von Metaheuristiken an Wirkprinzipien der Natur und Physik angelehnt. So imitieren bspw. evolutionäre (Rechenberg und Eigen 1973) und genetische Algorithmen (Holland 1975) das Prinzip von Darwins Evolutionstheorie um neue Lösungskandidaten zu erschließen und bestehende unattraktive Lösungen zu verwerfen. Währenddessen ist die Metaheuristik »Simulated Annealing« (Kirkpatrick et al. 1983) vom Prozess abkühlenden Metalls inspiriert, um mit fortschreitender Zeit die zufällige Exploration des Lösungsraums zu reduzieren. Schwarmalgorithmen repräsentieren eine weitere prominente Unterkategorie von Metaheuristiken. Es handelt sich um Multiagentensysteme, die den Lösungsraum eines gegebenen Optimierungsproblems dezentral durchsuchen, wobei die Agenten sich gegenseitig in ihrem Suchverhalten beeinflussen. Zwei populäre schwarmbasierte Metaheuristiken sind die Partikelschwarmoptimierung (Eberhart und Kennedy 1995) und der Ameisenalgorithmus (Dorigo et al. 1996).

Um das Wirkprinzip von Metaheuristiken zu versinnbildlichen, soll im Folgenden beispielhaft die Funktionsweise genetischer Algorithmen skizziert werden. Die Idee ist zunächst eine Menge (Population) von zufälligen Startlösungen (Individuen) zu generieren. Ein Individuum bzw. ein Lösungskandidat ist als Vektor kodiert. So könnte bspw. bei einem PPS-Ablaufplanungsproblem, in welchem eine Menge von Aufträgen einer Menge von Ressourcen zugeordnet werden soll, ein Individuum als n-dimensionaler Vektor kodiert werden, wobei \(n\) der Anzahl zuzuordnender Aufträge entspricht und der Wert jedes Vektorelements dem Index der jeweiligen Maschine, zu welcher der entsprechende Auftrag zugeordnet werden soll. Über mehrere Iterationen (Generationen) werden zufällige Elemente der jeweiligen Lösungsvektoren zufällig verändert (Mutation) und / oder paarweise ausgetauscht (Inversion). Darüber hinaus können zwei Individuen, durch paarweisen Austausch untereinander, zu neuen Individuen kombiniert werden (Kreuzung). Mithilfe eines mathematischen Modells oder eines Simulationsmodells des Optimierungsproblems wird für jedes initiale und modifizierte Individuum ein sogenannter Fitnesswert berechnet. Hierbei handelt es sich i. d. R. um die zu optimierende Zielfunktion. Der Fitnesswert gilt als Indikator, ob ein Individuum beibehalten, modifiziert oder von der Population ausgeschlossen werden soll. Der Algorithmus terminiert, sobald ein benutzerdefiniertes Abbruchkriterium erreicht wird, z. B. wenn die Population über eine bestimmte Anzahl von Generationen evolviert oder ein Fitnessschwellenwert über- (Maximierung) bzw. unterschritten (Minimierung) wurde (vgl. Sivanandam und Deepa 2008, S. 83 ff.; Reeves 2010).

Das Angebot an Metaheuristiken ist zahlreich, vielfältig und kontinuierlich wachsend. Eine vollumfängliche Übersicht zu verfügbaren Metaheuristiken würde über den Rahmen dieser Arbeit hinausgehen. Ausführliche Darstellungen zu Metaheuristiken und ihren Funktionsweisen finden sich u. a. in (Blum und Roli 2003; Doerner et al. 2007; Bianchi et al. 2009; Gendreau und Potvin 2010; Burke und Kendall 2014; Du und Swamy 2016; Siarry 2016; Dokeroglu et al. 2019; Hussain et al. 2019).

Der Hauptvorteil aller Metaheuristiken ist, dass sie aufgrund ihrer generischen, nicht problembezogenen Suchstrategien vergleichsweise einfach für jede Art von Optimierungsproblem implementiert werden können (vgl. Weicker 2015, S. 25). Wie bereits in Abschnitt 1.1 beschrieben birgt der iterative, gewöhnlich randomisierte Suchprozess einer Metaheuristik ebenfalls Nachteile. So ist es bspw. nicht möglich abzuschätzen, wie viel Zeit eine Metaheuristik beansprucht, um eine Lösung von ausreichender Güte für ein bestimmtes Optimierungsproblem zu identifizieren. Mehr noch können bei zwei unterschiedlichen Instanzen ein und desselben Optimierungsproblems die Rechenzeit und erzielte Lösungsgüte stark voneinander abweichen (vgl. Chopard und Tomassini 2018, S. 191 f.). Vor diesem Hintergrund eignen sich Metaheuristiken nur bedingt zur Entscheidungsunterstützung bei zeitkritischen Optimierungsproblemen, bei denen in sehr kurzer Zeit eine den Anforderungen entsprechende Lösung ermittelt werden muss. Ebenfalls eignen sie sich nur bedingt für dynamische und stochastische Optimierungsprobleme, bei denen sich die Eingangsdaten der Optimierung zur Laufzeit ändern und nur schwer vorhersagbar sind.