Academia.eduAcademia.edu
Strategische Planung technischer Kapazität in komplexen Produktionssystemen: mathematische Optimierung grafischer Modelle mit der Software AURELIE Dissertation zur Erlangung des akademischen Grades Doktoringenieur (Dr.-Ing.) Herr Dipl.-Inf. Christian Andreas Hochmuth, MBA geboren am 18. Mai 1984 in Chemnitz Fakultät für Informatik an der Technischen Universität Chemnitz Gutachter: Prof. Dr.-Ing. Martin Gaedke Prof. em. Dr. oec. Dr. rer. nat. habil. Peter Köchel Prof. Dr.-Ing. Jörg Lässig Tag der Verteidigung: 27. Februar 2020 Bibliografische Information Hochmuth, Christian Andreas. 2020. »Strategische Planung technischer Kapazität in komplexen Produktionssystemen: mathematische Optimierung grafischer Modelle mit der Software AURELIE« Dissertation, Technische Universität Chemnitz, Fakultät für Informatik. 231 Seiten, 70 Abbildungen, 12 Tabellen, 19 Algorithmen, 216 Quellen. Für Alexandra und Lasse Vorwort Die vorliegende Dissertation ist an der Fakultät für Informatik der Technischen Universität Chemnitz entstanden. Im Mittelpunkt dieser Arbeit steht das Grundkonzept der Software AURELIE, die im Zuge der Promotion bei der Bosch Rexroth AG entwickelt und eingeführt wurde. Die Veröffentlichung markiert den Schlusspunkt eines langen Prozesses und bietet Gelegenheit für einen Rückblick. Der Natur einer externen Promotion entsprechend haben mich Personen aus Forschung und Praxis auf diesem Weg begleitet. Zunächst möchte ich meine Förderer aus dem universitären Umfeld hervorheben. Ihre wissenschaftliche Anleitung half mir, die in der Dissertation vorgestellten Ideen und Konzepte in publikationsgerechter Form zu strukturieren. Ich danke Prof. Dr.-Ing. Martin Gaedke für wertvolle Hinweise und für die Bereitschaft, die Betreuung der Arbeit zu übernehmen. Ebenso gilt mein Dank Prof. em. Dr. oec. Dr. rer. nat. habil. Peter Köchel, der mein Promotionsvorhaben von Beginn an fachlich und persönlich unterstützt hat. Des Weiteren danke ich Prof. Dr.-Ing. Jörg Lässig für die Begutachtung und für die lehrreiche Zusammenarbeit bei der Erstellung von Veröffentlichungen. Ein wichtiges Merkmal dieser Arbeit ist, dass der entwickelte Lösungsansatz erfolgreich in der Praxis umgesetzt werden konnte. Hieran haben meine Betreuer auf der Seite der Bosch Rexroth AG sowie die Fachexperten im Kollegenkreis großen Anteil. In diesem Zusammenhang danke ich Dr.-Ing. Michael Sauter und Dr.-Ing. Bernd A. Müller für ihre Mentorenschaft und das Öffnen vieler verschlossener Türen. Alessandro Battino und Torsten Wassum danke ich für ihre Unterstützung bei der Spezifikation, dem Test und der Einführung der Software. Lukas Hahmann gilt mein Dank für seinen Einsatz im Rahmen von Anwenderschulungen und der technischen Dokumentation der Algorithmen. Darüber hinaus sei allen in der gebotenen Kürze nicht genannten Kollegen, Familienmitgliedern und Freunden mein tiefer Dank versichert. Düsseldorf, im Mai 2020 Christian A. Hochmuth v Referat Aktuelle Entwicklungen erfordern die Flexibilisierung von Produktionssystemen, wodurch die Komplexität insbesondere in der variantenreichen Serienfertigung steigt. Als Folge bestehen erhebliche Herausforderungen darin, die technische Kapazität in solchen komplexen Produktionssystemen effizient, transparent und flexibel zu planen. Um diese Herausforderungen zu bewältigen, wurde im Zusammenhang mit dieser Arbeit die Software AURELIE entwickelt und erfolgreich an den Standorten der Bosch Rexroth AG eingeführt. Im Folgenden wird das Grundkonzept der Software dargelegt, welches sich aus den kalkulatorischen Grundlagen und den entwickelten Kernalgorithmen zusammensetzt. Im Fokus stehen aus strategischer Sicht die maximalen Kapazitäten, die minimalen Investitionen zur Herstellung der geplanten Stückzahlen und die optimale Auslastung der Produktionsanlagen. Den Rahmen für die Optimierung der Planungsziele bildet ein System von Wertströmen, welches alle Prozesse zur Fertigung und Montage von Produkten an einem Standort umfasst. Die Komplexität resultiert aus der Struktur solcher Systeme, beruhend auf der rekursiven Verknüpfung von Prozessschritten und der mehrfachen Belegung von Produktionsanlagen. Diese Verknüpfungen und die begrenzte Auslastung der Produktionsanlagen führen in der Planung zu wechselseitigen Abhängigkeiten. Um die angesprochenen Abhängigkeiten zu berücksichtigen, werden in Unternehmen Ansätze verfolgt, die sich in ein Spektrum zwischen zwei unterschiedlichen Fällen einordnen lassen: Im ersten Fall werden einfache Modelle erstellt, die nur sehr begrenzt die Komplexität abbilden, jedoch von allen Beteiligten im Planungsprozess verstanden werden. Im zweiten, gegenteiligen Fall werden in aufwändiger Arbeit umfangreiche Modelle entwickelt, die zwar der Komplexität Rechnung tragen, allerdings nicht verständlich sind. Der Grund dafür ist, dass dem Planer die Aufgabe aufgebürdet wird, die Abhängigkeiten in mathematische Ausdrücke zu überführen. Als Konsequenz ist in der Praxis zu beobachten, dass sich Vollständigkeit und Verständlichkeit der Modelle ausschließen. Zur Lösung dieses Zielkonflikts wird ein softwaregestützter Workflow vorgeschlagen, welcher auf der neuen Software AURELIE beruht. Im ersten Schritt erstellt der Planer mit Hilfe der Software ein grafisches Modell, das nicht nur verständlich ist, sondern auch das System in seiner Komplexität vollständig widerspiegelt. Im zweiten, automatisch ablaufenden Schritt validiert die Software das grafische Modell und transformiert dieses in ein mathematisches Modell. Im dritten, ebenso automatisierten Schritt optimiert die Software das mathematische Modell, worauf der Planer das Modell anpasst und der Workflow von Neuem beginnt. Das Ergebnis dieser Teilautomatisierung ist eine signifikante Steigerung der Effizienz, Transparenz und Flexibilität im Planungsprozess. Im Zuge einer Systemanalyse werden zuerst Struktur und Schnittstelle eines Systems von Wertströmen beschrieben, wofür ein spezifischer mathematischer Formalismus erarbeitet wird. Im Anschluss werden die kalkulatorischen Grundlagen dargelegt und die Anforderungen an eine Software abgeleitet, welche sich zur Modellierung und Optimierung eines solchen Systems eignet. Mit der Bewertung des Stands der Technik folgt der Beleg, dass zum Zeitpunkt der Betrachtung keine geeignete Software existierte. Als ein wesentlicher Beitrag neben der Systemanalyse werden danach die Kernalgorithmen zur grafischen Modellierung, Modelltransformation und mathematischen Optimierung beschrieben. vii Abstract Recent developments require a transition to more flexible production systems, which causes higher complexity, especially in the case of series production with a great number of variants. As a result, the efficient, transparent and flexible planning of the technical capacity in such complex production systems represents considerable challenges. In order to overcome these challenges, the software AURELIE was developed in the context of writing this dissertation and successfully implemented at the locations of Bosch Rexroth AG. In the following, the fundamental concept of the software is described, which comprises the foundations with respect to calculations and the developed core algorithms. From a strategic perspective, the focus lies on the maximal capacities, the minimal investments which are required to produce the planned quantities and the optimal utilization of the production facilities. The scope for optimizing the planning objectives is defined by a system of value streams, which encompasses all processes for the manufacturing and assembly of products at a specific location. The complexity results from the structure of such systems, which is based on the recursive combination of process steps and the multiple allocation of production facilities. These combinations and the limited utilization of the production facilities lead to interdependencies in the planning. To account for the aforementioned interdependencies, companies follow approaches which can be classified along a spectrum between two distinct cases: In the first case, simple models are being created, which are very limited regarding the mapping of the complexity, but which are understood by all participants involved in the planning process. In the second, contrary case, extensive efforts are made to develop comprehensive models, which take the complexity into account, but which are not understandable. The underlying reason is that the task to transform the interdependencies into mathematical expressions is imposed upon the planner. As a consequence, it can be observed in practice that completeness and understandability of the models are mutually exclusive. With the aim to solve this conflict of objectives, a software-based workflow is proposed, which is supported by the newly developed software AURELIE. In the first step, the planner is aided by the software in creating a graphical model, which is not only understandable, but also reflects the system completely with respect to its complexity. In the second step, which is executed automatically, the software validates the graphical model and transforms it into a mathematical model. In the third step, which is automated as well, the software optimizes the mathematical model, whereupon the planner adjusts the model and the workflow starts from the beginning. The outcome of this partial automation is a significant improvement of efficiency, transparency and flexibility in the planning process. In the course of a system analysis, firstly the structure and the interface of a system of value streams are described, utilizing a specifically developed mathematical formalism. Subsequently, the foundations of the calculation are explained and the requirements are derived which a software must fulfill in order to be suitable for modeling and optimization of such a system. By evaluating the state of the art, it is then proven that at the time of the review a suitable software did not exist. As a major contribution in addition to the system analysis, after that the core algorithms for graphical modeling, model transformation and mathematical optimization are described. ix Inhaltsverzeichnis v Vorwort Referat vii Abbildungsverzeichnis xv Tabellenverzeichnis xvii Algorithmenverzeichnis 1 Einführung 1.1 Ausgangssituation: Potenziale in der Planung . . . . . . . 1.2 Problembeschreibung und Einordnung der Dissertation 1.3 Lösungsansatz: softwaregestützter Workflow . . . . . . . 1.4 Forschungsfragen und Aufbau der Arbeit . . . . . . . . . . xix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Lösungsvorbereitung: Systemanalyse 2.1 Kontext: strategische Planung technischer Kapazität in der Serienfertigung . 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen . . . . . . . . 2.2.1 Prozessschritte, Stückzahlverteilung und Verknüpfungstypen . . . . . 2.2.2 Prozesse und Wertströme . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Systemschnittstelle: Funktionen der Eingaben und Ausgaben . . . . . . . . . 2.3.1 Materialfluss: Bereitstellung von Komponenten für Produkte . . . . . 2.3.2 Informationsfluss: Planung der Produktion . . . . . . . . . . . . . . . . 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts . . . . . . . 2.4.1 Taktzeiten, Nutzungsgrad und Betriebsmittelzeit. . . . . . . . . . . . . 2.4.2 Kapazität, Auslastung und Investitionen . . . . . . . . . . . . . . . . . . 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte . 2.5.1 Sequenzielle Verknüpfung . . . . . . . . . . . . . . . . . . . . . . . . . . [Beispiel SQ1, 42] [Beispiel SQ2, 42] [Beispiel SQ3, 43] 2.5.2 Alternative Verknüpfung . . . . . . . . . . . . . . . . . . . . . . . . . . . [Beispiel AL1, 45] [Beispiel AL2, 47] [Beispiel AL3, 53] 2.5.3 Selektive Verknüpfung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [Beispiel SL1, 56] [Beispiel SL2, 57] 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung . . . . . 2.6.1 Kategorisierung möglicher Anforderungen . . . . . . . . . . . . . . . . 2.6.2 Formulierung der essenziellen Anforderungen . . . . . . . . . . . . . . 1 1 2 5 6 9 10 13 14 24 28 28 30 33 33 36 40 41 44 56 64 64 66 xi Inhaltsverzeichnis 3 Stand der Technik 3.1 Auswahl zu evaluierender Softwaretypen . . . . . . . . . . . . . . 3.2 Software zur Erstellung von Tabellenkalkulationen . . . . . . . . 3.2.1 Beispiel: Microsoft Excel. . . . . . . . . . . . . . . . . . . . 3.2.2 Erfüllungsgrad der Anforderungen . . . . . . . . . . . . . 3.3 Software zur Materialflusssimulation . . . . . . . . . . . . . . . . 3.3.1 Beispiel: Siemens Plant Simulation . . . . . . . . . . . . . 3.3.2 Erfüllungsgrad der Anforderungen . . . . . . . . . . . . . 3.4 Software für Supply Chain Management . . . . . . . . . . . . . . 3.4.1 Beispiel: SAP APO Supply Network Planning . . . . . . . 3.4.2 Erfüllungsgrad der Anforderungen . . . . . . . . . . . . . 3.5 Software zur Prozessmodellierung . . . . . . . . . . . . . . . . . . 3.5.1 Beispiel: BPMN mit idealem Interpreter und Optimierer 3.5.2 Erfüllungsgrad der Anforderungen . . . . . . . . . . . . . 3.6 Fazit: Bedarf nach einer neuen Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 76 81 82 82 84 85 86 90 91 92 100 101 103 107 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.1 Kurzeinführung: Graphentheorie und Komplexität . . . . . . . . . . . . . . 4.1.1 Graphentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Komplexität von Algorithmen . . . . . . . . . . . . . . . . . . . . . . 4.2 Modellierung eines Systems durch Wertstromgraphen . . . . . . . . . . . 4.2.1 Grafische Modellstruktur: Knoten und Kanten . . . . . . . . . . . . 4.2.2 Modellelemente: Quellen, Senken, Ressourcen und Flusspunkte . 4.3 Validierung eines grafischen Modells . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Ziel, Grundidee und Datenstrukturen. . . . . . . . . . . . . . . . . . 4.3.2 Beschreibung der Algorithmen. . . . . . . . . . . . . . . . . . . . . . 4.3.3 Beweis der Zeitkomplexität . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Transformation eines grafischen Modells in ein mathematisches Modell 4.4.1 Mathematische Modellstruktur: Matrizen und Folgen . . . . . . . . 4.4.2 Ziel, Grundidee und Datenstrukturen. . . . . . . . . . . . . . . . . . 4.4.3 Beschreibung der Algorithmen. . . . . . . . . . . . . . . . . . . . . . 4.4.4 Beweis der Zeitkomplexität . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Umsetzung in der Software AURELIE . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Funktionsübersicht und Benutzerführung . . . . . . . . . . . . . . . 4.5.2 Erfüllungsgrad der Anforderungen . . . . . . . . . . . . . . . . . . . 4.6 Fazit: Erreichen des vorgegebenen Entwicklungsziels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 110 110 114 116 117 119 125 125 130 134 137 138 150 153 159 162 162 167 170 . . . . . . 171 172 172 175 176 177 184 5 Lösungsschritt II: mathematische Optimierung 5.1 Kurzeinführung: lineare Optimierung und Korrektheit. 5.1.1 Lineare Optimierung . . . . . . . . . . . . . . . . . 5.1.2 Korrektheit von Algorithmen . . . . . . . . . . . . 5.2 Maximierung der Kapazitäten. . . . . . . . . . . . . . . . 5.2.1 Ziel, Grundidee und Datenstrukturen. . . . . . . 5.2.2 Beschreibung des Algorithmus . . . . . . . . . . . xii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inhaltsverzeichnis . . . . . . . . . . . . . . . 186 189 190 197 200 204 205 210 213 216 216 220 223 224 225 6 Schluss 6.1 Zusammenfassung der Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Implikationen für Forschung und planerische Praxis. . . . . . . . . . . . . . . 6.3 Ausblick: mögliche Weiterentwicklungen. . . . . . . . . . . . . . . . . . . . . . 227 227 229 230 A Technische Dokumentation A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation . A.1.1 Nichtrekursive Breitensuche von Knoten in einem Graphen G . . . A.1.2 Rekursive Breitensuche von Knoten in einem Graphen G . . . . . . A.1.3 Nichtrekursive Tiefensuche von Knoten in einem Graphen G . . . A.1.4 Rekursive Tiefensuche von Knoten in einem Graphen G . . . . . . A.1.5 Traversierung der Kanten eines grafischen Modells {G WS,b } . . . . A.1.6 Validierung eines grafischen Modells {G WS,b } . . . . . . . . . . . . . A.1.7 Traversierung der Knoten eines grafischen Modells {G WS,b } . . . . A.1.8 Transformation eines grafischen Modells {G WS,b }. . . . . . . . . . . A.2 Algorithmen, Teil II: mathematische Optimierung . . . . . . . . . . . . . . A.2.1 Minimierung einer allgemeinen linearen Zielfunktion f (x). . . . . A.2.2 Maximierung der technischen Kapazitäten ymax . . . . . . . . . . . A.2.3 Minimierung der Überlastung L x (Komponenten größer als eins) A.2.4 Optimierung der Auslastung L x (alle Komponenten) . . . . . . . . A1 A1 A2 A3 A5 A6 A8 A11 A15 A18 A25 A25 A26 A28 A32 5.3 5.4 5.5 5.6 5.2.3 Beweis der Korrektheit und Zeitkomplexität . . Minimierung der Investitionen . . . . . . . . . . . . . . 5.3.1 Ziel, Grundidee und Datenstrukturen. . . . . . 5.3.2 Beschreibung des Algorithmus . . . . . . . . . . 5.3.3 Beweis der Korrektheit und Zeitkomplexität . . Optimierung der Auslastung . . . . . . . . . . . . . . . 5.4.1 Ziel, Grundidee und Datenstrukturen. . . . . . 5.4.2 Beschreibung des Algorithmus . . . . . . . . . . 5.4.3 Beweis der Korrektheit und Zeitkomplexität . . Umsetzung in der Software AURELIE . . . . . . . . . . 5.5.1 Funktionsübersicht und Benutzerführung . . . 5.5.2 Erfüllungsgrad der Anforderungen . . . . . . . 5.5.3 Wesentliche Erweiterungen. . . . . . . . . . . . 5.5.4 Validierung der Optimierungsergebnisse. . . . Fazit: Erreichen des vorgegebenen Entwicklungsziels Abkürzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Symbolverzeichnis xxiii Index xxix Literaturverzeichnis xlv xiii Abbildungsverzeichnis 70 Abbildungen (und Unterabbildungen) 1 Einführung 1.1 Praktische und methodische Einordnung der Dissertation . . . . . . . . . . . 1.2 Softwaregestützter Workflow für die Planung . . . . . . . . . . . . . . . . . . . 2 Lösungsvorbereitung: Systemanalyse 2.1 Kontext des betrachteten Problems (Planungsdimensionen) . . . . . . . . 2.2 Verknüpfung von Prozessschritten zu Prozessen (Beispiel) . . . . . . . . . 2.3 Ausdrucksbaum einer Verknüpfung von Prozessschritten (Beispiel) . . . 2.4 System von Wertströmen (Ebenen, Elemente und Ressourcen) . . . . . . 2.5 Schemata sequenzieller Verknüpfungen (Beispiel SQ1, SQ2 und SQ3) (3) 2.6 Schemata alternativer Verknüpfungen (Beispiel AL1 und AL2) (2) . . . . . 2.7 Grafische Lösung einer alternativen Verknüpfung (Beispiel AL2) (2) . . . 2.8 Schema einer alternativen Verknüpfung (Beispiel AL3) . . . . . . . . . . . 2.9 Schemata selektiver Verknüpfungen (Beispiel SL1 und SL2) (2) . . . . . . 2.10 Grafische Lösung einer selektiven Verknüpfung (Beispiel SL2) (2) . . . . . 3 5 . . . . . . . . . . 11 16 24 27 41 45 51 52 56 63 3 Stand der Technik 3.1 Ergebnis einer Wertstromaufnahme (Beispiel) . . . . . . . . . . . . . . . . . . 3.2 Modellierung eines einfachen Prozesses mit BPMN (Beispiel) . . . . . . . . . 78 103 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.1 Kategorisierung von unterschiedlichen Typen endlicher Graphen (4). . . . . 4.2 Bezeichnungen, Symbole und Bedeutungen der Knotentypen (5) . . . . . . . 4.3 Modellierung sequenzieller Verknüpfungen (Beispiel SQ1, SQ2 und SQ3) (3) 4.4 Modellierung alternativer Verknüpfungen (Beispiel AL1 und AL2) (2). . . . . 4.5 Modellierung einer alternativen Verknüpfung (Beispiel AL3) . . . . . . . . . . 4.6 Wertstromgraph für die Fertigung einer Komponente (Praxisbeispiel) . . . . 4.7 Modellierung selektiver Verknüpfungen (Beispiel SL1 und SL2) (2) . . . . . . 4.8 Wertstromgraph für die Montage eines Produkts (Praxisbeispiel) . . . . . . . 4.9 Muster in grafischen Modellen zur Ausgliederung eines Arbeitsinhalts (4) . . 4.10 Kategorisierung unendlicher Zyklen in Wertstromgraphen (4) . . . . . . . . . 4.11 Kategorisierung nicht zulässiger Kanten in Wertstromgraphen (2). . . . . . . 4.12 Schrittfolge der Validierung eines Wertstromgraphen (Beispiel) (3) . . . . . . 4.13 Variablen als Ergebnis einer Modelltransformation (Beispiel) (2) . . . . . . . 4.14 Mehrdeutige Priorisierung als Folge verketteter Verknüpfungen (Beispiel). . 4.15 Schrittfolge der Transformation eines Wertstromgraphen (Beispiel) (4) . . . 111 118 122 122 123 123 124 124 126 128 128 129 149 149 152 . . . . . . . . . . xv Abbildungsverzeichnis 4.16 4.17 4.18 4.19 Bildschirmaufnahme von AURELIE (Definition von Stücklisten). . . . . . Bildschirmaufnahme von AURELIE (Vorgabe von Stückzahlszenarien). . Bildschirmaufnahme von AURELIE (Anordnung von Ressourcen). . . . . Bildschirmaufnahme von AURELIE (grafische Wertstrommodellierung) . . . . . . . . . 163 165 166 167 5 Lösungsschritt II: mathematische Optimierung 5.1 Visualisierung der Suche maximaler Kapazitäten ymax (Beispiel) (2). . . . 5.2 Visualisierung der Suche optimaler Auslastung L x (Beispiel) . . . . . . . . 5.3 Bildschirmaufnahme von AURELIE (tabellarische Ergebnisdarstellung) . 5.4 Bildschirmaufnahme von AURELIE (Visualisierung von Engpässen) . . . 5.5 Bildschirmaufnahme von AURELIE (Export nach Microsoft Excel) . . . . 5.6 Bildschirmaufnahme von AURELIE (Export nach Microsoft PowerPoint) . . . . . . . . . . . . 183 209 217 218 219 220 xvi Tabellenverzeichnis 12 Tabellen 2 Lösungsvorbereitung: Systemanalyse 2.1 Betriebsmittelzeiten nach Schichtmodellen (Beispielzahlen). . . . . . . . . . 2.2 Produkte, Prozessschritte und Produktionsanlagen (Beispielzahlen) . . . . . 2.3 Lösungen einer iterativen Heuristik und optimale Lösung . . . . . . . . . . . 36 38 55 3 Stand der Technik 3.1 Software zur grafischen Wertstrommodellierung . . . . . . . . . . . . . 3.2 Liste in der Praxis verwendeter algebraischer Modellierungssprachen 3.3 Bewertung ausgewählter Beispiele von Softwaretypen . . . . . . . . . . 3.4 Ermittlung der Kapazitäten mit einer Kostenfunktion (Beispiel) . . . . 3.5 Größenordnungen von Taktzeiten (Beispielzahlen). . . . . . . . . . . . . . . . . 77 80 81 96 98 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.1 Definitionen der Kantenmenge abhängig vom Graphentyp. . . . . . . . . . . 4.2 Definitionen unterschiedlicher Komplexitätsklassen. . . . . . . . . . . . . . . 4.3 Lösungen im Fall mehrdeutiger Priorisierung (Beispiel) . . . . . . . . . . . . . 112 115 148 5 Lösungsschritt II: mathematische Optimierung 5.1 Erfüllung der vorgegebenen linearen oberen Laufzeitschranke . . . . . . . . 222 . . . . . . . . . . . . . . . xvii Algorithmenverzeichnis 19 Algorithmen 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Kurzfassungen der wichtigsten Algorithmen 4.1 Traversierung der Kanten eines grafischen Modells {G WS,b } . . . 4.2 Validierung eines grafischen Modells {G WS,b } . . . . . . . . . . . 4.3 Traversierung der Knoten eines grafischen Modells {G WS,b } . . . 4.4 Transformation eines grafischen Modells {G WS,b } . . . . . . . . . . . . . . . . . . . . . 131 133 154 156 5 Lösungsschritt II: mathematische Optimierung Kurzfassungen der wichtigsten Algorithmen Maximierung der technischen Kapazitäten ymax . . . . . . . . . . . . . . . . 5.1 5.2 Minimierung der Überlastung L x (Komponenten größer als eins) . . . . . 5.3 Optimierung der Auslastung L x (alle Komponenten) . . . . . . . . . . . . . 184 198 211 A Technische Dokumentation Langfassungen aller Algorithmen A.1.1 Nichtrekursive Breitensuche von Knoten in einem Graphen G . . A.1.2 Rekursive Breitensuche von Knoten in einem Graphen G . . . . . A.1.3 Nichtrekursive Tiefensuche von Knoten in einem Graphen G . . . A.1.4 Rekursive Tiefensuche von Knoten in einem Graphen G . . . . . . A.1.5 Traversierung der Kanten eines grafischen Modells {G WS,b } . . . . A.1.6 Validierung eines grafischen Modells {G WS,b } . . . . . . . . . . . . A.1.7 Traversierung der Knoten eines grafischen Modells {G WS,b } . . . . A.1.8 Transformation eines grafischen Modells {G WS,b } . . . . . . . . . . A.2.1 Minimierung einer allgemeinen linearen Zielfunktion f (x) . . . . A.2.2 Maximierung der technischen Kapazitäten ymax . . . . . . . . . . . A.2.3 Minimierung der Überlastung L x (Komponenten größer als eins) A.2.4 Optimierung der Auslastung L x (alle Komponenten) . . . . . . . . A4 A4 A7 A7 A10 A13 A17 A21 A25 A27 A30 A33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix 1 Einführung Im Fokus dieser Arbeit steht ein neuer Ansatz zur strategischen Planung der technischen Kapazität in komplexen Produktionssystemen. Dieser Ansatz, welcher auf der Weiterentwicklung von Methoden der grafischen Modellierung und der mathematischen Optimierung basiert, wurde in der Software AURELIE umgesetzt. Im Verlauf der Arbeit wird das Grundkonzept der Software vorgestellt, welches die Grundlagen zur Kalkulation der Planungsziele und die Kernalgorithmen einschließt. In Abschnitt 1.1 wird die Ausgangssituation dargelegt, worauf in Abschnitt 1.2 die Problembeschreibung und die Einordnung der Dissertation folgen. Danach wird in Abschnitt 1.3 der Lösungsansatz skizziert, von welchem in Abschnitt 1.4 die Forschungsfragen und der Aufbau der Arbeit abgeleitet werden. 1.1 Ausgangssituation: Potenziale in der Planung Seit einigen Jahren wird der Wettbewerb zwischen produzierenden Unternehmen durch die Individualisierung der Produkte und die Verkürzung der Produktlebenszyklen bestimmt. Unternehmen sehen sich mit der Notwendigkeit konfrontiert, ihre Prozesse von der Produktentwicklung, der Beschaffung und der Produktion bis zum Versand und dem Aftersales zu beschleunigen. Hinzu kommen neue Entwicklungen, die unter den Begriffen Digitalisierung, Industrie 4.0 und Industrial Internet zusammengefasst werden können. Die Begriffe stehen für den Einsatz von Algorithmen, welche die Möglichkeit eröffnen, große Datenmengen zu verarbeiten und Entscheidungsprozesse zu automatisieren. Als Folge ist in Unternehmen eine Flexibilisierung aller Prozesse festzustellen. Die angesprochene Flexibilisierung besitzt Auswirkungen auf die Produktion und in noch größerem Maße auf die variantenreiche Serienfertigung. Allgemein wird die Serienfertigung von der Einzelfertigung dadurch abgegrenzt, dass größere Stückzahlen jeweils einer Produktvariante hergestellt werden. Die Variantenvielfalt bezieht sich zum einen darauf, dass zur Herstellung verschiedener Varianten unterschiedliche Prozessschritte ausgeführt werden. Zum anderen ist es häufig möglich, dasselbe Produkt mit Hilfe verschiedener Prozessschritte zu fertigen oder zu montieren. Darüber hinaus werden die Produktionsanlagen in vielen Fällen mehrfach belegt, um Prozessschritte zur Herstellung eines oder mehrerer Produkte auszuführen. Das Ergebnis dieser Variantenvielfalt ist eine erhebliche Komplexität, welche durch die genannten Trends noch zusätzlich gesteigert wird. Diese Komplexität stellt die Planung, Steuerung und Ausführung der Prozesse in der Produktion vor immense Herausforderungen. In der vorliegenden Arbeit wird die strategische Planung der technischen Kapazität thematisiert und eine Lösung zur Bewältigung dieser Herausforderungen entwickelt. Die Planungsziele bestehen in der Bestimmung der maximal erreichbaren Kapazitäten, der minimal notwendigen Investitionen und der optimalen 1 1 Einführung Auslastung aller Produktionsanlagen. Der Bezugsrahmen ist jeweils durch ein System gegeben, welches alle Wertströme zur Fertigung und Montage der Produkte an einem Standort zusammenfasst. Die Komplexität spiegelt sich in der Struktur des Systems wider und resultiert aus der rekursiven Verknüpfung von Prozessschritten sowie der mehrfachen Nutzung vieler Produktionsanlagen. Diese Aspekte äußern sich in wechselseitigen Abhängigkeiten zwischen den Elementen entsprechender Systeme von Wertströmen. Zur Erreichung der formulierten Planungsziele ist es notwendig, die existierenden Abhängigkeiten in der Planung mathematisch zu berücksichtigen. Hierzu werden in der Praxis meist Tabellenkalkulationen verwendet, wobei die Ansätze jeweils als Zwischenstufen zweier gegensätzlicher Fälle aufgefasst werden können. Im ersten Fall werden einfache Modelle erstellt, welche die Abhängigkeiten nur unzulänglich abbilden, jedoch den Vorteil bieten, dass die Modelle von allen Beteiligten verstanden werden. Im zweiten, entgegengesetzten Fall werden umfangreiche Modelle entwickelt, die zwar der Komplexität Rechnung tragen, aber nicht verständlich sind. Dieser Widerspruch ist dadurch begründet, dass es in der Verantwortung des Planers liegt, die Abhängigkeiten durch mathematische Ausdrücke geeignet abzubilden. Als Konsequenz verbleiben in allen Fällen Potenziale in Bezug auf die Effizienz, die Transparenz und die Flexibilität in der Planung. 1.2 Problembeschreibung und Einordnung der Dissertation Problembeschreibung. Untersucht wird die strategische Planung technischer Kapazität in komplexen Produktionssystemen, insbesondere in der variantenreichen Serienfertigung. Das Problem besteht darin, Modelle und Algorithmen zu entwickeln, welche die Modellierung entsprechender Systeme von Wertströmen und die Optimierung der Modelle gemäß den Planungszielen ermöglichen. Hierbei ist die Herausforderung, die Systeme in ihrer gegebenen Komplexität vollständig abzubilden und gleichzeitig durch verständliche Modelle zu repräsentieren. Der Begriff der Verständlichkeit bezieht sich darauf, dass es den Planern möglich sein soll, die Elemente eines Systems und deren Beziehungen auf einfache Weise abzubilden. Das bedeutet, dass die Planer nicht gezwungen sein sollen, die wechselseitigen Abhängigkeiten zwischen den Elementen in mathematische Ausdrücke zu überführen. Die Entlastung von dieser Aufgabe verspricht die Schöpfung der zuvor genannten Potenziale: die Steigerung der Effizienz, Transparenz und Flexibilität. Um die Planer entsprechend von der Erstellung mathematischer Modelle zu befreien, wird das Konzept eines softwaregestützten Workflows entwickelt. Der Workflow basiert auf der neuen Software AURELIE, deren Einsatzzweck darin besteht, komplexe Produktionssysteme grafisch zu modellieren und die Modelle mathematisch zu optimieren. Die Software wurde im Dialog mit Fachexperten und Führungskräften der Bosch Rexroth AG vom Autor dieser Arbeit eigenständig entwickelt. Nach Abschluss der Entwicklung beschloss die Leitung des Unternehmens, diese zum Standard für die strategische Planung der technischen Kapazität zu erklären und in der Folge im Unternehmen einzuführen. Aktuell wird die Software im weltweiten Produktionsnetzwerk an mehr als 40 Standorten auf regelmäßiger Basis eingesetzt. Wie die Planer bestätigen, konnten dadurch die Effizienz, Transparenz und Flexibilität in der Planung signifikant gesteigert werden. 2 1.2 Problembeschreibung und Einordnung der Dissertation Planerische Funktionen in Unternehmen Strategische Planung technischer Kapazität in komplexen Produktionssystemen: mathematische Optimierung grafischer Modelle mit der Software AURELIE Dimensionen der Planung Produktionsfaktor (technische oder Personalkapazität): technische Kapazität Arbeitsplanung von Prozessen und Wertströmen Planungsziele Maximale Kapazitäten aller Produkte Zeithorizont (strategische oder operative Planung): strategische Planung Produktionstyp (Serienfertigung oder Einzelfertigung): Serienfertigung Investitionsplanung von Maschinen, Anlagen und Einrichtungen Technische Kapazitätsplanung Minimale Investitionen aller Ressourcen Optimale Auslastung aller Ressourcen Potenziale in der planerischen Praxis Höhere Effizienz im Planungsprozess Höhere Transparenz im Planungsprozess Höhere Flexibilität im Planungsprozess Lösungsansatz Entscheidungen (quantitativ oder qualitativ): quantitativ Formale, mengentheoretische Systemanalyse Grafische Modellierung und Modelltransformation Mathematische Optimierung Entwurf und Implementierung von Algorithmen Abbildung 1.1: Praktische und methodische Einordnung der Dissertation. Die schematische Darstellung charakterisiert das Thema der Arbeit mit Blick auf die betriebswirtschaftliche Anwendung und den erarbeiteten Lösungsansatz. Im Mittelpunkt steht die Produktion in Unternehmen und hierbei die strategische Planung technischer Kapazität gemäß definierten Zielen. Durch die Software AURELIE werden Effizienz, Transparenz und Flexibilität gesteigert, beruhend auf neuen Algorithmen zur grafischen Modellierung und mathematischen Optimierung. Einordnung der Dissertation. Bevor der Lösungsansatz beschrieben wird, soll die Arbeit, wie in Abbildung 1.1 dargestellt, praktisch und methodisch eingeordnet werden. Die dort aufgeführten und im Folgenden genannten Begriffe werden im Hauptteil näher erläutert und, wann immer hilfreich, formal eindeutig definiert. Sie werden an dieser Stelle vorweggenommen, um das Vorgehen und die Ergebnisse der Arbeit zu umreißen. Dimensionen der Planung: Der begrenzende Produktionsfaktor betrifft die technische Kapazität, die insbesondere von der Personalkapazität zu unterscheiden ist. Betrachtet werden die Stückzahlen, welche mit den jeweils gegebenen Produktionsanlagen erreichbar sind, wobei die Verfügbarkeit des nötigen Personals vorausgesetzt wird. Der Fokus liegt dabei auf der strategischen Planung, welche sich von der operativen Planung durch ihren langfristigen Zeithorizont unterscheidet. Es wird der Produktionstyp einer Serienfertigung angenommen, woraus folgt, dass gegenüber einer Einzelfertigung größere Stückzahlen hergestellt werden. Das Ziel ist die Unterstützung quantitativer Entscheidungen, die anders als qualitative Entscheidungen auf numerischen Informationen basieren. Indem der Planer Wertströme, Ressourcen usw. festlegt, bildet dieser qualitative Randbedingungen ab, welche den Rahmen zur Automatisierung der Entscheidungen bilden. 3 1 Einführung Planerische Funktionen in Unternehmen: Als Ergebnis der Arbeit wird das Grundkonzept einer Software entwickelt, die mehrere Planungsfunktionen unterstützt. Zu diesen zählt die technische Kapazitätsplanung, welche die Stückzahlen ermittelt, die durch Eigenproduktion erreichbar sind. Diese werden mit dem erwarteten Bedarf verglichen, um die Stückzahlen festzulegen, die durch Eigenproduktion hergestellt werden sollen. Danach folgt im Planungsprozess die Investitionsplanung, welche die Investitionen ermittelt, die zur Herstellung der geplanten Stückzahlen benötigt werden. Die Arbeitsplanung schafft die Grundlagen für die beiden vorherigen Planungsfunktionen, indem Prozesse und Wertströme erfasst und geplant werden. Hierbei wird die Entscheidung unterstützt, wie die geplanten Stückzahlen der Produkte auf die Prozessschritte in den Wertströmen zu verteilen sind. Planungsziele: In den genannten Planungsfunktionen werden unterschiedliche Planungsziele verfolgt, die in der Arbeit durch die Formulierung von Anforderungen konkretisiert werden. Das zuerst zu bestimmende Planungsziel betrifft die maximalen Kapazitäten zur Herstellung der gegebenen Produkte. Das zweite Planungsziel, welches nach der Festlegung der geplanten Stückzahlen betrachtet wird, besteht in der Ermittlung der minimalen Investitionen, die bei bestmöglicher Nutzung aller Ressourcen notwendig sind. Unter Verwendung des Ergebnisses ist zuletzt das dritte Planungsziel, die optimale Auslastung aller verfügbaren und zusätzlich zu installierenden Ressourcen, gesucht. Potenziale in der planerischen Praxis: Mangels der Möglichkeit, die Komplexität realer Produktionssysteme in der Planung zu berücksichtigen, bleiben Potenziale unausgeschöpft. Diese Potenziale beziehen sich darauf, die Effizienz, die Transparenz und die Flexibilität im Planungsprozess zu steigern. Eine Erhöhung der Effizienz bewirkt eine geringere Bindung wichtiger Ressourcen, wobei dies insbesondere die notwendige Arbeitszeit des Planers betrifft. Durch eine Steigerung der Transparenz wird das Risiko von Fehlern reduziert, während die Nachvollziehbarkeit der erzielten Ergebnisse zunimmt. Eine Erhöhung der Flexibilität beschreibt die Fähigkeit, schneller ein spezifisches Modell für einen Standort anzulegen und fortlaufend anzupassen. Da die Realisierung dieser Potenziale nur schwer messbar ist, werden Anforderungen formuliert und deren Erfüllung bewertet. Lösungsansatz: In dieser Arbeit wird ein softwaregestützter Workflow vorgeschlagen, welcher durch eine weitgehende Automatisierung die Komplexität für den Planer reduziert. Mit einer mengentheoretischen Systemanalyse wird zuerst das Ziel verfolgt, eine eindeutige Beschreibung für Systeme von Wertströmen zu erarbeiten. Die Lösung basiert auf der grafischen Modellierung des jeweils gegebenen Produktionssystems und der Transformation des erstellten grafischen Modells in ein geeignetes mathematisches Modell. Im Anschluss daran folgt die mathematische Optimierung des durch Transformation erzeugten mathematischen Modells gemäß den definierten Planungszielen. Zu diesem Zweck werden Algorithmen entworfen und implementiert, welche den kalkulatorischen Kern der Software AURELIE bilden. Der Lösungsansatz wird im Folgenden näher beschrieben. Es wird der Bogen von einem betriebswirtschaftlichen Problem zu einer Lösung gespannt, welche auf Methoden der Informatik zurückgreift und diese weiterentwickelt. Entsprechend enthält die Dissertation Beiträge für Forschung und planerische Praxis. 4 1.3 Lösungsansatz: softwaregestützter Workflow Schritt 1: Grafische Modellierung (Planer) Abbildung von komplexen Produktionsprozessen durch Wertstromgraphen Schritt 4: Modellanpassung (Planer) Schritt 2: Modelltransformation (automatisch) Veränderung von Prozessen, Taktzeiten und Betriebsmittelzeiten gemäß den Engpässen Validierung des grafischen Modells und Umwandlung in ein mathematisches Modell Schritt 3: Mathematische Optimierung (automatisch) Ermittlung der Lösungen für Kapazität, Auslastung (inkl. Engpässen) und Investitionen Abbildung 1.2: Softwaregestützter Workflow für die Planung. Die strategische Planung technischer Kapazität verläuft mit der Software AURELIE teilautomatisiert in vier Schritten. Nach der grafischen Modellierung eines Systems von Wertströmen wird das grafische Modell automatisch validiert, transformiert und mathematisch optimiert. Daraufhin analysiert der Planer die ggf. verbleibenden Engpässe in den Wertströmen und überarbeitet die Prämissen der Planung. 1.3 Lösungsansatz: softwaregestützter Workflow Im Folgenden soll der Lösungsansatz näher beschrieben werden, welcher auf einem softwaregestützten Workflow basiert. Dessen Ablauf gliedert sich in vier Schritte, die entweder teilweise oder vollständig automatisiert werden, wie in Abbildung 1.2 dargestellt ist. Schritte, welche der Planer ausführt, um quantitative Informationen abzubilden und qualitative Randbedingungen zu berücksichtigen, werden teilweise automatisiert. Diese Teilautomatisierung bezieht sich darauf, dass der Planer bei der Modellerstellung durch die Software unterstützt wird. Sobald das Modell vorliegt, werden die nachfolgenden Schritte zur Transformation und Optimierung des Modells automatisch ausgeführt. Der erste Schritt ist jeweils die grafische Modellierung des Produktionssystems, bei welcher der Planer durch die Benutzeroberfläche der Software unterstützt wird. Zur Erstellung des Modells bildet der Planer die Wertströme mit allen nötigen quantitativen Informationen ab, einschließlich Taktzeiten aller Prozessschritte und Betriebsmittelzeiten aller Produktionsanlagen. Dabei beachtet der Planer qualitative Randbedingungen, wie z. B. den vorgegebenen Ablauf der Fertigung und Montage, durch entsprechende Verknüpfung der Prozessschritte. Dem schließt sich der zweite Schritt an, die automatische Transformation des grafischen Modells in ein mathematisches Modell, welches sich zur Optimierung eignet. Hervorzuheben 5 1 Einführung ist hierbei, dass alle wechselseitigen Abhängigkeiten zwischen den Elementen des Systems berücksichtigt werden. Mit dem mathematischen Modell ist es möglich, Zielfunktionen und Nebenbedingungen zur Verfolgung der Planungsziele zu formulieren. Damit folgt der dritte, ebenso automatisierte Schritt, die mathematische Optimierung des umgewandelten Modells. Nach Bestimmung der optimalen Lösungen für die Planungsziele werden die Ergebnisse dargestellt und aufbereitet, worauf der Planer die ggf. verbleibenden Engpässe analysiert. An diese Analyse knüpft der vierte Schritt an, die Anpassung der Prämissen des Modells durch den Planer, wie z. B. der Schichtmodelle der Produktionsanlagen. Der Zyklus schließt sich, indem der Planer den ersten Schritt wiederholt und die veränderten Prämissen im grafischen Modell umsetzt. Die automatisierte Modelltransformation befreit den Planer von der Aufgabe, die Komplexität des Produktionssystems in einem mathematischen Modell abzubilden. Durch Algorithmen zur Modellierung und Optimierung werden die Effizienz, die Transparenz und die Flexibilität gesteigert. 1.4 Forschungsfragen und Aufbau der Arbeit Übergeordnete Forschungsfragen. Die nachfolgenden übergeordneten Forschungsfragen betreffen Formalismen, Modelle und Algorithmen, die zur Umsetzung des softwaregestützten Workflows benötigt werden. Dabei wird vorausgesetzt, dass die Ergebnisse in dieser Form noch nicht existieren und entsprechend Entwicklungsarbeit zu leisten ist. Der Nachweis wird im weiteren Verlauf der Arbeit an der jeweiligen Stelle erbracht. A B C D Wie lassen sich Systeme von Wertströmen formal eindeutig beschreiben, und welche Anforderungen folgen daraus für die Modellierung und die Optimierung? Inwieweit erfüllt aktuell verfügbare, in Unternehmen einsetzbare Software diese Anforderungen, und worin besteht der Entwicklungsbedarf? Wie kann ein gegebenes System grafisch modelliert werden, und wie lauten geeignete Algorithmen zur Validierung und Transformation in ein mathematisches Modell? Welche Ansätze zur Optimierung sind geeignet, um die Eindeutigkeit der Ergebnisse zu gewährleisten, und wie lassen sich diese in Algorithmen überführen? Aufbau der Arbeit und detaillierte Forschungsfragen. Der Aufbau der vorliegenden Arbeit ist durch den softwaregestützten Workflow und die Schaffung der hierzu erforderlichen Voraussetzungen bestimmt. Zunächst wird eine Systemanalyse durchgeführt, um auf dieser Grundlage verfügbare Lösungen zu bewerten und eine neue Lösung in Gestalt der Software AURELIE zu entwickeln. Diese Entwicklung gliedert sich in zwei Lösungsschritte, die Modellierung und die Optimierung, entsprechend dem Workflow und den Komponenten der Software. Es folgt ein Überblick der einzelnen Kapitel des Hauptteils und der jeweils adressierten, detaillierten Forschungsfragen. Kapitel 2, Lösungsvorbereitung: Systemanalyse. Durch die Systemanalyse werden die notwendigen Vorarbeiten zur Bewertung existierender Lösungen und zur Entwicklung einer neuen Lösung erbracht. Zu Beginn wird der Kontext des betrachteten Problems eingegrenzt, worauf die Beschreibung der Struktur und der Schnittstelle eines Systems von Wertströmen 6 1.4 Forschungsfragen und Aufbau der Arbeit folgen. Danach werden die Grundlagen zur Kalkulation von Kapazität, Auslastung und Investitionen dargelegt, bezüglich ihrer Anwendbarkeit geprüft und erweitert. Abschließend werden die Anforderungen an eine Software zur Unterstützung der Planung im gegebenen Kontext kategorisiert und formuliert. Die essenziellen Anforderungen konkretisieren in ihrer Gesamtheit das Problem, das es in dieser Arbeit zu lösen gilt. A.1 Wie ist der Kontext der vorliegenden Arbeit, die strategische Planung der technischen Kapazität in der Serienfertigung, abzugrenzen? A.2 Wie kann die Struktur eines gegebenen Systems von Wertströmen aus Sicht der Planung im Kontext dieser Arbeit formal eindeutig beschrieben werden? A.3 Welche Eingaben und Ausgaben werden an der Systemschnittstelle ausgetauscht, und wie lassen sich die definierten Planungsziele beschreiben? A.4 Welche Grundlagen existieren, um Kapazität, Auslastung und Investitionen zu kalkulieren, welche Voraussetzungen gelten, und inwieweit werden diese erfüllt? A.5 Wie lassen sich die Grundlagen erweitern, um die Struktur realer Produktionssysteme in der Planung vollständig zu berücksichtigen? A.6 Wie werden Anforderungen an eine geeignete Software kategorisiert, und wie lauten die essenziellen Anforderungen im gegebenen Fall? Kapitel 3, Stand der Technik. Mit dem Vorliegen eindeutig definierter Anforderungen ist es möglich, existierende Software im Hinblick auf deren Erfüllung zu untersuchen. Zuerst werden Softwaretypen ausgewählt, wobei die grundsätzlich zu erfüllenden Anforderungen und die Eignung für einen produktiven Einsatz in Unternehmen betrachtet werden. Danach folgen die Bewertung der Softwaretypen für den gegebenen Einsatzzweck und, basierend auf den Erkenntnissen, die Zusammenfassung des Entwicklungsbedarfs. B.1 Welche Typen von Softwareanwendungen sind für die Unterstützung der strategischen Planung technischer Kapazität in Unternehmen einsetzbar? B.2 Bis zu welchem Grad erfüllen repräsentative, den Stand der Technik widerspiegelnde Vertreter der ausgewählten Softwaretypen die formulierten Anforderungen? B.3 Existieren Anforderungen, die von keinem Vertreter der ausgewählten Softwaretypen erfüllt werden, obgleich diese als essenziell kategorisiert wurden? B.4 Welcher Bedarf, eine neue Software entsprechend den formulierten Anforderungen zu entwickeln, verbleibt als Ergebnis der Bewertung? Kapitel 4, Lösungsschritt I: grafische Modellierung und Modelltransformation. Durch den ersten Lösungsschritt wird der identifizierte Entwicklungsbedarf im Hinblick auf die Modellierung eines Systems von Wertströmen erfüllt. Hierzu wird von den Anforderungen eine geeignete grafische Notation abgeleitet, mit welcher die Abhängigkeiten zwischen den Elementen eines Systems dargestellt werden können. Daraufhin wird ein mathematisches Modell beschrieben, welches dem grafischen Modell entspricht und sich zur mathematischen Optimierung eignet. Ergänzt wird die Beschreibung durch die Entwicklung neuer Algorithmen zur Validierung eines grafischen Modells und zur Transformation in ein mathematisches Modell. Zuletzt richtet sich der Blick auf die Umsetzung in der Software AURELIE, und hierbei auf die Benutzerführung und die Anforderungserfüllung. 7 1 Einführung C.1 Wie kann der Begriff des Graphen aus der Literatur erweitert werden, um Wertströme im Kontext der vorliegenden Arbeit vollständig und eindeutig zu beschreiben? C.2 Wie lautet ein geeigneter Algorithmus zur Validierung eines grafischen Modells, welches aus entsprechenden Wertstromgraphen zusammengesetzt ist? C.3 Wie kann ein mathematisches Modell definiert werden, welches sich zur Optimierung unter Verwendung exakter Verfahren eignet? C.4 Wie lautet ein geeigneter Algorithmus zur automatischen Transformation eines grafischen Modells in ein jeweils entsprechendes mathematisches Modell? C.5 Wie lassen sich die Algorithmen in einer Software umsetzen, und inwieweit werden dadurch die zuvor formulierten Anforderungen erfüllt? Kapitel 5, Lösungsschritt II: mathematische Optimierung. Mit dem zweiten Lösungsschritt wird der verbleibende Entwicklungsbedarf im Hinblick auf die Optimierung eines Systems von Wertströmen erfüllt. Anknüpfend an das vorangegangene Kapitel wird das mathematische Modell eines gegebenen Systems von Wertströmen verarbeitet. Auf der Grundlage des mathematischen Modells werden Zielfunktionen formalisiert, die durch Nebenbedingungen beschränkt werden und iterativ zu minimieren oder zu maximieren sind. Hierfür werden neue Algorithmen entwickelt, sodass als Ergebnis die Planungsziele gemäß den vorgegebenen Anforderungen erreicht werden. Den Abschluss bildet die Umsetzung in der Software AURELIE, wobei die Benutzerführung, die Erfüllung der Anforderungen, Erweiterungen und die Validierung der Ergebnisse betrachtet werden. D.1 Welche Ansätze sind aus theoretischer und praktischer Sicht denkbar, um die Eindeutigkeit der Optimierungsergebnisse sicherzustellen? D.2 Wie können die definierten Planungsziele gemäß den jeweils gewählten Ansätzen in formaler Notation beschrieben werden? D.3 Wie lauten jeweils geeignete Algorithmen zur entsprechenden Maximierung der Kapazitäten, Minimierung der Investitionen und Optimierung der Auslastung? D.4 Kann die Korrektheit der entwickelten Algorithmen formal nachgewiesen werden, falls diese keine Grundlage in der Literatur besitzen? D.5 Wie lassen sich die Algorithmen umsetzen, inwieweit werden die formulierten Anforderungen erfüllt, und wie können die Ergebnisse validiert werden? 8 2 Lösungsvorbereitung: Systemanalyse Gegenstand dieser Arbeit ist die strategische Planung der technischen Kapazität in der Serienfertigung. Im Hinblick auf die Planungsziele gilt es, die erreichbaren Kapazitäten zu maximieren, die notwendigen Investitionen zu minimieren und die Auslastung aller Maschinen, Anlagen und Einrichtungen zu optimieren. Den Bezugsrahmen hierfür bildet ein Produktionssystem aus sogenannten Wertströmen, das alle Prozesse zur Fertigung und Montage von Produkten an einem Produktionsstandort zusammenfasst. Aufgrund der unüberschaubaren Zahl von Möglichkeiten, die einzelnen Prozessschritte im Wertstrom eines Produkts zu verknüpfen, ist die Erreichung der Planungsziele eine Aufgabe von großer Komplexität. Des Weiteren ist vielen Prozessschritten dieselbe Produktionsanlage zugeordnet, wodurch sich die maximalen Stückzahlen jeweils gegenseitig beschränken. Als Beispiel dient ein ausgewählter Standort der Bosch Rexroth AG, an dem 119 Produkte in 1795 Prozessschritten hergestellt werden. Eine einzelne Produktionsanlage wird in diesem Beispiel von 67 Prozessschritten beansprucht. Entwicklungen des Marktes wie die Individualisierung der Produkte und die Verkürzung der Produktlebenszyklen erfordern eine weitere Flexibilisierung des Produktionsablaufs. Die Konsequenz ist eine nochmalige Steigerung der Komplexität in der Planung solcher Produktionssysteme. In dem vorliegenden Kapitel wird mit einer Systemanalyse der Grundstein zur Bewältigung der oben geschilderten Herausforderungen gelegt. Der Zweck der Systemanalyse ist es, ein grundsätzliches Verständnis für Systeme von Wertströmen und für die strategische Planung der Produktion gemäß den definierten Zielen zu schaffen. In dem Zuge wird ein Formalismus zur eindeutigen Beschreibung der Struktur solcher Systeme entwickelt, die Kalkulation der Planungsziele erläutert und als Ergebnis die Komplexität reduziert. Der Verein Deutscher Ingenieure e. V. (VDI) definiert den Begriff der Systemanalyse übereinstimmend wie folgt (Richtlinie VDI 3633:1996-11, S. 17): »Systematische Untersuchung eines Systems hinsichtlich aller Systemdaten, Systemelemente und deren Wirkungen aufeinander. Mit Hilfe der Systemanalyse wird die Komplexität des Systems entsprechend den Untersuchungszielen durch sinnfällige Zergliederung in seine Elemente aufgelöst (Strukturierung).« Die Systemanalyse endet mit der Formulierung von Anforderungen, die eine geeignete Software erfüllen muss, um ein geplantes System zu modellieren und das Modell abhängig vom Planungsziel zu optimieren. Die Anforderungen beschreiben das letztlich in dieser Arbeit zu lösende Problem, und folglich wird auf sie im weiteren Verlauf wiederholt Bezug genommen. Zunächst dienen sie in Kapitel 3 dem Nachweis, dass eine solche Software zum Zeitpunkt der Betrachtung nicht existierte. In Kapitel 4 und 5 werden mit ihrer Hilfe die Entscheidungen im Entwurf der Software AURELIE begründet, die im Rahmen der Arbeit entwickelt wurde und erstmals alle der formulierten Anforderungen erfüllt. Für die 9 2 Lösungsvorbereitung: Systemanalyse Entwicklung von AURELIE war die Systemanalyse und insbesondere die Formulierung der zu erfüllenden Anforderungen ein entscheidender, die Lösung vorbereitender Schritt. Dessen Bedeutung wird durch den Grundsatz des Software Engineering bestätigt, dass die Entwicklung neuer Software insbesondere dann Erfolg verspricht, wenn die wichtigsten Anforderungen systematisch ermittelt und festgehalten werden (siehe u. a. Standish 1995, 2011, Yeo 2002, Legris und Collerette 2006, Brocke et al. 2009, Hochmuth 2011). Das Kapitel ist folgendermaßen untergliedert. In Abschnitt 2.1 wird zuerst der Kontext des betrachteten Problems eingegrenzt. Abschnitt 2.2 widmet sich der Entwicklung eines mathematischen Formalismus zur Beschreibung der Systemstruktur, welcher auf der rekursiven Verknüpfung von einzelnen Prozessschritten eines Produkts zu Prozessen und Wertströmen basiert. In Abschnitt 2.3 folgt darauf die Systemschnittstelle, mittels derer Material und Informationen zwischen einem System und seiner Umwelt ausgetauscht werden können. Damit sind die Voraussetzungen erfüllt, um in Abschnitt 2.4 und 2.5 die Kalkulation von Kapazität, Auslastung und Investitionen im einfachen Fall eines einzelnen Prozessschritts bzw. im allgemeinen, komplexeren Fall verknüpfter Prozessschritte zu erläutern. Abschnitt 2.6 fasst die Anforderungen in Bezug auf die Modellierung eines geplanten Systems von Wertströmen und die Optimierung des Modells zusammen. 2.1 Kontext: strategische Planung technischer Kapazität in der Serienfertigung Die Planung der Produktion umfasst eine Vielzahl von Aktivitäten, deren gemeinsames Ziel es ist, durch vorausschauende Betrachtung die Voraussetzungen zur wirtschaftlichen Ausführung aller Abläufe zu schaffen. Diese Aktivitäten unterscheiden sich u. a. im Hinblick darauf, ob zum einen die Auslastung von Anlagen oder zum anderen der Einsatz von Mitarbeitern geplant werden soll. Weiterhin ist entscheidend, wie weit die Planung in die Zukunft reicht und welche Größenordnung die Stückzahlen annehmen. Daraus folgen unterschiedliche Anforderungen an eine Software zur Untersützung der Planungsaktivitäten. Um die Bedingungen zu beschreiben, unter denen die Ergebnisse dieser Arbeit in der Praxis anwendbar sind, muss deshalb der Kontext des untersuchten Problems eindeutig eingegrenzt werden. Wie in Abbildung 2.1 schematisch dargestellt ist, werden zu diesem Zweck drei Teilgebiete der Produktionsplanung herausgegriffen, welche den Raum der Aktivitäten in der Planung jeweils entlang einer Dimension einschränken: (1) technische Kapazität vs. Personalkapazität (gemäß Produktionsfaktor), (2) strategische Planung vs. operative Planung (gemäß Zeithorizont), (3) Serienfertigung (Serienfabrikation) vs. Einzelfertigung (gemäß Produktionstyp). Technische Kapazität vs. Personalkapazität. Der Fokus liegt in dieser Arbeit auf der Produktion von verkaufsfähigen Gütern in einem Unternehmen (in Abgrenzung zu anderen betriebswirtschaftlichen Funktionen wie z. B. der Produktentwicklung, dem Einkauf und dem Vertrieb) und diesbezüglich auf der Planung der technischen Kapazität. Diese unterscheidet sich von der Planung der Personalkapazität grundsätzlich im Hinblick auf den 10 2.1 Kontext: strategische Planung technischer Kapazität in der Serienfertigung Strategische Planung Operative Planung Einzelfertigung Serienfertigung PEK TEK Abbildung 2.1: Kontext des betrachteten Problems (Planungsdimensionen). Festlegung auf drei Teilgebiete der Produktionsplanung entlang je einer Dimension: technische Kapazität vs. Personalkapazität (TEK bzw. PEK, gemäß Produktionsfaktor), strategische Planung vs. operative Planung (gemäß Zeithorizont) und Serienfertigung vs. Einzelfertigung (gemäß Produktionstyp). jeweils begrenzenden Produktionsfaktor (Produktionsanlagen bzw. Produktionsmitarbeiter), welcher die maximal erreichbaren Stückzahlen bedingt: (a) technische Kapazität (TEK): maximale Stückzahlen bestimmt durch die Zahl, Funktion und den Nutzungsgrad der Produktionsanlagen; (b) Personalkapazität (PEK): maximale Stückzahlen bestimmt durch die Zahl, Qualifikation, Verfügbarkeit und die Leistung der Produktionsmitarbeiter. In der vorliegenden Arbeit wird von einer zumindest teilweise automatisierten Produktion ausgegangen. Das heißt, die Abläufe erfordern ggf. den Einsatz von Personal, in jedem Fall aber den Einsatz von Produktionsanlagen, im weiteren Verlauf der Arbeit zusammengefasst als Maschinen, Anlagen und Einrichtungen (MAEs). Im Allgemeinen ist es umso wichtiger, alle zur Verfügung stehenden MAEs effektiv einzusetzen, je höher der Grad der Automatisierung in der Produktion ist. Der Grund dafür ist, dass neben den Betriebskosten (variable Kosten) bedingt durch die Abschreibung des Vermögenswertes der MAEs unabhängig von deren Nutzung periodische Kosten entstehen (Fixkosten). Die Kosten für Mitarbeiter in der Produktion werden dagegen v. a. durch die Anwesenheitszeit bestimmt, die mit Hilfe von Instrumenten wie Arbeitszeitkonten, Versetzungen und Verleihungen von Mitarbeitern sowie durch die Anpassung der Schichtmodelle vergleichsweise flexibel an die jeweils angefragten Stückzahlen angepasst werden kann (im Wesentlichen variable Kosten). Da in einer teilautomatisierten Produktion Personal zum Betrieb von MAEs notwendig ist, existieren Abhängigkeiten zwischen TEK und PEK. Der Personalbedarf, die erforderliche Anwesenheitszeit von Mitarbeitern zur Steuerung der Anlagen, folgt näherungsweise proportional der erwarteten Auslastung. Des Weiteren können Investitionen in Produktionsanlagen mit höherem Automatisierungsgrad den Personalbedarf reduzieren. Wird das eingesetzte Personal verringert, bewirkt dies eine einmalige Steigerung der Produktivität bezogen auf die Anwesenheitszeit der Mitarbeiter. Zur kontinuierlichen Steigerung der Produktivität muss die Automatisierung um ein Produktivitätsmanagement ergänzt werden (siehe u. a. Sauter und von Killisch-Horn 2010, Grotepaß et al. 2014). 11 2 Lösungsvorbereitung: Systemanalyse Strategische Planung vs. operative Planung. Im Schlaglicht der nachfolgenden Untersuchungen steht die strategische Planung, die mit Bezug auf den Zeithorizont der Aktivitäten gemessen ab dem Zeitpunkt der Betrachtung von der operativen Planung zu unterscheiden ist. Hierzu wird ein Schwellwert von einem Jahr festgelegt, welcher das Verständnis des Begriffs in der unternehmerischen Praxis bei der Bosch Rexroth AG widerspiegelt. Entsprechend werden die beiden Begriffe wie folgt voneinander abgegrenzt: (a) strategische, d. h. langfristige Planung: alle Planungsaktivitäten mit einem Zeithorizont ab dem Betrachtungszeitpunkt von mehr als einem Jahr; (b) operative, d. h. kurz- und mittelfristige Planung: alle Planungsaktivitäten mit einem Zeithorizont ab dem Betrachtungszeitpunkt von höchstens einem Jahr. Im Mittelpunkt der strategischen Planung der TEK, wie sie in der Arbeit verstanden wird, stehen die Kapazitäten zur Herstellung von Produkten, die daraus folgende Auslastung aller MAEs und die Investitionen in MAEs, die zur Fertigung und Montage der geplanten Stückzahlen erforderlich sind. Es werden drei Planungsziele verfolgt: maximale Kapazitäten: maximale Produktstückzahlen, wobei die Bedingung gelten muss, dass die Auslastung keiner MAE einen Wert von 100 Prozent überschreitet; minimale Investitionen: minimaler Bedarf zusätzlicher MAEs zur Fertigung und Montage aller Produkte in den geplanten Stückzahlen; optimale Auslastung: optimale Verteilung der geplanten Stückzahlen aller Produkte unter Nutzung der verfügbaren MAEs. Festzuhalten ist an dieser Stelle, dass die zu erläuternden Planungsziele als Funktionen der Stückzahlen und der Auslastung aller MAEs darstellbar sind. Die Stückzahlen sind je nach Planungsziel gesucht oder gegeben. Die Auslastung der MAEs wird im langfristigen Mittel des Planungsintervalls (i. d. R. Quartal, Halbjahr oder Jahr) bestimmt und ist abhängig von der Struktur des geplanten Systems, den Taktzeiten der Prozessschritte, den Betriebsmittelzeiten der genutzten MAEs und den Stückzahlen der Produkte. Serienfertigung vs. Einzelfertigung. Die im Rahmen der Arbeit getroffenen Annahmen und die davon abgeleiteten Ergebnisse gelten in erster Linie für den Produktionstyp der Serienfertigung, welcher von der Einzelfertigung zu unterscheiden ist. Laut dem Verband für Arbeitsgestaltung, Betriebsorganisation und Unternehmensentwicklung (REFA), einer führenden Organisation im Bereich des Industrial Engineering, liegt eine Serienfertigung vor, wenn »gleichartige Gegenstände in größeren Stückzahlen« hergestellt werden (Hammer 1997, S. 178, dort unter dem Begriff der Serienfabrikation aufgeführt). In diesem Fall ist es zur strategischen Planung der TEK zulässig, für jeden Prozessschritt eines Produkts eine Taktzeit als Sollzeit vorzugeben. Dagegen ist das im Fall einer Einzelfertigung im Allgemeinen nicht möglich, da jeweils nur eine begrenzte Stückzahl mit der gleichen Taktzeit gefertigt bzw. montiert wird. Entsprechend beruht die Abgrenzung der zwei genannten Produktionstypen auf einer bestimmten Stückzahl einzelner Produktvarianten in einem gegebenen Zeitintervall, wofür in der Literatur verschiedene Werte genannt werden. Folgende monatliche Zahlen sollen als ein Anhaltspunkt dienen (siehe Schlegel 2002, S. 19): 12 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen (a) Serienfertigung (Mittel-, Großserien- und Massenfertigung): 20 Stück/Monat (b) Einzelfertigung (einschließlich Kleinserienfertigung): 20 Stück/Monat Besondere Anforderungen an die Planung stellt der Fall einer variantenreichen Serienfertigung, wie er häufig bei der Bosch Rexroth AG anzutreffen ist. Der Begriff der Variantenvielfalt bezieht sich in dem Zusammenhang sowohl auf die Produkte als auch auf die Prozessschritte. Zum einen muss zwischen verschiedenen Prozessschritten unterschieden werden, um die Varianten der Produkte zu fertigen und zu montieren. Zum anderen besteht in vielen Fällen die Möglichkeit, zur Herstellung eines Produkts zwischen verschiedenen Prozessschritten frei zu wählen. Die daraus folgenden Bedingungen bzw. Freiheitsgrade werden im Verlauf des Kapitels durch die rekursive Verknüpfung von Prozessschritten zu Prozessen formalisiert. Ein weiteres hervorzuhebendes Merkmal der variantenreichen Serienfertigung, die Überlagerung der Prozessschritte, betrifft die Nutzung der MAEs. Darunter wird in dieser Arbeit verstanden, dass MAEs im Planungsintervall von mehreren Prozessschritten beansprucht werden. Wenn für deren Auslastung ein Höchstwert vorgegeben ist, dann beschränken sich die erreichbaren Stückzahlen der jeweiligen Prozessschritte gegenseitig. All diese Merkmale eines Produktionssystems steigern die Komplexität und müssen in der Planung der TEK berücksichtigt werden. Zuerst wird die Struktur solcher Systeme analysiert, welche aus Prozessschritten, Prozessen und Wertströmen besteht, bevor die Systemschnittstelle und die Grundlagen der Kalkulation folgen. 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen Ein System ist gemäß VDI eine abgegrenzte Anordnung von Komponenten, die miteinander in einer Beziehung stehen (siehe Richtlinie VDI 3633:1996-11, S. 17). Diese Definition spiegelt das allgemeine Verständnis in Theorie und Praxis wider (siehe u. a. Hammer 1997, S. 187, Ehrlenspiel und Meerkamm 2013, S. 21 ff) und wird jeweils nach Kontext der Untersuchung abgewandelt oder konkretisiert (für eine Diskussion siehe Backlund 2000). Entsprechend wird der Begriff des Systems auch in dieser Arbeit verwendet. Um eine Verwechslung mit den Komponenten zu vermeiden, aus denen ein Produkt laut dessen Stückliste besteht, wird im Folgenden allerdings nicht von Komponenten eines Systems, sondern als rein begriffliche Abweichung von den Elementen eines Systems gesprochen. In diesem Abschnitt soll die Struktur eines Systems sogenannter Wertströme analysiert und mit Hilfe mathematischer Definitionen eindeutig wiedergegeben werden. Auf elementarer Ebene basiert die Systemstruktur auf Prozessschritten zur Fertigung und Montage der gegebenen Produkte. Diese werden durch Verkettung sequenzieller, alternativer und/oder selektiver Verknüpfungen rekursiv zu Prozessen und Wertströmen verbunden. Zur exakten Formulierung der mathematischen Zusammenhänge werden die nachfolgenden Symbole eingeführt. Sie besitzen eine spezifische, z. T. kontextabhängige Bedeutung und ergänzen die in der Literatur verbreiteten, im entsprechenden Verzeichnis aufgeführten Symbolklassen, Operatoren und Standardsymbole: 13 2 Lösungsvorbereitung: Systemanalyse AL(c 1 , c 2 ) c c∗ C alternative Verknüpfung von c 1/2 ∈ VMg(P ), AL(c 1 , c 2 ) ∈ VMg(P ) Operand und/oder Ergebnis einer Verknüpfung, c ∈ VMg(P ), ggf. mit Index 1, 2 usw. Element maximaler Ordnung einer Teilmenge C, c∗ ∈ C Teilmenge einer Verknüpfungsmenge, beschreibt einen geplanten Ablauf zur Fertigung und Montage, C ⊂ VMg(P ), z. B. {PS 1, PS 2, PS 3, AL(PS 1, PS 2), SQ(AL(PS 1, PS 2), PS 3)} i, j natürliche Zahl, jeweils verwendet mit kontextabhängiger Bedeutung, i, j ∈ N oder N0 n Zahl durch Verkettung zu verknüpfender Operanden ci , i ∈ {1, . . . , n}, n ∈ N P Menge der Prozessschritte eines Produkts, z. B. {PS 1, PS 2, . . .} q fixe Quote einer selektiven Verknüpfung, q ∈ (0, 1), ggf. mit Index 1, 2 usw. ′ q resultierende Quote verketteter selektiver Verknüpfungen, q ′ ∈ (0, 1), ggf. mit Index 1, 2 usw. SL(c 1 , c 2 , q) selektive Verknüpfung von c 1/2 ∈ VMg(P ) mit einer fixen Quote q ∈ (0, 1), SL(c 1 , c 2 , q) ∈ VMg(P ) SQ(c 1 , c 2 ) sequenzielle Verknüpfung von c 1/2 ∈ VMg(P ), SQ(c 1 , c 2 ) ∈ VMg(P ) VMg(P ) Verknüpfungsmenge von P, z. B. {PS 1, PS 2, PS 3, . . . , ∅, SQ(PS 1, PS 2), AL(PS 1, PS 2), SL(PS 1, PS 2, q), . . . , SQ(SQ(PS 1, PS 2), PS 3), . . . : q ∈ (0, 1)} VMg(P, i ) Verknüpfungsmenge von P einer Ordnung i ∈ N0 , z. B. VMg(P, 0) = {PS 1, PS 2, . . . , ∅}, VMg(P, 1) = {SQ(PS 1, PS 2), AL(PS 1, PS 2), SL(PS 1, PS 2, q), . . . : q ∈ (0, 1)} usw. 2.2.1 Prozessschritte, Stückzahlverteilung und Verknüpfungstypen Begriff des Prozessschritts. Ein Vorgang, mit gleicher Bedeutung in der Literatur auch Arbeitsvorgang oder Arbeitsgang genannt, ist laut REFA definiert als eine Arbeit, die einem bestimmten Zweck dient und stets am selben Ort, in derselben Zeit, mit denselben Personen und denselben Arbeitsmitteln ausgeführt wird (siehe Hammer 1997, S. 41 f). Das heißt, nicht nur die Eigenschaften und der Nutzungsgrad der Produktionsanlagen bestimmen die geplante Zeitdauer eines Vorgangs. Darüber hinaus müssen die Verfügbarkeit, die Qualifikation und die Leistung der einzusetzenden Produktionsmitarbeiter in der operativen und strategischen Planung der Kapazität berücksichtigt werden. Da allerdings im Kontext dieser Arbeit die Planung der TEK betrachtet wird, soll vorausgesetzt werden, dass Mitarbeiter mit der geforderten Qualifikation stets in ausreichender Zahl zur Verfügung stehen. Um diese grundlegende Annahme für die Kalkulation von Kapazität, Auslastung und Investitionen festzuhalten, wird für die weitere Analyse in Anlehnung an die obige Definition des Vorgangs der Begriff des Prozessschritts geprägt: Definition 2.1: Prozessschritt. Ein Prozessschritt ist ein mindestens teilweise maschineller Vorgang zur Fertigung und Montage eines Produkts, der unter idealen Voraussetzungen im Hinblick auf die nötigen Arbeitspersonen stets in derselben Zeit sowie mit demselben Ergebnis ausgeführt wird und in entsprechender Weise geplant werden kann. Jedem Prozessschritt ist eine bestimmte Maschine, Anlage oder Einrichtung zugeordnet, die im Planungsintervall auch anderen Prozessschritten zugewiesen sein kann, aber zu jedem Zeitpunkt nur für einen einzigen Prozessschritt genutzt werden darf. Der damit definierte Begriff des Prozessschritts ist von der sogenannten Prozesszeit abgeleitet. Laut REFA (Hammer 1997, S. 160) bezeichnet die Prozesszeit die »Nutzungszeit von Betriebsmitteln [MAEs], die von diesen, aber nicht von der Arbeitsperson beeinflusst wird«. Im Folgenden wird von Prozessschritten und Prozessen gesprochen, um dadurch zu betonen, dass maßgeblich die MAEs die Nutzungszeit bestimmen. Mit Blick auf den Zeitanteil, 14 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen der von der Arbeitsperson abhängig ist, wird dagegen stets von idealen Voraussetzungen ausgegangen. Das heißt, zur Planung der TEK wird immer die kürzestmögliche Nutzungszeit angenommen, die mit der jeweils gegebenen MAE erzielt werden kann. Zu maschinell unterstützten Vorgängen, d. h. zu Prozessschritten im Verständnis der oben stehenden Definition, zählen neben nicht wertschöpfenden Tätigkeiten wie dem Messen und Prüfen außerdem alle Fertigungsverfahren. Gemäß der Norm DIN 8580:2003-09 werden diese in die folgenden Hauptgruppen untergliedert: (1) Urformen (generative Fertigungsverfahren wie z. B. Gießen, Sintern und Pasten), (2) Umformen (z. B. Walzen, Gesenkschmieden, Pressen, Tiefziehen und Biegen), (3) Trennen (Zerspanen wie z. B. Sägen, Hobeln, Fräsen, Bohren, Drehen und Schleifen, außerdem Schneiden, Funkenerodieren und Demontieren), (4) Fügen (z. B. Schweißen, Löten, Kleben, Montieren, Nieten und Schrauben), (5) Beschichten (z. B. Lackieren, Galvanisieren, Pulverbeschichten und Feuerverzinken), (6) Ändern von Stoffeigenschaften (z. B. Härten und Glühen). Verknüpfung von Prozessschritten. Jeder Vorgang ist laut REFA Teil einer zu leistenden Gesamtarbeit (siehe Hammer 1997, S. 41), und entsprechend wird auch jeder Prozessschritt mit anderen Prozessschritten zu einem oder mehreren Prozessen verknüpft. Es stellt sich die Frage, welche Typen der Verknüpfung hierbei unterschieden werden müssen. Um diese zu beantworten, wurde vor Erstellung der Arbeit eine Reihe von Workshops mit erfahrenen Fachexperten und verantwortlichen Führungskräften der Bosch Rexroth AG durchgeführt. Zur Diskussion stand dabei die zukünftige Planung der Kapazität, der erwarteten Auslastung und der erforderlichen Investitionen mit strategischem Zeithorizont, wie im ersten Abschnitt des Kapitels festgehalten. Als Ergebnis von darauf basierenden, eigenen Überlegungen werden die drei Typen der sequenziellen, alternativen und selektiven Verknüpfung eingeführt. Zunächst sollen sie formal beschrieben werden, um in den nachfolgenden Abschnitten ihre Bedeutung durch ausgewählte Beispiele zu veranschaulichen. Durch die geeignete Kombination von Verknüpfungen der verschiedenen Typen ist es möglich, Abläufe zur Fertigung und Montage eines Produkts zum Zweck der strategischen Planung der TEK eindeutig zu erfassen, wie Abbildung 2.2 für ein einfaches Beispiel zeigt. Jeder mögliche Fall, wie komplex er auch zuerst erscheinen mag, kann auf eine verkettete Verknüpfung von einzelnen Prozessschritten zurückgeführt und als solche beschrieben werden. Zum Beleg dieser Aussage wird ein mathematischer, auf dem Prinzip der Rekursion aufbauender Formalismus entwickelt und mengentheoretisch definiert. Der Ablauf der Rekursion ist folgender: Zunächst wird ein Prozessschritt zur Fertigung und Montage eines Produkts mit einem zweiten Prozessschritt oder mit einem Bypass sequenziell, alternativ oder selektiv verknüpft (Rekursionsanfang). Ein Bypass bezeichnet in dem Zusammenhang einen Ablaufabschnitt, den ein Teil der Produktstückzahl anstelle von einem oder mehreren Prozessschritten ohne Zeitverzögerung durchläuft. Danach wird das Ergebnis der Verknüpfung in der gleichen Weise wieder mit einem Prozessschritt, einem Bypass oder mit dem Ergebnis einer anderen Verknüpfung geeignet verbunden (Rekursionsschritt). Der zuletzt genannte Schritt wird wiederholt, bis alle Prozessschritte gemäß dem geplanten Ablauf miteinander verknüpft sind. 15 2 Lösungsvorbereitung: Systemanalyse A Drehmaschine 1 Drehen/A P 80 % Takt [1/A] Betriebsmittelzeit [1] (Bypass) Induktionsanlage Härten Drehmaschine 2 Drehen/B Takt [1/B] P Takt [2] Messvorrichtung Betriebsmittelzeit [3] Prüfen Takt [3] 20 % B P P Betriebsmittelzeit [2] Betriebsmittelzeit [4] Abbildung 2.2: Verknüpfung von Prozessschritten zu Prozessen (Beispiel). Im gezeigten Beispiel sind vier Prozessschritte mit je einer MAE vorgegeben, von denen jedes Stück des Produkts nacheinander zwei bzw. zu einem fix vorgegebenen Anteil drei durchläuft (sequenzielle Verknüpfung, ‘Drehen’, ‘Härten’ bzw. ‘Prüfen’). Für den ersten Prozessschritt existieren zwei frei wählbare Möglichkeiten (alternative Verknüpfung, ‘Drehen/A’ und ‘B’). Den dritten Prozessschritt (‘Prüfen’) durchlaufen stets genau 20 Prozent der Stückzahl (selektive Verknüpfung). Dies entspricht vier möglichen Folgen von Prozessschritten für jedes Stück des Produkts, d. h. vier Prozessen. Im Weiteren werden die definitorischen Grundlagen geschaffen, um die Ergebnisse rekursiv verketteter Verknüpfungen zu beschreiben. Wie ein Beispiel zum Abschluss verdeutlichen soll, ist jeder geplante Ablauf eindeutig als eine endliche Teilmenge der unendlichen Menge aller möglichen Ergebnisse darstellbar. Zunächst werden die Prozessschritte eines gegebenen Produkts zu einer Menge P zusammengefasst. Von dieser wird wiederum die Verknüpfungsmenge VMg(P ) abgeleitet. Die Menge enthält neben allen Prozessschritten des Produkts aus der zuvor genannten Menge P einen Bypass und die Ergebnisse von allen darauf basierenden rekursiven Verknüpfungen, wobei eine unendliche Zahl von Rekursionsschritten zulässig, d. h. die Rekursionstiefe nicht beschränkt ist. Damit ist es nun möglich, die drei zu definierenden Typen von Verknüpfungen formal als Abbildungen von Elementen zu Ergebnissen innerhalb einer Menge auszudrücken. Hierzu wird jedem möglichen Paar verknüpfter Elemente c 1/2 aus der Menge VMg(P ), welche als Operanden bezeichnet werden, ein Ergebnis c derselben Menge zugeordnet. Das entspricht folgender Zuordnungsvorschrift für den Fall einer sequenziellen (SQ) bzw. alternativen (AL) Verknüpfung: SQ, AL : VMg(P ) × VMg(P ) → VMg(P ) , (c 1 , c 2 ) 7→ c . (2.1) Im Fall einer selektiven Verknüpfung (SL) werden die Operanden c 1/2 um einen Parameter q im Intervall (0, 1) erweitert, dessen Rolle zu einem späteren Zeitpunkt dargelegt werden soll. Die entsprechende Zuordnungsvorschrift für den dritten Verknüpfungstyp lautet analog zu oben stehender Gleichung (2.1) in formaler Notation: SL : VMg(P ) × VMg(P ) × (0, 1) → VMg(P ) , (c 1 , c 2 , q) 7→ c . 16 (2.2) 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen Es wird deutlich, dass Verknüpfungen zweier Elemente der Menge VMg(P ) in jedem Fall wieder zu einem Element derselben Menge führen. Gesucht ist eine geeignete, rekursive Definition, um diese Menge eindeutig zu beschreiben. Hierzu werden in einem Zwischenschritt die zu Beginn der Rekursion vorgegebenen und die nach jedem Rekursionsschritt erzeugten Elemente jeweils zusammengefasst. Die daraus resultierenden, zueinander disjunkten Mengen werden Verknüpfungsmengen VMg(P, i ) der Ordnungen i genannt, wobei eine Ordnung gleich null den Rekursionsanfang und Ordnungen einer natürlichen Zahl größer als null den jeweiligen Rekursionsschritt bezeichnen. Die Menge VMg(P, 0) enthält die Prozessschritte der Menge P sowie einen Bypass. Demgegenüber werden die Elemente der Mengen VMg(P, i ) aller natürlichen Ordnungen i größer als null durch Verknüpfungen zweier Operanden c 1/2 gebildet. Die Operanden stammen jeweils aus einer Menge VMg(P, i 1/2 ) einer kleineren Ordnung i 1/2 . Das heißt, es handelt sich um vorgegebene Elemente oder Ergebnisse vorheriger Rekursionsschritte. Zusätzlich muss mindestens einer der Operanden ein Element der Menge VMg(P, i − 1), d. h. ein Ergebnis des unmittelbar vorhergehenden Rekursionsschritts sein. Durch Ergänzung dieser Bedingung spiegelt die Ordnung die Zahl der Rekursionsschritte wider, die ausgeführt werden müssen, um die Elemente zu erzeugen. Damit lautet die Definition der Verknüpfungsmenge VMg(P, i ) einer allgemeinen Ordnung i wie folgt. Definition 2.2: Verknüpfungsmenge VMg(P, i ) einer Ordnung i. Gegeben sei die Menge P der Prozessschritte eines Produkts. Die Verknüpfungsmenge VMg(P, 0) der Ordnung null enthält die Prozessschritte der Menge P und einen Bypass, der formal durch das Symbol der leeren Menge repräsentiert wird. Dies entspricht dem folgenden Ausdruck: i = 0: VMg(P, 0) = P ∪ {∅} . (2.3a) Die Verknüpfungsmenge VMg(P, i ) einer gegebenen natürlichen Ordnung i größer als null enthält die Ergebnisse der sequenziellen, alternativen und selektiven Verknüpfungen aller Paare von Operanden c 1/2 der Verknüpfungsmengen VMg(P, i 1/2 ). Dabei gelten die Bedingungen, dass die Ordnungen i 1/2 kleiner als i und mindestens eine der zwei Ordnungen gleich i −1 sein muss. Das heißt, zumindest ein Operand muss ein Element aus der Verknüpfungsmenge VMg(P, i − 1) sein. Formal ausgedrückt gilt: ½ ³¡ ¢ i ∈ N: VMg(P, i ) = c : ∃i 1 , i 2 ∈ {0, . . . , i − 1} i 1 = i − 1 ∨ i 2 = i − 1 ∧ ∃c 1 ∈ VMg(P, i 1 ) ∃c 2 ∈ VMg(P, i 2 ) ∃q ∈ (0, 1) ¾ ¡ ¢´ c = SQ(c 1 , c 2 ) ∨ c = AL(c 1 , c 2 ) ∨ c = SL(c 1 , c 2 , q) . (2.3b) Unter Verwendung der Definition gilt es nun, den eingangs geprägten Begriff der Verknüpfungsmenge VMg(P ) unabhängig von einer festgelegten, einschränkenden Ordnung zu definieren. Wie zuvor erläutert, enthält die Menge alle zu Beginn gegebenen Elemente und außerdem alle Ergebnisse, die durch Verknüpfungen von zwei Operanden derselben Menge in den darauffolgenden Rekursionsschritten erzeugt werden. Damit verbleibt schließlich nur noch, die disjunkten Mengen aller Ordnungen zu vereinigen. 17 2 Lösungsvorbereitung: Systemanalyse Definition 2.3: Verknüpfungsmenge VMg(P ). Es sei die Menge P der Prozessschritte eines Produkts gegeben. Die Verknüpfungsmenge VMg(P ) folgt aus der disjunkten Vereinigung der Verknüpfungsmengen VMg(P, i ) aller natürlichen Ordnungen i größer als oder gleich null, wie in Gleichung (2.3a, 2.3b) definiert. Dementsprechend gilt: [ VMg(P ) = ˙ VMg(P, i ) . (2.4) i ∈N0 Der in Gleichung (2.4) angegebene Ausdruck beschreibt die Ergebnisse aller möglichen Verknüpfungen basierend auf den Prozessschritten einer Menge P. Um den geplanten Ablauf zur Fertigung und Montage eines Produkts zu erfassen, werden die einzelnen Prozessschritte gemäß dem vorgegebenen Plan auf eindeutige Weise miteinander verbunden. Die Menge dieser Verknüpfungen bezeichnet formal eine endliche Teilmenge C der unendlichen Verknüpfungsmenge VMg(P ). Folglich lässt sich jeder mögliche Ablauf, wie eingangs schon vorweggenommen, durch eine solche Teilmenge beschreiben. Jedes Element der Menge C gehört zur Verknüpfungsmenge VMg(P, i ) einer Ordnung i, welche die Zahl der Rekursionsschritte widerspiegelt, die notwendig sind, um das jeweilige Element zu erzeugen. Für das Verständnis der weiteren Ausführungen ist insbesondere das sogenannte Element c∗ maximaler Ordnung in einer Teilmenge C von Bedeutung. Dieses Element geht als Ergebnis aus dem letzten Rekursionsschritt hervor und wird mit Bezug auf die Menge VMg(P, i ) wie folgt definiert. Definition 2.4: Element c ∗ maximaler Ordnung. Gegeben seien die Menge P der Prozessschritte eines Produkts und eine Teilmenge C der Verknüpfungsmenge VMg(P ), wie in Gleichung (2.4) definiert. Jedes Element der Menge C gehört entsprechend Gleichung (2.3a, 2.3b) zur Verknüpfungsmenge VMg(P, i ) genau einer Ordnung i. Bezug nehmend darauf ist das Element c∗ der maximalen Ordnung in der Menge C durch die notwendige Bedingung charakterisiert, dass innerhalb dieser Menge kein anderes Element zur Verknüpfungsmenge VMg(P, j ) einer Ordnung j gehört, die größer ist als die Ordnung i. Im allgemeinen Fall verknüpfter Prozessschritte ist das Element c∗ maximaler Ordnung das Ergebnis derjenigen Verknüpfung, die ggf. nach Verkettung weiterer Verknüpfungen alle anderen Elemente verbindet. Im einfachen Fall eines einzelnen Prozessschritts oder Bypasses werden keine Elemente verknüpft, die Rekursion endet bereits vor ihrem Beginn, und das Element c∗ bezeichnet diesen Prozessschritt bzw. Bypass. In einer endlichen Teilmenge C der Verknüpfungsmenge VMg(P ), die einen geplanten, d. h. insbesondere einen lückenlosen Ablauf beschreibt, existiert stets genau ein solches Element. Der Grund dafür ist, dass jedes Paar von Elementen einer solchen Menge in einer bestimmten Beziehung zueinander steht. Entweder ist eines der beiden Elemente das Ergebnis einer ggf. verketteten Verknüpfung mit dem anderen Element als einem Operanden, oder die Elemente werden im Rekursionsverlauf miteinander verknüpft. Im ersten Fall besitzen die zwei Elemente jeweils verschiedene Ordnungen. Im zweiten Fall muss die Menge C ein weiteres, drittes Element enthalten, welches dem Ergebnis der Verknüpfung entspricht und dessen Ordnung laut Definition 2.2 größer als jene beider Elemente ist. 18 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen Verteilung der Produktstückzahl. Die Definitionen bilden in ihrer Gesamtheit einen Formalismus für die Struktur eines Systems von Wertströmen. Dieser ermöglicht es, jeden geplanten Ablauf rekursiv aus Prozessschritten einer Menge P zusammenzusetzen und eindeutig als eine endliche Teilmenge C der Verknüpfungsmenge VMg(P ) auszudrücken. Darauf aufbauend wird im Folgenden dargelegt, wie jedem Prozessschritt ein konstanter oder variabler Anteil der Stückzahl zugewiesen wird. Die Verteilung bestimmt, in welchem Ausmaß die jeweils zugeordneten MAEs genutzt werden und ist entsprechend Grundlage für die Kalkulation von Kapazität, Auslastung und Investitionen. Der Stückzahlanteil eines Prozessschritts folgt aus zwei Prämissen: (1) Die Stückzahl des Produkts durchläuft das Element c∗ maximaler Ordnung in der je nach Planungsziel gesuchten oder gegebenen, unverminderten Höhe; (2) für jede Verknüpfung zweier Operanden gilt, dass der Anteil der Stückzahl, welcher durch das Ergebnis verläuft, nach bestimmten Bedingungen auf die Operanden verteilt und in dem Zuge ggf. reduziert wird. Das heißt, in der umgekehrten Reihenfolge, in der sich die Prozessschritte des Produkts im Rekursionsverlauf zum Element c∗ maximaler Ordnung fügen, wird die Stückzahl von diesem Element an die Prozessschritte weitergegeben. Die Bedingungen der Verteilung sind vom Typ der Verknüpfung und ggf. einem zusätzlichen Parameter q abhängig. Es folgen die Definitionen und die Anwendungsfälle der drei Verknüpfungstypen. Definition 2.5: Sequenzielle Verknüpfung SQ(c 1 , c 2 ). Gegeben sei die Menge P der Prozessschritte eines Produkts. Von einem Element c der Verknüpfungsmenge VMg(P ) sei bekannt, dass dieses Element, wie in Gleichung (2.1) festgehalten, als Ergebnis aus der sequenziellen Verknüpfung SQ(c 1 , c 2 ) zweier Operanden c 1/2 derselben Menge folgt. In einem solchen Fall gilt die Bedingung, dass die Stückzahlen, die jeweils durch diese drei Elemente verlaufen, immer den gleichen Wert annehmen müssen. Bemerkung: Die Definition trifft bewusst keine Aussage über die Reihenfolge der verknüpften Elemente c 1/2 im Ablauf der Fertigung und Montage. Diese ist zwar entscheidend für die allgemeine Planung, Steuerung und Ausführung des Ablaufs, aber nicht für die Kalkulation der mittleren Auslastung genutzter MAEs im Planungsintervall. Der Anwendungsfall sequenzieller Verknüpfungen sind Prozessschritte in der Fertigung und Montage eines Produkts, die laut Plan nacheinander ausgeführt werden müssen. Zu Beispielen zählen Prüfvorgänge nach einer Bearbeitung und Stufen der Wertschöpfung in der Produktion, die mit derselben oder verschiedenen MAEs ausgeführt werden. Im Fall einer alternativen oder einer selektiven Verknüpfung wird die Stückzahl dagegen nicht unverändert weitergegeben. Stattdessen wird sie gemäß einem variablen bzw. fix vorgegebenen Verhältnis auf die miteinander verknüpften Elemente verteilt. Definition 2.6: Alternative Verknüpfung AL(c 1 , c 2 ). Gegeben sei die Menge P der Prozessschritte eines Produkts. Von einem Element c der Verknüpfungsmenge VMg(P ) sei bekannt, dass dieses Element, wie in Gleichung (2.1) festgehalten, als Ergebnis aus der alternativen Verknüpfung AL(c 1 , c 2 ) zweier Operanden c 1/2 derselben Menge folgt. Diesen Operanden sei je eine nichtnegative reelle Variable zugeordnet, die dem Stückzahlanteil entsprechen soll, der durch das jeweilige Element verläuft. In dem Fall gilt die Bedingung, dass die Summe 19 2 Lösungsvorbereitung: Systemanalyse dieser Variablen, die als Prozessstückzahlen bezeichnet werden, immer gleich der Stückzahl sein muss, welche das Ergebnis c der Verknüpfung durchläuft. Das heißt, jedem alternativ verknüpften Prozessschritt ist zur Planung der TEK eine nichtnegative reelle Prozessstückzahl zuzuweisen, die ausdrückt, welcher Anteil der Stückzahl des Produkts den jeweiligen Abschnitt durchläuft. Den Anwendungsfall bilden Prozessschritte, die sich bezüglich Taktzeiten, nachfolgender Prozessschritte und/oder MAEs unterscheiden, aber gegeneinander ausgetauscht werden können. Darunter wird verstanden, dass die Stückzahl frei unter ihnen verteilt werden kann, ohne das Ergebnis, d. h. das gefertigte oder montierte Produkt, zu beeinflussen. Beispiele hierfür sind die parallele Fertigung mit mehreren MAEs oder eine teilautomatisierte Bearbeitung, die bei Bedarf anstelle einer vollständig automatisierten Bearbeitung mit einer manuellen MAE ausgeführt wird. Im Fall einer selektiven Verknüpfung wird die Stückzahl in ähnlicher Weise auf die jeweils miteinander verbundenen Elemente verteilt. Allerdings ist die Verteilung in dem Fall nicht variabel, sondern an einen Parameter q gekoppelt. Definition 2.7: Selektive Verknüpfung SL(c 1 , c 2 , q). Gegeben sei die Menge P der Prozessschritte eines Produkts. Von einem Element c der Verknüpfungsmenge VMg(P ) sei bekannt, dass dieses Element, wie in Gleichung (2.2) festgehalten, als Ergebnis aus einer selektiven Verknüpfung SL(c 1 , c 2 , q) zweier Operanden c 1/2 derselben Menge folgt. Dabei repräsentiert der Parameter q eine fix vorgegebene Quote im Intervall (0, 1). In dem Fall gilt die Bedingung, dass der Stückzahlanteil, welcher jeweils die Elemente c 1 und c 2 durchläuft, im Verhältnis zur Stückzahl, die durch das Ergebnis c verläuft, immer gleich dem Wert der Quote q bzw. dem verbleibenden Wert 1 − q sein muss. Der erste Anwendungsfall selektiver Verknüpfungen betrifft die Trennung von einzelnen Prozessschritten für Varianten eines Produkts. Beispielsweise werden zur Herstellung einer Standardvariante und einer Sondervariante häufig Prozessschritte ausgeführt, die sich in Bezug auf die Taktzeiten, nachfolgende Prozessschritte im Wertstrom des Produkts und/ oder zugeordnete MAEs voneinander unterscheiden (indem z. B. je nach Variante eine Standardmontagelinie bzw. eine Sondermontagelinie genutzt wird). Der zweite Anwendungsfall bezieht sich auf notwendige, aber nicht wertschöpfende Tätigkeiten, die für einen fixen relativen Anteil der Stückzahl ausgeführt werden (z. B. eine Prüfung von 20 Prozent, wie in Abbildung 2.2 auf Seite 16 dargestellt). In entsprechenden Beispielen werden die betreffenden Prozessschritte selektiv mit einem Bypass verknüpft, sodass der verbleibende Anteil der Stückzahl (im gerade genannten Beispiel 80 Prozent) an den verknüpften Prozessschritten vorbeigeführt wird, ohne dass eine andere MAE genutzt wird. Verknüpfung von n Operanden. Jede Verknüpfung verbindet unabhängig von ihrem Typ zwei Operanden aus der Menge VMg(P ). Indem das Ergebnis einer Verknüpfung in der gleichen Weise mit einem weiteren Element aus dieser Menge verbunden wird, ist es möglich, die Definitionen der Verknüpfungstypen auf eine beliebige Zahl n von mehr als zwei Operanden ci zu erweitern. Um n Elemente zu verknüpfen, werden hierzu n − 1 Verknüpfungen desselben Typs nacheinander verkettet. Zuerst wird das Ergebnis, welches aus der Verknüpfung der zwei Elemente c 1/2 hervorgeht, mit dem Element c 3 verbunden, danach 20 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen das Ergebnis mit dem Element c 4 usw. Die dadurch beschriebene Verkettung führt im Fall sequenzieller Verknüpfungen zu dem folgenden Ausdruck: · ³ ¸ ¡ ¢ ´ c = SQ SQ . . . SQ SQ(c 1 , c 2 ), c 3 , . . . , cn . (2.5) Analog zu Gleichung (2.5) lautet der zugehörige Ausdruck zur Verkettung einer beliebigen Zahl von Verknüpfungen im alternativen Fall: · ¸ ³ ¡ ¢ ´ c = AL AL . . . AL AL (c 1 , c 2 ), c 3 , . . . , cn . (2.6) Im Fall selektiver Verknüpfungen ist es dagegen nicht möglich, die Definition in einer vergleichbar einfachen Weise auf n Operanden zu erweitern. Der Grund ist, dass die Quoten selektiver Verknüpfungen multipliziert werden müssen, wenn letztere miteinander verkettet werden. Nimmt man für jede dieser n − 1 Verknüpfungen eine Quote q an, ist der Stückzahlanteil, der letztlich durch das erste Element verläuft, gleich dem Wert q n−1. Deshalb wird im Weiteren unterschieden zwischen den fixen Quoten qi auf der einen Seite, die je einer Verknüpfung als Parameter zugeordnet werden, und den resultierenden Quoten qi′ auf der anderen Seite, welche jeweils dem Stückzahlanteil des Elements ci entsprechen sollen und als Ergebnis aus der Verkettung aller Verknüpfungen hervorgehen. Für jeden Operanden c 1 bis cn−1 sei je eine resultierende Quote qi′ im Intervall (0, 1) gegeben, wobei analog zur Definition für den Fall zweier Operanden Folgendes gefordert wird: Im Verhältnis zu der Stückzahl, die durch das Ergebnis c verläuft, muss der Stückzahlanteil der Elemente c 1 bis cn−1 jeweils immer gleich dem Wert der resultierenden Quote qi′ mit entsprechendem Index i und der Stückzahlanteil des Elements cn immer gleich dem zu eins verbleibenden Wert sein. Da negative Stückzahlen ausgeschlossen werden sollen, wird als zusätzliche Einschränkung vorausgesetzt, dass die Summe der resultierenden Quoten q 1′ ′ bis qn−1 kleiner als eins ist. Gesucht sind die fixen Quoten qi , um alle n Elemente selektiv zu verknüpfen. Um diese zu bestimmen, gilt es zuallererst, das Ergebnis c der Verkettung in Abhängigkeit von den fixen Quoten qi zu formulieren: · ³ ¸ ¡ ¢ ´ c = SL SL . . . SL SL(c 1 , c 2 , q 1 ), c 3 , q 2 , . . . , cn , qn−1 . (2.7) Auf dieser Basis ist im nächsten Schritt ein Ausdruck für die fixen Quoten qi der einzelnen Verknüpfungen abhängig von den resultierenden Quoten qi′ gesucht. Um den Anteil der Stückzahl zu bestimmen, welcher letztendlich das erste Element durchläuft, muss die Stückzahl gemäß den verketteten selektiven Verknüpfungen mit den Quoten q 1 bis qn−1 multipliziert werden. Für das zweite Element gilt als Folge der Verknüpfung mit dem ersten Element, dass die insgesamt gegebene Stückzahl in diesem Fall nicht mit der Quote q 1, sondern mit dem Faktor 1 − q 1 und zusätzlich wieder mit allen Quoten q 2 bis qn−1 multipliziert werden muss. Nach der gleichen Überlegung gilt für das dritte Element, dass die Stückzahl als Konsequenz der Verknüpfung mit den zwei vorigen Elementen mit dem Faktor 1 − q 2 sowie mit den Quoten q 3 bis qn−1 von allen jeweils nachfolgenden verketteten Verknüpfungen 21 2 Lösungsvorbereitung: Systemanalyse zu multiplizieren ist. Führt man dieses Vorgehen bis zum Element cn−1 fort, dann folgt für ′ die resultierenden Quoten q 1′ bis qn−1 der unten stehende Ausdruck:  n−1  Y    qj , falls i = 1 ,    j =1 (2.8) i ∈ {1, . . . , n − 1} : qi′ =  n−1 Y  ¡ ¢   1 − qi −1 qj , falls i ∈ {2, . . . , n − 1} .    j =i Die Auflösung von Gleichung (2.8) nach qi liefert die gesuchte Lösung. Somit ist es möglich, mehr als zwei Operanden wie in Gleichung (2.7) selektiv zu verknüpfen und die Stückzahl wie gefordert zu verteilen, indem die fixen Quoten qi gemäß folgender Gleichung auf Basis gegebener, resultierender Quoten qi′ festgelegt werden:   qi′+1   1 −  Pi +1 ′ , falls i ∈ {1, . . . , n − 2} ,    j =1 qj i ∈ {1, . . . , n − 1} : qi = (2.9)  n−1  X    qj′ , falls i = n − 1 .   j =1 In aller Kürze, die geboten ist, um zu den kalkulatorischen Grundlagen zu führen, sollen die Schritte eines Induktionsbeweises wiedergegeben und auf formale Weise gezeigt werden, weshalb unter Voraussetzung von Gleichung (2.8) ebenso Gleichung (2.9) gilt. ± Beweis. Aus Gleichung (2.8) folgt durch die Umstellung des Quotienten q 2′ q 1′ unmittelbar, dass die zu zeigende Gleichung (2.9) für q 1 Gültigkeit besitzt (Induktionsanfang): q 2′ i = 1: Daraus folgt: q 1′ = 1 − q1 . q1 (2.10a) q 2′ qi′+1 . = 1− ′ = 1− P q1 = ′ i +1 ′ q 1 + q 2′ q 1 + q 2′ q j j =1 q 1′ (2.10b) Gleichung (2.10b) ist das Ergebnis einer geeigneten Umformung von Gleichung (2.10a) und entspricht, wie leicht zu erkennen ist, Gleichung (2.9) für den Fall von q 1. Setzt man Gleichung (2.9) für qi −1 voraus, folgt aus Gleichung (2.8) durch Umstellung des ± Quotienten qi′+1 qi′ für alle folgenden Quoten qi außer qn−1 (Induktionsschritt): i ∈ {2, . . . , n − 2} : Daraus folgt: 22 qi′+1 qi′ = 1 − qi , wobei qi −1 = 1 − P i (1 − qi −1 ) qi qi′ ′ j =1 qj Pi ′ j =1 qj qi′+1 = 1− P . i +1 ′ ′ q q j j j =1 j =1 qi = P i +1 . (2.11a) (2.11b) 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen ′ Umstellen des Ausdrucks in Gleichung (2.8) für qn−1 nach qn−1 führt unter der Voraussetzung, dass Gleichung (2.9) für qn−2 gültig ist, schließlich zu dem Ergebnis: i = n −1: Daraus folgt: ′ qn−1 ′ qn−1 = (1 − qn−2 ) qn−1 , wobei qn−2 = 1 − P . n−1 ′ q j =1 j qn−1 = n−1 X qj′ . (2.12a) (2.12b) j =1 Das heißt, Gleichung (2.9) resultiert für alle qi , i ∈ {1, . . . , n − 1}, aus Gleichung (2.8). Illustratives Beispiel. Zum besseren Verständnis soll das Beispiel in Abbildung 2.2 auf Seite 16 unter Verwendung der definierten Begriffe auf formale Weise beschrieben werden. Der geplante Ablauf zur Fertigung und Montage des Produkts basiert in dem gegebenen Fall auf einer Menge P, welche die folgenden vier Prozessschritte enthält: P = {‘Drehen/A’, ‘Drehen/B’, ‘Härten’, ‘Prüfen’} . (2.13) Von dieser wird wiederum eine unendliche Verknüpfungsmenge VMg(P ) abgeleitet, welche nach Gleichung (2.4) die Prozessschritte der Menge P, einen Bypass und die Ergebnisse aller möglichen, im Verlauf der Rekursion erzeugten Verknüpfungen zusammenfasst. Die Menge VMg(P ) lässt sich in dem Beispiel wie folgt darstellen (Verknüpfungen zweier Operanden, die jeweils denselben Prozessschritt bezeichnen, werden nicht aufgeführt, auch wenn diese laut Definition 2.3 nicht ausgeschlossen sind): © VMg(P ) = ‘Drehen/A’, ‘Drehen/B’, ‘Härten’, ‘Prüfen’, ∅, SQ(‘Drehen/A’, ‘Drehen/B’), AL(‘Drehen/A’, ‘Drehen/B’), SL(‘Drehen/A’, ‘Drehen/B’, q), . . . , ª SQ(SQ(‘Drehen/A’, ‘Drehen/B’), ‘Härten’), . . . : q ∈ (0, 1) . (2.14) Jeder Ablauf lässt sich eindeutig als eine endliche Teilmenge C ausdrücken, welche die Prozessschritte, ggf. einen Bypass und die Ergebnisse aller gemäß Plan zu berücksichtigenden Verknüpfungen enthält. Die Menge C ist in diesem Beispiel wie folgt definiert: © ª C = ‘Drehen/A’, ‘Drehen/B’, ‘Härten’, ‘Prüfen’, ∅, c 1 , c 2 , c 3 , c 4 , c 1 = AL (‘Drehen/A’, ‘Drehen/B’) , c 2 = SQ(c 1 , ‘Härten’) , c 3 = SL (∅, ‘Prüfen’, 0,8) , c 4 = SQ(c 2 , c 3 ) . (2.15) In dem hier gegebenen Fall bezeichnet das Element c 4 zugleich das Element c∗ maximaler Ordnung. Einsetzen des Elements c 1 in den Ausdruck für c 2 sowie des daraus resultierenden Ausdrucks und des Elements c 3 in den Ausdruck für c 4 liefert für letzteres einen nichtrekursiven, geschlossenen Ausdruck, der nachfolgend angegeben ist: h ¡ i ¢ c 4 = SQ SQ AL(‘Drehen/A’, ‘Drehen/B’), ‘Härten’ , SL(∅, ‘Prüfen’, 0,8) . (2.16) 23 2 Lösungsvorbereitung: Systemanalyse Abbildung 2.3: Ausdrucksbaum einer Verknüpfung von Prozessschritten (Beispiel). Die Blätter des Baums umfassen neben den Prozessschritten des Produkts einen Bypass, der in formalem Zusammenhang als leere Menge dargestellt wird. Der Baum als Ganzes betrachtet und jeder Teilbaum repräsentieren jeweils eine sequenzielle (SQ), alternative (AL) oder selektive (SL) Verknüpfung. Die inneren Knoten des Baums entsprechen den Ergebnissen dieser Verknüpfungen (c 1 bis c 4 ). Unter den Blättern und den inneren Knoten bezeichnet die Wurzel das Element c∗ maximaler Ordnung (c 4 ). A ‘Drehen/A’ B ‘Drehen/B’ AL c1 SQ c2 ‘Härten’ SQ c4 0,8 ∅ SL c3 0,2 ‘Prüfen’ Abbildung 2.3 stellt den Ausdruck grafisch dar, jedoch nicht als Folge von durchlaufenen Prozessschritten, sondern als Baum bestehend aus rekursiv verknüpften Operanden. Zuletzt soll beschrieben werden, wie sich die Verkettung der Verknüpfungen in diesem Beispiel auf die Verteilung der Stückzahl des Produkts und damit auf die Auslastung der zugeordneten Produktionsanlagen auswirkt. Die je nach Planungsziel entweder gesuchte oder gegebene Stückzahl durchläuft das Element c∗ maximaler Ordnung, in diesem Fall das Element c 4 . Gemäß den sequenziellen Verknüpfungen SQ(c 2 , c 3 ) und SQ(c 1 , ‘Härten’), aus welchen das Element c 4 bzw. c 2 resultiert, wird die Stückzahl in unveränderter Höhe an die Elemente c 2 und c 3 bzw. c 1 und den Prozessschritt ‘Härten’ weitergegeben. Als Folge der alternativen Verknüpfung AL(‘Drehen/A’, ‘Drehen/B’), deren Ergebnis das Element c 1 ist, verteilt sich die Stückzahl zu variablen Anteilen auf die Prozessschritte ‘Drehen/A’ und ‘Drehen/B’. Bedingt durch die selektive Verknüpfung SL(∅, ‘Prüfen’, 0,8), aus welcher das Element c 3 folgt, durchläuft ein relativer Anteil der Stückzahl gleich einem Wert von 20 Prozent den letztlich verbleibenden Prozessschritt ‘Prüfen’. Bemerkung: Die eingeführte Notation beschreibt, wie Prozessschritte rekursiv miteinander verknüpft werden. Um auf formale Weise darzustellen, welche MAE einem Prozessschritt jeweils zugeordnet ist, wird die betreffende MAE im weiteren Verlauf in eckigen Klammern nach dem Prozessschritt ergänzt (z. B. ‘Drehen/A’ [‘Drehmaschine 1’]). 2.2.2 Prozesse und Wertströme Begriff des Prozesses. Basierend auf dem Begriff des Prozessschritts und der rekursiven Verknüpfung von Prozessschritten eines Produkts soll im Kontext der vorliegenden Arbeit nachfolgend der Begriff des Prozesses definiert werden. Eine entsprechende Festlegung ist erforderlich, da in der Literatur neben der technischen eine unternehmerische Sicht existiert. Aus technischer Sicht beschreibt ein Prozess die Gesamtheit aller in einem System aufeinander einwirkenden Vorgänge, welche Materie, Energie oder Information umformen, transportieren oder speichern (Definition laut REFA, siehe Hammer 1997, S. 158). Aus unternehmerischer Sicht wird unter einem Prozess eine Tätigkeit verstanden, welche sich über funktionale Grenzen hinweg von einem zum anderen Ende in einem Unternehmen erstreckt und dazu dient, Werte für den Kunden zu schaffen (siehe Hammer 2010, S. 4). Unter 24 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen Zuhilfenahme der vorher eingeführten Begriffe wird die nachfolgende Definition formuliert, die einer Synthese der beiden Sichtweisen gleichkommt: Definition 2.8: Prozess. Ein Prozess ist definiert als eine Folge verknüpfter Prozessschritte zur Fertigung und Montage eines Produkts. Durch sequenzielle Verknüpfungen werden Prozessschritte, die nacheinander ausgeführt werden sollen, zu einem Prozess verbunden; alternative und selektive Verknüpfungen erzeugen für variable bzw. fixe Anteile der Stückzahl verschiedene Folgen von Prozessschritten, d. h. verschiedene Prozesse. Verfolgt man den Weg jedes Stücks durch Fertigung und Montage, dann ist ein Prozess das Ergebnis aller Entscheidungen, welcher der jeweils folgenden Prozessschritte am Punkt einer alternativen oder selektiven Verknüpfung auszuführen ist. Im Fall einer alternativen Verknüpfung kann diese Entscheidung unabhängig für jedes Stück getroffen werden. Dagegen muss im Fall einer selektiven Verknüpfung eine fix vorgegebene Quote in Bezug auf die jeweilige Stückzahl an diesem Punkt erfüllt werden. Begriff des Wertstroms. Der Wertstrom ist eine Metapher, um die Menge aller Aktivitäten zur Schöpfung eines Wertes vom Standpunkt des Kunden zu beschreiben, in diesem Kontext die Prozesse zur Fertigung und Montage eines Produkts. In der Literatur existiert eine Vielzahl unterschiedlicher Definitionen, wobei als Übereinstimmung festzustellen ist, dass sie alle wertschöpfenden Aktivitäten und nicht wertschöpfenden Aktivitäten im Zuge der Leistungserstellung zusammenfassen (siehe u. a. Rother und Shook 1999, S. 3, Erlach 2010, S. 8 f, Singh et al. 2011, S. 799 f). Um die Erzeugung von intellektuellen Werten explizit einzubeziehen, definieren Rother und Shook (1999, S. 3) einen Wertstrom bestehend aus einem sogenannten Produktionsfluss und Entwicklungsfluss: »A value stream is all the actions (both value added and non-value added) currently required to bring a product through the main flows essential to every product: (1) the production flow from raw material into the arms of the customer, and (2) the design flow from concept to launch.« Im Mittelpunkt der vorliegenden Arbeit steht der erste Teil der Definition, d. h. der Produktionsfluss. Wie bei Rother und Shook (1999) wird nicht die Wertschöpfungskette über die organisationalen Grenzen von Unternehmen hinweg betrachtet, sondern die Tür-zu-TürProduktion im eigenen Unternehmen untersucht. Die Aktivitäten in der Produktion lassen sich in die Bewegung von Material und die Planung und Steuerung untergliedern. Gemäß dieser Sichtweise beschreibt der Materialfluss den Weg jedes Stücks durch Fertigung und Montage zwischen Arbeitsplätzen und Lagerorten. Der Informationsfluss dient der Planung und Steuerung des Ablaufs, wobei der Zeithorizont vom jeweiligen Kontext abhängig ist (siehe Rother und Shook 1999, S. 4, Erlach 2010, S. 8, Singh et al. 2011, S. 799 f). Der Begriff des Wertstroms wird oft im Zusammenhang des Wertstrommanagements (engl. Value Stream Management) gebraucht, einer Methode zur Aufnahme, Gestaltung und Planung von Wertströmen in der Produktion. Das allgemeine Ziel dieser Methode ist die Reduktion der Verschwendung, einem Begriff für vermeidbare nicht wertschöpfende Tätigkeiten. Dazu werden der Materialfluss (Arbeitsplätze und Bestände, Materialbereitstellung 25 2 Lösungsvorbereitung: Systemanalyse usw.) und der Informationsfluss (Übermittlung von Daten, Losgrößen, Stückzahlen aller Varianten usw.) entsprechend ausgerichtet (für Konzepte, Modelle und Fallstudien wird auf die zuvor genannte Literatur verwiesen). Statt auf die methodischen Details einzugehen, ist an dieser Stelle festzuhalten, dass der allgemein gebrauchte Wertstrombegriff sämtliche Aspekte von Produktentwicklung und Produktion zusammenfasst. Dieser Umstand führt zu einer großen Zahl verschiedener Darstellungsformen, die sich aufgrund zweier Punkte nur eingeschränkt für die strategische Planung der TEK eignen. Erstens erfordern solche Darstellungen oftmals genaue Informationen zum Produktionsablauf, die ggf. in der Phase der operativen Planung, aber nicht in der Phase der strategischen Planung vorliegen. Diese Aussage gilt insbesondere für Produkte und Prozesse, die zum Zeitpunkt der Planerstellung noch nicht existieren und zu denen keine Erfahrungswerte vorliegen. Als Beispiele seien die Steuerung der Prozesse und die Verwaltung der Bestände genannt, die noch nicht im Detail feststehen, wenn erste Überlegungen zur Errichtung eines Produktionsstandorts angestellt werden. Zweitens werden wichtige Informationen in vielen Fällen zum Zweck der Vereinfachung zusammengefasst, wodurch diese verloren gehen. Beispielsweise werden MAEs ähnlicher Funktion häufig zu einer Gruppe vereinigt (siehe Erlach 2010, S. 8). Ebenso beschränkt sich die Abbildung von alternativen und selektiven Verknüpfungen einzelner Prozessschritte zumeist auf einfache Szenarien (siehe Erlach 2010, S. 81). Um die Auslastung kalkulieren zu können, müssen alle Prozessschritte einbezogen werden, denen eine MAE zugeordnet ist, jedoch wird dies nur selten dargestellt. Letztlich führt der in seinem Wesen mehrdeutige Begriff des Wertstroms zu Darstellungen, die einem anderen Zweck dienen und sich für eine Anwendung in diesem Kontext nicht eignen. Statt aber nur eine neue Darstellungsform zu ergänzen, muss der Begriff selbst konkretisiert werden. Hierzu wird eine eindeutige Definition formuliert, die auf den Prozessschritten eines Produkts und deren verschiedenartiger, rekursiver Verknüpfung basiert. Das Konzept des Materialflusses und Informationsflusses wird dabei übernommen und auf die Struktur eines Systems übertragen, wie sie durch den eingeführten Formalismus beschrieben wird. Die entsprechende, in dieser Arbeit fortan gültige Definition lautet wie folgt: Definition 2.9: Wertstrom. Ein Wertstrom ist definiert als die Gesamtheit aller Prozesse, welche aus der planmäßigen, rekursiven Verknüpfung der Prozessschritte zur Fertigung und Montage genau eines Produkts resultieren. Der Materialfluss beschreibt die möglichen Wege jedes Stücks des jeweiligen Produkts durch die Produktion, d. h. die Abfolge der Maschinen, Anlagen und Einrichtungen, die nacheinander durchlaufen werden, um aus allen Komponenten (materielle Eingabe) das Produkt (materielle Ausgabe) zu fertigen bzw. zu montieren. Zur Planung des Wertstroms ermöglicht es der Informationsfluss, die Stückzahlen des Produkts sowie aller alternativ verknüpften Prozessschritte (Informationseingabe) vorzugeben und die Auslastung (Informationsausgabe) zurückzugeben. Wie auch der Begriff des Wertstroms werden die untergeordneten Begriffe des Materialflusses und Informationsflusses durch diese Definition präzisiert. Laut REFA verkettet der Materialfluss allgemein alle Vorgänge, die dem Zweck dienen, Güter zu gewinnen, zu bearbeiten, zu verarbeiten und zu verteilen (siehe Hammer 1997, S. 135). Mit Bezug auf die weiter oben definierten Begriffe werden darunter die sequenziell, alternativ und/oder selek- 26 2.2 Systemstruktur: rekursive Zusammensetzung von Wertströmen Informationseingabe: Produkt- und Prozessstückzahlen Informationsausgabe: Auslastung aller MAEs (in %) MAE 2 PS 2 MAE 1 PS 1 P Takt [1] Betriebsmittelzeit [1] P Takt [2] Betriebsmittelzeit [2] MAE 3 PS 3 P Takt [3] Materielle Ausgabe: Produkte Materielle Eingabe: Komponenten System von Wertströmen Betriebsmittelzeit [3] Wertstrom von Produkt 1 Wertstrom von Produkt 2 ... Abbildung 2.4: System von Wertströmen (Ebenen, Elemente und Ressourcen). Ein Wertstrom fasst die Prozesse eines gegebenen Produkts zusammen. Prozesse resultieren aus einem oder mehreren verknüpften Prozessschritten (PS), denen je eine MAE zugeordnet ist. Den Bezugsrahmen der Planung bildet ein System, dessen Struktur aus Ebenen (Wertströme), Elementen (Prozessschritte/Prozesse) und Ressourcen (MAEs) zusammengesetzt ist. Durch eine Schnittstelle werden die Ein- und Ausgaben des Materialflusses und Informationsflusses mit der Umwelt ausgetauscht. tiv verknüpften Prozessschritte zur Herstellung des Produkts und die Zuordnung von MAEs zu diesen Prozessschritten verstanden. Der Informationsfluss bezieht sich im Allgemeinen auf die Erfassung, Sammlung, Verarbeitung, Speicherung und die Verteilung von Daten zur Planung und zur Steuerung (siehe Erlach 2010, S. 6). Im Kontext dieser Arbeit betrifft dies zum einen die Vorgabe einer Stückzahl für jedes Produkt und für jeden Operanden einer alternativen Verknüpfung im Wertstrom des Produkts, zum anderen die Ermittlung der daraus resultierenden, mittleren Auslastung aller MAEs. System von Wertströmen. Bevor im Anschluss die Eingaben und Ausgaben des Materialflusses und des Informationsflusses detailliert erläutert werden, müssen die zuvor eingeführten Begriffe in Beziehung zueinander gesetzt werden. Wertströme fassen im Verständnis dieser Arbeit sämtliche Prozesse eines gegebenen Produkts zusammen (siehe Definition 2.9). Prozesse resultieren ihrerseits aus einem oder mehreren Prozessschritten, die durch sequenzielle, alternative und/oder selektive Verknüpfungen miteinander verbunden sind (siehe Definition 2.2–2.8). Zur Ausführung eines Prozessschritts ist jeweils eine MAE erforderlich, welche dem betreffenden Prozessschritt zugeordnet ist und deren Auslastung mit fortdauernder Nutzung ansteigt. MAEs können im Planungsintervall mehreren Prozessschritten 27 2 Lösungsvorbereitung: Systemanalyse zugewiesen sein, dürfen aber zu jedem beliebigen Zeitpunkt nur für einen einzigen Prozessschritt genutzt werden (siehe Definition 2.1). Um zu einem Ergebnis in Bezug auf die Auslastung zu gelangen, müssen daher alle Wertströme, die dieselben MAEs beanspruchen, in einer Weise geplant werden, welche die zwischen ihnen bestehenden Abhängigkeiten vollständig berücksichtigt. Das heißt für die Planung im hier gegebenen Kontext, dass im allgemeinen Fall alle Wertströme an einem Produktionsstandort in einem System vereinigt werden müssen. Dessen Struktur lässt sich in Ebenen, Elemente und Ressourcen untergliedern, wobei die weiter oben definierten, spezifischen Ausdrücke diesen allgemeinen Begriffen folgendermaßen zugeordnet werden können: (1) Ebenen (Wertströme): Gleich aufeinanderliegenden Ebenen überlagern sich Wertströme von Produkten, deren Herstellung dieselben MAEs erfordert. (2) Elemente (Prozessschritte/Prozesse): Das System besteht aus nicht weiter zu teilenden Prozessschritten, die rekursiv zu Prozessen verknüpft werden. (3) Ressourcen (MAEs): Mit ihrer endlichen Betriebsmittelzeit repräsentieren MAEs begrenzte Ressourcen, die durch Nutzung zunehmend ausgeschöpft werden. Über eine Schnittstelle, welche dem Austausch der Ein- und Ausgaben des Materialflusses und des Informationsflusses der eingeschlossenen Wertströme dient, steht das jeweilige System in Verbindung mit seiner Umwelt. Abbildung 2.4 illustriert schematisch die Struktur eines solchen Systems sowie dessen Schnittstelle. 2.3 Systemschnittstelle: Funktionen der Eingaben und Ausgaben Ein System von Wertströmen, wie es in dieser Arbeit verstanden wird, ist ein sogenanntes offenes System. Das heißt, es steht mit seiner Umwelt durch den kontinuierlichen Austausch festgelegter Ein- und Ausgangsgrößen in Verbindung (in der Terminologie der Informatik Ein- bzw. Ausgaben genannt). Die allgemeine Funktion eines offenen Systems ist durch die eindeutige Zuordnung von Ausgaben zu Eingaben gekennzeichnet (siehe Ehrlenspiel und Meerkamm 2013, S. 24). In diesem Abschnitt soll dargelegt werden, welche Ein- und Ausgaben ein System von Wertströmen aus Sicht der strategischen Planung der TEK entlang des Materialflusses und des Informationsflusses austauscht. Die Aussagen basieren jeweils auf der betriebswirtschaftlichen Praxis bei der Bosch Rexroth AG. 2.3.1 Materialfluss: Bereitstellung von Komponenten für Produkte In Abschnitt 2.2 wurde der Begriff des Wertstroms eingeführt, um den Ablauf zur Fertigung und Montage eines Produkts durch rekursive Verknüpfung von Prozessschritten im Materialfluss zu beschreiben (siehe Definition 2.9). Die materiellen Ausgaben eines Systems von Wertströmen sind folglich die fertigen Produkte und die Eingaben die jeweils benötigten Komponenten, wie in Abbildung 2.4 dargestellt ist. Die Begriffe von Komponente und Produkt werden wie folgt definiert. Gemäß der Norm DIN 199-1:2002-03 legt die Strukturstückliste die Zuordnung von allen Teilen und Gruppen 28 2.3 Systemschnittstelle: Funktionen der Eingaben und Ausgaben zu einem gegebenen Erzeugnis fest. Ein Teil ist entsprechend dieser Norm ein »Gegenstand, für dessen weitere Aufgliederung [. . .] kein Bedürfnis besteht« (DIN 199-1:2002-03, S. 15), und eine Gruppe ist ein »aus zwei oder mehr Teilen und/oder Gruppen niedrigerer Ordnung bestehender Gegenstand« (DIN 199-1:2002-03, S. 12). Sowohl Teile als auch Gruppen werden in der vorliegenden Arbeit als Komponenten bezeichnet. Das heißt, in der gleichen Weise, wie Gruppen Teile und untergeordnete Gruppen enthalten, können solche Komponenten ggf. aus anderen Komponenten zusammengesetzt sein. Ein Erzeugnis ist gemäß der obigen Norm ein »durch Produktion entstandener gebrauchsfähiger bzw. verkaufsfähiger Gegenstand« (DIN 199-1:2002-03, S. 11). Unter dem Begriff des Produkts wird die Definition im Folgenden auf einen Gegenstand erweitert, der wie ein Erzeugnis durch Produktion entstanden ist, im Unterschied zu diesem aber nicht notwendigerweise gebrauchsfähig oder verkaufsfähig sein muss. Stattdessen kann ein Produkt auch allein zu dem Zweck hergestellt werden, um in anderen, übergeordneten Produkten verarbeitet zu werden. Gemäß diesem allgemeinen Verständnis ist jede Komponente, die nicht nur zugekauft, sondern zumindest z. T. im eigenen Unternehmen gefertigt bzw. montiert wird, ebenso ein Produkt. Um diesen Zusammenhang im Schema eines Systems darzustellen, wie es Abbildung 2.4 zeigt, müssen die Wertströme von untergeordneten und übergeordneten Produkten miteinander verbunden werden. Dem schließt sich die Frage an, wie die herzustellende Stückzahl eines Produkts ausgehend von der Kundennachfrage ermittelt wird. Dies führt zur sogenannten Stücklistenauflösung, die in der Norm DIN 199-5:1981-10 festgelegt ist und zwischen dem Primärbedarf und dem Sekundärbedarf eines Produkts unterscheidet. Der Primärbedarf ist die Eingangsgröße für die nachfolgende Berechnung und beschreibt die Menge, die letztendlich für den Verkauf an den Kunden bestimmt ist. Demgegenüber bezeichnet der Sekundärbedarf die Menge eines Produkts, welche zur Montage übergeordneter Produkte benötigt wird. Die Strukturstückliste definiert, aus welchen Komponenten ein Produkt auf jeder Strukturstufe besteht und welche Menge jeder Komponente zur Herstellung eines Stücks des Produkts erforderlich ist. Um den Sekundärbedarf einer Komponente zu ermitteln, muss der Bedarf aller übergeordneten Produkte jeweils mit der Menge aus der Strukturstückliste des Produkts, dem sogenannten Stücklistenfaktor, multipliziert und im Anschluss addiert werden (siehe DIN 199-5:1981-10, S. 3 f). Unter der Produktstückzahl wird im Weiteren die Menge verstanden, die zur Deckung des gesamten Bedarfs aus Primärbedarf und Sekundärbedarf dient. In Bezug auf die strategische Planung der TEK ist anzumerken, dass im Allgemeinen nur solche Produkte einzubeziehen sind, die unter Nutzung von MAEs durch Produktion in Wertströmen des eigenen Unternehmens bereitgestellt werden. Produkte, die in vollem Umfang zugekauft werden, müssen nicht in der Planung Berücksichtigung finden. Begrenzt aber eine solche Komponente die Kapazität eines Produkts, ist es zweckmäßig, den Zulieferer als Wertstrom mit einer MAE und entsprechender Betriebsmittelzeit in die Planung aufzunehmen. Der Begriff des Produkts bezieht sich weiterhin i. d. R. nicht auf eine einzelne, spezifische Variante. Vielmehr werden in der Phase der strategischen Planung der TEK Varianten und Produkte soweit möglich zu Produktfamilien zusammengefasst, woraus an den Standorten der Bosch Rexroth AG typischerweise 50 bis 100 voneinander zu unterscheidende Produkte resultieren. Damit wird das Ziel verfolgt, den Planungsaufwand bei gleichzeitig akzeptabler Genauigkeit gemessen am Einsatzzweck zu minimieren. 29 2 Lösungsvorbereitung: Systemanalyse 2.3.2 Informationsfluss: Planung der Produktion Der Informationsfluss eines Wertstroms dient der Planung und der Steuerung der Produktion, wobei der Fokus im Kontext dieser Arbeit, wie zu Eingang des Kapitels dargelegt, auf der strategischen Planung der TEK liegt (siehe Abschnitt 2.1). Analog zum Materialfluss tauscht ein System von Wertströmen entlang des Informationsflusses Ein- und Ausgaben aus. Wie zuvor erläutert, ist die Struktur eines solchen Systems durch die rekursive Verknüpfung von Prozessschritten bestimmt (siehe Abschnitt 2.2). Die Informationseingaben sind somit neben den Produktstückzahlen die Prozessstückzahlen, die allen Operanden alternativer Verknüpfungen zugeordnet werden und festlegen, welcher variable Anteil der Stückzahl eines Produkts durch das jeweilige Element verläuft (siehe Definition 2.6). Werden Elemente sequenziell oder selektiv verknüpft, ist die Verteilung der Produktstückzahl fix vorgegeben (siehe Definition 2.5 bzw. 2.7). Im Folgenden wird eine Lösung der Prozessstückzahlen, d. h. eine mögliche Verteilung, als gültig bezeichnet, wenn diese sämtliche Bedingungen erfüllt, die in den Definitionen der Verknüpfungstypen genannt werden. Aus den festgelegten Stückzahlen resultiert die Auslastung der genutzten MAEs im Planungszeitraum, die als Informationsausgabe von dem geplanten System zurückgegeben wird. Konkret werden zur strategischen Planung der TEK, wie sie in der vorliegenden Arbeit definiert ist, drei Planungsziele verfolgt. Gesucht sind (1) die maximalen Kapazitäten, (2) die minimalen Investitionen und (3) die optimale Auslastung (siehe Abschnitt 2.1). Diese drei Planungsziele stehen bezüglich der Reihenfolge ihrer Betrachtung in einer prozessualen Abhängigkeit und z. T. in einer mathematischen Abhängigkeit. Aus prozessualer Sicht gilt es im ersten Schritt, die maximalen Kapazitäten zu ermitteln, um sie mit dem erwarteten Bedarf zu vergleichen und über Eigenproduktion und Zukauf zu entscheiden. Unter Berücksichtigung weiterer, unternehmerischer Faktoren, wie beispielsweise den Kosten, dem verfügbaren Personal und zu schützenden intellektuellen Werten, werden auf dieser Grundlage die geplanten Stückzahlen aller selbst herzustellenden Produkte festgelegt. Im zweiten Schritt müssen die minimalen Investitionen in MAEs bestimmt werden, die zur Fertigung bzw. Montage der Stückzahlen benötigt werden. Ist die Zahl existierender und zusätzlich zur Verfügung stehender MAEs bekannt, muss im dritten Schritt untersucht werden, wie die Stückzahlen der Produkte auf die einzelnen Prozessschritte zu verteilen sind, um die daraus resultierende Auslastung aller MAEs zu optimieren. Da wie angesprochen unternehmerische, in ihrer Natur qualitative Faktoren in die Planung einbezogen werden müssen, ist aus mathematischer Sicht die Maximierung der Kapazitäten in Bezug auf die jeweiligen Ein- und Ausgangsgrößen unabhängig von den anderen zwei Planungszielen. Dagegen fließen die ermittelten minimalen Investitionen als Eingangsgröße unmittelbar in die Optimierung der Auslastung aller genutzten MAEs ein. Im Folgenden werden die drei Planungsziele mit Hilfe von Zielfunktionen und Nebenbedingungen auf Basis der Ein- und Ausgaben des Informationsflusses beschrieben. Maximale Kapazitäten. Um vom strategischen Standpunkt über Produktion und Zukauf zu entscheiden, ist zuerst die Frage von Bedeutung, welche Kapazitäten in einem Unternehmen für die Produktion zur Verfügung stehen. Unter der betrachteten TEK eines Produkts wird die maximale Stückzahl des Produkts verstanden, die unter der Bedingung gefertigt bzw. 30 2.3 Systemschnittstelle: Funktionen der Eingaben und Ausgaben montiert werden kann, dass die daraus folgende Auslastung keiner MAE einen Wert von eins, d. h. 100 Prozent der Betriebsmittelzeit, überschreitet. Die TEK wird nicht nur durch die Auslastung der MAEs beschränkt, die zur Fertigung und Montage des Produkts selbst genutzt werden. Zudem müssen alle Komponenten, die laut Strukturstückliste benötigt werden, zur Deckung des Sekundärbedarfs mindestens in dieser Menge verfügbar sein. Wenn die Stückzahl einer Komponente genau dem Sekundärbedarf entspricht und es in den Grenzen der zulässigen Auslastung der MAEs nicht möglich ist, die Stückzahl dieser Komponente weiter zu steigern, dann gilt das auch für die Stückzahlen aller übergeordneten Produkte, welche die Komponente enthalten. Das heißt, in dem Fall ist auch die Kapazität für die Produkte erschöpft. Das trifft selbst dann zu, wenn die Auslastung all derjenigen MAEs, die zur Fertigung und Montage dieser Produkte genutzt werden, noch nicht den Höchstwert von eins erreicht. Dementsprechend ist das erste Planungsziel, die Produktstückzahlen unter drei Bedingungen zu maximieren: (1) Die Lösung muss gültig sein (s. o.); (2) die Auslastung keiner MAE darf einen Wert von eins überschreiten; (3) die Stückzahlen der erforderlichen Komponenten müssen mindestens dem Sekundärbedarf aller Produkte entsprechen. Bemerkung: Wie in Abschnitt 2.2 erläutert wurde, müssen zur Planung die Wertströme all derjenigen Produkte in einem System vereinigt werden, die dieselben MAEs beanspruchen und als Folge einander bedingen. Für die Suche maximaler Kapazitäten gilt insbesondere, dass die TEK eines Produkts ggf. erhöht werden kann, indem die TEK anderer Produkte innerhalb eines gegebenen Systems verringert wird. Das ist genau dann möglich, wenn dieselben MAEs die maximalen Stückzahlen zweier Produkte begrenzen. Für diesen Fall muss eine Strategie zur Auswahl einer Lösung festgelegt werden. Minimale Investitionen. Falls die geplanten Produktstückzahlen die TEK übersteigen und alle Maßnahmen zur Erhöhung der Stückzahl mit verfügbaren Mitteln (z. B. durch die Verkürzung von Taktzeiten oder die Einführung von zusätzlichen Schichten) in der Planung ausgeschöpft wurden, verbleiben allein Investitionen in neue MAEs. Diese gilt es zu minimieren, indem alle verfügbaren MAEs möglichst effizient genutzt werden. Der Umfang der Investitionen wird wie folgt durch die Überlastung der MAEs bestimmt. Überschreitet die Auslastung u einer MAE einen Wert von eins, müssen ⌈u⌉ − 1 neue MAEs desselben Typs installiert werden. Das heißt, überlastete MAEs werden durch Investitionen gedanklich vervielfacht. Wenn Prozessschritte im Wertstrom eines Produkts alternativ verknüpft sind und ihnen verschiedene MAEs zugeordnet werden, dann muss der Planer festlegen, welche MAE im Bedarfsfall überlastet werden soll. Das zweite Planungsziel ist somit, den Betrag zu minimieren, um welchen die Auslastung von MAEs einen Wert von eins überschreitet. Die Stückzahlen aller Produkte einschließlich der erforderlichen Komponenten werden vom Planer vorgegeben. Einzige Bedingung ist, dass die ermittelte Lösung, wie weiter oben erläutert, gültig sein muss. Bemerkung: In dem Fall, dass eine Gruppe von MAEs alternativ verknüpften Prozessschritten eines oder mehrerer Produkte zugeordnet ist, legt der Planer für jedes der Produkte wie erwähnt jeweils diejenige MAE fest, die bei Bedarf überlastet werden soll. Jedoch ist es ggf. 31 2 Lösungsvorbereitung: Systemanalyse möglich, die Überlastung einer der MAEs zu reduzieren, indem eine zweite MAE aus der Gruppe in umso größerem Maß für andere Produkte genutzt und deren Überlastung erhöht wird. Dann ist für das Produkt der ersten MAE ein größerer Anteil der summierten Betriebsmittelzeit aller anderen MAEs in der Gruppe verfügbar, und als Folge wird die Überlastung der MAE reduziert. Da in diesem Fall mehrere Lösungen existieren, muss eine Strategie zur Auswahl einer Lösung festgelegt werden (vgl. maximale Kapazitäten). Optimale Auslastung. Zuletzt stellt sich in der Planung die Frage, welche Prozessschritte ausgeführt werden sollen, um die Produkte unter Nutzung aller im Planungszeitraum verfügbaren MAEs zu fertigen bzw. zu montieren. Es gilt demnach, die Prozessstückzahlen festzulegen, um die geplanten Stückzahlen aller Produkte in den Wertströmen zu verteilen und die resultierende Auslastung der jeweils zugeordneten MAEs zu optimieren. Aus theoretischer Sicht erscheint es zunächst naheliegend, Werte zu wählen, welche den erwarteten Ressourcenbedarf minimieren, beispielsweise im Hinblick auf Betriebskosten und Energieverbrauch. Zu diesem Zweck müssten allerdings frühzeitig in der Planung z. T. noch vor der Installation und Inbetriebnahme von MAEs Daten zum Verbrauch im laufenden Betrieb vorliegen. Diese Daten sind in der Praxis zum gegebenen Zeitpunkt im Allgemeinen nicht in der geforderten Genauigkeit verfügbar. Das gilt insbesondere dann, wenn Wertströme neuer Produkte oder neue Prozesse geplant werden. Aus diesem Grund wird folgendes Vorgehen vorgeschlagen, das im Zuge dieser Arbeit zusammen mit der Software AURELIE erfolgreich bei der Bosch Rexroth AG eingeführt wurde und in der Planung angewandt wird. Grundlage ist eine Priorisierung der alternativ verknüpften Prozessschritte und der jeweils zugeordneten Prozessstückzahlen in den Wertströmen aller gegebenen Produkte. Die Prioritäten werden von der Abteilung für Fertigungsplanung definiert, um die unternehmerischen Zielvorgaben umzusetzen, welche von der Leitung des Standorts und übergeordneten Instanzen festgelegt werden. Diese Zielvorgaben betreffen zumeist die Variabilität, Qualität, Geschwindigkeit und Wirtschaftlichkeit der Produktionsprozesse (siehe Erlach 2010, S. 14). Die optimale Auslastung ist genau dann erreicht, wenn die Verteilung der Stückzahlen die Prioritäten vollständig berücksichtigt. Auf dieser Basis ist das dritte Planungsziel, die Auslastung aller MAEs gemäß einer Iterationsvorschrift zu maximieren. Analog zum vorigen Planungsziel werden die Stückzahlen aller Produkte einschließlich der Komponenten vorgegeben. Zunächst ist eine initiale Lösung gesucht, welche wie oben erläutert gültig sein muss. Im ersten Iterationsschritt wird die Prozessstückzahl mit der Priorität eins maximiert. In den darauffolgenden Iterationsschritten wird das Maximum der Prozessstückzahl mit jeweils aufsteigender Priorität bestimmt, wobei die Teillösungen aller vorherigen Iterationsschritte Nebenbedingungen darstellen. Die Iteration endet mit der vorletzten Priorität, da der Wert der letzten Prozessstückzahl nach Maximierung aller vorhergehenden eindeutig bestimmt ist. Dabei existieren für die initiale Lösung und für die Teillösungen aller Iterationsschritte zwei Bedingungen: (1) Die Lösung muss gültig sein (s. o.); (2) die Auslastung keiner MAE darf einen Höchstwert von eins überschreiten, wobei dieser Wert um den jeweils minimalen Betrag zu erhöhen ist, sodass für die gegebenen Produktstückzahlen eine gültige Lösung existiert (minimale Investitionen als Eingangsgröße). 32 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts Bemerkung: Da die Stückzahlen der Produkte einschließlich erforderlicher Komponenten im Fall der minimalen Investitionen und der optimalen Auslastung vom Planer selbst vorgegeben werden, ist es nicht notwendig, die Verfügbarkeit der Komponenten wie im Fall der maximalen Kapazitäten als eine Bedingung zu definieren. Es wird stattdessen vorausgesetzt, dass in einem vorbereitenden Schritt die Stückliste aufgelöst wird, um den Sekundärbedarf zu ermitteln und die Stückzahlen bedarfsgerecht festzulegen. Zur Verfolgung der Planungsziele gilt es, das geplante System zu modellieren und das resultierende Modell gemäß den obigen, in natürlicher Sprache beschriebenen Zielfunktionen zu optimieren. Um die mathematischen Grundlagen zu schaffen, soll im nächsten Abschnitt die Kalkulation für den einfachen Fall eines Prozessschritts erläutert werden. 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts Zunächst werden in diesem Abschnitt die Zeitgrößen definiert, die im Kontext der Arbeit als kalkulatorische Grundlage für die Planung der TEK dienen: die Taktzeiten der Prozessschritte, der Plan-Nutzungsgrad und die Betriebsmittelzeiten der jeweils genutzten MAEs. Danach soll erläutert werden, wie die Kapazität, die Auslastung und die Investitionen im einfachen Fall eines einzelnen Prozessschritts zu bestimmen sind, um zum Abschluss anhand repräsentativer Zahlen und eines gedanklichen, praxisnahen Beispiels zu prüfen, ob die hierfür formulierten Voraussetzungen im Allgemeinen erfüllt sind. Zur exakten Formulierung der Aussagen in diesem und den sich anschließenden Abschnitten werden folgende Symbole mit eigener Bedeutung eingeführt: r R TBM t eff t opt u r (y) y y max ηplan MAE, z. B. Bearbeitungszentrum, r ∈ R, ggf. mit Index 1, 2 usw. Menge aller verfügbaren MAEs, z. B. {‘Bearbeitungszentrum’, ‘Drehmaschine’, . . .} Betriebsmittelzeit, TBM ∈ R 0 , ggf. mit Index 1, 2 usw. effektive, d. h. im langfristigen Mittel erreichbare Taktzeit, t eff ∈ R 0 optimale, d. h. im besten Fall erreichbare Taktzeit, t opt ∈ R 0 Auslastung der MAE r für eine gegebene Produktstückzahl y, u r (y) ∈ R 0 Stückzahl des aktuell betrachteten Produkts, y ∈ R 0 maximale Produktstückzahl (TEK), y max ∈ R 0 Plan-Nutzungsgrad, festgelegt als Zielvorgabe, ηplan ∈ (0, 1] 2.4.1 Taktzeiten, Nutzungsgrad und Betriebsmittelzeit Optimale Taktzeit t opt . Die optimale Taktzeit t opt eines Prozessschritts bezeichnet die »vorgegebene Zeit zwischen Entnahme von Teil zu Teil [nicht im Verständnis von Komponenten, sondern von Stück zu Stück] bei störungsfreiem Betrieb und optimiertem Ablauf« (Boschinterne Regelung, zum Begriff der Taktzeit siehe auch Hammer 1997, S. 189). Die Definition schließt einen von der MAE abhängigen, d. h. unbeeinflussbaren und einen von der Arbeitsperson abhängigen, d. h. beeinflussbaren Zeitanteil ein. Da in dieser Arbeit aber die Planung der TEK im Fokus steht, d. h. die Planung der maximalen durch MAEs bedingten Stückzahlen, 33 2 Lösungsvorbereitung: Systemanalyse werden für den Zeitanteil, den nicht die MAE, sondern die Arbeitsperson bestimmt, ideale Voraussetzungen angenommen (siehe Abschnitt 2.2, Begriff des Prozessschritts). Entsprechend wird immer die kürzestmögliche, im langfristigen Mittel mit der jeweils gegebenen MAE erzielbare Taktzeit für die Planung der TEK verwendet. Im Folgenden soll zum besseren Verständnis ein Kurzüberblick zu den Zeitanteilen gegeben werden, aus welchen sich die Nutzungszeit einer MAE zusammensetzt. Die Nutzungszeit ist definiert als die Summe aller Sollzeiten, in denen eine MAE »planmäßig genutzt oder zur Hauptnutzung vorbereitet wird« (alle Definitionen gemäß Bosch-interner Regelung, siehe auch Hammer 1997, S. 212 f, REFA 2012, S. 43, 59). Sie wird untergliedert in die planmäßig von Menschen beeinflussbare und die unbeeinflussbare Nutzungszeit. Zusätzlich wird mit Blick auf den zu erfüllenden Zweck zwischen der Hauptnutzungszeit und der Nebennutzungszeit unterschieden. Die beeinflussbare (bzw. unbeeinflussbare) Hauptnutzungszeit beschreibt die Summe all derjenigen Sollzeiten, in denen eine MAE mit (bzw. ohne) »menschlicher Beeinflussung wertschöpfend arbeitet« (z. B. Bohren mit manueller bzw. mit automatischer Vorschubregelung). Daneben umfasst die beeinflussbare (bzw. unbeeinflussbare) Nebennutzungszeit alle Sollzeiten, in denen eine MAE mit (bzw. ohne) »menschlicher Beeinflussung planmäßig zur Hauptnutzung vorbereitet wird« (z. B. durch das manuelle Einspannen eines Werkstücks bzw. das automatische, robotergestützte Beladen der MAE). Plan-Nutzungsgrad ηplan . Der Plan-Nutzungsgrad ηplan einer MAE stellt in der unternehmerischen Praxis der Bosch Rexroth AG eine Zielvorgabe des Geschäftsbereichs1 dar, welche dazu dient, die Anzahl der erforderlichen Betriebsmittel, in diesem Kontext der MAEs, und die TEK gemäß dem Plan zu ermitteln (Bosch-interne Regelung, zum Begriff des Nutzungsgrads siehe auch REFA 2012, S. 60). Er spiegelt im langfristigen Mittel den relativen Zeitanteil des störungsfreien, optimalen Betriebs bezogen auf die Betriebsmittelzeit einer MAE wider (vgl. physikalischen Wirkungsgrad, i. d. R. bezeichnet mit dem Symbol η). In diesem Verständnis wird der Begriff in der vorliegenden Arbeit verwendet. Verluste, welche den Plan-Nutzungsgrad ηplan reduzieren, werden wie folgt untergliedert (siehe Praxisliteratur zu Total Productive Maintenance und Overall Equipment Effectiveness, Nakajima 1988 sowie u. a. Hartmann 2013, May und Schimek 2015, Koch 2016): (1) (2) (3) (4) geplante Stillstände (z. B. Wartung und Instandhaltung), Verfügbarkeitsverluste (z. B. Rüsten, große Störungen), Leistungsverluste (z. B. Taktzeitverluste, Kleinstörungen), Qualitätsverluste (Ausschuss und Nacharbeit). Für die Planung der TEK wird angenommen, dass alle Potenziale zur Vermeidung und Verminderung von Verlusten ausgeschöpft werden. Hintergrund ist, dass die maximalen Stückzahlen gesucht sind, welche allein durch die eingesetzten MAEs begrenzt werden. Es gilt, die Investitionen zu minimieren, die sich mit den verfügbaren MAEs unter keinen Umständen vermeiden lassen, und die Auslastung der MAEs durch Verteilung der Stückzahlen zu optimieren. Entsprechend wird für den Plan-Nutzungsgrad ηplan gemäß Bosch-interner 1 Zum Zeitpunkt der Entwicklung gliederte sich die Bosch Rexroth AG in drei Geschäftsbereiche: Mobile Applikationen, Industrielle Applikationen und Erneuerbare Energien. 34 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts Regelung grundsätzlich ein Wert von 80 Prozent vorausgesetzt. In einer hochmechanisierten Fertigung gilt ein noch größerer Wert von 85 Prozent, selbst wenn dieser in der Praxis oftmals nur schwer zu erreichen ist. Erfahrungsgemäß akzeptiert die Geschäftsleitung zur Rechtfertigung von Investitionen nur in Ausnahmefällen einen geringeren Wert, und zwar ausschließlich unter der Bedingung, dass eine Reduktion der verbleibenden Verluste nicht möglich oder nicht wirtschaftlich umsetzbar ist (betrifft z. B. Ausschuss im Ablauf der Montage, welcher durch fehlerhafte zugekaufte Komponenten verursacht wird). Effektive Taktzeit t eff . Zur Verkürzung der Notation wird mit Blick auf die nachfolgenden Beispiele die effektive Taktzeit t eff eingeführt. Diese Taktzeit wird jeweils einem Prozessschritt zugeordnet und ist analog zur zuvor eingeführten optimalen Taktzeit t opt als Zeit zwischen der Entnahme von Stück zu Stück definiert. Im Unterschied zu dieser bezieht sie sich nicht auf den störungsfreien, optimalen Betrieb, sondern schließt alle Verluste ein und gilt im langfristigen Mittel. Mit Hilfe des Plan-Nutzungsgrads ηplan , welcher das Verhältnis der störungsfreien, optimalen Zeit zur gesamten Betriebsmittelzeit einer MAE und entsprechend das Verhältnis der zwei Taktzeiten zueinander ausdrückt, kann folgende Gleichung zur Bestimmung der effektiven Taktzeit t eff angegeben werden: t eff = t opt . ηplan (2.17) Betriebsmittelzeit TBM . Die Betriebsmittelzeit TBM beschreibt die »Zeit, in der das Betriebsmittel [im gegebenen Kontext die MAE] zweckentsprechend zur Verfügung steht« (Boschinterne Regelung, mit identischem Wortlaut außerdem definiert durch REFA, siehe Hammer 1997, S. 59 f). Neben der Belegungszeit, in welcher dieser Zweck durch die Herstellung von Produkten erfüllt wird, schließt die Betriebsmittelzeit TBM auch die Brachzeiten außerhalb des störungsfreien, optimalen Betriebs ein (siehe Plan-Nutzungsgrad ηplan , Verluste in der Produktion). Die Zeit ist vom Schichtmodell abhängig, welches auf den Arbeitstagen im Kalenderjahr basiert, und wird im Planungsintervall zusammengefasst (meist quartalsweise, halbjährlich oder jährlich, siehe Abschnitt 2.1, strategische Planung). Um die TEK zu bestimmen, wird grundsätzlich vorausgesetzt, dass sämtliche MAEs gemäß einem Schichtmodell genutzt werden, welches die maximal mögliche Schichtzeit an jedem Arbeitstag (entspricht i. d. R. drei Schichten je Arbeitstag zu acht Stunden je Schicht) und die maximale Zahl an Arbeitstagen im Planungsintervall (ggf. einschließlich Wochenendarbeit) vorsieht. Folglich ist es zur Planung der TEK möglich, für die meisten MAEs dieselbe Betriebsmittelzeit TBM vorauszusetzen. Im Einzelfall kann jedoch der Betrieb einer MAE in einem solchen Schichtmodell technisch oder organisatorisch unwirtschaftlich sein. Im Allgemeinen muss deshalb von einer Betriebsmittelzeit TBM ausgegangen werden, deren Wert von der betrachteten MAE abhängig ist. Um dies zu berücksichtigen, wird jeder MAE r 1 , r 2 usw. einer Menge R, welche jeweils die Gesamtheit aller am Standort verfügbaren und im Planungszeitraum zu installierenden MAEs bezeichnet, eine eigene Betriebsmittelzeit TBM,1 , TBM,2 usw. mit entsprechendem Index 1, 2 usw. zugeordnet.2 2 Aktuell ist bei der Bosch Rexroth AG die Software AURELIE in der Version 1.2 im Einsatz, welche die Vorgabe eines Standardschichtmodells und eines erweiterten Schichtmodells für alle MAEs erlaubt. 35 2 Lösungsvorbereitung: Systemanalyse Schichtmodell Wochentage 5-S 10-S 15-S 18-S 21-S Mo–Fr Mo–Fr Mo–Fr Mo–Sa Mo–So Arbeitstage, pro Jahr Arbeitstage, pro Quartal Schichten, pro Arbeitstag Schichtdauer, in h (Mittelwert) Betriebsmittelzeit, in h 249 249 249 299 365 62,25 62,25 62,25 74,75 91,25 1 2 3 3 3 8,0 8,0 7,5 7,5 7,5 489 996 1401 1682 2053 Tabelle 2.1: Betriebsmittelzeiten nach Schichtmodellen (Beispielzahlen). Zentrale Vorgaben zur strategischen Planung der TEK in Quartalsintervallen, gemäß Bosch-interner Regelung im Fall manueller oder teilautomatisierter Fertigung (Schichtmodelle 5-S, 18-S und 21-S ergänzt, wie bei der Bosch Rexroth AG in der Praxis zumeist verwendet). Mit Ausnahme des Schichtmodells 21-S, welches an jedem Tag des Kalenderjahres einen Betrieb in drei Schichten vorsieht, ist in der Zahl der Arbeitstage bereits berücksichtigt, dass einige Feiertage auf Wochentage fallen. In Tabelle 2.1 sind Vorgaben für die strategische Planung der TEK in Quartalsintervallen aufgeführt, die bei der Bosch Rexroth AG grundsätzlich für alle Standorte gelten. Typischerweise legt die Leitung eines Geschäftsbereichs, vertreten durch die Zentralabteilung für Fertigungskoordination, ein Standardschichtmodell und zusätzlich ein erweitertes Schichtmodell fest (zumeist 15-S bzw. 18-S, siehe oben stehende Tabelle), die jeder Standort im jeweiligen Verantwortungsbereich zur Erstellung der Planung verwenden muss. 2.4.2 Kapazität, Auslastung und Investitionen Voraussetzungen. Nachdem die grundlegenden Zeitgrößen der Planung eingeführt wurden, soll im nächsten Schritt die Kalkulation von Kapazität, Auslastung und Investitionen im einfachen Fall erläutert werden. Dieser Fall ist dadurch charakterisiert, dass die folgenden zwei Voraussetzungen gelten: (1) Zur Fertigung und Montage eines betrachteten Produkts ist nur ein einziger Prozessschritt vorgesehen; (2) die hierzu erforderliche MAE r wird nicht zur Ausführung weiterer Prozessschritte genutzt. Das heißt, unter Berücksichtigung des jeweils gültigen Plan-Nutzungsgrads ηplan steht die MAE r innerhalb der gesamten Betriebsmittelzeit TBM ohne Unterbrechung zur Verfügung, um diesen einen Prozessschritt mit einer vorgegebenen effektiven Taktzeit t eff auszuführen. Technische Kapazität y max . Im Folgenden soll die TEK, d. h. die maximale Stückzahl eines Produkts, formal mit dem Symbol y max bezeichnet werden. Da die Kalkulation im Rahmen der strategischen Planung auf dem langfristigen Mittel basiert, kann die TEK y max im oben beschriebenen Fall mit akzeptabler Genauigkeit durch das Verhältnis zweier Zeitgrößen bestimmt werden: der Betriebsmittelzeit TBM der genutzten MAE r und der effektiven Taktzeit t eff des auszuführenden Prozessschritts. Diese Berechnungsvorschrift entspricht im Ergebnis den Vorgaben für die Planung, die bei der Bosch Rexroth AG angewandt werden (Bosch-interne Regelung, TEK im Planungsintervall). Demnach gilt: y max = 36 TBM t eff . (2.18) 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts Auslastung u r (y). Gesucht ist eine Gleichung, um die Auslastung u r (y) der MAE r abhängig von einer gegebenen, nichtnegativen reellen Produktstückzahl y zu bestimmen. Die Lösung beruht darauf, dass die Auslastung u r (y) gemäß der hier betrachteten, ausschließlich technisch bedingten Kapazität einen Wert von eins annimmt, wenn die Produktstückzahl y der TEK y max entspricht (siehe Abschnitt 2.1, strategische Planung). Wird zusätzlich ein direkter, proportionaler Zusammenhang zwischen der Funktion u r (y) und ihrem Argument y angenommen, d. h. ein stetiges Anwachsen der Auslastung mit steigender Stückzahl des Produkts vorausgesetzt, dann folgt daraus die Gleichung: u r (y) = y y max . (2.19) Einsetzen von Gleichung (2.18) in Gleichung (2.19) führt zu folgendem Ausdruck, welcher die Auslastung u r (y) bezeichnet und von der Produktstückzahl y abhängig ist. Dieser Ausdruck dient für die Kalkulation als Grundlage und ist fallweise zu erweitern: u r (y) = t eff y TBM . (2.20) Die Annahme eines proportionalen, d. h. kontinuierlichen Zusammenhangs ist zulässig, da Informationen zum diskreten Ablauf von Fertigung und Montage (insbesondere zur Reihenfolge der Aufträge, zu Losgrößen sowie zu geplanten und ungeplanten Stillständen wie z. B. Wartung bzw. Störungen) in der Phase der strategischen Planung nicht oder nur in ungenügender Genauigkeit vorliegen (siehe Abschnitt 2.2, Begriff des Wertstroms). Die Frage ist in diesem Kontext vielmehr, welchen Wert die Auslastung u r (y) im langfristigen Mittel des Planungsintervalls annimmt. Unter den formulierten Voraussetzungen des einfachen Falls eines Prozessschritts ist Gleichung (2.20) demzufolge gültig. Investitionen. Wie in Abschnitt 2.3 erläutert, werden die notwendigen Investitionen zur Fertigung und Montage eines Produkts in einer gegebenen, geplanten Stückzahl von der Überlastung der jeweils genutzten MAEs abgeleitet (siehe Planungsziel der minimalen Investitionen). Überschreitet die Auslastung u r (y) einer MAE r einen Wert von eins, müssen entsprechend ⌈u r (y)⌉ − 1 neue MAEs desselben Typs installiert werden, um das Produkt in der geplanten Stückzahl y zu fertigen bzw. zu montieren. Das heißt, bei Bedarf werden all diejenigen MAEs, die eine Überlastung erfahren, gedanklich vervielfacht. Wenn mehrere Prozessschritte eines Produkts unter Nutzung von verschiedenen MAEs alternativ miteinander verknüpft werden, dann legt der Planer wie zuvor beschrieben fest, welche von diesen MAEs überlastet und als Ergebnis vervielfacht werden soll, sobald die Produktstückzahl y die TEK y max übersteigt. Prüfung der Voraussetzungen. Zu Beginn des Abschnitts wurden die Voraussetzungen genannt, welche den einfachen Fall eines einzigen Prozessschritts kennzeichnen und unter denen die obigen Gleichungen ohne weitere Anpassung gelten. Um die Begründung dafür zu erbringen, warum diese Gleichungen fallweise erweitert werden müssen, sollen die Voraussetzungen anhand von Zahlen aus der Praxis und eines gedanklichen Beispiels 37 2 Lösungsvorbereitung: Systemanalyse Standort* Region Produktgruppe* Standort 1 Standort 2 Standort 3/1 Standort 3/2 Standort 4 Standort 5 Standort 6/1 Standort 6/2 Standort 7 Standort 8 Standort 9/1 Standort 9/2 EMEA EMEA AMER AMER EMEA EMEA EMEA EMEA APAC AMER EMEA EMEA Mittelwert PG 1, Mobile Applikationen PG 2, Mobile Applikationen PG 1, Mobile Applikationen PG 3, Industrielle Applikationen PG 2, Mobile Applikationen PG 2, Mobile Applikationen PG 4, Mobile Applikationen PG 5, Erneuerbare Energien PG 2, Mobile Applikationen PG 4, Mobile Applikationen PG 6, Industrielle Applikationen PG 5, Erneuerbare Energien Planung für Erstellt am Produkte Q4 2013 Q1 2013 Q3 2013 Q1 2013 Q4 2012 Q4 2012 Q4 2013 Q4 2012 Q1 2014 Q4 2013 Q3 2013 Q4 2012 08.2012 09.2012 09.2011 09.2012 09.2012 09.2012 08.2012 06.2012 09.2013 08.2012 04.2013 10.2012 PS MAEs max Produkte/ max PS/ MAE MAE 36 391 57 520 31 253 27 182 62 490 43 212 55 299 53 730 38 505 33 84 152 1404 119 1795 59 572 268 397 151 35 167 162 72 54 148 33 60 87 14 4 10 15 13 5 18 28 12 4 46 67 14 4 10 15 13 5 22 28 12 4 46 67 136 20 20 *anonymisiert Tabelle 2.2: Produkte, Prozessschritte und Produktionsanlagen (Beispielzahlen). Die Tabelle zeigt eine Auswahl von Planungen für Produktgruppen (PG) an neun verschiedenen Standorten der Bosch Rexroth AG. Der Zeithorizont erstreckt sich in allen Fällen mindestens auf das Jahr der Erstellung. Betrachtet wird das Quartal mit der maximalen Zahl an Prozessschritten (PS). Diese wird verglichen mit der Zahl genutzter MAEs sowie mit der maximalen Zahl von Produkten und Prozessschritten, denen dieselbe MAE zugeordnet ist (max Produkte/MAE bzw. PS/MAE). überprüft werden. In der Praxis ist i. d. R. nicht nur ein einziger Prozessschritt auszuführen, um ein Produkt zu fertigen und zu montieren, sondern eine Folge vieler verschiedener Prozessschritte. Für variable und fix vorgegebene Anteile der Stückzahl eines Produkts werden zudem oftmals unterschiedliche Folgen von Prozessschritten geplant. Die notwendigen MAEs werden zumeist für mehrere Prozessschritte eines oder mehrerer Produkte genutzt. Diese Merkmale einer variantenreichen Serienfertigung müssen in der Kalkulation ohne unzulässige Vereinfachungen berücksichtigt werden (siehe Abschnitt 2.1). Tabelle 2.2 zeigt hierzu repräsentative Zahlen geplanter Systeme von Wertströmen. Dargestellt ist eine Auswahl von Planungen der Bosch Rexroth AG für verschiedene Produktgruppen an weltweit verteilten Produktionsstandorten. Zwar wurde in Abschnitt 2.2 erläutert, dass alle Wertströme an einem Standort in einem System vereinigt werden müssen, und im Allgemeinen gilt dies auch nach wie vor. Wenn aber zur Herstellung zweier Produktgruppen an einem Standort jeweils verschiedene MAEs genutzt werden, ist es möglich, die Produktgruppen unabhängig voneinander zu betrachten. Aus Sicht der Planung handelt es sich um voneinander getrennte Standorte, auch wenn sie sich am selben geografischen Ort befinden. In den aufgeführten Fällen werden durchschnittlich 59 Produkte gefertigt und montiert, wobei ein Produkt i. d. R. mehrere Varianten zusammenfasst. Eine MAE wird im Mittel aller Standorte für bis zu 20 Prozessschritte genutzt, im Fall der Produktgruppen an Standort 9/1 und 9/2 jeweils für bis zu 46 bzw. 67 Prozessschritte. Entsprechend müssen Gleichung (2.18) und (2.20) zur Bestimmung der TEK y max bzw. der Auslastung u r (y) fallweise erweitert werden. Im Allgemeinen ist es nicht möglich, die Produkte an einem Standort unabhängig voneinander unter Berücksichtigung nur einer MAE und nur eines Prozessschritts zu betrachten. Vielmehr müssen alle Abhängigkeiten 38 2.4 Grundlagen der Kalkulation: einfacher Fall eines Prozessschritts innerhalb eines Produktionssystems in die Kalkulation einbezogen werden. Zum einen bestehen diese zwischen verknüpften Prozessschritten eines Produkts, zum anderen zwischen Produkten, die sich dieselben MAEs teilen. Wie sich die Abhängigkeiten auswirken, soll nun an einem gedanklichen Beispiel erläutert werden. Ein gegebenes Produkt wird in einem einzigen Prozessschritt mit einer Fräsmaschine r 1 gefertigt, entsprechend einer Komplettbearbeitung. Entgegen den eingangs formulierten Voraussetzungen werden die MAE r 1 wie auch eine Drehmaschine r 2 für mehrere Produkte genutzt. Im einfachen Fall eines einzigen Prozessschritts ist die TEK y max das Ergebnis der optimalen Taktzeit t opt und des Plan-Nutzungsgrads ηplan , die wie definiert zur effektiven Taktzeit t eff zusammengefasst werden, sowie der Betriebsmittelzeit TBM,1 . Im allgemeinen Fall ist nicht vorauszusetzen, dass die MAE r 1 in der gesamten Betriebsmittelzeit TBM,1 zur Verfügung steht. Stattdessen muss der von jedem Prozessschritt beanspruchte Zeitanteil berücksichtigt werden. Es soll untersucht werden, wodurch es möglich ist, die TEK y max des Produkts bei vollständiger Auslastung der MAE r 1 noch weiter zu steigern. Dabei wird angenommen, dass der Plan-Nutzungsgrad ηplan nicht zu erhöhen ist, da die Verluste in der Produktion nicht reduziert werden können. Genauso sei die Betriebsmittelzeit TBM,1 unveränderlich vorgegeben, da weder weitere Schichten eingeführt noch Schichten verlängert werden sollen. Als Konsequenz verbleiben in dem Beispiel nur zwei Wege, um die TEK y max des gegebenen Produkts zu steigern: (1) Der für das Produkt verfügbare Zeitanteil der Betriebsmittelzeit TBM,1 wird vergrößert. Dies entspricht einer höheren Priorisierung des Produkts gegenüber allen anderen Produkten, deren Bearbeitung laut Plan die Nutzung der MAE r 1 erfordert. (2) Die effektive Taktzeit t eff wird reduziert, indem mit der MAE r 1 anstelle der Komplettbearbeitung nur eine Fertigbearbeitung ausgeführt wird. In diesem Fall muss zuvor eine zusätzliche Vorbearbeitung mit der MAE r 2 erfolgen. Im ersten Fall wird der Zeitanteil der Betriebsmittelzeit TBM,1 , der jeweils für andere Produkte zur Verfügung steht, reduziert. Als Folge der Abhängigkeiten, die durch die Verknüpfungen der Prozessschritte entstehen, gilt dies im zweiten Fall analog für die Betriebsmittelzeit TBM,2 . Soll für das Produkt mit der MAE r 1 nur eine Fertigbearbeitung ausgeführt werden, muss es zuerst eine Vorbearbeitung durchlaufen, wofür die MAE r 2 genutzt wird. Dies entspricht der alternativen Verknüpfung von zwei Prozessschritten, einer Komplettbearbeitung und einer Fertigbearbeitung mit der MAE r 1 , wobei der letztere sequenziell mit einem dritten Prozessschritt, einer Vorbearbeitung mit der MAE r 2 , verbunden ist. Als Folge dessen sinkt der verfügbare Zeitanteil der Betriebsmittelzeit TBM,2 für alle anderen Produkte. Zusammenfassend kann die TEK y max des Produkts zwar gesteigert werden, jedoch führt das in beiden Fällen zu einer Reduktion der TEK mindestens eines anderen Produkts. Das Beispiel zeigt, dass die festgehaltenen Voraussetzungen schon in sehr einfachen Fällen nicht erfüllt werden. Die Kalkulation von Kapazität, Auslastung und Investitionen muss entsprechend erweitert werden, wobei die Abhängigkeiten im jeweils vorliegendem Fall zu berücksichtigen sind. Im nächsten Abschnitt soll erläutert werden, zu welchen Ergebnissen diese Erweiterung im allgemeinen Fall mehrerer miteinander verknüpfter Prozessschritte 39 2 Lösungsvorbereitung: Systemanalyse eines Produkts führt. Die Erkenntnisse daraus können unmittelbar auf den Fall mehrerer Produkte übertragen werden. Hierzu müssen die Prozessschritte verschiedener Produkte alternativ oder selektiv verknüpft werden, je nachdem, ob die Stückzahlen unabhängig voneinander sein bzw. in einem fixen Verhältnis stehen sollen. 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte In diesem Abschnitt soll an zuerst einfachen, danach immer komplexeren Beispielen veranschaulicht werden, wie die Kalkulation von Kapazität, Auslastung und Investitionen im allgemeinen Fall verknüpfter Prozessschritte eines Produkts auf geeignete Weise zu erweitern ist. Der grafischen Illustration der Beispiele dienen Schemata, welche die mathematischen, in ihrem Wesen formalen Beschreibungen visuell unterstützen sollen und in den nachfolgenden Kapiteln zu einem grafischen Modell vereinfacht werden. Um die Aussagen in diesem Abschnitt exakt zu formulieren, werden als Ergänzung zur Notation aus Abschnitt 2.4 folgende Symbole eingeführt: Zahl der Prozessstückzahlen xα alternativ verknüpfter Prozessschritte, m ∈ N effektive Taktzeit mit Index i ∈ N eines sequenziell verknüpften Prozessschritts, t eff,i ∈ R 0 effektive Taktzeit mit zweiteiligem Index i /α, i ∈ N, α ∈ {‘A’, ‘B’, . . .} eines sequenziell, alternativ und/oder selektiv verknüpften Prozessschritts, t eff,iα ∈ R 0 u r (x) Auslastung der MAE r für einen gegebenen Vektor x von Prozessstückzahlen, u r (x) ∈ R 0 x Vektor [xα1 . . . xαm ]⊤ der Prozessstückzahlen xα, x ∈ Rm0 x∗ Vektor [x∗α1 . . . x∗αm ]⊤, optimale Lösung gemäß gegebenem Planungsziel, x∗ ∈ Rm0 xα Prozessstückzahl mit Index α ∈ {‘A’, ‘B’, . . .} alternativ verknüpfter Prozessschritte, xα ∈ R 0 x∗α optimale Teillösung gemäß gegebenem Planungsziel, x∗α ∈ R 0 α Index ggf. verketteter alternativer und/oder selektiver Verknüpfungen, α ∈ {‘A’, ‘B’, . . .} m t eff,i t eff,iα Die Auslastung u r (y) bzw. u r (x) einer MAE r ist abhängig von der Produktstückzahl y und deren Verteilung auf die verknüpften Prozessschritte im Wertstrom des Produkts. Wie in Abschnitt 2.2 erläutert, werden die Bedingungen hierfür durch den Typ der Verknüpfung bestimmt. Im Fall sequenzieller und selektiver Verknüpfungen ist die Verteilung der Produktstückzahl y fix vorgegeben (siehe Definition 2.5 bzw. 2.7). Im Gegensatz dazu ist sie im Fall alternativer Verknüpfungen frei wählbar und wird im weiteren Verlauf der Arbeit durch den Vektor x der Prozessstückzahlen repräsentiert (siehe Definition 2.6). Die Komplexität der Kalkulation steigt insbesondere dann, wenn es zur Beschreibung des Ablaufs notwendig ist, Verknüpfungen verschiedener Typen zu kombinieren. Die TEK y max bezeichnet stets das Maximum der Produktstückzahl y, wobei beschränkend gilt, dass die Auslastung u r (y) bzw. u r (x) keiner MAE r den Höchstwert von eins überschreiten darf. Gesucht ist in den nachfolgenden Beispielen dieses Abschnitts jeweils ein geschlossener mathematischer Ausdruck für die Auslastung u r (y) bzw. u r (x) jeder MAE r und, zu ermitteln durch Einsetzen und zielgerichtetes Umformen des Ergebnisses, für die TEK y max . Die notwendigen Investitionen werden wie im einfachen Fall eines Prozessschritts durch die Auslastung, genauer durch die Überlastung, bestimmt. Überschreitet die Auslastung u r 40 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte MAE r 1 PS 1 P MAE r 2 t eff,1 TBM,1 PS 2 P t eff,2 TBM,2 (a) Beispiel SQ1 MAE r PS 1 t eff,1 PS 2 P t eff,2 TBM (b) Beispiel SQ2 MAE r 1 MAE r 2 PS 1 t eff,1 PS 3 P t eff,3 TBM,1 PS 2 P t eff,2 TBM,2 (c) Beispiel SQ3 Abbildung 2.5: Schemata sequenzieller Verknüpfungen (Beispiel SQ1, SQ2 und SQ3). In Beispiel SQ1 ist eine sequenzielle Verknüpfung zweier Prozessschritte (PS) gegeben, denen je eine MAE r 1 bzw. r 2 zugeordnet ist. Beispiel SQ2 stellt im Hinblick auf den Ablauf die gleiche Verknüpfung dar, wobei für die Prozessschritte dieselbe MAE r genutzt wird. In Beispiel SQ3 liegt eine Kombination der vorigen Beispiele SQ1 und SQ2 vor, wie sie in der Praxis häufig anzutreffen ist. einer MAE r einen Wert von eins, müssen zusätzlich ⌈u r ⌉ − 1 MAEs desselben Typs beschafft werden, um das Produkt in der geplanten Stückzahl zu fertigen bzw. zu montieren. Da dieser direkte Zusammenhang für jedes der nachfolgenden Beispiele in der gleichen Weise gilt, wird auf den entsprechenden Ausdruck verzichtet. Statt unzweckmäßiger Wiederholungen sollen vielmehr die jeweiligen Besonderheiten hinsichtlich der Bestimmung der Auslastung u r (y) bzw. u r (x) und der TEK y max aufgezeigt und verallgemeinert werden, sodass deutlich wird, wie die Systemstruktur die Kalkulation bedingt. 2.5.1 Sequenzielle Verknüpfung Mit Hilfe von sequenziellen Verknüpfungen werden gemäß Definition 2.5 verschiedene Prozessschritte eines Produkts miteinander verbunden, die stets von der gesamten Stückzahl durchlaufen werden müssen. Solche Prozessschritte werden im geplanten Ablauf der Fertigung und Montage typischerweise nacheinander ausgeführt, wobei ihnen entweder jeweils eine eigene oder dieselbe MAE zugeordnet ist. Im Folgenden soll die Kalkulation der resultierenden Auslastung u r (y) und der TEK y max für diese beiden Fälle und für ihre Kombination an je einem Beispiel veranschaulicht werden. 41 2 Lösungsvorbereitung: Systemanalyse Beispiel SQ1 SQ(PS 1 [r 1 ], PS 2 [r 2 ]) (formale Notation, siehe Abschnitt 2.2) Die Fertigung eines Produkts teilt sich in eine Vorbearbeitung und eine darauffolgende Fertigbearbeitung, wie in Abbildung 2.5(a) dargestellt. Für die Vorbearbeitung (Prozessschritt 1, effektive Taktzeit t eff,1 ) wird eine Drehmaschine r 1 (Betriebsmittelzeit TBM,1 ) genutzt, welche ein Mitarbeiter in einem teilautomatisierten Ablauf steuert. Dagegen erfolgt die Fertigbearbeitung (Prozessschritt 2, effektive Taktzeit t eff,2 ) vollständig automatisiert mit einem Bearbeitungszentrum (BAZ) r 2 (Betriebsmittelzeit TBM,2 ). Aus der Beschreibung geht hervor, dass in dem Beispiel eine sequenzielle Verknüpfung zweier Prozessschritte mit je einer MAE r 1/2 vorliegt. Das heißt, die beiden Prozessschritte werden von der gesamten Produktstückzahl y durchlaufen (siehe Definition 2.5), und jede MAE r 1/2 wird nur für einen einzigen Prozessschritt genutzt. In einem solchen Fall kann die Auslastung u r 1/2(y) gemäß Gleichung (2.20) wie folgt bestimmt werden: u r 1/2(y) = t eff,1/2 y TBM,1/2 . (2.21) Erreicht die Auslastung u r 1/2(y) einer MAE r 1/2 einen Wert von eins, ist es nicht möglich, die Produktstückzahl y weiter zu erhöhen, unabhängig von der Auslastung u r 2/1(y) der jeweils verbleibenden MAE r 2/1 . Die TEK y max bezeichnet die maximale Produktstückzahl y, welche die Bedingung erfüllt, dass die Auslastung u r 1/2(y) keiner der MAEs r 1/2 einen Wert von eins übersteigt. Formal lautet diese Definition: © ª y max = max y : y 0 ∧ ∀r ∈ {r 1 , r 2 } u r (y) 1 . (2.22) Löst man Gleichung (2.22) mit Hilfe der Auslastung u r 1/2(y) aus Gleichung (2.21) auf, führt das zu folgendem Ausdruck, welcher der TEK y max entspricht: ( ) TBM,1 TBM,2 y max = min , . (2.23) t eff,1 t eff,2 In dem Beispiel werden die Drehmaschine r 1 und das BAZ r 2 für jeweils einen sequenziell verknüpften Prozessschritt genutzt. Die TEK y max wird unter diesen Bedingungen durch diejenige der zwei MAEs r 1/2 bestimmt, deren Auslastung u r 1/2(y) zuerst einen Wert von eins erreicht, wenn die Produktstückzahl y stetig erhöht wird. Im nächsten Beispiel werden wieder zwei Prozessschritte sequenziell verknüpft, wobei diesen im Unterschied zum gerade betrachteten Beispiel dieselbe MAE zugeordnet ist. Beispiel SQ2 SQ(PS 1 [r ], PS 2 [r ]) Wie in Beispiel SQ1 gliedert sich die Fertigung eines Produkts in eine Vorbearbeitung und eine Fertigbearbeitung, dargestellt in Abbildung 2.5(b). Das BAZ r (Betriebsmittelzeit TBM ) wird gegenüber dem vorherigen Beispiel nicht mehr nur für die Fertigbearbeitung (Prozessschritt 2, effektive Taktzeit t eff,2 ) verwendet, sondern auch für die nun ebenfalls automatisierte Vorbearbeitung (Prozessschritt 1, effektive Taktzeit t eff,1 ) genutzt. Dabei ist zu berücksichtigen, dass es Definition 2.1 verbietet, mit ein und derselben MAE zu einem Zeitpunkt mehr als einen Prozessschritt auszuführen. Um in einem solchen Fall 42 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte die Auslastung u r (y) als Ergebnis einer vorgegebenen Produktstückzahl y zu bestimmen, müssen aus diesem Grund die effektiven Taktzeiten t eff,1/2 addiert werden. Eingesetzt in Gleichung (2.20) folgt daraus der unten angegebene Ausdruck: u r (y) = (t eff,1 + t eff,2 ) y TBM . (2.24) Die TEK y max ist definiert als die maximale Produktstückzahl y, wobei die Auslastung u r (y) einen Wert von eins nicht überschreiten darf. Formal gilt: © ª y max = max y : y 0 ∧ u r (y) 1 . (2.25) Indem man Gleichung (2.25) mit Hilfe der Auslastung u r (y) aus Gleichung (2.24) auflöst, kann für die gesuchte TEK y max folgender Ausdruck gefunden werden: y max = TBM t eff,1 + t eff,2 . (2.26) Das Beispiel soll verdeutlichen, dass die effektiven Taktzeiten t eff,1/2 addiert werden müssen, um die Auslastung u r (y) und die TEK y max zu bestimmen, wenn im jeweils gegebenen Fall den sequenziell verknüpften Prozessschritten eines Produkts dieselbe MAE zugeordnet ist. In der Praxis, wie auch an Standorten der Bosch Rexroth AG, ist oftmals eine Kombination der Beispiele SQ1 und SQ2 vorzufinden. Spezielle Produktionsanlagen und Messvorrichtungen werden im Ablauf der Fertigung und Montage wiederholt für dasselbe Produkt genutzt. Einen solchen Fall beschreibt auch das folgende, dritte Beispiel. SQ(SQ(PS 1 [r 1 ], PS 2 [r 2 ]), PS 3 [r 1 ]) Beispiel SQ3 Um ein Produkt zu fertigen, finden nacheinander eine erste Messung (Eingangsprüfung), eine Bearbeitung und zum Abschluss eine zweite Messung (Ausgangsprüfung) statt, wie in Abbildung 2.5(c) dargestellt. Die beiden Messvorgänge (Prozessschritt 1 und 3, effektive Taktzeit t eff,1 bzw. t eff,3 ) erfordern jeweils den wiederholten Einsatz der Messvorrichtung r 1 (Betriebsmittelzeit TBM,1 ). Für die Bearbeitung (Prozessschritt 2, effektive Taktzeit t eff,2 ) wird zwischen den Messungen ein BAZ r 2 (Betriebsmittelzeit TBM,2 ) verwendet. Gemäß der Beschreibung ist in dem Beispiel eine sequenzielle Verknüpfung zweier Prozessschritte gegeben. Das Ergebnis, welches aus dieser Verknüpfung folgt, ist sequenziell mit einem dritten Prozessschritt verbunden. Dem ersten und dritten Prozessschritt ist dieselbe MAE r 1 zugeordnet, dem zweiten Prozessschritt dagegen die MAE r 2 . Analog zu Beispiel SQ2 kann die resultierende Auslastung u r 1(y) der MAE r 1 bestimmt werden, indem in Gleichung (2.20) die Summe der effektiven Taktzeiten t eff,1/3 eingesetzt wird: u r 1(y) = (t eff,1 + t eff,3 ) y TBM,1 . (2.27a) Da die MAE r 2 ausschließlich für die Bearbeitung und damit nur für einen einzigen Prozessschritt genutzt wird, gilt für die Auslastung u r 2(y) gemäß Gleichung (2.20): u r 2(y) = t eff,2 y TBM,2 . (2.27b) 43 2 Lösungsvorbereitung: Systemanalyse Die TEK y max ist analog zu Beispiel SQ1 definiert als die maximale Produktstückzahl y unter der Bedingung, dass die Auslastung u r 1/2(y) keiner der MAEs r 1/2 einen Wert von eins überschreitet. Formal lautet die Definition entsprechend: 0 ∧ ∀r ∈ {r 1 , r 2 } u r (y) © y max = max y : y ª 1 . (2.28) Mit Gleichung (2.27a, 2.27b) kann durch Einsetzen der Auslastung u r 1/2(y) folgender Ausdruck gefunden werden, welcher nach Gleichung (2.28) der TEK y max entspricht: y max = min ( TBM,1 t eff,1 + t eff,3 , TBM,2 t eff,2 ) . (2.29) Die Beispiele zeigen, dass die Produktstückzahl y im Fall sequenzieller Verknüpfungen nicht zu steigern, d. h. die TEK y max erreicht ist, sobald die Auslastung u r (y) mindestens einer MAE r einen Wert von eins annimmt. Ist zwei Prozessschritten dieselbe MAE zugeordnet, muss dabei die Überlagerung dieser Prozessschritte berücksichtigt werden. Statt einschränkender Bedingungen, welche die Kapazität begrenzen, werden im Fall einer alternativen Verknüpfung zusätzliche Freiheitsgrade geschaffen. Wie in Abschnitt 2.2 erläutert, kann die Stückzahl auf variable, nichtnegative reelle Prozessstückzahlen verteilt werden, wobei jedem Operanden einer alternativen Verknüpfung jeweils eine Prozessstückzahl zugewiesen wird. Im nächsten Teil des Abschnitts soll die Kalkulation der Auslastung und der Kapazität in drei Beispielen beleuchtet werden. 2.5.2 Alternative Verknüpfung Durch alternative Verknüpfungen werden gemäß Definition 2.6 solche Prozessschritte eines Produkts verbunden, die im geplanten Ablauf von einem variablen Anteil der Stückzahl durchlaufen werden. Zum besseren Verständnis der folgenden Beispiele wird eine Indexnotation für Prozessschritte und Taktzeiten eingeführt. Ist ein Prozessschritt alternativ und/ oder selektiv verknüpft, soll es möglich sein, von der Bezeichnung auf seine Position unter allen Operanden der verketteten Verknüpfungen zu schließen. Hierzu wird jedem alternativ und/oder selektiv verknüpften Prozessschritt ein Index i /α zugeordnet, der aus zwei Teilen besteht (z. B. 1/A, 2/B usw.). Der Teilindex i mit dem Wert 1, 2 usw. bezeichnet die Position des jeweiligen Prozessschritts unter allen sequenziellen Verknüpfungen (liegt keine solche vor, wird ein Wert von eins verwendet). Der Teilindex α mit dem Wert A, B usw. bezeichnet die Position unter allen alternativen und selektiven Verknüpfungen. Da alle Prozessschritte i /α mit gleichem Index α (z. B. 1/A, 2/A usw.) sequenziell verknüpft sind, muss durch die Prozessschritte jeweils die gleiche Stückzahl verlaufen. Diese Stückzahl wird gemäß Definition 2.6 mit dem Begriff der Prozessstückzahl und dem Symbol xα bezeichnet. Entsprechend repräsentiert der Vektor x mit den Koordinaten xα die Verteilung der Produktstückzahl y im Wertstrom des Produkts. Es folgen drei Beispiele alternativer Verknüpfungen, welche die Kalkulation der Auslastung u r (x) und der TEK y max unter Verwendung der eingeführten Indexnotation veranschaulichen. 44 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte A MAE r 1 PS 1/A P A t eff,1A PS 1/A TBM,1 PS 2 P MAE r 2 PS 1/B B P MAE r 1 t eff,1A t eff,2 TBM,1 MAE r 2 t eff,1B PS 1/B t eff,1B P TBM,2 B TBM,2 (a) Beispiel AL1 (b) Beispiel AL2 Abbildung 2.6: Schemata alternativer Verknüpfungen (Beispiel AL1 und AL2). Beispiel AL1 beschreibt die alternative Verknüpfung zweier Prozessschritte (PS), denen je eine MAE r 1 bzw. r 2 zugeordnet ist. Beispiel AL2 erweitert Beispiel AL1, indem die beiden Prozessschritte sequenziell mit einem dritten Prozessschritt verbunden werden, der jeweils im Anschluss ausgeführt werden muss. Für diesen zusätzlichen Prozessschritt wird wie für den ersten die MAE r 1 benötigt. AL(PS 1/A [r 1 ], PS 1/B [r 2 ]) Beispiel AL1 Die Fertigung eines Produkts verläuft im Zuge einer Komplettbearbeitung in einem einzigen Bearbeitungsschritt, wie in Abbildung 2.6(a) dargestellt. Hierfür existieren grundsätzlich zwei verschiedene Möglichkeiten, wobei das Ergebnis mit Blick auf das Produkt jeweils das gleiche ist. Die Bearbeitung erfolgt entweder vollständig automatisiert (Prozessschritt 1/A, effektive Taktzeit t eff,1A ) mit einem BAZ r 1 (Betriebsmittelzeit TBM,1 ) oder teilautomatisiert (Prozessschritt 1/B, effektive Taktzeit t eff,1B ) unter Inanspruchnahme einer zusätzlich verfügbaren, manuell zu bedienenden Drehmaschine r 2 (Betriebsmittelzeit TBM,2 ). Gegeben ist somit eine alternative Verknüpfung zweier Prozessschritte 1/A und 1/B, denen jeweils eine der zwei MAEs r 1/2 zugeordnet ist. Die Produktstückzahl y kann in einem Fall wie in diesem Beispiel variabel auf zwei Prozessstückzahlen x A und x B (Prozessschritt 1/A bzw. 1/B) verteilt werden. Deren Summe muss allerdings stets gleich der Produktstückzahl y sein, sodass formal gilt (siehe Definition 2.6): y = x A + xB . (2.30) Die Prozessstückzahlen x A und x B durchlaufen unabhängig voneinander das BAZ r 1 bzw. die Drehmaschine r 2 . Um die Auslastung u r 1/2(x) der beiden MAEs r 1/2 zu bestimmen, muss Gleichung (2.20) wie folgt für einen Vektor x = [x A x B ]⊤ erweitert werden: u r 1(x) = t eff,1A x A TBM,1 , u r 2(x) = t eff,1B x B TBM,2 . (2.31a, 2.31b) Die TEK y max bezeichnet wie im bisherigen Verlauf die maximale Produktstückzahl y, wobei die resultierende Auslastung u r 1/2(x) keiner der zwei MAEs r 1/2 einen Wert von eins 45 2 Lösungsvorbereitung: Systemanalyse überschreiten darf. Die Prozessstückzahlen x A und x B können einen beliebigen reellen Wert größer als oder gleich null annehmen. Gemäß Gleichung (2.30) muss ihre Summe jedoch der Produktstückzahl y entsprechen. Drückt man diesen Zusammenhang in formaler Schreibweise aus, lautet die Definition der TEK y max : © ª y max = max x A + x B : x 0 ∧ ∀r ∈ {r 1 , r 2 } u r (x) 1 . (2.32) Um hierfür einen geschlossenen Ausdruck zu finden, wird die TEK y max als eine Funktion von zwei optimalen Teillösungen x∗A und x∗B dargestellt. Die Teillösungen sollen dadurch definiert sein, dass die Produktstückzahl y der TEK y max entspricht, wenn x∗A und x∗B als Summanden in Gleichung (2.30) eingesetzt werden. Einfacherweise folgt daraus: y max = x∗A + x∗B . (2.33) Die zwei Prozessstückzahlen x A und x B sind gemäß Gleichung (2.31a, 2.31b) allein durch die Bedingung beschränkt, dass die Auslastung u r 1/2(x) je einer der MAEs r 1/2 kleiner als oder gleich eins sein muss, wobei dies im Fall von x A die MAE r 1 und im Fall von x B die MAE r 2 betrifft. Eine Bedingung, die zu einer Abhängigkeit zwischen x A und x B führt, existiert in diesem Beispiel dagegen nicht. Die gesuchte TEK y max ist definiert als das Maximum der Produktstückzahl y und entspricht der Summe der zwei optimalen Teillösungen x∗A und x∗B , wie in Gleichung (2.32) bzw. (2.33) angegeben. Da sich die beiden Summanden, wie soeben erläutert, nicht gegenseitig begrenzen, müssen diese unabhängig voneinander jeweils den größten Wert annehmen, der nach obiger Bedingung in Bezug auf die Auslastung u r 1/2(x) zulässig ist. Das heißt in formaler Notation: ª © (2.34a) x∗A = max x A : x 0 ∧ u r 1(x) 1 , © ª x∗B = max x B : x 0 ∧ u r 2(x) 1 . (2.34b) Gleichung (2.31a, 2.31b) führt jeweils zu folgendem Ausdruck für die optimale Teillösung x∗A bzw. x∗B , welcher der Definition gemäß Gleichung (2.34a, 2.34b) entspricht: x∗A = TBM,1 t eff,1A x∗B = , TBM,2 t eff,1B . (2.35a, 2.35b) Einsetzen der Ergebnisse aus Gleichung (2.35a, 2.35b) in Gleichung (2.33) führt zu dem gesuchten Ausdruck für die TEK y max , der in diesem Beispiel lautet: y max = TBM,1 t eff,1A + TBM,2 t eff,1B . (2.36) Da die MAEs r 1/2 verschiedenen, alternativ miteinander verknüpften Prozessschritten zugeordnet sind, ist im vorliegenden Beispiel die TEK y max zu bestimmen, indem die maximalen Stückzahlen, welche durch diese Prozessschritte verlaufen, addiert werden. Anders formuliert, durch unabhängige Maximierung der Prozessstückzahlen wird gleichermaßen deren Summe maximiert. Beschränkend gilt wie zuvor die Bedingung, dass die Auslastung u r 1/2(x) keiner der MAEs r 1/2 einen Wert von eins übersteigen darf. 46 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Bisher erschien die Kalkulation intuitiv, jedoch ist in vielen Fällen eine Kombination von Verknüpfungen verschiedener Typen erforderlich, um Produktionsabläufe aus der Praxis abzubilden. Als Folge wächst unweigerlich die Komplexität. Das nächste Beispiel soll diese Beobachtung an dem immer noch vergleichsweise einfachen Fall einer alternativen und einer sequenziellen Verknüpfung belegen. SQ(AL(PS 1/A [r 1 ], PS 1/B [r 2 ]), PS 2 [r 1 ]) Beispiel AL2 Die Fertigung eines Produkts ist analog zu Beispiel SQ1 in eine Vorbearbeitung und eine Fertigbearbeitung gegliedert, wie in Abbildung 2.6(b) dargestellt. Für die Vorbearbeitung existieren grundsätzlich wie in Beispiel AL1 zwei verschiedene Möglichkeiten, welche sich in Bezug auf das Ergebnis nicht unterscheiden. Die Vorbearbeitung erfolgt entweder vollständig automatisiert (Prozessschritt 1/A, effektive Taktzeit t eff,1A ) mit einem BAZ r 1 (Betriebsmittelzeit TBM,1 ) oder teilautomatisiert (Prozessschritt 1/B, effektive Taktzeit t eff,1B ) mit einer Drehmaschine r 2 (Betriebsmittelzeit TBM,2 ). Dagegen erfordert die Fertigbearbeitung (Prozessschritt 2, effektive Taktzeit t eff,2 ) in jedem Fall die Nutzung des BAZ r 1 , d. h. unabhängig davon, welche der beiden MAEs zuvor zur Vorbearbeitung eingesetzt wurde. In dem gegebenen Beispiel liegt eine alternative Verknüpfung zweier Prozessschritte 1/A und 1/B zur Vorbearbeitung mit je einer der MAEs r 1/2 vor. Das Ergebnis der Verknüpfung ist sequenziell mit einem Prozessschritt 2 zur Fertigbearbeitung verbunden, welchem die MAE r 1 zugeordnet ist. Folglich ist es möglich, die Produktstückzahl y variabel auf zwei Prozessstückzahlen x A (Prozessschritt 1/A und 2) und x B (Prozessschritt 1/B und 2) zu verteilen. Wie in Beispiel AL1 gilt die Bedingung, dass deren Summe der Produktstückzahl y entsprechen muss (siehe Definition 2.6). Das heißt formal: y = x A + xB . (2.37) Das BAZ r 1 soll wie beschrieben sowohl für die Vorbearbeitung (Prozessschritt 1/A) als auch für die Fertigbearbeitung (Prozessschritt 2) genutzt werden. Als Folge wird es von den Prozessstückzahlen x A (Prozessschritt 1/A und 2) und x B (Prozessschritt 2) durchlaufen. Um die Auslastung u r 1(x) zu bestimmen, muss die Überlagerung der Prozessschritte berücksichtigt werden. Gleichung (2.20) ist entsprechend für einen Vektor x = [x A x B ]⊤ zu erweitern, indem die Stückzahlen mit den Taktzeiten gewichtet werden: u r 1(x) = (t eff,1A + t eff,2 ) x A + t eff,2 x B TBM,1 . (2.38a) Im Gegensatz dazu wird die Drehmaschine r 2 allein für die Vorbearbeitung genutzt und von der Prozessstückzahl x B durchlaufen (Prozessschritt 1/B). Die Auslastung u r 2(x) ist in diesem Fall auf einfache Weise zu bestimmen, indem die Stückzahl und die zugehörige Taktzeit in Gleichung (2.20) eingesetzt werden, sodass entsprechend gilt: u r 2(x) = t eff,1B x B TBM,2 . (2.38b) 47 2 Lösungsvorbereitung: Systemanalyse Die TEK y max bezeichnet die maximale Produktstückzahl y, wobei wie in Beispiel AL1 die Bedingung erfüllt sein muss, dass die Auslastung u r 1/2(x) keiner der zwei MAEs r 1/2 einen Wert von eins übersteigt. Entsprechend lautet die formale Definition: ª © (2.39) y max = max x A + x B : x 0 ∧ ∀r ∈ {r 1 , r 2 } u r (x) 1 . In der Praxis finden Vorbearbeitung und Fertigbearbeitung oft bevorzugt mit dem vollautomatisierten BAZ r 1 statt (Prozessschritt 1/A bzw. 2). Sobald aber die Auslastung u r 1(x) einen Wert von eins erreicht, erfolgt die Vorbearbeitung für einen Teil x B der Produktstückzahl y mit der Drehmaschine r 2 (Prozessschritt 1/B), um Kapazität zur Fertigbearbeitung mit dem BAZ r 1 (Prozessschritt 2) zu schaffen. Der verbleibende Stückzahlanteil x A durchläuft zur Vorbearbeitung weiter das BAZ r 1 (Prozessschritt 1/A). Gesucht ist die TEK y max , die erzielt werden kann, indem die Produktstückzahl y optimal auf die zwei Prozessstückzahlen x A und x B verteilt wird. Das Ergebnis lautet wie folgt. Theorem 2.1: Technische Kapazität y max für Beispiel AL2. Im Ablauf der Fertigung und Montage seien die Prozessschritte 1/A, 1/B und 2 (effektive Taktzeit t eff,1A , t eff,1B bzw. t eff,2 ) unter Nutzung von zwei MAEs r 1/2 (Betriebsmittelzeit TBM,1/2 ) alternativ und sequenziell verknüpft, wie in Abbildung 2.6(b) dargestellt. In dem Fall gilt für die TEK y max :  TBM,2 TBM,1 T    BM,1 , falls , (a)    t eff,2 t eff,2 t eff,1B   y max = (2.40) t eff,1A TBM,2  TBM,1 +    t eff,1B    , sonst. (b)  t eff,1A + t eff,2 Interpretation. Bevor der Beweis des Theorems folgt, soll das Verständnis dafür geschaffen werden, wie sich die Terme in Gleichung (2.40) zusammensetzen. Die TEK y max ist durch ± T eine Fallunterscheidung bestimmt, die auf einem Vergleich der Quotienten BM,1 t eff,2 ± und TBM,2 t eff,1B beruht. Diese zwei Ausdrücke bezeichnen jeweils das Maximum der Produktstückzahl y unter der Bedingung, dass die Auslastung u r 1/2(x) einen Wert von eins nicht übersteigt, wobei nur ein Prozessschritt berücksichtigt wird. Der erste Ausdruck betrifft entsprechend die Fertigbearbeitung mit der MAE r 1 (Prozessschritt 2), der zweite die Vorbearbeitung mit der MAE r 2 (Prozessschritt 1/B). Hintergrund für den Vergleich dieser beiden Ausdrücke ist folgender: Da die Auslastung u r 1/2(x) der zwei MAEs r 1/2 nach oben beschränkt ist, kann der maximale Wert der Produktstückzahl y erzielt werden, indem zuerst ausschließlich diese zwei Prozessschritte ausgeführt werden. ± Im Fall (a) von ±Gleichung (2.40) ist der Quotient TBM,1 t eff,2 kleiner als oder gleich dem Quotienten TBM,2 t eff,1B . Das heißt, werden nur die zwei Prozessschritte betrachtet und wird die Produktstückzahl y stetig erhöht, dann erreicht die Auslastung u r 1/2(x) der MAE r 1 zuerst oder zusammen mit der MAE r 2 einen Wert von eins. Da aber zur Fertigbearbeitung im geplanten Ablauf immer die MAE r 1 genutzt werden muss, kann die Produktstückzahl y nicht weiter gesteigert werden. Entsprechend folgt die TEK y max in dem gegebenen Fall unmittelbar aus der Betriebsmittelzeit TBM,1 und der effektiven Taktzeit t eff,2 . 48 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte ± Im Fall (b) der ± oben aufgeführten Gleichung ist der Quotient TBM,1 t eff,2 größer als der Quotient TBM,2 t eff,1B . Das heißt, werden wie im vorigen Fall nur die zwei genannten Prozessschritte betrachtet und wird die Produktstückzahl y stetig gesteigert, dann erreicht die Auslastung u r 2(x) der MAE r 2 zuerst einen Wert von eins. Allerdings ist es dieses Mal möglich, die Produktstückzahl y weiter zu erhöhen, indem die MAE r 1 nicht mehr nur zur Fertigbearbeitung, sondern auch zur Vorbearbeitung genutzt wird. Die Kapazität, welche für die Vorbearbeitung mit der MAE r 2 zur Verfügung steht, wird hierzu gedanklich der MAE r 1 hinzugefügt. Entsprechend werden die Betriebsmittelzeiten TBM,1/2 addiert. Die effektiven Taktzeiten t eff,1A und t eff,1B stimmen aber nicht notwendigerweise überein, weshalb die ± Betriebsmittelzeit TBM,2 vor Bildung der Summe mit dem Faktor t eff,1A t eff,1B multipliziert werden muss. Dann kann für die Vorbearbeitung unabhängig von der jeweils genutzten MAE r 1/2 die effektive Taktzeit t eff,1A angenommen werden. Da jedes Stück des Produkts immer beide Bearbeitungsschritte durchläuft, müssen die effektiven Taktzeiten t eff,1A und t eff,2 addiert werden. Fasst man all das zusammen, ± ist die TEK y max in diesem Fall das Ergebnis einer Betriebsmittelzeit TBM,1 + t eff,1A TBM,2 t eff,1B und einer effektiven Taktzeit t eff,1A + t eff,2 , wie in Gleichung (2.40) weiter oben angegeben. Beweis. Wie schon in Beispiel AL1 wird die TEK y max als eine Funktion zweier optimaler Teillösungen x∗A und x∗B ausgedrückt. Optimal heißt in diesem Zusammenhang, dass die Produktstückzahl y, welche gemäß Gleichung (2.37) der Summe aus x A und x B entspricht, mit der gesuchten TEK y max übereinstimmt, wenn x∗A bzw. x∗B als Summanden eingesetzt werden. Beschreibt man diese Bedingung formal, dann folgt daraus: y max = x∗A + x∗B . (2.41) Für alle möglichen Lösungen x = [x A x B ]⊤ gilt die Bedingung, dass die Auslastung u r 1/2(x) keiner der zwei MAEs r 1/2 , die nach Gleichung (2.38a, 2.38b) aus einem Paar von x A und x B folgt, einen Wert größer als eins annehmen darf. Um einen Ausdruck für die TEK y max zu finden, der Gleichung (2.39) erfüllt, ist aus der Menge aller Lösungen x, die nach obiger Bedingung gültig sind, die optimale Lösung x∗ = [x∗A x∗B ]⊤ gesucht. Laut Gleichung (2.41) ist diese dadurch gekennzeichnet, dass die Summe der optimalen Teillösungen x∗A und x∗B wie angegeben der TEK y max entspricht. Gemäß Definition der TEK y max darf keine andere gültige Lösung x existieren, nach welcher die Produktstückzahl y den zugehörigen Wert gemäß der optimalen Lösung x∗, d. h. die TEK y max , übersteigt. Die Prozessstückzahl x A im Allgemeinen und die optimale Teillösung x∗A im Besonderen sind allein durch die Bedingung beschränkt, dass die Auslastung u r 1(x∗) der MAE r 1 kleiner als oder gleich eins sein muss. Wird angenommen, dass die Auslastung u r 1(x∗) kleiner als eins ist, dann existiert eine weitere gültige Lösung x, nach welcher die Prozessstückzahl x A größer ist als die optimale Teillösung x∗A , die Werte für x B und x∗B gleich sind und als Folge die Produktstückzahl y die TEK y max übersteigt. Da dies aber laut Definition der TEK y max ausgeschlossen ist, liegt ein Widerspruch vor. Dementsprechend muss die Annahme falsch, ihre Negation wahr und die Auslastung u r 1(x∗) gleich eins sein. Unter dieser Voraussetzung gilt nach Umstellung von Gleichung (2.38a) für die optimale Teillösung x∗A : x∗A = TBM,1 − t eff,2 x∗B t eff,1A + t eff,2 . (2.42) 49 2 Lösungsvorbereitung: Systemanalyse Indem Gleichung (2.42) in Gleichung (2.41) eingesetzt wird, ist die TEK y max anschließend als Funktion der optimalen Teillösung x∗B darstellbar: y max = TBM,1 − t eff,2 x∗B t eff,1A + t eff,2 + x∗B = TBM,1 + t eff,1A x∗B t eff,1A + t eff,2 . (2.43) Die Zeitgrößen seien positiv gegeben. Unter allen möglichen Lösungen x, für welche die Auslastung u r 1/2(x) der MAE r 1 gleich eins und jene der MAE r 2 nicht größer als eins ist, muss die Teillösung x∗B der optimalen Lösung x∗ maximal sein. Der Grund dafür ist, dass die Annahme des Gegenteils wie zuvor zu einem Widerspruch führt. Wird entsprechend angenommen, dass eine Lösung x existiert, welche die zwei genannten Bedingungen in Bezug auf die Auslastung u r 1/2(x) erfüllt und nach welcher die Prozessstückzahl x B größer ist als die Teillösung x∗B , dann übersteigt die TEK y max für x B laut Gleichung (2.43) den Wert für x∗B . Somit gilt für die optimale Teillösung x∗B allgemein: © x∗B = max x B : x 0 ∧ u r 1(x) = 1 ∧ u r 2(x) ª 1 . (2.44) Mit Hilfe der Auslastung u r 1/2(x) aus Gleichung (2.38a, 2.38b) ist es möglich, einen Ausdruck für die optimale Teillösung x∗B zu bestimmen, welcher Gleichung (2.44) erfüllt: ) ( T T BM,2 BM,1 , . (2.45) x∗B = min t eff,2 t eff,1B Durch Umformulierung von Gleichung (2.45) kann dieser Ausdruck im nächsten Schritt als Ergebnis einer Fallunterscheidung dargestellt werden:  TBM,2   TBM,1 , falls TBM,1  ,   t eff,2 t eff,2 t eff,1B ∗ xB = (2.46)  T  BM,2   , sonst.  t eff,1B Einsetzen des Teilergebnisses aus Gleichung (2.46) in Gleichung (2.43) führt schließlich zu dem gesuchten Ausdruck für die TEK y max in diesem Beispiel:   t eff,1A TBM,1   TBM,1 +    t eff,2 TBM,2 TBM,1    , falls ,   t eff,1A + t eff,2 t eff,2 t eff,1B (2.47) y max =  t eff,1A TBM,2    TBM,1 +   t eff,1B    , sonst.   t eff,1A + t eff,2 Nach Umformung entspricht Gleichung (2.47) der zu beweisenden Gleichung (2.40). 50 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte xB ± TBM,2 t eff,1B u r 2 (x) 1 x∗ ± TBM,1 t eff,2 y max u r 1 (x) 0 xB 1 xA ± TBM,1 (t eff,1A + t eff,2 ) ± (a) Fall TBM,1 t eff,2 ± TBM,2 t eff,1B ± TBM,1 t eff,2 x∗ ± TBM,2 t eff,1B u r 2 (x) 1 y max u r 1 (x) 0 1 ± TBM,1 (t eff,1A + t eff,2 ) ± (b) Fall TBM,1 t eff,2 xA ± TBM,2 t eff,1B Abbildung 2.7: Grafische Lösung einer alternativen Verknüpfung (Beispiel AL2). Im zweidimensionalen Fall werden die Bedingungen, dass die Auslastung u r 1/2(x) nicht größer als eins sein darf, jeweils durch Geraden repräsentiert, welche die Ortsvektoren aller gültigen Lösungen x begrenzen. Gesucht ± ist die TEK y max , die als Gerade mit dem Anstieg ∆x B ∆x A = −1 durch den Ortsvektor der optimalen Lösung x∗ verläuft. Im Fall (a) beschreibt die Lösung x∗ den Schnittpunkt der Geraden u r 1(x) = 1 und x A = 0, im Fall (b) den Schnittpunkt der zwei Geraden u r 1/2(x) = 1. 51 2 Lösungsvorbereitung: Systemanalyse A B MAE r 1 MAE r 3 PS 1/A t eff,1A PS 2/A t eff,2A PS 1/B P t eff,1B PS 2/C P t eff,2C TBM,1 TBM,3 MAE r 2 PS 1/C t eff,1C PS 2/B P t eff,2B C TBM,2 Abbildung 2.8: Schema einer alternativen Verknüpfung (Beispiel AL3). Beispiel AL3 beschreibt den Fall einer alternativen Verknüpfung dreier Prozessschritte (PS) 1/A, 1/B und 1/C. Jeder von diesen ist sequenziell mit einem weiteren Prozessschritt 2/A, 2/B bzw. 2/C verbunden. Die MAEs r 1 , r 2 und r 3 werden für die Prozessschritte 1/A und 1/B, 1/C und 2/B bzw. 2/A und 2/C genutzt, d. h. für jeweils zwei verschiedene, verkettet miteinander verknüpfte Prozessschritte. Grafische Lösung. Abbildung 2.7(a) und 2.7(b) stellen die TEK y max als optimale Lösung eines linearen, zweidimensionalen Problems fallweise grafisch dar. Wie definiert seien die vorgegebenen Zeitgrößen positiv. Für jede der MAEs r 1/2 muss die Bedingung gelten, dass die Auslastung u r 1/2(x) einen Wert von eins nicht überschreitet. Diese zwei Bedingungen werden im allgemeinen, mehrdimensionalen Fall durch Hyperebenen und im gegebenen, zweidimensionalen Fall des Beispiels durch Geraden repräsentiert, welche den Raum R2 0 aller möglichen Paare (x A , x B ) der nichtnegativen reellen Prozessstückzahlen x A und x B jeweils in einen abgeschlossenen, gültigen Halbraum {x ∈ R2 0 : u r 1/2(x) 1} und in einen offenen, ungültigen Halbraum {x ∈ R2 0 : u r 1/2(x) 1} teilen. Die konvexe Schnittmenge der gültigen Halbräume, im allgemeinen Fall repräsentiert durch ein Polytop und im vorliegenden, zweidimensionalen Fall durch ein Polygon, bildet die Menge aller gültigen Lösungen x. Die Betragssummennorm der eingeschlossenen Ortsvektoren dieser Lösungen, bestimmt durch die Summe der Koordinaten x A und x B , entspricht jeweils der Produktstückzahl y. Gesucht ist demzufolge der Ortsvektor, welcher ∗ die Betragssummennorm maximiert und damit zur optimalen Lösung ± x führt. Durch diesen verläuft schließlich die TEK y max als Gerade mit dem Anstieg ∆x B ∆x A = −1. Der erste Halbraum {x ∈ R2 0 : u r 1(x) 1} entspricht im Fall (a) von Gleichung (2.40) einer Teilmenge des zweiten Halbraums {x ∈ R2 0 : u r 2(x) 1}, weshalb x∗ den Schnittpunkt der Geraden u r 1(x) = 1 mit der Koordinatenachse x B bezeichnet. Demgegenüber stellt im Fall (b) keiner der Halbräume {x ∈ R2 0 : u r 1/2(x) 1} eine Teilmenge des jeweils anderen dar, und folglich beschreibt x∗ den Schnittpunkt der beiden Geraden u r 1/2(x) = 1. In Beispiel AL2 kann die TEK y max bestimmt werden, indem zwei Fälle in Abhängigkeit von den vorgegebenen Zeiten unterschieden werden. Im allgemeinen Fall gilt es jedoch, ein lineares, mehrdimensionales Problem zu lösen, wie das nächste, komplexere Beispiel einer verketteten Verknüpfung veranschaulichen soll. 52 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Beispiel AL3 AL(AL(SQ(PS 1/A [r 1 ], PS 2/A [r 3 ]), SQ(PS 1/B [r 1 ], PS 2/B [r 2 ])), SQ(PS 1/C [r 2 ], PS 2/C [r 3 ])) Analog zu Beispiel SQ1 ist die Fertigung eines Produkts in eine Vorbearbeitung und eine Fertigbearbeitung gegliedert, wie in Abbildung 2.8 dargestellt. Hierfür stehen drei MAEs mit unterschiedlichen Eigenschaften und daraus folgender Eignung zur Verfügung, wobei folgende Bedingungen gelten: Die MAE r 1 (Betriebsmittelzeit TBM,1 ) kann nur zur Vorbearbeitung eingesetzt werden. Dagegen erlaubt die MAE r 2 (Betriebsmittelzeit TBM,2 ) sowohl die Ausführung der Vorbearbeitung als auch der Fertigbearbeitung. Die MAE r 3 (Betriebsmittelzeit TBM,3 ) eignet sich nur zur Fertigbearbeitung. Einschränkend gilt außerdem, dass nacheinander immer zwei verschiedene MAEs zum Einsatz kommen müssen, um Verluste durch Umrüsten der MAEs weitestgehend zu vermeiden. Gemäß diesen Bedingungen wählt jedes Stück des Produkts einen von drei Prozessen, jeweils entsprechend einem Paar der MAEs r 1/3 , r 1/2 oder r 2/3 , welche das Stück im Ablauf der Fertigung durchläuft. Das Beispiel beschreibt demnach eine verkettete alternative Verknüpfung dreier Prozessschritte, welche der Vorbearbeitung dienen und im Folgenden mit der Abkürzung 1/A (r 1 , effektive Taktzeit t eff,1A ), 1/B (r 1 , t eff,1B ) und 1/C (r 2 , t eff,1C ) bezeichnet werden sollen. Von diesen drei Prozessschritten ist jeder einzelne sequenziell mit einem weiteren Prozessschritt zur Fertigbearbeitung verknüpft, abgekürzt mit 2/A (r 3 , effektive Taktzeit t eff,2A ), 2/B (r 2 , t eff,2B ) bzw. 2/C (r 3 , t eff,2C ). Die Produktstückzahl y kann variabel auf drei Prozessstückzahlen xα, α ∈ {‘A’, ‘B’, ‘C’}, verteilt werden, die jeweils den zwei sequenziell verknüpften Prozessschritten 1/α und 2/α zugeordnet sind. Wie zuvor in Beispiel AL1 und AL2 muss dabei die Bedingung erfüllt sein, dass deren Summe der Produktstückzahl y entspricht, sodass gilt (siehe Definition 2.6): y = x A + xB + xC . (2.48) Jede der drei MAEs r ∈ {r 1 , r 2 , r 3 } wird wie zuvor beschrieben zur Ausführung von zwei verschiedenen Prozessschritten genutzt. Analog zu Beispiel AL2 muss die Überlagerung dieser Prozessschritte berücksichtigt werden, um die Auslastung u r (x) aller MAEs r zu bestimmen. Gleichung (2.20) ist entsprechend für einen Vektor x = [x A x B x C ]⊤ zu erweitern, indem die drei Prozessstückzahlen xα, α ∈ {‘A’, ‘B’, ‘C’}, mit den jeweils zugeordneten Taktzeiten gewichtet werden. Für die einzelnen MAEs r folgt daraus in diesem Beispiel: u r 1(x) = u r 2(x) = u r 3(x) = t eff,1A x A + t eff,1B x B TBM,1 t eff,1C x C + t eff,2B x B TBM,2 t eff,2A x A + t eff,2C x C TBM,3 , (2.49a) , (2.49b) . (2.49c) Die TEK y max ist analog zu den vorangegangenen Beispielen definiert als die maximale Produktstückzahl y, wobei in dem betrachteten Beispiel die Bedingung erfüllt sein muss, 53 2 Lösungsvorbereitung: Systemanalyse dass die Auslastung u r (x) keiner der drei MAEs r ∈ {r 1 , r 2 , r 3 } einen Wert von eins übersteigt. In formaler Schreibweise lautet die zugehörige Vorschrift: © y max = max x A + x B + x C : x 0 ∧ ∀r ∈ {r 1 , r 2 , r 3 } u r (x) ª 1 . (2.50) Wie in Beispiel AL1 und AL2 wird die gesuchte TEK y max zum Finden einer Lösung als eine Funktion optimaler Teillösungen x∗α , α ∈ {‘A’, ‘B’, ‘C’}, dargestellt. Das heißt in diesem Fall, dass die Produktstückzahl y der TEK y max entsprechen muss, wenn die drei Teillösungen x∗α als Summanden in Gleichung (2.48) einsetzt werden. Demnach gilt formal: y max = x∗A + x∗B + x∗C . (2.51) Dem Verständnis des Folgenden dient ein Rückblick. Um in Beispiel AL2 eine Lösung für die letztlich gesuchte TEK y max zu finden, wurde in einem ersten Schritt das Maximum der Prozessstückzahl x B ermittelt. Hierbei galt die Bedingung, dass die Auslastung u r 1/2(x) nicht den vorgegebenen maximalen Wert von eins überschreiten durfte, wie schon im Verlauf dieses Kapitels erläutert. Daraus folgte die Teillösung x∗B , deren Einsetzen es im Anschluss daran erlaubte, einen geschlossenen Ausdruck für die TEK y max zu ermitteln. In dem Zuge wurde implizit die Teillösung x∗A bestimmt, die aus der Maximierung der Prozessstückzahl x A resultiert, wobei zusätzlich zur obigen Bedingung in Bezug auf die Auslastung u r 1/2(x) eine Nebenbedingung erfüllt sein musste. Die Nebenbedingung besagte, dass die im ersten Schritt maximierte Prozessstückzahl x B ihren Wert behalten muss. Das führt zu der Idee, den Prozessstückzahlen Prioritäten zuzuordnen und sie gemäß dieser Priorisierung iterativ zu maximieren, wobei zur Beibehaltung der Werte, die in allen vorigen Schritten gefunden wurden, in jedem Schritt Nebenbedingungen hinzugefügt werden. Es stellt sich die Frage, ob das Planungsziel der maximalen Kapazitäten im Allgemeinen erreichbar ist, indem eine solche Heuristik zur iterativen Maximierung angewandt wird. Zur Beantwortung dieser Frage richtet sich der Blick auf Beispiel AL3. Wie oben erläutert, wird im ersten Iterationsschritt das Maximum der Prozessstückzahl mit der Priorität eins unter der Bedingung gesucht, dass im Fall keiner MAE r ∈ {r 1 , r 2 , r 3 } die Auslastung u r (x) einen Wert von eins überschreitet. In den darauffolgenden Iterationsschritten wird jeweils das Maximum der nächsten Prozessstückzahl bestimmt, mit der gleichen Bedingung in Bezug auf die Auslastung u r (x) und allen Maxima aus den vorherigen Iterationsschritten als zu erfüllenden Nebenbedingungen. Tabelle 2.3 stellt die Ergebnisse einer iterativen Maximierung der Prozessstückzahlen x A , x B und x C in allen sechs Permutationen der gesuchten TEK y max und der zugrundeliegenden optimalen Lösung x∗ gegenüber. Es wird deutlich, dass die maximal erreichbare Stückzahl des Produkts durch die Anwendung einer Heuristik wie der beschriebenen selbst im einfachsten Fall jeweils gleicher effektiver Taktzeiten und gleicher Betriebsmittelzeiten nicht gefunden wird. Das gilt analog für das Planungsziel der minimalen Investitionen. Hierzu soll angenommen werden, dass die geplante Stückzahl genau der TEK y max entspricht. Erhöht man nun stetig die Produktstückzahl y, indem die Prozessstückzahlen x A , x B und x C iterativ maximiert werden, dann überschreitet die Auslastung u r (x) einer MAE r einen Wert von eins, obwohl eine gültige Lösung existiert, die keine Überlastung und somit keine Investitionen erfordert. 54 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Zielfunktion(en) Stückzahlverteilung xA (1a) Iterative Maximierung von x A , x B , x C (oder x A , x C , x B ) © ª x∗ A = max x A : x 0 ∧ ∀r ∈ {r 1 , r 2 , r 3 } u r (x) 1 © ª ∗ ∗ x∗ B = max x B : [s. x A ] . . . ∧ x A = x A © ª ∗ ∗ ∗ x C = max x C : [s. x A ] . . . ∧ x A = x∗ A ∧ xB = xB (1b) Iterative Maximierung von x B , x C , x A (oder x B , x A , x C ) ª © x∗ B = max x B : x 0 ∧ ∀r ∈ {r 1 , r 2 , r 3 } u r (x) 1 © ª ∗ ∗ x∗ C = max x C : [s. x B ] . . . ∧ x B = x B © ª ∗ ∗ ∗ x A = max x A : [s. x B ] . . . ∧ x B = x∗ B ∧ xC = xC (1c) Iterative Maximierung von x C , x A , x B (oder x C , x B , x A ) © ª x∗ C = max x C : x 0 ∧ ∀r ∈ {r 1 , r 2 , r 3 } u r (x) 1 © ª ∗ ∗ x∗ A = max x A : [s. x C ] . . . ∧ x C = x C © ª ∗ ∗ ∗ x B = max x B : [s. x C ] . . . ∧ x C = x C ∧ x A = x∗ A (2) ∗ ∗ ⊤ TEK y max und optimale Lösung x∗ = [x∗ A xB xC ] © y max = max x A + x B + x C : x 0 ∧ ∀r ∈ {r 1 , r 2 , r 3 } u r (x) ª u r 1 (x) u r 2 (x) u r 3 (x) xB xC y 600 0 0 600 1,0 0,0 1,0 600 0 0 600 1,0 0,0 1,0 600 0 0 600 1,0 0,0 1,0 0 600 0 600 1,0 1,0 0,0 0 600 0 600 1,0 1,0 0,0 0 600 0 600 1,0 1,0 0,0 0 600 600 0,0 1,0 1,0 0 1 Auslastung 0 0 600 600 0,0 1,0 1,0 0 0 600 600 0,0 1,0 1,0 300 300 300 900 1,0 1,0 1,0 Tabelle 2.3: Lösungen einer iterativen Heuristik und optimale Lösung. Betrachtet wird das Beispiel AL3, wobei effektive Taktzeiten von 2,5 Stunden und Betriebsmittelzeiten von 1500 Stunden gegeben seien. Unter dieser Annahme sind die Ergebnisse einer iterativen Maximierung der Prozessstückzahlen x A , x B und x C in jeder möglichen Reihenfolge aufgeführt (1a–c). Die Ergebnisse sind der optimalen Lösung x∗ gegenübergestellt (2). Daraus geht hervor, dass die Heuristik die gesuchte TEK y max unabhängig von der Reihenfolge nicht erreicht. Daraus folgt, dass im allgemeinen Fall von mehr als zwei Prozessstückzahlen anstelle einer solchen Heuristik ein Verfahren der linearen Optimierung angewandt werden muss, um die optimale Lösung zu bestimmen (z. B. Simplex-Verfahren, Innere-Punkte-Verfahren oder Ellipsoidmethode, für eine Einführung siehe Korte und Vygen 2012). Zusammenfassend schaffen alternative Verknüpfungen Freiheitsgrade zur Verteilung der Stückzahl des Produkts. Diese Freiheitsgrade werden formal durch nichtnegative reelle Variablen, sogenannte Prozessstückzahlen, repräsentiert. Um die optimale Lösung zu bestimmen, genügt es in Beispiel AL1 und AL2, jeweils zwei Fälle zu unterscheiden. Dass dies im Allgemeinen jedoch nicht hinreichend ist, belegt Beispiel AL3. Wie die Zahlen in Tabelle 2.2 auf Seite 38 verdeutlichen, werden an einem typischen Produktionsstandort mitunter mehr als 100 Produkte in mehr als 1000 Prozessschritten hergestellt, wobei bestimmte Produktionsanlagen mehrfach durchlaufen werden. In dem gleichem Maße wächst die Zahl der Freiheitsgrade und der wechselseitigen Abhängigkeiten. Im Anschluss folgen zwei Beispiele selektiver Verknüpfungen, welche sowohl Eigenschaften alternativer als auch sequenzieller Verknüpfungen besitzen. Danach stehen die notwendigen Werkzeuge zur Verfügung, um jeden in der Praxis möglichen Ablauf zur Fertigung und Montage eines Produkts in diesem Kontext zu beschreiben und basierend darauf Kapazität, Auslastung und Investitionen zu kalkulieren. 55 2 Lösungsvorbereitung: Systemanalyse 80 % MAE r 1 PS 1/H P MAE r 1 80 % t eff,1H PS 1/HA A P TBM,1 MAE r 2 PS 1/L 20 % TBM,1 MAE r 2 t eff,1L PS 1/HB B 20 % P t eff,1HA TBM,2 (a) Beispiel SL1 PS 1/L P t eff,1HB t eff,1L TBM,2 (b) Beispiel SL2 Abbildung 2.9: Schemata selektiver Verknüpfungen (Beispiel SL1 und SL2). Beispiel SL1 beschreibt die selektive Verknüpfung zweier Prozessschritte (PS), die für 80 bzw. 20 Prozent der Stückzahl ausgeführt werden und denen je eine MAE r 1 bzw. r 2 zugeordnet ist. Beispiel SL2 erweitert Beispiel SL1, indem für die vorigen 80 Prozent wahlweise ein alternativ verknüpfter Prozessschritt ausgeführt wird. In diesem Fall wird wie für die übrigen 20 Prozent der Stückzahl die MAE r 2 genutzt. 2.5.3 Selektive Verknüpfung Es folgen zwei Beispiele einer selektiven Verknüpfung, des zuletzt verbleibenden Verknüpfungstyps in dieser Arbeit. Gemäß Definition 2.7 wird die Stückzahl wie im Fall alternativer Verknüpfungen auf die jeweiligen Prozessschritte verteilt. Das Verhältnis der Stückzahlanteile ist allerdings im Unterschied zu alternativen Verknüpfungen nicht variabel, sondern durch eine Quote q im Intervall (0, 1) fix vorgegeben (z. B. 80 Prozent, d. h. mit einem Wert von 0,8). Um wahlfrei ausführbare Prozessschritte in Verbindung mit einzelnen Varianten eines Produkts zu berücksichtigen, werden alternative und selektive Verknüpfungen nacheinander verkettet. Nach einem einführenden Beispiel soll ein komplexeres beschrieben werden, welches einen solchen Fall darstellt. Beispiel SL1 SL(PS 1/H [r 1 ], PS 1/L [r 2 ], 0,8) Im Ablauf der Montage eines Produkts werden eine Standardvariante (mit einer Quote von 80 Prozent) und eine Sondervariante (verbleibende Stückzahl entsprechend 20 Prozent) unterschieden, wie in Abbildung 2.9(a) dargestellt. Bedingt durch ihre Konstruktion müssen die zwei Varianten mit Hilfe verschiedener Vorrichtungen montiert werden. Aus diesem Grund ist die Montage der Standardvariante (Prozessschritt 1/H, effektive Taktzeit t eff,1H ) nur unter Verwendung einer eigens eingerichteten Standardmontagelinie r 1 (Betriebsmittelzeit TBM,1 ) möglich, und für die Montage der Sondervariante (Prozessschritt 1/L, effektive Taktzeit t eff,1L ) muss eine Sondermontagelinie r 2 (Betriebsmittelzeit TBM,2 ) genutzt werden. Dieser Fall fand sich im Zuge der Erstellung dieser Arbeit an vielen Standorten der Bosch Rexroth AG wieder, oft erweitert um zusätzliche Varianten. 56 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Das Beispiel beruht auf einer selektiven Verknüpfung zweier Prozessschritte 1/H und 1/L zur Montage jeweils einer Variante des Produkts, wobei eine Quote q mit einem Wert von 0,8 gegeben ist. Die Produktstückzahl y wird auf die Stückzahlen q y und (1 − q) y verteilt, welche der Standardvariante bzw. Sondervariante (Prozessschritt 1/H bzw. 1/L) entsprechen (siehe Definition 2.7). Wie im Fall einer alternativen Verknüpfung ist die Summe der Stückzahlanteile, die jeweils durch die Prozessschritte verlaufen, gleich der Produktstückzahl y. Ihr Verhältnis ist jedoch nicht variabel, sondern durch die vorgegebene Quote q festgelegt. In Bezug auf die Auslastung u r 1/2(y) entspricht der Fall einer sequenziellen Verknüpfung von zwei Prozessschritten mit der effektiven Taktzeit q t eff,1H bzw. (1 − q) t eff,1L , wobei die Produktstückzahl jeden von diesen vollständig durchlaufen muss. Da den Prozessschritten jeweils eine der zwei MAEs r 1/2 zugeordnet ist, kann die Auslastung u r 1/2(y) wie folgt durch Einsetzen in Gleichung (2.20) bestimmt werden: u r 1(y) = q t eff,1H y TBM,1 , u r 2(y) = (1 − q) t eff,1L y TBM,2 . (2.52a, 2.52b) Wie in den Beispielen SQ1 und SQ3, in denen jeweils eine sequenzielle Verknüpfung von Prozessschritten mit zwei MAEs r 1/2 gegeben ist, bezeichnet die TEK y max die maximale Produktstückzahl y unter der Bedingung, dass die Auslastung u r 1/2(y) einen Wert von eins nicht überschreitet. Drückt man dies in formaler Schreibweise aus, heißt das: © y max = max y : y 0 ∧ ∀r ∈ {r 1 , r 2 } u r (y) ª 1 . (2.53) Einsetzen der Auslastung u r 1/2(y) aus Gleichung (2.52a, 2.52b) führt zu dem gesuchten Ausdruck für die TEK y max , welcher Gleichung (2.53) entspricht: ) ( TBM,2 TBM,1 , . (2.54) y max = min q t eff,1H (1 − q) t eff,1L Das Beispiel zeigt, dass eine selektive Verknüpfung vergleichbar mit einer alternativen jedem Prozessschritt einen Anteil der Stückzahl zuordnet. Das Verhältnis ist im Gegensatz zu alternativen Verknüpfungen fix vorgegeben. Gleich einer sequenziellen Verknüpfung kann die Produktstückzahl y nicht weiter erhöht werden, sobald die Auslastung u r (y) von mindestens einer der genutzten MAEs r einen Wert von eins erreicht. Die Komplexität wächst, indem selektive und alternative Verknüpfungen nacheinander verkettet werden, wie das letzte Beispiel belegen soll. Beispiel SL2 SL(AL(PS 1/HA [r 1 ], PS 1/HB [r 2 ]), PS 1/L [r 2 ], 0,8) Die Grundlage bildet das zuvor beschriebene Beispiel SL1. Unterschieden werden folglich abermals eine Standardvariante (mit einer Quote von 80 Prozent) und eine Sondervariante (Stückzahl entsprechend 20 Prozent), wie in Abbildung 2.9(b) dargestellt. Analog zum vorigen Fall erfolgt die Montage der Standardvariante (Prozessschritt 1/HA, effektive Taktzeit t eff,1HA ) mit einer Standardmontagelinie r 1 (Betriebsmittelzeit TBM,1 ) und die Montage der Sondervariante (Prozessschritt 1/L, effektive Taktzeit t eff,1L ) unter Einsatz einer Sonder- 57 2 Lösungsvorbereitung: Systemanalyse montagelinie r 2 (Betriebsmittelzeit TBM,2 ). Als Erweiterung gegenüber Beispiel SL1 ist es darüber hinaus möglich, die Standardvariante mit der Sondermontagelinie r 2 zu montieren (Prozessschritt 1/HB, effektive Taktzeit t eff,1HB ), um deren Kapazität auszuschöpfen. Der Grund ist, dass die Sondermontagelinie r 2 nicht auf eine bestimmte Variante eingerichtet ist und auch die Montage der Standardvariante erlaubt. Im Vergleich zur Standardmontagelinie r 1 verlängert sich in der Praxis jedoch zumeist die Taktzeit. Aus der obigen Beschreibung kann geschlossen werden, dass in dem Beispiel eine Verkettung von Verknüpfungen vorliegt. Gegeben ist eine alternative Verknüpfung von zwei Prozessschritten 1/HA und 1/HB, welche die Montage der Standardvariante mit jeweils einer der MAEs r 1/2 repräsentieren. Das Ergebnis ist selektiv mit einem Prozessschritt 1/L zur Montage der Sondervariante verbunden, dem wie oben beschrieben die MAE r 2 zugeordnet ist. Für die selektive Verknüpfung ist wie in Beispiel SL1 eine Quote mit einem Wert von 0,8 festgelegt. Die Produktstückzahl y wird als Folge auf die Stückzahlen q y und (1−q) y verteilt, welche der Standardvariante (Prozessschritt 1/HA oder 1/HB) bzw. der Sondervariante (Prozessschritt 1/L) entsprechen (siehe Definition 2.7). Gemäß der alternativen Verknüpfung kann die Stückzahl q y variabel auf zwei Prozessstückzahlen x HA und x HB (Prozessschritt 1/HA bzw. 1/HB) verteilt werden. Analog zu den vorherigen Beispielen in diesem Abschnitt muss dabei die Bedingung erfüllt sein, dass deren Summe gleich der Stückzahl q y ist (siehe Definition 2.6). Damit gilt formal: y= x HA + x HB . q (2.55) Gleichung (2.55) führt zu einer wichtigen Erkenntnis: Sind die Prozessstückzahlen x HA und x HB der Standardvariante des Produkts (Prozessschritt 1/HA bzw. 1/HB) gegeben, muss die Stückzahl (1 − q) y der Sondervariante (Prozessschritt 1/L) ±bedingt durch die fix vorgegebene Quote q immer gleich dem Ausdruck (1 − q) (x HA + x HB ) q sein. Es folgt die Herleitung der Gleichungen für die Auslastung u r 1/2(x) der zwei MAEs r 1/2 abhängig von einem Vektor x = [x HA x HB ]⊤. Über die Standardmontagelinie r 1 ist bekannt, dass diese nur für die Montage der Standardvariante in der Stückzahl x HA genutzt wird (Prozessschritt 1/HA). Entsprechend gilt nach Einsetzen in Gleichung (2.20): u r 1(x) = t eff,1HA x HA TBM,1 . (2.56a) Die Sondermontagelinie r 2 wird von beiden Varianten beansprucht. Zum einen dient sie der Montage der Sondervariante in der Stückzahl (1 − q) y (Prozessschritt 1/L), wie erläutert ± übereinstimmend mit (1 − q) (x HA + x HB ) q. Zum anderen wird sie zur Montage der Standardvariante in der Stückzahl x HB eingesetzt (Prozessschritt 1/HB). Um die resultierende Auslastung u r 2(x) zu bestimmen, muss die Überlagerung dieser Prozessschritte berücksichtigt werden, indem Gleichung (2.20) wie folgt erweitert wird: # " (1 − q) t eff,1L x HA + x HB + t eff,1HB x HB q u r 2(x) = . (2.56b) TBM,2 58 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Durch Umformung von Gleichung (2.56b) ist es möglich, die Auslastung u r 2(x) der MAE r 2 als eine Funktion zweier Argumente x HA und x HB darzustellen, die jeweils mit einem Koeffizienten multipliziert und addiert werden (nützlich für den folgenden Beweis): " # (1 − q) t eff,1L (1 − q) t eff,1L x HA + t eff,1HB + x HB q q u r 2(x) = . (2.56c) TBM,2 Die TEK y max bezeichnet analog zu den Beispielen AL1 und AL2, welche die Verteilung auf zwei Prozessstückzahlen beschreiben, das Maximum der Produktstückzahl y. Dabei muss wie zuvor die Bedingung erfüllt sein, dass die Auslastung u r 1/2(x) der MAEs r 1/2 jeweils nicht größer als eins ist. In formaler Schreibweise heißt das: ½ ¾ x HA + x HB y max = max (2.57) : x 0 ∧ ∀r ∈ {r 1 , r 2 } u r (x) 1 . q In der Praxis werden die Montagelinien oft für verschiedene Varianten genutzt. Das heißt, die Montage der Standardvariante erfolgt mit der Standardmontagelinie r 1 und die Montage der Sondervariante, da in diesem Fall nicht anders möglich, mit der Sondermontagelinie r 2 (Prozessschritt 1/HA bzw. 1/L). Sobald aber die Auslastung u r 1(x) der MAE r 1 einen Wert von eins erreicht, wird ein bestimmter Teil x HB der Stückzahl q y der Standardvariante mit der MAE r 2 (Prozessschritt 1/HB) montiert, um deren Kapazität zu nutzen. Voraussetzung ist, dass die Auslastung u r 2(x) der MAE r 2 noch nicht einem Wert von eins entspricht. Der verbleibende Stückzahlanteil x HA durchläuft unverändert die MAE r 1 (Prozessschritt 1/HA). Unter den gegebenen Bedingungen ist die TEK y max gesucht, die erzielt werden kann, indem die Stückzahl q y der Standardvariante optimal auf die zwei Prozessstückzahlen x HA und x HB verteilt wird. Das führt zu folgendem Ergebnis. Theorem 2.2: Technische Kapazität y max für Beispiel SL2. Im Ablauf der Fertigung und Montage seien die Prozessschritte 1/HA, 1/HB und 2 (effektive Taktzeit t eff,1HA , t eff,1HB bzw. t eff,1L ) unter Nutzung von zwei MAEs r 1/2 (Betriebsmittelzeit TBM,1/2 ) alternativ und selektiv verknüpft, wie in Abbildung 2.9(b) dargestellt. Für die selektive Verknüpfung sei eine fixe Quote q im Intervall (0, 1) gegeben. In dem Fall gilt für die TEK y max :  TBM,2 TBM,2 TBM,1    , falls , (a)   q t eff,1HA  (1 − q) t eff,1L (1 − q) t eff,1L   y max = (2.58) t eff,1HB TBM,1  + TBM,2    t eff,1HA    , sonst. (b)  q t eff,1HB + (1 − q) t eff,1L Interpretation. Vor dem formalen Beweis soll wieder das Verständnis dafür geschaffen werden, wie sich die Terme in Gleichung (2.58) zusammensetzen. Die TEK y max ist analog zu Beispiel AL2 durch eine Fallunterscheidung bestimmt, die auf einem Vergleich der beiden 59 2 Lösungsvorbereitung: Systemanalyse ¤ ±£ ± Ausdrücke TBM,2 (1 − q) t eff,1L und TBM,1 (q t eff,1HA ) basiert. Diese beschreiben jeweils das Maximum der Produktstückzahl y, wobei die Auslastung u r 1/2(x) einen Wert von eins nicht überschreiten darf und nur ein Prozessschritt betrachtet wird. Der erste Ausdruck betrifft die Montage der Sondervariante mit der MAE r 2 (Prozessschritt 1/L), der zweite die Montage der Standardvariante mit der MAE r 1 (Prozessschritt 1/HA). Der Grund für den Vergleich der zwei Ausdrücke ist der folgende: Da die Auslastung u r 1/2(x) der MAEs r 1/2 nach oben begrenzt ist, kann der maximale Wert der Produktstückzahl y erreicht werden, wenn zunächst nur diese beiden Prozessschritte ausgeführt werden. ¤ ±£ Im Fall (a) von Gleichung ± (2.58) ist der Ausdruck TBM,2 (1 − q) t eff,1L kleiner als oder gleich dem Ausdruck TBM,1 (q t eff,1HA ). Das heißt, wenn ausschließlich die zwei genannten Prozessschritte berücksichtigt werden und die Produktstückzahl y stetig gesteigert wird, dann erreicht die Auslastung u r 2/1(x) der MAE r 2 zuerst oder zusammen mit jener der MAE r 1 einen Wert von eins. Da aber zur Montage der Sondervariante stets die MAE r 2 genutzt und bezüglich der Varianten die Quote q erfüllt werden muss, kann die Produktstückzahl y in diesem Fall nicht weiter erhöht werden. Demnach folgt die TEK y max unmittelbar aus der Betriebsmittelzeit TBM,2 und einer effektiven Taktzeit (1 − q) t eff,1HB . ±£ ¤ Im Fall (b) der oben aufgeführten Gleichung ist der Ausdruck TBM,2 (1 − q) t eff,1L größer ± als der Ausdruck TBM,1 (q t eff,1HA ). Das heißt, werden wie in dem vorigen Fall nur die zwei Prozessschritte berücksichtigt und wird die Produktstückzahl y stetig erhöht, dann erreicht die Auslastung u r 1/2(x) der MAE r 1 zuerst einen Wert von eins. In diesem Fall ist es jedoch möglich, die Produktstückzahl y weiter zu steigern, indem die MAE r 2 nicht mehr nur zur Montage der Sondervariante genutzt wird, sondern auch eingesetzt wird, um die Standardvariante zu montieren. Aus diesem Grund wird die Kapazität, welche für die Montage der Standardvariante mit der MAE r 1 bereitsteht, gedanklich der MAE r 2 hinzugefügt. Folglich werden die Betriebsmittelzeiten TBM,1/2 addiert. Da sich die effektiven Taktzeiten t eff,1HB und t eff,1HA aber im±Allgemeinen unterscheiden, muss die Betriebsmittelzeit TBM,1 zuvor mit dem Faktor t eff,1HB t eff,1HA multipliziert werden. Danach kann unabhängig von der MAE r 1/2 für die Montage der Standardvariante die effektive Taktzeit t eff,1HB vorausgesetzt werden. Bedingt durch das fix vorgegebene Verhältnis, in welchem die Stückzahlen der Varianten zueinander stehen, müssen die effektiven Taktzeiten t eff,1HB und t eff,1L mit der Quote q bzw. mit dem Faktor 1 − q multipliziert und addiert werden. Zusammenfassend bestimmen in ± dem betrachteten Fall eine Betriebsmittelzeit t eff,1HB TBM,1 t eff,1HA + TBM,2 und eine effektive Taktzeit q t eff,1HB + (1 − q) t eff,1L die TEK y max , entsprechend den verwendeten Faktoren und Summanden in der oben stehenden Gleichung (2.58). Beweis. Um die Beweisidee aus Beispiel AL2 fortzuführen, wird die TEK y max als eine Funktion zweier optimaler Teillösungen x∗HA und x∗HB sowie eines dritten Arguments, der fix vorgegebenen Quote q, ausgedrückt. In diesem Zusammenhang bedeutet±optimal, dass die Produktstückzahl y, die gemäß Gleichung (2.55) dem Ausdruck (x HA + x HB ) q entspricht, mit der gesuchten TEK y max übereinstimmt, wenn x∗HA bzw. x∗HB anstelle der Prozessstückzahlen eingesetzt werden. Formal ausgedrückt lautet diese Bedingung: y max = 60 x∗HA + x∗HB . q (2.59) 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte Alle Lösungen x = [x HA x HB ]⊤ müssen die Bedingung erfüllen, dass die Auslastung u r 1/2(x) keiner der beiden MAEs r 1/2 , die nach Gleichung (2.56a, 2.56c) aus einem Paar von x HA und x HB folgt, einen Wert größer als eins annimmt. Um einen Ausdruck für die TEK y max zu finden, welcher Gleichung (2.57) erfüllt, ist unter allen Lösungen x, die gemäß obiger Bedingung gültig sind, die optimale Lösung x∗ = [x∗HA x∗HB ]⊤ gesucht.± Laut Gleichung (2.59) ist diese dadurch gekennzeichnet, dass der Ausdruck (x∗HA + x∗HB ) q mit den optimalen Teillösungen x∗HA und x∗HB der TEK y max entspricht. Die Definition der TEK y max verlangt, dass keine andere gültige Lösung x existiert, nach welcher die Produktstückzahl y den zugehörigen Wert der optimalen Lösung x∗, d. h. die TEK y max , übersteigt. Die Prozessstückzahl x HB und insbesondere die optimale Teillösung x∗HB sind allein durch die Bedingung beschränkt, dass die Auslastung u r 2(x) der MAE r 2 kleiner als oder gleich eins sein muss. Wenn angenommen wird, dass die Auslastung u r 2(x∗) kleiner als eins ist, dann existiert eine gültige Lösung x, nach welcher die Prozessstückzahl x HA der optimalen Teillösung x∗HA entspricht, der Wert für x HB größer ist als x∗HB und die Produktstückzahl y als Folge die TEK y max übersteigt. Da dies aber die Definition der TEK y max verbietet, liegt ein Widerspruch vor. Daher muss die Annahme falsch, die Negation der Annahme wahr und die Auslastung u r 2(x∗) gleich eins sein. Nach Umstellung von Gleichung (2.56c) gilt für die optimale Teillösung x∗HB unter dieser Voraussetzung (der Ausdruck wird nicht vereinfacht, da dies für den folgenden Schritt nützlich ist): TBM,2 − x∗HB = (1 − q) t eff,1L ∗ x HA q (1 − q) t eff,1L t eff,1HB + q . (2.60) Durch Einsetzen von Gleichung (2.60) in Gleichung (2.59) ist es im nächsten Schritt möglich, die TEK y max als Funktion der optimalen Teillösung x∗HA darzustellen: (1 − q) t eff,1L ∗ x HA q t eff,1HB x∗HA + TBM,2 + " y max = . # = q q t eff,1HB + (1 − q) t eff,1L (1 − q) t eff,1L q t eff,1HB + q x∗HA TBM,2 − (2.61) Die Zeitgrößen seien positiv und die Quote q im Intervall (0, 1) gegeben. Betrachtet man alle möglichen Lösungen x, für welche die Auslastung u r 1/2(x) der MAE r 1 nicht größer als eins und jene der MAE r 2 gleich eins ist, muss die Teillösung x∗HA der optimalen Lösung x∗ maximal sein. Der Grund hierfür ist wieder, dass die Annahme des umgekehrten Falls zu einem Widerspruch führt. Wird zu diesem Zweck angenommen, dass eine Lösung x existiert, welche die zwei zuvor genannten Bedingungen in Bezug auf die Auslastung u r 1/2(x) erfüllt und nach welcher die Prozessstückzahl x HA größer ist als die Teillösung x∗HA , dann übersteigt die TEK y max für x HA laut Gleichung (2.61) den Wert für x∗HA . Allgemein ausgedrückt gilt dementsprechend für die optimale Teillösung x∗HA : © x∗HA = max x HA : x 0 ∧ u r 1(x) ª 1 ∧ u r 2(x) = 1 . (2.62) 61 2 Lösungsvorbereitung: Systemanalyse Einsetzen der Auslastung u r 1/2(x) aus Gleichung (2.56a, 2.56c) führt zu folgendem Ausdruck für die optimale Teillösung x∗HA , welcher die vorige Gleichung (2.62) erfüllt: ) ( q T T BM,2 BM,1 . (2.63) , x∗HA = min t eff,1HA (1 − q) t eff,1L Durch Umformulierung von Gleichung (2.63) ist die optimale Teillösung x∗HA als Ergebnis einer Fallunterscheidung darstellbar:  q TBM,2 TBM,2 TBM,1    , falls ,   (1 − q) t eff,1L q t eff,1HA (1 − q) t eff,1L x∗HA = (2.64)  TBM,1    , sonst.  t eff,1HA Setzt man das Teilergebnis aus Gleichung (2.64) in Gleichung (2.61) ein, folgt daraus der gesuchte Ausdruck für die TEK y max in dem gegebenen Beispiel:    q t eff,1HB TBM,2  + TBM,2    (1 − q) t TBM,2 TBM,1 eff,1L    , falls ,   q t eff,1HB + (1 − q) t eff,1L q t eff,1HA (1 − q) t eff,1L y max = (2.65)  t T  BM,1 eff,1HB   + TBM,2   t eff,1HA    , sonst.   qt eff,1HB + (1 − q) t eff,1L Gleichung (2.65) entspricht nach Umformung der zu zeigenden Gleichung (2.58). Grafische Lösung. Wie in Beispiel AL2 stellen Abbildung 2.10(a) und 2.10(b) die TEK y max als optimale Lösung eines linearen, zweidimensionalen Problems fallweise grafisch dar. Ihrer Definition entsprechend seien die Zeitgrößen positiv und die Quote q der selektiven Verknüpfung im Intervall (0, 1) gegeben. Für jede der MAEs r 1/2 muss die Bedingung gelten, dass die Auslastung u r 1/2(x) nicht größer als eins ist. Die beiden Bedingungen werden im gegebenen, zweidimensionalen Fall des Beispiels durch Geraden repräsentiert, welche den Raum R2 0 aller Paare (x HA , x HB ) der nichtnegativen reellen Prozessstückzahlen x HA und x HB jeweils in einen abgeschlossenen, gültigen Halbraum {x ∈ R2 0 : u r 1/2(x) 1} und in einen offenen, ungültigen Halbraum {x ∈ R2 0 : u r 1/2(x) 1} teilen. Die konvexe Schnittmenge der gültigen Halbräume, dargestellt als ein Polygon, bildet abermals die Menge der gültigen Lösungen x. Die Betragssummennorm der Ortsvektoren dieser Lösungen entspricht nun allerdings nicht der Produktstückzahl y, sondern jeweils der Stückzahl q y der Standardvariante. Da die Quote q eine Konstante darstellt, ist wie in Beispiel AL2 derjenige Ortsvektor gesucht, welcher die Betragssummennorm maximiert und zur optimalen Lösung x∗ führt. Durch diesen verläuft ± die maximale Stückzahl q y max der Standardvariante als Gerade mit dem Anstieg ∆x HB ∆x HA = −1. Parallel dazu, skaliert um ± den konstanten Faktor 1 q, verläuft die TEK y max . 62 2.5 Erweiterung der Kalkulation: allgemeiner Fall verknüpfter Prozessschritte x HB u r 1 (x) 1 y max q y max TBM,2 t eff,1HB + (1 − q) t eff,1L q u r 2 (x) 1 x∗ 0 q TBM,2 (a) Fall TBM,2 x HB u r 1 (x) x HA ±£ ¤ (1 − q) t eff,1L ± TBM,1 t eff,1HA (1 − q) t eff,1L ± TBM,1 (q t eff,1HA ) ±£ ¤ 1 q y max TBM,2 t eff,1HB + (1 − q) t eff,1L y max q u r 2 (x) 0 1 x∗ ± ±£ ¤ x HA TBM,1 t eff,1HA q TBM,2 (1 − q) t eff,1L (b) Fall TBM,2 ±£ (1 − q) t eff,1L ¤ ± TBM,1 (q t eff,1HA ) Abbildung 2.10: Grafische Lösung einer selektiven Verknüpfung (Beispiel SL2). Die Bedingungen, dass die Auslastung u r 1/2(x) nicht größer als eins sein darf, werden jeweils durch Geraden repräsentiert, welche die Ortsvektoren aller gültigen Lösungen x begrenzen. Durch den Ortsvektor der optimalen ± Lösung x∗ führt die Stückzahl q y max als Gerade mit dem Anstieg ∆x HB ∆x HA = −1. Parallel dazu ver± läuft die TEK y max , skaliert um den Faktor 1 q. Im Fall (a) bezeichnet die Lösung x∗ den Schnittpunkt der Geraden u r 2(x) = 1 und x HB = 0, im Fall (b) den Schnittpunkt der zwei Geraden u r 1/2(x) = 1. 63 2 Lösungsvorbereitung: Systemanalyse Im Fall (a) von Gleichung (2.58) entspricht der zweite Halbraum {x ∈ R2 0 : u r 2(x) 1} einer Teilmenge des ersten Halbraums {x ∈ R2 0 : u r 1(x) 1}, weshalb x∗ den Schnittpunkt der Geraden u r 2(x) = 1 mit der Koordinatenachse x HA beschreibt. Im Fall (b) ist dagegen keiner der Halbräume {x ∈ R2 0 : u r 1/2(x) 1} eine Teilmenge des jeweils anderen, und als Folge dessen bezeichnet x∗ den Schnittpunkt der beiden Geraden u r 1/2(x) = 1. 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung Grundlage jeder Softwareentwicklung ist eine formale oder zumindest informelle Definition von Anforderungen. Diese Aussage gilt gleichermaßen für das lineare Wasserfallmodell und für Varianten der agilen, iterativen Softwareentwicklung (siehe u. a. Cohn 2004). Der Abschnitt fasst die Ergebnisse aus diesem Kapitel zusammen, indem Anforderungen an eine geeignete Software zur Unterstützung der Planung in diesem Kontext kategorisiert und formuliert werden (siehe Abschnitt 2.1). Eine solche Software soll es erlauben, ein geplantes System von Wertströmen zu modellieren und gemäß den Planungszielen zu optimieren (siehe Abschnitt 2.2 und 2.3). Die Kalkulation von Kapazität, Auslastung und Investitionen muss im einfachen Fall eines Prozessschritts und im allgemeinen Fall mehrerer verknüpfter Prozessschritte den erläuterten Vorgaben der Planung entsprechen und auf unzulässige Vereinfachungen verzichten (siehe Abschnitt 2.4 und 2.5). 2.6.1 Kategorisierung möglicher Anforderungen Anforderungen zur Beschreibung neuer oder geänderter Leistungsmerkmale werden nach ihrer Wichtigkeit unterschieden. Hintergrund ist, dass die zur Verfügung stehenden Ressourcen zielgerichtet den wichtigsten Anforderungen zugeordnet werden sollen. Die technische Norm ISO/IEC/IEEE 29148:2011(E) definiert zu diesem Zweck die folgenden drei Kategorien (S. 67, vorherige, sinngemäß gleiche Fassung siehe IEEE Std 830-1998, S. 7): (1) Essenziell (engl. essential ): Anforderungen, welche das neue/geänderte System (eine zu entwickelnde Software) erfüllen soll (engl. shall ). Für jede essenzielle Anforderung sollte erläutert werden, welche Auswirkungen erwartet werden müssen, wenn die betreffende Anforderung nicht umgesetzt wird. (2) Wünschenswert (engl. desirable): Anforderungen, welche das neue/geänderte System erfüllen sollte (engl. should ). Wünschenswerte Anforderungen sollten priorisiert werden, und für jede von ihnen sollte der Grund erläutert werden, warum es sich jeweils um eine wünschenswerte Anforderung handelt. (3) Optional (engl. optional ): Anforderungen, welche das neue/geänderte System erfüllen könnte (engl. might). Wie zuvor schon wünschenswerte sollten auch optionale Anforderungen priorisiert werden, und es sollte jeweils erläutert werden, aus welchem Grund diese als optional eingeschätzt werden. 64 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung Das Ziel dieser Arbeit ist die Beantwortung von grundsätzlichen mathematischen und algorithmischen Fragen, welche den Einsatz einer Software zur strategischen Planung der TEK in der Serienfertigung betreffen. Die Betrachtung beschränkt sich auf die essenziellen Anforderungen in Bezug auf die Modellierung und die Optimierung. Weitere, in der Praxis wichtige Anforderungen (wie z. B. solche, die sich auf die Benutzerschnittstelle beziehen) werden nicht diskutiert, da dies den gegebenen Rahmen sprengen würde. Das Gleiche gilt für alle wünschenswerten und optionalen Anforderungen. Für das Verständnis ist es nützlich, die Kategorie der essenziellen Anforderungen weiter zu untergliedern. Dafür werden zwei Typen eingeführt: (1a) Basisanforderungen müssen erfüllt sein, um ein geplantes System von Wertströmen vollständig zu modellieren und das Modell wie definiert zu optimieren; (1b) Leistungsanforderungen stellen zusätzlich sicher, dass die Planungsziele effizient, transparent und flexibel erreicht werden. Die Erfüllung der Leistungsanforderungen unterscheidet Software, welche sich für den praktischen Einsatz in einem Unternehmen eignet, von solcher, deren Einsatz theoretisch möglich, aber nicht wirtschaftlich ist. Die Erfahrungen bei der Bosch Rexroth AG münden in der Erkenntnis, dass die Einführung neuer Software zur Unterstützung der Planung nur dann gelingt, wenn deren Nutzung wirksam dazu beiträgt, die Effizienz, Transparenz und Flexibilität in der Planung zu steigern (vgl. Karlsen et al. 2005). Diese drei Begriffe werden in der vorliegenden Arbeit wie folgt gebraucht: Effizienz: In diesem Kontext verstanden als die Zahl erstellter Modelle im Verhältnis zur Zeit, welche ein Planer für deren Erstellung benötigt. Je effizienter die Planung erfolgt, desto weniger Ressourcen werden im Verlauf der Planung gebunden. Im gegebenen Fall betrifft das insbesondere die Arbeitszeit des Planers. Transparenz: In diesem Kontext verstanden als die intuitive Abbildung eines geplanten Systems durch ein Modell. Je transparenter die Planung erfolgt, desto geringer ist die Wahrscheinlichkeit von Fehlern und desto leichter sind die erzielten Ergebnisse gegenüber Mitarbeitern und der Leitung des Unternehmens zu erklären. Flexibilität: In diesem Kontext verstanden als die Fähigkeit, ein Modell zu erstellen und zu adaptieren, wenn sich die Produkte/Prozesse ändern. Je flexibler die Planung erfolgt, desto schneller ist ein Modell für einen Standort mit spezifischen Produkten/Prozessen erstmalig anzulegen und fortlaufend anzupassen. Da die Volatilität der Kundennachfrage im Allgemeinen steigt, müssen Pläne in immer kürzeren Zyklen aktualisiert werden. Als Folge gewinnen die drei Kriterien an Bedeutung, an erster Stelle die Flexibilität. Abgesehen von der Effizienz ist die Erfüllung der anderen Kriterien allerdings nur schwierig zu messen. Neben Basisanforderungen werden deshalb im Folgenden überprüfbare Leistungsanforderungen formuliert, deren Erfüllung letztlich zu höherer Effizienz, Transparenz und/oder Flexibilität führt. 65 2 Lösungsvorbereitung: Systemanalyse 2.6.2 Formulierung der essenziellen Anforderungen Die nachfolgenden Basisanforderungen und Leistungsanforderungen, jeweils bezeichnet als A[1–14] bzw. A[1–14]+, beschreiben eine Software, die eine vollständige und gleichzeitig effiziente, transparente und flexible Planung ermöglicht. Diese Software besteht aus einem Modellierer und einem Optimierer. Der Modellierer soll es ermöglichen, ein System von Wertströmen durch ein geeignetes grafisches Modell abzubilden und das grafische Modell danach automatisch in ein mathematisches umzuwandeln. Auf dieser Grundlage sollen anschließend mit Hilfe des Optimierers die Planungsziele erreicht werden. Basisanforderung A1: Superposition aller Wertströme. Die Software soll es erlauben, alle Wertströme des Systems an einem Produktionsstandort in einem einzigen Modell zusammenzufassen (siehe Abschnitt 2.2). Dabei soll berücksichtigt werden, dass Prozessschritten in verschiedenen Wertströmen des Systems je nach Anwendungsfall dieselben MAEs zugeordnet sein können, diese aber zu jedem beliebigen Zeitpunkt nur für einen einzigen Prozessschritt genutzt werden dürfen (siehe Definition 2.1). Erläuterung: Wie in Abschnitt 2.2 beschrieben, müssen Wertströme in einem System vereinigt werden, um die Abhängigkeiten zu berücksichtigen, welche durch die mehrfache Zuordnung von MAEs verursacht werden. Daher muss auch ein Modell, das zur Abbildung des Systems dienen soll, wie gefordert all diese Wertströme einschließen. Basisanforderung A2: Systemstruktur. Um die Planung insbesondere im allgemeinen Fall verknüpfter Prozessschritte nicht unzulässig zu vereinfachen, soll das Modell die Struktur des abgebildeten Systems widerspiegeln. Dies schließt die folgenden Ebenen, Elemente und Ressourcen des jeweils gegebenen Systems ein (siehe Abschnitt 2.2): (1) Ebenen (Wertströme): rekursiv zusammengesetzt aus Prozessschritten/Prozessen und jeweils einem Produkt zugeordnet (siehe Definition 2.9); (2) Elemente (Prozessschritte/Prozesse): im Wertstrom eines Produkts ggf. rekursiv sequenziell, alternativ und/oder selektiv verknüpft (siehe Definition 2.1–2.8); (3) Ressourcen (MAEs): ggf. mehreren Prozessschritten in einem oder verschiedenen Wertströmen zugeordnet (siehe Definition 2.1, Basisanforderung A1). Zu Prozessschritten/Prozessen und MAEs: In einem System, in dem mehrere Prozesse eines Produkts dieselbe MAE durchlaufen, existieren die folgenden zwei Anwendungsfälle, deren Modellierung mit der Software gleichermaßen möglich sein soll: (a) Die Prozesse werden vor dem Durchlaufen der jeweiligen MAE vereinigt. Das heißt, im Wertstrom des Produkts wird nur ein einziger Prozessschritt unter Nutzung dieser MAE definiert. Die Taktzeiten und alle nachfolgenden Prozessschritte stimmen in dem Fall überein (siehe Beispiel AL2, Prozessschritt 2). (b) Die Prozesse werden nicht vereinigt. Das heißt, es werden mehrere Prozessschritte unter Nutzung der MAE definiert. Abhängig vom geplanten Ablauf unterscheiden sich die Taktzeiten (siehe Beispiel SL2, Prozessschritt 1/HB und 1/L) und/oder die nachfolgenden Prozessschritte (siehe Beispiel AL3, Prozessschritt 1/A und 1/B). 66 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung Erläuterung: Die zuvor erwähnten Abhängigkeiten sind durch Prozessschritte verschiedener Produkte begründet, denen ein und dieselbe MAE zugeordnet ist. Darüber hinaus existieren Abhängigkeiten zwischen Prozessschritten eines Produkts, die miteinander verknüpft sind. Um ein System vollständig zu modellieren, müssen die entsprechenden Bedingungen berücksichtigt werden. Das betrifft insbesondere die Zuordnung von Ausgaben zu Eingaben des Informationsflusses, wie im Folgenden festgehalten wird. Basisanforderung A3: Systemschnittstelle. Die Ein- und Ausgaben des Modells sollen jeweils den Ein- bzw. Ausgaben des Informationsflusses an der Schnittstelle des abgebildeten Systems entsprechen (siehe Abschnitt 2.3). Das heißt, nach Vorgabe der Produktstückzahlen und der Prozessstückzahlen soll das Modell die daraus resultierende Auslastung aller MAEs zurückgeben. Die Zuordnung von Ausgaben zu Eingaben soll im einfachen Fall eines einzelnen Prozessschritts und im allgemeinen Fall mehrerer verknüpfter Prozessschritte mit der beschriebenen Kalkulation übereinstimmen (siehe Abschnitt 2.4 bzw. 2.5). Erläuterung: Die Schnittstelle eines Systems erfüllt den Zweck, mit der Umwelt einerseits Material und andererseits Informationen auszutauschen, wie in Abschnitt 2.3 erläutert wurde. Durch die Abbildung mit einem geeigneten Modell, welches den Eingaben des Informationsflusses die gleichen Ausgaben zuordnet, ist es möglich, das System zur Planung durch das Modell zu ersetzen. Der Anwender3 bzw. der Optimierer als Komponente der Software tauscht hierzu die Ein-/Ausgaben mit dem Modell aus, um das Modell stellvertretend für das System gemäß den Planungszielen zu optimieren. Basisanforderung A4: sequenzielle Verknüpfung. Bei der Zuordnung von Ausgaben zu Eingaben (siehe Basisanforderung A3) soll das Modell die Bedingungen berücksichtigen, die für alle sequenziell verknüpften Prozessschritte in dem abgebildeten System gelten, wobei Verknüpfungen ggf. verkettet sind. Je nach Anwendungsfall liegen Verkettungen von Verknüpfungen verschiedener Typen vor (siehe Abschnitt 2.2, Definition 2.5). Erläuterung: Der allgemeine Fall mehrerer verknüpfter Prozessschritte umfasst sequenzielle, alternative und selektive, ggf. verkettete Verknüpfungen. Die vorherige Basisanforderung A4 und die zwei nachfolgenden detaillieren in diesem Sinne die weiter oben aufgeführte Basisanforderung A3. Ist ein Prozessschritt sequenziell verknüpft, wird dessen Stückzahl nicht nur durch die jeweils zugeordnete MAE begrenzt, sondern zusätzlich auch durch diejenigen MAEs, welche den verknüpften Prozessschritten zugeordnet sind. Basisanforderung A5: alternative Verknüpfung. Bei der Zuordnung von Ausgaben zu Eingaben (siehe Basisanforderung A3) soll das Modell die Bedingungen berücksichtigen, die für alle alternativ verknüpften Prozessschritte in dem abgebildeten System gelten, wobei Verknüpfungen ggf. verkettet sind (vgl. Basisanforderung A4). Als eine Eingabe des Modells soll jedem Operanden einer alternativen Verknüpfung eine nichtnegative reelle Prozessstückzahl zugeordnet werden, welche den Stückzahlanteil beschreibt, der durch den Operanden verläuft (siehe Abschnitt 2.2, Definition 2.6). 3 Der Anwender ist in erster Linie der Planer, welcher die technischen Kapazitäten, die notwendigen Investitionen und die erwartete Auslastung der Produktionsanlagen ermittelt. Die organisatorische Funktion ist bei der Bosch Rexroth AG vom betrachteten Standort abhängig. 67 2 Lösungsvorbereitung: Systemanalyse Erläuterung: Die nichtnegativen reellen Prozessstückzahlen sind laut der oben genannten Definition der alternativen Verknüpfung Variablen. Zusammen mit den Stückzahlen, die für alle Produkte vorgegeben werden, bilden sie die Eingaben des Modells und spannen einen unendlichen Suchraum auf (siehe Basisanforderung A3). Basisanforderung A6: selektive Verknüpfung. Bei der Zuordnung von Ausgaben zu Eingaben (siehe Basisanforderung A3) soll das Modell die Bedingungen berücksichtigen, die für alle selektiv verknüpften Prozessschritte in dem abgebildeten System gelten, wobei Verknüpfungen ggf. verkettet sind (vgl. Basisanforderung A4). Als Parameter des Modells soll jeder selektiven Verknüpfung eine Quote zugeordnet werden, welche den relativen Stückzahlanteil des ersten Operanden festlegt. Der danach verbleibende Stückzahlanteil soll durch den zweiten Operanden verlaufen (siehe Abschnitt 2.2, Definition 2.7). Erläuterung: Wie im Fall einer sequenziellen Verknüpfung (siehe Basisanforderung A4) wird die Stückzahl eines Prozessschritts durch weitere Bedingungen begrenzt, falls dieser mit anderen selektiv verknüpft ist. Um die Anforderungen an die Modellierung abzuschließen, wird nun die Darstellung des Modells betrachtet. Leistungsanforderung A7+: grafische Modellierung. Die Software soll es erlauben, das gegebene System durch ein grafisches Modell abzubilden. Zu diesem Zweck soll dem Anwender eine Menge von Symbolen zur Verfügung stehen. Durch die geeignete Kombination dieser Symbole soll es möglich sein, die Struktur des Systems wie zuvor beschrieben eindeutig abzubilden (siehe Abschnitt 2.2, Basisanforderung A2). Erläuterung: Um die Vorteile aufzuzeigen, die ein grafischer Modellierungsansatz bietet, werden folgende grundsätzliche Möglichkeiten der Modellierung unterschieden: (1) (2) (3) (4) textuell (Programmiersprachen, z. B. Java, oder Beschreibungssprachen, z. B. XML), tabellarisch (Software zur Erstellung von Tabellenkalkulationen, z. B. Microsoft Excel), formularbasiert (Software mit Formulareingabemasken, z. B. SAP ERP), grafisch (Software zur Erstellung von Vektorgrafiken, z. B. Microsoft Visio). Bei der Bosch Rexroth AG wurden in der Vergangenheit Tabellenkalkulationen genutzt, um die strategische Planung der TEK zu unterstützen. Die offenkundigen Schwächen von Tabellenkalkulationen in der Praxis, die auch textuellen und formularbasierten Ansätzen immanent sind, führten zur Anforderung, Systeme grafisch zu modellieren. Es soll auf Basis der Erfahrungen bei der Bosch Rexroth AG begründet werden, warum eine grafische Modellierung demgegenüber effizienter, transparenter und flexibler ist. Höhere Effizienz grafischer Modellierung: Als Ergebnis der rekursiven Verknüpfung von Prozessschritten ist die Struktur eines Systems von Wertströmen mit einem Netzwerk vergleichbar. Tabellenkalkulationen erlauben jedoch nur eine Modellierung in einem zweidimensionalen Raster. Dieser Gegensatz führt in Bezug auf ihre Nutzung zu folgender Beobachtung: Entweder beschreiben sie das System zwar vollständig, aber auf Kosten der Verständlichkeit, oder sie vereinfachen es, um es verständlich darstellen zu können. Ein grafisches Modell ist nicht nur vollständig, sondern auch verständlich 68 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung darstellbar (siehe Ko et al. 2009, S. 754, 759). Das verkürzt die Zeit zur Modellierung und führt zu einer Steigerung der Effizienz in der Planung, sowohl bei der Erstellung als auch bei der Weiterentwicklung eines Modells. Höhere Transparenz grafischer Modellierung: Wie oben erläutert, führt die rekursive Verknüpfung der Prozessschritte in einem geplanten, abzubildenden System zu einer netzwerkartigen Struktur. Tabellenkalkulationen verbergen die Logik zur Abbildung dieser Struktur in Funktionen und Bezügen zwischen einzelnen Zellen, ggf. erweitert um Programmcode (z. B. Microsoft Excel VBA). Ihre Nutzung birgt daher Fehlerquellen (siehe u. a. Powell et al. 2008, 2009). Ein geeignetes grafisches Modell bringt Muster, Lücken und Engpässe in einem Prozess zum Vorschein (siehe Ko et al. 2009, S. 759), wodurch eine Steigerung der Transparenz in der Planung erreicht wird. Höhere Flexibilität grafischer Modellierung: Verglichen mit Tabellenkalkulationen ist es deutlich einfacher, ein grafisches Modell zu erstellen und zu adaptieren, sollten sich Produkte/Prozesse ändern. Voraussetzung ist, dass der Anwender die Bedeutung der Symbole und die Möglichkeiten für deren Kombination kennt. Dann gelingt es schneller, spezifische Produkte/Prozesse eines Standorts zu berücksichtigen, um ein Modell anzulegen oder anzupassen. Das gilt insbesondere auch dann, wenn ein anderer Anwender das zu ändernde Modell erstellt hat. Daraus folgt eine kürzere Zeit zur Umsetzung von Änderungen und damit eine Steigerung der Flexibilität. Ein System grafisch modellieren zu können, genügt jedoch noch nicht. Zudem muss sichergestellt sein, dass der Anwender die zu verwendenden Symbole überblickt und versteht. In Bezug auf die Symbolmenge wird aus diesem Grund Folgendes gefordert. Leistungsanforderung A8+: minimale Symbolmenge. Betrachtet wird die Zahl der verschiedenen Symbole, die benötigt werden, um ein gegebenes System grafisch zu modellieren (siehe Leistungsanforderung A7+). Diese Zahl soll minimal sein, wobei es aber weiterhin möglich sein muss, die Elemente des Systems mit Hilfe der Symbole oder durch deren geeignete Kombination eindeutig voneinander zu unterscheiden. Erläuterung: Um eine minimale Zahl von Symbolen zu erreichen und gleichzeitig Eindeutigkeit zu gewährleisten, folgt daraus, dass Prozessschritte, MAEs sowie sequenzielle, alternative und selektive Verknüpfungen durch je ein Symbol repräsentiert werden müssen. Die Anforderung entspricht dem inhaltlichen Minimalprinzip ordnungsmäßiger Modellvisualisierung von Deelmann und Loos (2004, S. 290) und ist wie folgt zu begründen. Die Steigerung der Effizienz, Transparenz und Flexibilität ist umso größer, je geringer die Komplexität des grafischen Modells ist. Diese kann reduziert werden, indem Elemente und Beziehungen zwischen Elementen, die zur Erfüllung der Anforderungen abgebildet werden müssen, möglichst zusammengefasst werden. Jeder der entstehenden Kategorien wird ein Symbol zugeordnet, woraus eine minimale Symbolmenge resultiert, welche dem Zweck des Modells entspricht. Beispielsweise wird mit dem grafischen Standard Business Process Model and Notation (BPMN) das Ziel verfolgt, durch Minimierung der Zahl solcher Kategorien das Verständnis zu fördern (siehe OMG 2013, S. 25). 69 2 Lösungsvorbereitung: Systemanalyse Wird die Menge der Symbole wie beschrieben gebildet, enthält diese nur solche, die aus den Basisanforderungen A1–A6 abgeleitet werden können. Alle anderen Symbole stellen Informationen dar, die zur Planung in diesem Kontext nicht benötigt werden und in vielen Fällen auch nicht vorliegen. Müsste der Anwender diese zur Erstellung eines grafischen Modells verwenden, dann wäre er gezwungen, Annahmen zu treffen, um die Optima der Planungsziele zu suchen. Ein Modell auf der Grundlage einer minimalen Symbolmenge definiert stattdessen Freiheitsgrade (siehe Basisanforderung A5). Als Ergebnis kann es mit einem geeigneten Optimierer gekoppelt werden, um nicht Annahmen treffen zu müssen, sondern zum Finden der Optima ein effizientes Verfahren einzusetzen. Im nächsten Schritt gilt es, die Basisanforderungen A2–A6, die sich auf die mathematische Modellierung des Systems beziehen, mit den Leistungsanforderungen A7+ und A8+ zu verbinden, welche die Darstellung des grafischen Modells betreffen. Leistungsanforderung A9+: Modelltransformation. Die Software soll das grafische, vom Anwender erstellte Modell des gegebenen Systems automatisch in ein mathematisches Modell umwandeln, welches für die nachfolgende Optimierung geeignet ist. Da an dieser Stelle lediglich gefordert wird, dass das Modell den definierten Eingaben die jeweils entsprechenden Ausgaben zuordnet (siehe Basisanforderung A3), schließt die Formulierung im erweiterten Sinne auch Simulationsmodelle ein. Erläuterung: Für die Optimierung besteht eine Grundvoraussetzung darin, dass das System durch ein mathematisches Modell beschrieben wird. Der grafische Ansatz ist daher nur dann effizienter, transparenter und flexibler als die Alternativen, wenn der Anwender neben dem grafischen Modell nicht zusätzlich auch ein mathematisches erstellen muss. Es folgen die Anforderungen in Bezug auf die Optimierung des Modells. Die variablen Prozessstückzahlen bilden die Freiheitsgrade des Modells und damit die Dimensionen des Suchraums (siehe Basisanforderung A5). Die möglichen Lösungen, repräsentiert durch Ortsvektoren in diesem Suchraum, ordnen jeder MAE einen Wert für deren Auslastung zu (siehe Basisanforderung A3). Eine Lösung ist gültig, wenn sie sämtliche Bedingungen der drei Verknüpfungstypen erfüllt (siehe Basisanforderung A4–A6). Für die Planungsziele ist jeweils unter allen gültigen Lösungen die optimale gesucht. Basisanforderung A10: Maximierung der Kapazitäten. Die Software soll auf Grundlage eines vom Anwender erstellten Modells die TEK, d. h. die maximalen Stückzahlen aller Produkte, zurückgeben. Es existieren drei Bedingungen: (1) Die Lösung muss wie oben erläutert gültig sein; (2) die Auslastung keiner MAE darf einen Wert von eins überschreiten; (3) die Stückzahlen aller erforderlichen Komponenten müssen mindestens dem Sekundärbedarf entsprechen (siehe Abschnitt 2.3, Planungsziel der maximalen Kapazitäten). Das Ergebnis soll in jedem Fall eindeutig sein. Das heißt, wenn mehrere Lösungen existieren, von denen keine die anderen dominiert, soll eine Lösung ausgewählt werden. Eine Lösung dominiert eine andere, wenn die erste Lösung die zweite im Hinblick auf die TEK aller Produkte mindestens erreicht und im Fall eines oder mehrerer Produkte übertrifft. Die Strategie, welche die Auswahl einer nicht dominierten Lösung bestimmt, soll vor Beginn der Optimierung feststehen, um stets zum selben Ergebnis zu gelangen. 70 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung Erläuterung: Eine Lösung dominiert eine zweite, wenn die Stückzahl der ersten Lösung für kein Produkt kleiner und für mindestens ein Produkt größer als die Stückzahl der zweiten Lösung ist. Die gesuchte optimale Lösung ist dadurch gekennzeichnet, dass sie gültig ist, alle Bedingungen gemäß dem Planungsziel erfüllt und nicht dominiert wird. Das Ergebnis der Optimierung kann abhängig vom gegebenen Fall eine unendliche Menge nicht dominierter Lösungen sein, wie in Abschnitt 2.3 angemerkt wurde. Diese Menge wird im mehrdimensionalen Suchraum durch die Teilmenge der Ortsvektoren repräsentiert, die auf dem Rand eines konvexen Polytops liegen. Ein solches, mehrdeutiges Ergebnis eignet sich nicht als Entscheidungsgrundlage für die Planung in Unternehmen. Um in jedem Fall ein eindeutiges Ergebnis zu erhalten, soll daher eine Strategie zur Auswahl einer Lösung festgelegt werden (z. B. durch die Vorgabe eines Verhältnisses für die TEK aller Produkte). Basisanforderung A11: Minimierung der Investitionen. Die Software soll die minimale Überlastung aller MAEs zurückgeben, die erforderlich ist, um alle Produkte zu fertigen und zu montieren. Dabei bezeichnet der Begriff der Überlastung den Betrag, um welchen die Auslastung einen Wert von eins überschreitet. Der Anwender soll die Stückzahlen der Produkte vorgeben können, einschließlich aller Komponenten. Einzige Bedingung ist, dass die Lösung gültig sein muss (siehe Abschnitt 2.3, Planungsziel der minimalen Investitionen). Wie oben soll das Ergebnis in jedem Fall eindeutig sein. Werden Prozessschritte mit verschiedenen MAEs alternativ verknüpft, soll der Anwender diejenige festlegen können, die bei Bedarf überlastet wird. Existieren mehrere nicht dominierte Lösungen, soll eine von diesen ausgewählt werden. Eine Lösung dominiert eine andere, wenn die erste Lösung die zweite bezüglich der Überlastung aller MAEs nicht überschreitet und im Fall mindestens einer MAE unterschreitet. Die Strategie, nach welcher die Auswahl erfolgt, soll vor Beginn der Optimierung feststehen (vgl. Basisanforderung A10). Erläuterung: Wie im Fall der maximalen Kapazitäten kann das Ergebnis eine unendliche Menge nicht dominierter Lösungen sein (siehe Abschnitt 2.3). Das gilt genau dann, wenn alternativ verknüpften Prozessschritten verschiedener Wertströme dieselben MAEs zugeordnet sind (siehe Basisanforderung A1). Folglich ist eine Strategie zur Auswahl einer Lösung festzulegen (z. B. durch den Ausgleich der Überlastung zwischen MAEs). Basisanforderung A12: Optimierung der Auslastung. Die Software soll die Auslastung aller verfügbaren MAEs der folgenden Iterationsvorschrift entsprechend maximieren und das Ergebnis zurückgeben. Grundlage ist eine Priorisierung der alternativ verknüpften Prozessschritte in den Wertströmen, d. h. der Prozessstückzahlen. Der Anwender soll die Prioritäten vorgeben können, wie auch die Stückzahlen der Produkte einschließlich aller erforderlichen Komponenten. Zunächst ist eine initiale Lösung gesucht. Ausgehend von dieser soll im ersten Iterationsschritt die Prozessstückzahl mit der Priorität eins maximiert werden. Danach soll in jedem Iterationsschritt das Maximum der Prozessstückzahl mit aufsteigender Priorität bestimmt werden, wobei die Teillösungen voriger Iterationsschritte Nebenbedingungen darstellen. Es existieren zwei Bedingungen: (1) Die Lösung bzw. Teillösung muss gültig sein; (2) die Auslastung keiner MAE darf einen Höchstwert von eins überschreiten, wobei dieser Wert um die jeweils minimale Überlastung (Ergebnis aus Basisanforderung A11) zu erhöhen ist (siehe Abschnitt 2.3, Planungsziel der optimalen Auslastung). 71 2 Lösungsvorbereitung: Systemanalyse Erläuterung: Die Anforderung beschreibt das Planungsziel nicht als geschlossene Zielfunktion, sondern als eine Iterationsvorschrift, nach welcher alle Prozessstückzahlen maximiert werden. Da die Priorisierung alle Prozessstückzahlen, d. h. sämtliche Freiheitsgrade des Modells, einschließt (siehe Basisanforderung A5), ist das Ergebnis in jedem Fall eindeutig. Wie in Abschnitt 2.3 ausgeführt wurde, kann die Iteration mit der vorletzten Priorität enden, da danach auch der Wert der letzten Prozessstückzahl eindeutig bestimmt ist. Basisanforderung A13: globales Optimum. Bezug nehmend auf die drei Planungsziele (siehe Basisanforderung A10–A12) soll sichergestellt sein, dass die Software das globale Optimum zurückgibt. Das heißt, es wird kein lokales Optimum akzeptiert, welches nur in einer Umgebung des Suchraums die optimale Lösung darstellt. Erläuterung: Auf Grundlage der Ergebnisse wird u. a. über Eigenproduktion, Zukauf und Investitionen entschieden. Die Unternehmensleitung muss in die Lage versetzt werden, die bestmögliche Entscheidung unter vollständiger Berücksichtigung aller verfügbaren Informationen zu treffen. Das heißt, für die Planungsziele dürfen keine besseren Lösungen als die gefundenen existieren. Um die besten Lösungen zu bestimmen, ist es unmöglich, den stetigen Suchraum vollständig zu erfassen. Heuristiken und Metaheuristiken (wie z. B. Hill Climbing, Simulated Annealing und genetische Algorithmen) sind nicht geeignet, da sie allenfalls gute Lösungen in vertretbarer Zeit ermitteln. Damit verbleiben exakte, mathematische Verfahren der linearen Optimierung (Simplex-Verfahren o. a.). Leistungsanforderung A14+: lineare obere Laufzeitschranke. Für eine repräsentative Auswahl realer Systeme (siehe Tabelle 2.2 auf Seite 38) soll die Laufzeit der Optimierung im Verhältnis zur gegebenen Zahl der Prozessschritte nicht größer als 0,15 Sekunden je Prozessschritt sein. Die Zeitmessung stoppt, sobald die Optima aller drei Planungsziele gefunden wurden (siehe Basisanforderung A10–A12). Die Anforderung soll auf einem Testsystem geprüft werden, dessen Leistung dem folgenden entspricht: Microsoft Windows 7, 4 GB RAM, CPU Intel Core i5-2520M, vier Kerne mit 2,50 GHz.4 Erläuterung: Die Optimierung erfolgt auf Basis eines Modells, welches der Anwender für das jeweils geplante System erstellt. Nach Prüfung der dabei erzielten Ergebnisse passt der Anwender das Modell an, um die TEK weiter zu steigern und die nötigen Investitionen weiter zu reduzieren. Die Anpassung betrifft nicht die definierten Freiheitsgrade, sondern die grundsätzliche Struktur des Modells, indem der Anwender Prozessschritte/Prozesse, Taktzeiten und Betriebsmittelzeiten ändert. Danach ist das Modell wieder im Hinblick auf seine Freiheitsgrade zu optimieren. Um diesen iterativen Workflow effizient zu gestalten, muss gewährleistet sein, dass die globalen Optima der Planungsziele in einer akzeptablen Laufzeit gefunden werden. Da das zu optimierende Modell die Laufzeit des Optimierers beeinflusst, wird eine repräsentative Auswahl von Planungen vorgegeben, anhand derer geprüft werden soll, ob die Anforderung erfüllt ist. Die Laufzeit muss umso kürzer sein, je geringer die Komplexität des Modells ist, da erwartet wird, dass der Anwender das Modell v. a. zu Beginn in kurzen Intervallen anpasst und optimiert. Daraus folgt eine lineare Schranke für die Laufzeit im Verhältnis zur Komplexität des Modells. 4 Typisches Rechnersystem eines Planers der Bosch Rexroth AG zum Zeitpunkt der Erstellung 72 2.6 Anforderungen in Bezug auf die Modellierung und die Optimierung Ein aussagekräftiger Indikator, um die angesprochene Komplexität eines Modells zu quantifizieren, ist die Zahl der Prozessschritte. Diese berücksichtigt sowohl die Zahl der Freiheitsgrade, d. h. der Variablen, als auch die Zahl der Nebenbedingungen. Wenn der Anwender Prozessschritte anlegt, ist für die Freiheitsgrade der Verknüpfungstyp entscheidend. Wird ein Prozessschritt alternativ verknüpft, muss eine Prozessstückzahl eingeführt werden, um den variablen Stückzahlanteil zu beschreiben, welcher diesen Prozessschritt durchläuft. Dagegen wird die Zahl der Nebenbedingungen dadurch bestimmt, ob die zugeordnete MAE allein für diesen Prozessschritt oder gleichzeitig auch für andere genutzt wird. Im ersten Fall muss eine neue Nebenbedingung eingeführt werden, im zweiten Fall muss eine existierende erweitert werden. Als Folge steigen mit der Zahl der Prozessschritte näherungsweise linear auch die Zahlen der Freiheitsgrade und Nebenbedingungen. Im Allgemeinen umfassen Modelle in der Praxis nicht mehr als 2000 Prozessschritte, wie die Zahlen in Tabelle 2.2 zeigen. Für den Anwender wird eine Laufzeit von bis zu fünf Minuten als akzeptabel angenommen, woraus 0,15 Sekunden je Prozessschritt folgen. Im Mittelpunkt des zurückliegenden Kapitels stand die Analyse und Beschreibung von Systemen, die sich aus Wertströmen zur Fertigung und Montage von Produkten an einem Produktionsstandort zusammensetzen. Den Kontext für die Betrachtung bildete die strategische Planung der technischen Kapazität in der (variantenreichen) Serienfertigung (siehe Abschnitt 2.1). Zum Abschluss liegen folgende Ergebnisse vor: (1) Struktur und Schnittstelle eines Systems auf der Grundlage eindeutiger Definitionen für Prozessschritte sowie für deren verschiedenartige, rekursive Verknüpfung zu Prozessen und Wertströmen (siehe Abschnitt 2.2 und 2.3); (2) Kalkulation der Planungsziele für den einfachen Fall eines Prozessschritts und für den allgemeinen Fall verknüpfter Prozessschritte eines Produkts (bedingt die Komplexität und ist übertragbar auf mehrere Produkte, siehe Abschnitt 2.4 und 2.5); (3) Kategorisierung und Formulierung der essenziellen Anforderungen zur Modellierung eines Systems und zur Optimierung des Modells, um die Planungsziele effizient, transparent und flexibel zu erreichen (siehe Abschnitt 2.6). Damit wurden die Voraussetzungen geschaffen, um den Stand der Technik zu bewerten und die Kernalgorithmen der Software AURELIE zu erläutern, die erstmals alle der formulierten Anforderungen erfüllt. Insbesondere erlaubt es diese, ein gegebenes System vollständig durch ein grafisches, formal eindeutiges Modell abzubilden, in ein mathematisches Modell umzuwandeln und innerhalb der vorgegebenen Laufzeit zu optimieren. 73 3 Stand der Technik Ziel dieses Kapitels ist die Bewertung der aktuell verfügbaren Software zur Unterstützung der strategischen Planung technischer Kapazität. Betrachtet werden insbesondere die Möglichkeiten von Software zur Modellierung eines Systems von Wertströmen an einem Standort und zur Optimierung des Modells gemäß den definierten Planungszielen. Hierfür wurden in Kapitel 2 die Grundlagen im Hinblick auf die Struktur und die Schnittstelle des Systems sowie die Kalkulation von Kapazität, Auslastung und Investitionen erarbeitet. Die diesbezüglich zu erfüllenden essenziellen Anforderungen, die in Abschnitt 2.6 kategorisiert und formuliert wurden, bilden den Maßstab für die Bewertung. Dieses Vorgehen, basierend auf der Formulierung von zu erfüllenden Anforderungen gefolgt von einer Bewertung der verfügbaren Software, entspricht der empfohlenen Praxis für das Projektmanagement zur Einführung neuer Informationssysteme (siehe Ammenwerth und Haux 2005, S. 207 ff, für Fallbeispiele). Falls keine geeignete Standardsoftware existiert, muss auf Grundlage der festgelegten Anforderungen eine Individualsoftware entwickelt und eingeführt werden (siehe Mertens et al. 2012, S. 137, Schlick 2001, S. 201). Eine vollständige Bewertung jeglicher kommerziell und frei verfügbarer Software ist jedoch vor dem Hintergrund des unerschöpflichen Angebots unmöglich. Das Ziel besteht vielmehr darin, im Rahmen dieser Arbeit eine möglichst umfassende Bewertung durchzuführen. Zunächst werden Typen von Software auf Basis vergleichbarer Möglichkeiten gebildet und anhand definierter Kriterien ausgewählt. Da aber auch das verbleibende Angebot unüberschaubar groß ist, wird jeder Softwaretyp an einem Beispiel evaluiert, welches den Stand der Technik widerspiegelt. Es wird angenommen, dass Software eines Typs im Hinblick auf die Erfüllung der Anforderungen insgesamt bestenfalls vergleichbar, aber nicht besser als das gewählte Beispiel ist. Unter dieser Voraussetzung ist die Bewertung des Beispiels hinreichend auf Software desselben Typs übertragbar. In Abschnitt 3.1 werden zwei Kriterien definiert, um Softwaretypen für die Bewertung auszuwählen: Es wird gefordert, dass die Software grundsätzlich geeignet ist und in Unternehmen produktiv im Planungsprozess eingesetzt werden kann. Die Anwendung der beiden Kriterien führt zur Auswahl der folgenden vier Typen und Beispiele: (1) Software zur Erstellung von Tabellenkalkulationen, Bsp. Microsoft Excel, in Abschnitt 3.2; (2) Software zur Materialflusssimulation, Bsp. Siemens Plant Simulation, in Abschnitt 3.3; (3) Software für Supply Chain Management, Bsp. SAP APO Supply Network Planning, in Abschnitt 3.4; (4) Software zur Prozessmodellierung, Bsp. BPMN mit idealem Interpreter und Optimierer, in Abschnitt 3.5. 75 3 Stand der Technik In Abschnitt 3.6 folgt das Fazit: Da keine Software existiert, die alle Anforderungen erfüllt, wurde im Rahmen der vorliegenden Arbeit die Software AURELIE entwickelt und mit Erfolg weltweit bei der Bosch Rexroth AG eingeführt. 3.1 Auswahl zu evaluierender Softwaretypen In diesem Abschnitt erfolgt die Auswahl der Softwaretypen, die jeweils an einem für den Stand der Technik charakteristischen Beispiel evaluiert werden sollen. Wie zu Beginn erläutert, werden zwei Kriterien festgelegt, um zu dieser Auswahl zu gelangen: Die Software muss erstens grundsätzlich geeignet sein, d. h. die vollständige Modellierung eines Systems gemäß den Basisanforderungen A1–A6 ermöglichen. Zweitens muss sie auf allen Hierachieebenen in den Planungsabteilungen eines Unternehmens wie z. B. der Bosch Rexroth AG mit Blick auf die Qualifikation der Mitarbeiter produktiv einsetzbar sein. Ein Beispiel aus der Praxis verdeutlicht, dass die Planung ein arbeitsteiliger, sich über das gesamte Unternehmen erstreckender Prozess ist, und unterstreicht dadurch die Bedeutung des zweiten Kriteriums: Bei der Bosch Rexroth AG ist die strategische Planung der TEK im April 2014 in der Verantwortung von insgesamt 146 Mitarbeitern, die weltweit an 34 Standorten arbeiten. Jeder Standort ist einem von zwölf Erzeugnisgebieten zugeordnet, wobei die Produktionsanlagen auch zur Herstellung von Produkten anderer Erzeugnisgebiete genutzt werden. Die Modellerstellung ist eine Aufgabe der Abteilungen für Fertigungsausführung, Fertigungsplanung oder Zeitwirtschaft des Standorts, in einzelnen Fällen auch der Assistenz der Werkleitung. Periodisch, i. d. R. zu Quartalsbeginn, übermitteln die Planer das Modell zur Prüfung an die Zentralbereichsabteilung des jeweiligen Erzeugnisgebiets. Diese Arbeitsteilung führt zu dem zweiten Kriterium, dass Software, die für eine Bewertung in Frage kommt, von Planern aller Hierarchieebenen in Unternehmen produktiv einsetzbar sein muss. Zum einen besitzen die Mitarbeiter, die Anwender dieser Software sein sollen, zumeist eine Qualifikation im Bereich der Produktion oder der Betriebswirtschaft, selten der Mathematik und Informatik. Zum anderen erfordert der fortlaufende Wechsel der Verantwortlichkeiten, dass die Komplexität der Software möglichst gering und die daraus folgende Einarbeitungszeit möglichst kurz sein soll. Ausschluss von Software zur Wertstromaufnahme In Abschnitt 2.2 wurde der Begriff des Wertstroms eingeführt. Wie an dieser Stelle erläutert, ist es das Ziel des Wertstrommanagements, den Materialfluss und den Informationsfluss durch die Aufnahme, das Design und die Planung von Wertströmen auszulegen und zu verbessern (siehe u. a. Erlach 2010, Rother und Shook 1999, Singh et al. 2011). Bei jedem dieser Schritte besteht eine wesentliche Aufgabe des Planers darin, Zeichnungen der aktuellen und der geplanten Wertströme anzulegen. Dabei kann er auf Programme zur Erzeugung von Vektorgrafiken zurückgreifen, die geeignete Symbole zur Verfügung stellen, und auf Symbolbibliotheken, die solche Programme erweitern. Der Zweck von Software dieser Art ist die grafische Erfassung von Wertströmen und die Analyse, welche der ausgeführten Tätigkeiten nicht wertschöpfend sind. Darüber hinaus ermöglicht es solche Software, geplante 76 3.1 Auswahl zu evaluierender Softwaretypen Name Informationen* Bluespring LeanView 6.1b BreezeTree FlowBreeze 4.3a ConceptDraw PRO 10, VSM Solution http://www.bluespring.com/value-stream-mapping http://www.breezetree.com/flowcharting-software/ http://www.conceptdraw.com/solution-park/business-↵ value-stream-mapping/ http://creately.com/value-stream-mapping-tool http://www.edrawsoft.com/valuestreammapping.php Creately, VSM Tool Edraw Max 8.4, VSM Solution eVSM 9b iFakt VSM iGrafx FlowCharter Lean Enterprise Institute, VSM Iconsa Leanpilot 1.8.5 Lucidchart, VSM Shapes and Templates Paul Herber, VSM Shapes Stencil and Templateb QI Macros, VSM Templatea SmartDraw 2016, Lean Diagrams Systems2win, VSM Templatea http://evsm.com/ http://www.ifakt.de/software/vsm/ http://www.igrafx.com/gl/products/process-modeling-↵ analysis/flowcharter http://www.lean.org/common/display/?o=866 http://www.leanpilot.com/ http://www.lucidchart.com/pages/examples/value-↵ stream-mapping http://www.paulherber.co.uk/visio-value-stream-map/ http://www.qimacros.com/quality-tools/value-stream-↵ map/ http://www.smartdraw.com/value-stream-map/ http://www.systems2win.com/solutions/value-stream-↵ mapping-template.htm a,b Symbolbibliothek, erweitert (a) Microsoft Excel bzw. (b) Microsoft Visio *abgerufen am 4. Januar 2017 Tabelle 3.1: Software zur grafischen Wertstrommodellierung. Es existiert eine Vielzahl von frei verfügbaren und kommerziellen Softwarelösungen, die genutzt werden können, um Wertströme grafisch zu erfassen. Oft erweitern sie Standardsoftware wie z. B. Microsoft Excel und Visio. Zwar erleichtert solche Software die Beschreibung von Wertströmen, jedoch ist es i. d. R. nicht möglich, die Beziehungen zwischen den Elementen eines gegebenen Systems vollständig abzubilden. Wertströme zu skizzieren, um aufzuzeigen, wie nicht wertschöpfende Tätigkeiten zukünftig reduziert werden können. Der Planer verknüpft die bereitgestellten Symbole, sodass diese in ihrer Kombination die zuvor genannten Informationen widerspiegeln. Tabelle 3.1 bietet einen Überblick zu entsprechenden Softwarelösungen. Zur Veranschaulichung zeigt Abbildung 3.1 das exemplarische Ergebnis einer Wertstromaufnahme. Verglichen mit einer Erstellung von freier Hand erleichtert die Anordnung und Verknüpfung von Symbolen die grafische Modellierung eines Systems. Für die Planung, d. h. für die Optimierung des erstellten Modells gemäß den Planungszielen, ist solche Software allerdings nicht geeignet, wie im Folgenden begründet wird. Kritisch ist festzustellen, dass die Symbole in vielen Fällen Informationen repräsentieren, die ggf. in der Phase der operativen Planung, aber nicht in der Phase der strategischen Planung bekannt sind. Als Beispiele seien die Reihenfolge der Aufträge zwischen den Arbeitsplätzen (z. B. FIFO oder Push), die Verwaltung der Bestände von halbfertigen und fertig bearbeiteten Produkten (z. B. Puffer und Lager) und die Zuführung von Komponenten (z. B. durch einen Milkrun) genannt. Da aber die Symbole zur Abbildung solcher Informationen nicht zwingend verwendet werden müssen, ist dies noch nicht hinreichend, um den Softwaretyp auszuschließen. Auch dass sich entsprechende Software typischerweise einzig dafür eignet, ein System grafisch zu modellieren, aber nicht, die Auslastung der MAEs zu 77 Weekly A013 0 Weekly A001 0 2 1 1 Customer Atlas Customer Demand A002 0 Transport Frequency Transport Time 0.14 A012 0 1 2 1 1 Trip Wk Transport Frequency 1 Trip Wk 2 Hr Transport Time 4 Hr Day A004 0 Mold Handles A003 0 Inventory 7500 Item Cycle Time 4 Min Qty Per Cycle 5 Item Inventory 3850 Item Cycle Time 5 Min Qty Per Cycle 7 Item Inventory A011 0 1 Drilled Blanks 1 Day 2 1 Scissors 2 3100 Item 0.29 2 1 Assemble A007 0 1 Molded Blanks 1 A010 0 1 Sharpen A005 0 1 Blanks A006 0 1 Cycle Time 6 Min Qty Per Cycle 10 Item Inventory 9000 Item Z001 0 7.50 Day 3.85 4.00 Min Day 3.10 5.00 Day 9.00 Min 6.00 A008 0 Min Day 1 Time Summary Lead Time Total Value Added Value Added Percent 2 Takt Time Make Box A009 0 Day Wk 14 5 Hr Day 2 Boxes 1 Cycle Time 3 Min Qty Per Cycle 4 Item 3.00 Min Inventory 7.00 7000 Item Day 23.90 Day 15.00 Min 0.07 % 0.84 Min Item 1000 Item Day 3 Stand der Technik Abbildung 3.1: Ergebnis einer Wertstromaufnahme (Beispiel). Die Symbole beschreiben einen Wertstrom in Bezug auf den Materialfluss (Transport, Prozessschritte und Bestände von Komponenten sowie halbfertigen und fertig bearbeiteten Produkten) und den Informationsfluss (elektronische Datenübermittlung und Steueranweisungen). Das vorliegende Beispiel wurde mit der Software eVSM in der Version 7 erstellt (Quelle und Erläuterung siehe eVSM 2015). 78 Control Activity 3.1 Auswahl zu evaluierender Softwaretypen kalkulieren, ist noch kein Ausschlussgrund. Sofern ein grafisches Modell alle notwendigen Informationen bereitstellt, ist es denkbar, einen Interpreter einzusetzen, welcher das grafische Modell in ein analytisches oder Simulationsmodell umwandelt. Auf dieser Grundlage kann anschließend die Auslastung der MAEs ermittelt werden. Es existieren jedoch zwei Defizite, die im Allgemeinen verhindern, Software zur Wertstromaufnahme für die strategische Planung der TEK einzusetzen. Zum einen ist die Verkettung von alternativen und selektiven Verknüpfungen mit den gebotenen, einfachen Symbolen nur begrenzt darstellbar (siehe Beispiel SL2 in Abschnitt 2.5). Zum anderen kann mit Hilfe solcher Symbole nicht der Anwendungsfall beschrieben werden, dass eine MAE für unterschiedliche Prozessschritte eines Produkts genutzt wird (siehe Beispiel AL2 und AL3 im genannten Abschnitt). Als Konsequenz ist es nicht möglich, Prozessschritte zu erfassen, denen zwar dieselbe MAE zugeordnet ist, die sich aber bezüglich Taktzeiten und/oder nachfolgender Prozessschritte unterscheiden (siehe Beschreibung der zwei Anwendungsfälle im Zusammenhang mit Basisanforderung A2). Allgemein ist deshalb festzuhalten, dass die Beziehungen zwischen den Elementen eines Systems nicht vollständig abgebildet werden können. Die Basisanforderungen A1–A6 sind somit nicht erfüllt, weshalb Software zur Wertstromaufnahme für die Bewertung keine Berücksichtigung findet. Bemerkung: Damit ist Software ausgeschlossen, die sich auf das Zeichnen von Wertströmen mit Hilfe einfacher Symbole beschränkt. Software, die sich zur Modellierung komplexer Prozesse unter Berücksichtigung aller Beziehungen zwischen den Elementen eines Systems eignet, wird im Weiteren berücksichtigt. Ausschluss algebraischer Modellierungssprachen Software zur Wertstromaufnahme stehen grundsätzlich sogenannte algebraische Modellierungssprachen (AMLs) gegenüber, welche die Formulierung und Lösung mathematischer Optimierungsprobleme erlauben. Statt ausführlicher Erläuterungen soll aufgrund ihrer Verbreitung in der Disziplin der Operations Research und der Verfügbarkeit vieler Fallbeispiele der Verweis auf die Literatur genügen (siehe u. a. Kallrath 2004, 2012). Einige der wichtigsten Vertreter sind mitsamt Quellen in Tabelle 3.2 genannt. AMLs zeichnen sich dadurch aus, dass sie es gestatten, einmal erstellte Modelle schnell und flexibel umzuformulieren (siehe Kallrath und Maindl 2006, S. 39). Zudem sind sie zur Lösung von Problemen mit einer großen Zahl von Variablen und Bedingungen geeignet. Ihre Syntax orientiert sich dabei an der allgemein üblichen mathematischen Notation (Mengen, Ausdrücke usw. usf.), weshalb sie eine Qualifikation im Fachgebiet der mathematischen Modellierung voraussetzen. Sie verlangen vom Anwender, das Problem von der Praxis in eine abstrakte, algebraische Form zu übersetzen. Für außergewöhnliche Aufgaben von größerer Tragweite wie die Suche nach einem neuen Produktionsstandort kann die Berufung eines Kreises qualifizierter Experten zweckmäßig sein. Wie am Beispiel der Bosch Rexroth AG erläutert, ist die strategische Planung der TEK jedoch eine wiederholte, auf eine große Zahl von Mitarbeitern aller Hierarchieebenen verteilte Aufgabe. Die erforderliche Qualifikation kann aus diesem Grund im Allgemeinen nicht vorausgesetzt werden. Damit kommen AMLs für eine Bewertung im Rahmen dieses Kapitels, ungeachtet der Anerkennung ihrer zweifellos gegebenen Leistungsfähigkeit, nicht in Betracht. 79 3 Stand der Technik Name Quellen und weiterführende Informationen AIMMS AMPL APMonitor ASCEND GAMS GNU MathProg LINGO LPL MINOPT Mosel MPL MPSX/370 und OSL NOP-2 OMNI OPL PCOMP Pyomo SAMPL TOMLAB Bisschop und Roelofs (2004), Roelofs und Bisschop (2016a,b) Fourer et al. (1990, 2003, 2004), Fourer und Gay (2003) Hedengren (2008), Hedengren et al. (2014), Hedengren und Eaton (2015) Piela et al. (1991, 1992), Krishnan et al. (1993), Bhargava et al. (1994) Meeraus (1976), Brooke et al. (1988), Bussieck und Meeraus (2004), GAMS (2016) Eleyat et al. (2011), Pryor und Chinneck (2011), Makhorin (2016a,b) Schrage (1986, 2006), Cunningham und Schrage (2004), LINDO (2016) Hürlimann und Kohlas (1988), Hürlimann (1999, 2004, 2016) Rojnuckarin und Floudas (1994), Schweiger und Floudas (1998a,b, 2004) Colombani und Heipcke (2002), Colombani et al. (2004), Guéret et al. (2002), Heipcke (2012) Maximal Software (2002, 2017), Kristjansson und Lee (2004) Slate und Spielberg (1978), Wilson und Rudin (1992), Spielberg (2004) Neumaier (1997), Schichl et al. (2001), Schichl und Neumaier (2004) Haverly Systems (1976), Kuip (1993), Haverly (2001, 2004) Van Hentenryck et al. (1999, 2004), IBM (2016a, 2016b) Dobmann et al. (1995), Liepelt und Schittkowski (2000), Schittkowski (2004) Hart et al. (2011, 2012), Mason (2013), DeCarolis et al. (2010) Valente et al. (2001, 2008, 2009), Valente (2011) Holmström (1999, 2008), Holmström und Edvall (2004), Holmström et al. (2010) Tabelle 3.2: Liste in der Praxis verwendeter algebraischer Modellierungssprachen. Im akademischen Umfeld der Operations Research und zunehmend auch von firmeneigenen Forschungsabteilungen werden AMLs eingesetzt, um mathematische Optimierungsprobleme zu lösen. Hierzu existiert eine große Zahl verschiedener Sprachen und Softwareumgebungen, die sich in Bezug auf die gebotenen Möglichkeiten zur Modellierung und Optimierung unterscheiden. Bewertung von vier Softwaretypen Software zur grafischen, aber unvollständigen Modellierung und Sprachen zur abstrakten, algebraischen Modellierung müssen somit ausgeschlossen werden. Unter Berücksichtigung der zwei festgelegten Kriterien, der Möglichkeit zur vollständigen Abbildung eines gegebenen Systems und zum produktiven Einsatz in Unternehmen, verbleiben die folgenden vier Typen verfügbarer und für die planerische Praxis relevanter Software: (1) Software zur Erstellung von Tabellenkalkulationen (Bsp. Microsoft Excel): in Unternehmen weithin eingesetzte Software zur Strukturierung und Lösung mathematischer Probleme mit begrenzten Möglichkeiten der Optimierung; (2) Software zur Materialflusssimulation (Bsp. Siemens Plant Simulation): leistungsfähige, kommerzielle Software zur stochastischen Modellierung, diskreten ereignisorientierten Simulation und Optimierung von Prozessen in Produktion und Logistik; (3) Software für Supply Chain Management (Bsp. SAP APO SNP): betriebswirtschaftliche Standardsoftware zur Modellierung und mathematischen Optimierung von Problemen der Ressourcenbelegung in Logistiknetzwerken; (4) Software zur Prozessmodellierung (Bsp. BPMN): allgemein verfügbare Software auf Basis grafischer Standards zur Abbildung von Geschäftsprozessen, bewertet in Kombination mit einem hypothetischen idealen Interpreter und Optimierer. 80 3.2 Software zur Erstellung von Tabellenkalkulationen Index Anforderung A1 A2 A3 A4 A5 A6 A7+ A8+ A9+ A10 A11 A12 A13 A14+ Superposition aller Wertströme Systemstruktur Systemschnittstelle Sequenzielle Verknüpfung Alternative Verknüpfung Selektive Verknüpfung Grafische Modellierung Minimale Symbolmenge Modelltransformation Maximierung der Kapazitäten Minimierung der Investitionen Optimierung der Auslastung Globales Optimum Lineare obere Laufzeitschranke − nicht erfüllt ± teilweise erfüllt + erfüllt Tabellenkalkulationen (Microsoft Excel) Materialflusssimulation (Siemens Plant Simulation) Supply Chain Management (SAP APO SNP) Prozessmodellierung (BPMN) + + + + + + − − − − − − − ± + + + + + + ± − + − − − − − + + + + + + − − − ± ± ± + + + + +* + + + ± − ±* ±* ±* ±* ±* ±* *unter Annahme eines hypothetischen idealen Interpreters und Optimierers Tabelle 3.3: Bewertung ausgewählter Beispiele von Softwaretypen. Aus der Übersicht geht hervor, dass keines der Beispiele allen definierten Anforderungen genügt. Einzeln betrachtet erfüllt kein Softwaretyp in vollem Umfang die Leistungsanforderungen A7+ und A8+ zur grafischen Modellierung und die Basisanforderungen A10–A12 zur mathematischen Optimierung. Die Aufzählung kann keinen Anspruch auf Vollständigkeit erheben. Wie eingangs dargelegt ist das Ziel vielmehr, eine möglichst umfassende Bewertung der verfügbaren Software im Rahmen der Arbeit zu erreichen. Eine Abgrenzung der vier Typen ist zudem nicht trennscharf möglich. Dies betrifft u. a. Software wie Siemens Plant Simulation, die zur Simulation des Materialflusses vom Zulieferer bis zum Kunden geeignet ist und damit zur Lösung von Fragen des Supply Chain Management beiträgt. Im Folgenden werden die Beispiele stellvertretend für den Stand der Technik in Bezug auf die Anforderungen aus Abschnitt 2.6 evaluiert. Tabelle 3.3 fasst die Ergebnisse zusammen. 3.2 Software zur Erstellung von Tabellenkalkulationen Software zur Erstellung von Tabellenkalkulationen unterstützt die tabellarische Eingabe, die formelbasierte Verarbeitung sowie die tabellarische und die grafische Auswertung von numerischen Daten. Die Struktur der Daten ist dabei durch Zellen in Zeilen und Spalten vorgegeben. Mit Hilfe sogenannter Zellbezüge ist es möglich, Werte mit Formelvariablen in mathematischen Funktionen zu verknüpfen. Nach einer Änderung der Daten in verknüpften Zellen werden die Ergebnisse in verknüpfenden Zellen automatisch aktualisiert. Durch verschachtelte Verknüpfung von Eingaben zu Zwischenergebnissen sind umfangreiche Berechnungen möglich (siehe u. a. Bourg 2009, Guerrero 2010, Winston 2011). Entsprechende Software ist in größeren Unternehmen, insbesondere in administrativen Funktionen, für alle Mitarbeiter allgemein verfügbar. Fundierte Kenntnisse im Umgang mit 81 3 Stand der Technik der Software stellen oft eine Einstellungsvoraussetzung dar. Als Folge waren Tabellenkalkulationen vor der Einführung von AURELIE bei der Bosch Rexroth AG für die strategische Planung der TEK der am häufigsten anzutreffende Softwaretyp. 3.2.1 Beispiel: Microsoft Excel Die Bewertung erfolgt am Beispiel des Industriestandards Microsoft Excel. Vor dem Hintergrund der ubiquitären Verbreitung in Unternehmen und der Tatsache, dass die eingangs formulierten, allgemeinen Aussagen alle Informationen für eine Bewertung bereitstellen, wird für Details auf die genannten Quellen verwiesen. Aktuell ist Microsoft Excel als Bestandteil des Pakets Microsoft Office 2016 verfügbar.1 Die Modellierung eines gegebenen Systems von Wertströmen erfolgt auf Basis fix definierter Prämissen, insbesondere der Zuordnung der Produktionsanlagen zu Prozessschritten/ Prozessen und Produkten. Für die Abbildung dieser Beziehungen stehen dem Anwender Formeln und Zellbezüge zur Verfügung. Deren zielgerichtete Nutzung erfordert zum einen, das System in seiner Komplexität vollständig zu erfassen, und zum anderen, über das mathematische Verständnis zu verfügen, die Struktur des Systems mitsamt den Verknüpfungen aller Prozessschritte in eine Tabellenkalkulation zu überführen. 3.2.2 Erfüllungsgrad der Anforderungen Erfüllungsgrad der Basisanforderungen A1–A6 Superposition aller Wertströme, Systemstruktur, Systemschnittstelle sowie sequenzielle, alternative und selektive Verknüpfung Grundsätzlich ist es möglich, ein System, das aus Wertströmen verschiedener Produkte zusammengesetzt ist (A1), durch eine Tabellenkalkulation abzubilden. Es können Formeln und Zellbezüge genutzt werden, um die Systemstruktur (A2) und die Systemschnittstelle (A3) unter Berücksichtigung aller sequenziellen, alternativen und selektiven Verknüpfungen zu modellieren (A4–A6). Die Basisanforderungen A1–A6 sind somit erfüllt. In der Praxis ist die Vollständigkeit eines solchen Modells allerdings vom fachlichen Hintergrund und Zeitaufwand des Erstellers abhängig. Bei der Bosch Rexroth AG reichte das Spektrum von einfachen Tabellenkalkulationen, die Produktionsanlagen eines Typs zusammenfassen (z. B. einer Technologie wie Fräsen oder Drehen), zu ungleich aufwändigeren Modellen, die einen Wertstrom als verkettetes Bediensystem beschreiben, um die Bestände durch die mittlere Warteschlangenlänge zu approximieren. Erfüllungsgrad der Leistungsanforderungen A7+–A9+ Grafische Modellierung, minimale Symbolmenge und Modelltransformation Die Modellierung eines gegebenen Systems ist mit einer Tabellenkalkulation naturgemäß tabellarischer, nicht grafischer Natur. Entsprechend existiert keine minimale Symbolmenge, 1 Microsoft Office: Excel. Abgerufen am 22. Januar 2018. http://office.microsoft.com/de-de/excel/. 82 3.2 Software zur Erstellung von Tabellenkalkulationen und die Umwandlung des grafischen Modells in ein analytisches oder Simulationsmodell entfällt. Die Leistungsanforderungen A7+–A9+ sind folglich nicht erfüllt. Erfüllungsgrad der Basisanforderungen A10–A13 Maximierung der Kapazitäten, Minimierung der Investitionen, Optimierung der Auslastung und globales Optimum Mit der Zielwertsuche steht in Microsoft Excel ein Werkzeug zur Verfügung, um einfache Probleme abhängig von einer veränderlichen Zelle/Variable zu lösen. Die Software ist durch einen Solver erweiterbar, welcher die Lösung von linearen und nichtlinearen Problemen mit bis zu 200 veränderlichen Zellen/Variablen erlaubt.2 In der Praxis erfordert die Abbildung von Systemen jedoch z. T. mehr als 1000 Prozessstückzahlen, um die Verteilung der Produktstückzahlen auf alternativ verknüpfte Prozessschritte zu beschreiben. Folglich verhindert die Beschränkung der Variablenzahl im Allgemeinen, das jeweils gegebene System vollständig abzubilden. Die Basisanforderungen A10–A13 sind damit nicht erfüllt. Bei der Bosch Rexroth AG war festzustellen, dass der Solver für die Planung der TEK nicht eingesetzt wurde. Stattdessen legten die Anwender selbst fest, zu welchem fixen Anteil der Produktstückzahl alternativ verknüpfte Prozessschritte durchlaufen werden sollen. Damit war es ihre Verantwortung, eine optimale Verteilung der Produktstückzahlen in Bezug auf Kapazitäten, Investitionen und Auslastung festzulegen. Erfüllungsgrad der Leistungsanforderung A14+ Lineare obere Laufzeitschranke Wie zuvor erläutert, ist eine Optimierung gemäß den Planungszielen mit Microsoft Excel im Allgemeinen nicht möglich. Daher kann keine Laufzeit zur Ermittlung der globalen Optima gemessen werden. Statt einer automatisierten Optimierung muss der Anwender fixe Werte für die Freiheitsgrade des Modells festlegen. Da allerdings die Ergebnisse der Kalkulation augenblicklich aktualisiert werden, sobald der Anwender die vorgegebenen Werte verändert, gilt die Leistungsanforderung A14+ zumindest als teilweise erfüllt. Ergebnis der Bewertung Positiv ist zunächst festzustellen, dass Microsoft Excel die Basisanforderungen A1–A6 erfüllt und zur Modellierung eines Systems von Wertströmen geeignet ist. Des Weiteren ist Software dieses Typs für Mitarbeiter in Planungsfunktionen i. d. R. zugänglich. Von den Anwendern können fundierte Kenntnisse vorausgesetzt werden. Negativ ist zu bemerken, dass Software zur Erstellung von Tabellenkalkulationen wie Microsoft Excel naturgemäß die tabellarische, aber nicht die grafische Modellierung eines Systems von Wertströmen unterstützt. Die Leistungsanforderungen A7+–A9+ sind dementsprechend nicht erfüllt. Problematisch ist insbesondere, dass die komplexe Logik zur Abbildung von Verknüpfungen zwischen Prozessschritten in Formeln und Zellbezügen versteckt 2 Microsoft Support: Solver Limits for Constraints and Adjustable Cells. Abgerufen am 21. April 2014. http://support.microsoft.com/kb/75714/en-us. 83 3 Stand der Technik und nicht geeignet visualisiert wird. In der Anwendung führt dies zu reduzierter Effizienz, Transparenz und Flexibilität. Belege hierfür liefern Studien zu Fehlerrisiken bei der Erstellung von Tabellenkalkulationen (siehe u. a. Powell et al. 2008, 2009). In der Praxis bestimmen daher die Analysefähigkeit, das Verständnis und die Achtsamkeit des Anwenders die Vollständigkeit eines Modells in besonderem Maße. Im Hinblick auf die Optimierung gemäß den definierten Planungszielen erfüllt Microsoft Excel nicht die Basisanforderungen A10–A13 und nur teilweise die Leistungsanforderung A14+. Zusammenfassend ist festzustellen, dass Software zur Erstellung von Tabellenkalkulationen, wie am Beispiel von Microsoft Excel evaluiert, für die Planung in diesem Kontext ungeeignet ist. 3.3 Software zur Materialflusssimulation Die Simulation eines experimentierbaren Modells bietet immer dann Vorteile, wenn Experimente an einem realen System nicht oder zumindest nicht wirtschaftlich realisiert werden können, wie dies oft in der Produktion und der Logistik der Fall ist. Eine Simulationsstudie verläuft üblicherweise in den folgenden Schritten (siehe Eley 2012, S. 17 f): (1) (2) (3) (4) (5) (6) Festlegung der Aufgaben und Ziele, Erhebung erforderlicher Daten, Implementierung des Simulationsmodells, Verifikation und Validation des Modells, Durchführung und Auswertung von Experimenten, Übertragung der Ergebnisse auf die Realität. Software zur Simulation des Materialflusses unterstützt in den meisten Fällen mindestens die Schritte (3), (4) und (5), um ein System von Wertströmen einschließlich der Dynamik seiner Prozesse abzubilden und Entscheidungen zur Steigerung seiner Leistung abzuleiten (für eine Übersicht siehe u. a. Kühn 2006, Semini et al. 2006). Technische Grundlage ist in aller Regel das Modellierungsmuster gemäß der diskreten ereignisorientierten Simulation (DES). Das Verhalten des Systems wird dabei als Folge von Ereignissen abgebildet, die zu bestimmten Zeitpunkten auftreten, den Systemzustand verändern und Folgeereignisse erzeugen. Zwischen zwei aufeinanderfolgenden Ereignissen ist der Zustand des Systems unverändert. Durch die Definition von Zufallsvariablen können stochastische Einflussgrößen berücksichtigt werden (z. B. die Maschinenverfügbarkeit, die Zeit zwischen zwei Aufträgen und die Bearbeitungszeit). Im Vergleich zu analytischen Modellen, welche die Ausgaben des Systems durch geschlossene mathematische Ausdrücke der Eingaben approximieren, müssen weniger vereinfachende Annahmen getroffen werden. Die Grundlagen der DES, insbesondere der Modellierung und Analyse, sind in der Literatur beschrieben (siehe u. a. Banks et al. 2010, Fishman 2001, Law 2014). Zur Optimierung eines Simulationsmodells ist im Gegensatz zu analytischen Modellen kein exaktes, mathematisches Verfahren anwendbar. Der Grund ist, dass kein geschlossener Ausdruck für die stochastische, zu optimierende Zielfunktion vorliegt. Den Eingaben werden scheinbar zufällige Ausgaben zugeordnet, abhängig von der Realisierung der Zufallsvariablen im jeweiligen Simulationslauf. Stattdessen muss ein geeignetes Verfahren der 84 3.3 Software zur Materialflusssimulation simulationsbasierten Optimierung (SO) genutzt werden, wofür zwei verschiedene Ansätze existieren: die nichtrekursive und die rekursive SO (siehe Pflug 1996, S. 9 ff). Im Fall der nichtrekursiven SO wird im ersten Schritt eine deterministische Zielfunktion auf Basis einer großen Zahl von Simulationsläufen approximiert. Im zweiten Schritt kann diese mit Hilfe eines exakten Verfahrens optimiert werden. Allerdings steigt die nötige Zahl der Simulationsläufe, um die Zielfunktion genau genug zu approximieren, für komplexe Probleme schnell und ist schwer vorauszusagen. Der Ansatz wurde unter dem Begriff der retrospektiven SO eingeführt (siehe Healy und Schruben 1991). Gemäß der rekursiven SO wird das Simulationsmodell an eine Heuristik oder Metaheuristik wie z. B. einen genetischen Algorithmus (GA) oder einen Partikelschwarmoptimierer (PSO) gekoppelt. In jedem Rekursionsschritt werden die Ergebnisse der Simulationsläufe des vorigen Rekursionsschritts bewertet, um neue Lösungen zu suchen und zu deren Bewertung Simulationsläufe zu starten. Die Rekursion endet, sobald ein zuvor festgelegtes Abbruchkriterium erfüllt ist. Dieser Ansatz, der auch als prospektive SO bezeichnet wird, ist insbesondere für komplexe Probleme geeignet. Vorteilhaft ist, dass i. d. R. eine gute Lösung in akzeptabler Zeit gefunden wird, wenn auch nicht das globale Optimum. Die grundsätzlichen Verfahren wurden bereits vor längerer Zeit eingeführt und profitieren von der rasant wachsenden Leistung moderner Rechnersysteme. Für weitere Informationen wird auf die Literatur verwiesen (siehe u. a. Andradóttir 1998, Carson und Maria 1997, Fu 2002, Fu et al. 2005, Ólafsson und Kim 2002, Köchel 2009). 3.3.1 Beispiel: Siemens Plant Simulation Software zur Materialflusssimulation wird am Beispiel von Siemens Plant Simulation bewertet, einer leistungsfähigen, in der Industrie weit verbreiteten Software zur DES von Prozessen in Produktion und Logistik. Sie ermöglicht u. a. die Simulation eines Modells in verschiedenen Szenarien, die Visualisierung des Verlaufs und der Ergebnisse der Simulation, die Analyse des Zusammenhangs zwischen den Eingaben und Ausgaben eines Modells mit Hilfe eines künstlichen neuronalen Netzes und die Optimierung eines Modells durch einen GA. Als Folge ihrer Verbreitung ist in der Literatur eine Vielzahl von Anwendungen, Fallbeispielen und Musterlösungen zu finden (siehe u. a. Bangsow 2010, Eley 2012). Falls Einflussgrößen eines Systems unbekannt sind, kann der Anwender diese, wie zuvor beschrieben, durch Zufallsvariablen ersetzen (siehe Eley 2012, S. 18 ff). Um optimale Werte für die Informationseingaben eines Systems zu suchen, kann das Modell an Heuristiken oder einen GA gekoppelt werden. Ein Beispiel ist die Suche nach einer Auftragsreihenfolge, welche die Rüstzeiten minimiert (siehe Eley 2012, S. 271 ff). Für die folgende Bewertung wird stellvertretend der Einsatz eines GA untersucht, um das erstellte Modell rekursiv simulationsbasiert zu optimieren (siehe oben stehende Erläuterung). Siemens Plant Simulation bietet dem Anwender eine Bibliothek erweiterbarer Bausteine an, um auf grafische Weise Simulationsmodelle zu erstellen. Dabei handelt es sich um Klassen im Sinne der objektorientierten Programmierung, von denen verschiedene Objekte erzeugt werden können, um abhängig vom gegebenen Anwendungsfall bestimmte Eigenschaften der übergeordneten Klasse zu übernehmen oder zu überschreiben. Eine Kategorisierung dieser Bausteine lautet wie folgt (siehe Eley 2012, S. 35 ff): 85 3 Stand der Technik (1) (2) (3) (4) (5) bewegliche Elemente (im Folgenden abgekürzt als BEs), Bausteine des Materialflusses, Bausteine des Informationsflusses, Ressourcen, Bausteine der Oberfläche. BEs bilden Aufträge und andere physische Objekte ab (wie z. B. Werkstücke, Transportbehälter und Fahrzeuge). Sie werden i. d. R. durch eine Quelle erzeugt, im Materialfluss bewegt und durch eine Senke wieder vernichtet (siehe Eley 2012, S. 35). Bausteine des Materialflusses dienen der Abbildung von Maschinen (z. B. Einzelstationen und Parallelstationen), Lagern sowie von Fördertechnik zum Zweck des physischen Transports (z. B. Wege und Förderstrecken). Darüber hinaus zählen zu dieser Klasse Quellen und Senken, die wie zuvor beschrieben den Beginn bzw. das Ende des Materialflusses repräsentieren. Logische Verknüpfungen (z. B. Kanten und Flusssteuerungen) verbinden die Bausteine miteinander (siehe Eley 2012, S. 35 f). Bausteine des Informationsflusses schließen u. a. Variablen, Datenstrukturen (z. B. Tabellen, Listen und Warteschlangen), Methoden und Schnittstellen ein. Variablen bezeichnen Daten wie z. B. Zahlenwerte oder Zeichenketten, wogegen komplexere Daten in Datenstrukturen organisiert werden. Durch die Programmierung von Methoden mit SimTalk, einer Skriptsprache, kann der Anwender die Logik zur Steuerung des Informationsflusses entsprechend dem gegebenen System anpassen. Schnittstellen ermöglichen den Datenaustausch mit externen Programmen und Datenquellen (siehe Eley 2012, S. 36). Ressourcen sind im Verständnis von Siemens Plant Simulation Bausteine, die von anderen Bausteinen eines Modells wie z. B. Maschinen genutzt werden. Zu Beispielen gehören Arbeitsplätze, Gruppen von Mitarbeitern (sogenannte Werkerpools) und der Schichtkalender zur Vorgabe des Schichtmodells (siehe Eley 2012, S. 36). Bausteine der Oberfläche visualisieren schließlich den Zustand des Simulationsmodells zu einem gegebenen Zeitpunkt (z. B. Diagramme und Displays) und erlauben es dem Anwender, mittels Eingaben den weiteren Verlauf der Simulation zu steuern (z. B. über Dialoge, siehe Eley 2012, S. 37). Im Folgenden soll bewertet werden, wie die Bausteine von Siemens Plant Simulation eingesetzt werden können, um ein System von Wertströmen zu modellieren und gemäß den Planungszielen zu optimieren. 3.3.2 Erfüllungsgrad der Anforderungen Erfüllungsgrad der Basisanforderungen A1–A6 Superposition aller Wertströme, Systemstruktur, Systemschnittstelle sowie sequenzielle, alternative und selektive Verknüpfung Siemens Plant Simulation bietet die Möglichkeit, ein System aus Wertströmen verschiedener Produkte zu modellieren, zu simulieren und zu optimieren (A1). Mit den Grundfunktionen der Software und deren Erweiterung durch eigene Methoden stehen Werkzeuge zur Verfügung, um die Systemstruktur auf geeignete Weise durch ein Modell abzubilden (A2). Die Auslastung genutzter Maschinen kann im langfristigen Mittel durch Simulation bestimmt 86 3.3 Software zur Materialflusssimulation werden (A3). Falls verschiedene Maschinen nacheinander oder wahlweise für die Bearbeitung eines Produkts genutzt werden sollen, verbindet der Anwender diese durch Kanten bzw. Flusssteuerungen. Dadurch sind sequenzielle, alternative und selektive Verknüpfungen von Prozessschritten abbildbar (A4–A6). Weiterführende Informationen zur Modellierung mit Siemens Plant Simulation sind in der eingangs genannten Literatur detailliert beschrieben. Die Basisanforderungen A1–A6 sind, um dies zusammenzufassen, erfüllt. Erfüllungsgrad der Leistungsanforderung A7+ Grafische Modellierung Um ein System von Wertströmen mit Siemens Plant Simulation durch ein Simulationsmodell abzubilden, erzeugt der Anwender im ersten Schritt eine Reihe grafischer Bausteine des Materialflusses. Hierzu zählen insbesondere Quellen, Senken, zumeist mehrere Maschinen und ggf. Flusssteuerungen. Die Bausteine verbindet er durch Kanten, die als Pfeile dargestellt werden und logische Verknüpfungen zur Definition des Weges der Produkte von Maschine zu Maschine repräsentieren. Um komplexere Beziehungen zwischen den Elementen des Systems (z. B. alternative Verknüpfungen von Prozessschritten) abzubilden, muss der Anwender im zweiten Schritt das Modell um weitere, nicht grafische Bausteine des Informationsflusses erweitern (z. B. um Methoden und Variablen). Da somit nicht die Gesamtheit der notwendigen Informationen des Systems grafisch modelliert werden kann, ist die Leistungsanforderung A7+ nur teilweise erfüllt. Im Folgenden wird das genannte Beispiel, die Abbildung einer alternativen Verknüpfung von Prozessschritten, näher erläutert. Der Anwender muss zunächst einen Baustein für eine Flusssteuerung erzeugen und diesen an der Stelle zwischen den Maschinen durch Kanten einbinden, an der sich der weitere Weg der BEs unterscheidet. Entweder vereinfacht er das System, indem er eine fixe oder regelbasierte Zuordnung der BEs zu den nachfolgenden Maschinen voraussetzt, oder er erweitert die Flusssteuerung durch die Programmierung einer Methode mit SimTalk. In diesem Fall muss der Anwender Variablen für alle verknüpften Prozessschritte definieren, welche die Prozessstückzahlen, d. h. die Informationseingaben des Modells, bezeichnen. Mit Bezug auf diese Variablen muss er eine Methode programmieren, welche die BEs den verfügbaren Maschinen zuordnet, sodass deren Verteilung im Mittel den vorgegebenen Werten der Variablen entspricht. Danach kann das Modell an einen GA gekoppelt werden, um optimale Werte für die Variablen zu suchen. Erfüllungsgrad der Leistungsanforderung A8+ Minimale Symbolmenge Die Software eignet sich v. a. zur detaillierten Beschreibung und Analyse von realen, komplexen Systemen. Der Grund hierfür ist, dass bei der Erstellung eines Simulationsmodells gegenüber einem analytischen Modell weniger vereinfachende Annahmen getroffen werden müssen, um das System zu beschreiben. Statt die Auslastung der Maschinen nur im langfristigen Mittel zu kalkulieren, werden die Bewegungen von jedem BE eines Produkts nachverfolgt. Zudem stehen grafische Bausteine des Materialflusses zur Verfügung, die sehr detaillierte Informationen zum Ablauf von Produktion und Logistik wie z. B. Fördertechnik 87 3 Stand der Technik und Transportmittel abbilden. Diese Genauigkeit ist in der Phase der operativen Planung, aber nicht in der Phase der strategischen Planung vorteilhaft, da die entsprechenden Informationen zu diesem Zeitpunkt nicht vorliegen. Wie bei Software zur Wertstromaufnahme ist die Verfügbarkeit zusätzlicher Symbole jedoch kein Nachteil, sofern der Anwender nicht zwingend von ihnen Gebrauch machen muss. Mit Hilfe der grafischen Symbole ist allerdings nicht der Anwendungsfall abbildbar, dass eine MAE für verschiedene Prozessschritte genutzt wird (siehe Abschnitt 2.5, Beispiel AL2, AL3 und SL2, vgl. Software zur Wertstromaufnahme in Abschnitt 3.1). Nach der visuellen Darstellung des Modells werden Prozesse eines Produkts, welche dieselbe MAE durchlaufen, an diesem Punkt vereinigt. Nur mit grafischen Symbolen ist es nicht möglich, Prozessschritte zu definieren, denen dieselbe MAE zugeordnet ist, die sich aber hinsichtlich ihrer Taktzeiten und/oder nachfolgender Prozessschritte unterscheiden. Unter Zuhilfenahme der Begriffe von Siemens Plant Simulation heißt das: Wird ein einzelnes BE im Verlauf der Simulation mit einer Maschine bearbeitet, dann sind sowohl die Taktzeit als auch der weitere Weg des BE stets unabhängig von seinem Weg bis zu diesem Punkt. Um dies zu ändern, verbleibt dem Anwender nur die Programmierung einer Methode mit SimTalk. Mit einer solchen Methode kann er bewirken, dass der Weg eines BE einbezogen wird, um zu entscheiden, mit welcher Taktzeit und mit welchen Maschinen die weitere Bearbeitung erfolgen soll. Da aber die Definition der minimalen Symbolmenge verlangt, diese Unterscheidung mit grafischen Symbolen zu treffen, ist die Leistungsanforderung A8+ nicht erfüllt. Erfüllungsgrad der Leistungsanforderung A9+ Modelltransformation Das vom Anwender erstellte grafische Modell wird automatisch in ein Simulationsmodell umgewandelt, das wie erläutert zum Zweck der Optimierung an einen GA gekoppelt werden kann. Die Leistungsanforderung A9+ ist somit erfüllt. Erfüllungsgrad der Basisanforderungen A10–A12 Maximierung der Kapazitäten, Minimierung der Investitionen und Optimierung der Auslastung Um das Modell zu optimieren, muss der Anwender, wie in der Bewertung zur grafischen Modellierung ausgeführt, eigene Methoden und Variablen zur Bezeichnung der Prozessstückzahlen von alternativen Verknüpfungen definieren. Unter dieser Voraussetzung bietet Siemens Plant Simulation die Möglichkeit, das erstellte Modell an einen GA zu koppeln, um die optimalen Werte der Variablen zu suchen. Praktisch sind dem Vorgehen allerdings Grenzen gesetzt. So muss es gemäß der Basisanforderung A1 möglich sein, die Wertströme aller Produkte eines Standorts in einem Modell und, daraus folgend, alle Variablen in einem Suchvektor zusammenzufassen. Dagegen ist die Zahl der Dimensionen des Suchraums, d. h. der Variablen, bei Verwendung eines GA oder eines vergleichbaren Optimierungsverfahrens typischerweise auf nicht mehr als 100 beschränkt. Zudem steigt die Zahl der in einem Optimierungszyklus zu evaluierenden Lösungen, im Fall eines GA Individuen einer Population genannt, mit der Zahl der Variablen, wodurch die Laufzeit schnell wächst. Eine 88 3.3 Software zur Materialflusssimulation simultane Suche der Optima aller Variablen ist deshalb nicht realisierbar. Stattdessen muss der Anwender einzelne Wertströme losgelöst voneinander modellieren oder das System vereinfachen, wodurch die tatsächlichen Optima im Allgemeinen nicht gefunden werden. Die Basisanforderungen A10–A12 sind daher nicht erfüllt. Erfüllungsgrad der Basisanforderung A13 Globales Optimum Die Anwendung von Metaheuristiken wie z. B. GAs oder PSO ist immer dann zweckmäßig, wenn eine exakte Lösung aufgrund der Komplexität des zu lösenden Problems nicht effizient zu ermitteln ist. Sie zeichnen sich dadurch aus, dass sie für anderweitig unlösbare Probleme in akzeptabler Laufzeit i. d. R. eine gute Lösung finden. Bei dieser handelt es sich jedoch zumeist um ein lokales Optimum, nicht um das gesuchte globale Optimum. Als Konsequenz ist die Basisanforderung A13 nicht erfüllt. Erfüllungsgrad der Leistungsanforderung A14+ Lineare obere Laufzeitschranke Da die globalen Optima gesucht sind, stattdessen aber in vielen Fällen auch nach langer Suche lediglich ein lokales Optimum gefunden wird, ist es nicht möglich, eine Laufzeit zur Erreichung der globalen Optima zu garantieren. Zudem ist die Laufzeit der Simulation und damit der rekursiven SO umso größer, je genauer die Ergebnisse bestimmt werden sollen. Folglich muss die Leistungsanforderung A14+ als nicht erfüllt gelten. Ergebnis der Bewertung Positiv ist festzuhalten, dass Siemens Plant Simulation grundsätzlich geeignet ist, Produktionssysteme großer Komplexität, die Wertströme verschiedener Produkte zusammenfassen, sehr detailliert abzubilden. Dementsprechend erfüllt die Software auch die Basisanforderungen A1–A6. Kritisch ist anzumerken, dass dieses Maß an Genauigkeit zwar in der Phase der operativen Planung zweckmäßig sein kann, aber in der Phase der strategischen Planung weder notwendig noch umsetzbar ist, da die entsprechenden Informationen nicht verfügbar sind. Die Software bietet zudem die Möglichkeit, ein System grafisch zu modellieren, wenn auch mit den erläuterten Einschränkungen. Das vom Anwender erstellte grafische Modell wird automatisch in ein Simulationsmodell umgewandelt, welches mit einem GA optimiert werden kann, womit die Leistungsanforderung A9+ erfüllt ist. Negativ ist demgegenüber zu sagen, dass sich die Software nicht dazu eignet, reale Systeme Hunderter, teils Tausender Prozessschritte effizient abzubilden. Der Grund ist zum einen, dass nicht alle Elemente und Beziehungen zwischen den Elementen in einem System grafisch modelliert werden können. Stattdessen erfordert deren Abbildung die Programmierung von Methoden. Die Basisanforderungen A7+ und A8+ sind somit nur teilweise bzw. nicht erfüllt. Infolgedessen gestaltet es sich in der Praxis sehr schwierig, Verknüpfungen von Prozessschritten abzubilden, wie sie im vorigen Kapitel beschrieben wurden. Zum anderen ist es durch Kopplung des Simulationsmodells an eine Metaheuristik wie einen GA im Allgemeinen nicht möglich, alle Freiheitsgrade eines Systems zu optimieren, um die globalen Optima 89 3 Stand der Technik gemäß den Planungszielen zu finden. Damit sind auch die Basisanforderungen A10–A13 und die Leistungsanforderung A14+ nicht erfüllt. Für die strategische Planung der TEK ist Software zur Materialflusssimulation, im Rahmen dieses Kapitels evaluiert am Beispiel von Siemens Plant Simulation, daher letztlich ungeeignet. Ihre Stärke ist vielmehr die detaillierte, operative Planung von einzelnen Wertströmen bestehender Systeme. 3.4 Software für Supply Chain Management Der moderne Begriff des Supply Chain Management (SCM) wurde zuerst von Oliver und Webber (1992) verwendet. Er umfasst die Planung und Steuerung sämtlicher Aktivitäten innerhalb der Lieferkette (engl. Supply Chain) von Zulieferern zu Kunden. Die Definition des Council of Supply Chain Management Professionals, einer führenden Expertengruppe, lautet entsprechend wie folgt (CSCMP 2015): »[. . .] encompasses the planning and management of all activities involved in sourcing and procurement, conversion, and all Logistics Management activities. Importantly, it also includes coordination and collaboration with channel partners, which can be suppliers, intermediaries, third-party service providers, and customers.« Es existiert eine Vielzahl von Definitionen, wobei diese im Kern i. d. R. der angegebenen entsprechen (siehe u. a. Gibson et al. 2005). Da die Produktion zunehmend in globalen Netzwerken erfolgt, erfährt SCM immer größere Bedeutung (zur Einführung siehe Blanchard 2010, Chopra und Meindl 2013, Jacoby 2009, Simchi-Levi et al. 2008, für Software zur Unterstützung Stadtler und Kilger 2008 sowie zum Forschungsstand Chen und Paulraj 2004, Halldorsson et al. 2007, Kouvelis et al. 2006, Melo et al. 2009, Storey et al. 2006). Software für SCM wird, wie schon in Abschnitt 3.1 angesprochen, auch als Überbegriff für solche verwendet, die eine Simulation des Materialflusses in Produktion und Logistik auf technischer Grundlage der DES und SO erlaubt (zur Abgrenzung von Logistik und SCM siehe Larson und Halldorsson 2004). Daneben umfasst sie auch Software, die zur Planung von Beschaffung, Produktion, Logistik und Distribution eingesetzt wird und auf mathematischer Modellierung und Optimierung basiert. Im Gegensatz zum vorigen Softwaretyp existiert dementsprechend kein einzelnes dominierendes Lösungsverfahren. Den zu evaluierenden Softwaretyp kennzeichnet vielmehr seine Anwendung für SCM gemäß obiger Definition. Im Folgenden bezeichnet der Begriff daher solche Software, die eine Planung und Optimierung der Lieferkette auf einer spezifischen Betrachtungsebene ermöglicht, unabhängig davon, welches Lösungsverfahren zum Einsatz kommt. Zu den wichtigsten Beispielen zählen (siehe Meyr et al. 2008): (1) AspenTech aspenONE Supply Chain Management3 , (2) JDA (vormals i2 Technologies) Solutions4 , 3 AspenTech: Products, aspenONE Supply Chain Management. Abgerufen am 5. Januar 2017. http://www.aspentech.com/products/aspenONE-Supply-Chain-Management/. 4 JDA: Solutions. Abgerufen am 5. Januar 2017. http://jda.com/solutions. 90 3.4 Software für Supply Chain Management (3) Oracle JD Edwards EnterpriseOne Supply Chain Planning5 , (4) SAP Supply Chain Management6 . 3.4.1 Beispiel: SAP APO Supply Network Planning Die Bewertung des Softwaretyps erfolgt am Beispiel SAP APO (Advanced Planning and Optimization), einer Komponente der kommerziell verfügbaren Software SAP SCM (wie oben Abkürzung für Supply Chain Management) von SAP, dem führenden Anbieter betriebswirtschaftlicher Standardsoftware. SAP APO erweitert ein ERP-System (Enterprise Resource Planning) um Funktionen zur Planung und Optimierung von Beschaffung, Produktion, Logistik und Disposition (für eine Einführung zu SAP APO und Praxisbeispiele siehe u. a. Balla und Layer 2007, Bartsch und Bickenbach 2002, Dickersbach 2009, Kallrath und Maindl 2006, Stadtler und Kilger 2008 sowie Stadtler et al. 2012). Hierbei stehen drei Module zur Verfügung, die sich nach Betrachtungsebene, Einsatzzweck und Lösungsverfahren unterscheiden (siehe Kallrath und Maindl 2006, S. 10 f; alle Informationen in diesem Abschnitt beziehen sich wie ebenda auf SAP APO in der Version 4.1; die Software wurde seither weiterentwickelt, wobei die Aussagen wie unten stehend bemerkt nach wie vor gelten): (1) Supply Network Planning (SNP): mittel- und langfristige Planung von Einkauf, Produktion und Distribution in einem Netzwerk aus mehreren Standorten – unter Verwendung von linearer Programmierung (LP), Mixed-Integer Linear Programming (MILP) und Heuristiken/Constraint Propagation; (2) Production Planning and Detailed Scheduling (PP/DS): kurzfristige Produktions- und Feinplanung an einem einzelnen Standort – unter Verwendung von Heuristiken/Constraint Propagation und evolutionären Algorithmen; (3) Transportation Planning and Vehicle Scheduling (TP/VS): Planung von Transporten für Aufträge und Lieferungen einschließlich Zuordnung von Transportmitteln – unter Verwendung von evolutionären Algorithmen. Für die Bewertung wird im Folgenden das Modul SNP und dabei insbesondere die Lösung mittels LP und MILP betrachtet. Hierfür existieren zwei Gründe: Erstens liegt der Fokus im Kontext dieser Arbeit auf der strategischen, d. h. der mittel- bis langfristigen Planung. Zweitens stellen in der obigen Übersicht allein LP und MILP exakte, mathematische Optimierungsverfahren dar und garantieren als solche das Finden der globalen Optima gemäß Basisanforderung A13. Anzumerken ist dabei, dass SAP APO SNP die Planung der Produktion in einem Netzwerk unterstützt, dessen Standorte auch Zulieferer und Kunden einschließen können. Die folgende Bewertung beschränkt sich jedoch darauf, inwieweit diese Software für den Zweck geeignet ist, ein System von Wertströmen an einem Produktionsstandort zu modellieren und zu optimieren, wie im vorigen Kapitel dargelegt wurde. 5 Oracle: JD Edwards EnterpriseOne. Abgerufen am 5. Januar 2017. 6 SAP: Supply Chain Management. Abgerufen am 5. Januar 2017. http://www.sap.com/germany/product/scm.html. http://www.oracle.com/us/products/applications/jd-edwards-enterpriseone/. 91 3 Stand der Technik SAP APO SNP ermöglicht die Planung und Optimierung der Beschaffung, Produktion, Distribution, des Transports und der Bestände. In einem Vorverarbeitungsschritt erstellt ein Generator basierend auf Daten aus SAP ERP7 und/oder SAP APO ein Modell. Diese Daten sind zum einen Stammdaten, insbesondere Standorte, Transportbeziehungen, Produkte, Ressourcen und Prozesse, und zum anderen Bewegungsdaten wie z. B. der Prognosebedarf und Kundenaufträge. Entsprechend der Annahme eines kontinuierlichen Flusses, die auch in Abschnitt 2.4 zugrunde gelegt wurde, beziehen sich die Stückzahlen auf festgelegte Zeitintervalle. Sobald die Optimierung des Modells abgeschlossen ist, werden die Ergebnisse in Bewegungsdaten umgewandelt, welche der Anwender in SAP APO und ggf. in SAP ERP auswerten kann (siehe Kallrath und Maindl 2006, S. 11 f). Datenstrukturen, die zur Erfüllung der Anforderungen genutzt werden müssen, werden im Folgenden eingeführt und in aller Kürze erläutert. Das Ergebnis der Bewertung von SAP APO SNP kann weitgehend auf aktuell am Markt verfügbare SCM-Software übertragen werden. Bemerkung: Laut Informationen der SAP AG8 ist PP/DS ab dem zweiten Quartal 2016 ein integraler Bestandteil der neuen Version des ERP-Systems S/4HANA. SNP geht langfristig im Nachfolger SAP IBP auf, der zusätzliche Funktionen wie z. B. Prognoseverfahren bietet. Die in vielen Unternehmen eingesetzte Software SAP APO wird jedoch parallel weiterentwickelt und profitiert von Innovationen wie u. a. der HANA-Datenbank. Für die Bewertung ist dabei wichtig, dass das Datenmodell erhalten bleibt. 3.4.2 Erfüllungsgrad der Anforderungen Erfüllungsgrad der Basisanforderungen A1–A3 Superposition aller Wertströme, Systemstruktur und Systemschnittstelle Wie eingangs zur Einführung erläutert, erzeugt ein Generator auf Basis von Stammdaten und Bewegungsdaten aus SAP ERP und/oder SAP APO ein Modell. Das erstellte Modell bildet das gegebene System ab und wird anschließend durch den Einsatz von LP und/oder MILP optimiert. Um die Auslastung der MAEs im Hinblick auf entstehende Kosten zu bewerten oder zu begrenzen, definiert der Anwender Ressourcen. Diese repräsentieren Betriebsmittel, die für Aktivitäten zur Deckung des Kundenbedarfs wie z. B. der Produktion benötigt werden (siehe Kallrath und Maindl 2006, S. 13 f, 59 ff). Mit Blick auf die Erfüllung der Anforderungen erlaubt es damit SAP APO SNP, alle Aktivitäten in der Produktion, d. h. sämtliche Wertströme eines Systems an einem Produktionsstandort, einschließlich aller erforderlichen Ressourcen zur Optimierung in einem Modell zusammenzufassen (A1). Im Weiteren wird die Abbildung der Systemstruktur und der Systemschnittstelle durch das Modell betrachtet. Der Anwender ordnet den Produkten mit Hilfe noch zu erläuternder Datenstrukturen Ressourcen zu, wobei eine Ressource im Planungszeitraum für mehrere Produkte genutzt werden kann. Um die Auslastung durch Bedingungen zu begrenzen, kann der Anwender für jede Ressource eine Kapazität festlegen. Die Struktur des Systems wird 7 Die Aussagen gelten für SAP ERP und dessen Nachfolger SAP S/4HANA gleichermaßen. Um die Ausführungen abzukürzen, wird im Folgenden nur von SAP ERP gesprochen. 8 Vortrag von Bernhard Lokowandt, SAP AG, Product Owner für Materials Planning and Procurement, »Produktionsplanung in SAP S/4HANA«, SAP Education Logistics Event, Walldorf, 8. Oktober 2015. 92 3.4 Software für Supply Chain Management damit in geeigneter Weise durch das Modell wiedergegeben (A2). Zur Berücksichtigung der Auslastung definiert der Anwender eine Kostenfunktion, die auf Basis vorgegebener Produktstückzahlen ermittelt wird (siehe Kallrath und Maindl 2006, S. 19). Auf dieser Basis minimiert der Optimierer die Kostenfunktion, um zu entscheiden, welche Ressourcen genutzt werden sollen. Die Eingaben des Modells bilden somit die Stückzahlen in jedem Prozessschritt und entsprechen den definierten Eingaben des Informationsflusses an der Systemschnittstelle. Das Gleiche gilt für die Ausgaben, indem das Modell die resultierende Auslastung der MAEs an den Optimierer zurückgibt (A3). Außerhalb der Software sind die Ein- und Ausgaben des Modells, z. B. zur Optimierung mit einem externen Lösungsverfahren, nicht sichtbar (siehe Kallrath und Maindl 2006, S. 39). Für die betrachtete Anwendung bietet das jedoch keinen Anlass zur Kritik, da die Modellierung und die Optimierung innerhalb von SAP APO SNP erfolgen. Die Basisanforderungen A1–A3 sind daher erfüllt. Inwieweit bei der Abbildung der Systemstruktur die verschiedenen Typen zur Verknüpfung von Prozessschritten berücksichtigt werden, wird nun im Anschluss betrachtet. Erfüllungsgrad der Basisanforderungen A4–A6 Sequenzielle, alternative und selektive Verknüpfung Das von SAP APO SNP erzeugte Modell basiert auf Datenstrukturen, die den Zweck erfüllen, die Produktstücklisten zu definieren, die Aktivitäten in der Produktion (Prozessschritte) miteinander zu verknüpfen und die erforderlichen Ressourcen (MAEs) zuzuordnen. Bei diesen Datenstrukturen handelt es sich um sogenannte Production Process Models (PPM) oder, ab SAP APO Version 4.1, Production Data Structures (PDS). Im einfachsten Fall definiert der Anwender, dass die Aktivitäten nacheinander ausgeführt werden sollen, gleichbedeutend mit einer sequenziellen Verknüpfung der Prozessschritte (A4). Zur Abbildung alternativer Verknüpfungen kann der Anwender festlegen, dass eine Aktivität für einen bestimmten Anteil der Produktstückzahl auszuführen ist (A5). Darüber hinaus ist es möglich, Zeitanteile zur Ausführung einzelner Aktivitäten zu definieren, um selektive Verknüpfungen abzubilden (A6). Diese Zeitanteile entsprechen fix vorgegebenen Quoten, wobei Taktzeiten bereits berücksichtigt sind (siehe Kallrath und Maindl 2006, S. 14, 51, 61 ff, 109 f, 114). Die Basisanforderungen A4–A6 sind somit, wie schon die vorigen, erfüllt. Erfüllungsgrad der Leistungsanforderungen A7+–A9+ Grafische Modellierung, minimale Symbolmenge und Modelltransformation Wie oben beschrieben, pflegt der Anwender bestimmte Datenstrukturen, ggf. PPM oder PDS, um die Aktivitäten zur Produktion, d. h. die Prozessschritte in jedem Wertstrom, zu definieren (siehe Kallrath und Maindl 2006, S. 61 ff). Die Eingabe der Daten erfolgt hierbei über Formulare, die erreicht werden können, indem der Anwender bestimmte Transaktionen aufruft. Eine grafische Modellierung der Wertströme bietet die Software dagegen nicht. Folglich existiert, analog zur Bewertung von Microsoft Excel, keine minimale Symbolmenge, und die automatische Umwandlung eines grafischen Modells in ein analytisches oder Simulationsmodell entfällt. Stattdessen erzeugt der Generator auf Basis der Formulareingaben 93 3 Stand der Technik des Anwenders ein analytisches Modell, das sich für eine Optimierung mittels LP und MILP eignet. Damit sind die Leistungsanforderungen A7+–A9+ nicht erfüllt. Bemerkung: SAP ERP bietet die Möglichkeit, Arbeitspläne, d. h. Prozesse aus verknüpften Prozessschritten einschließlich zugeordneter MAEs, zu visualisieren. Die Erfassung und Überarbeitung von Arbeitsplänen erfolgt jedoch auch weiterhin mit Hilfe von Transaktionen und der formularbasierten Eingabe aller hierzu erforderlichen Daten. Eine grafische Modellierung der Wertströme, wie sie im vorherigen Kapitel beschrieben wurden, unterstützen zum aktuellen Zeitpunkt weder SAP ERP noch der Nachfolger S/4HANA. Erfüllungsgrad der Basisanforderung A10 Maximierung der Kapazitäten Voraussetzung für die Optimierung des erstellten Modells mit SAP APO SNP ist, wie angesprochen, die Definition einer Kostenfunktion. Neben der Planung tatsächlicher Kosten eignet sich eine solche Kostenfunktion grundsätzlich dazu, die Erreichung allgemeiner Planungsziele zu bewerten und ggf. widersprüchliche Planungsziele in Beziehung zueinander zu setzen (siehe Kallrath und Maindl 2006, S. 19). Dieses Konzept ist, zumindest theoretisch, auf die Maximierung der verfügbaren Kapazitäten übertragbar. Hierzu ordnet der Anwender jedem Produkt einen Erlöskoeffizienten zu, welcher nicht dem Umsatz durch Verkauf eines Stücks des Produkts entspricht, sondern als Gewichtungsfaktor dient. Auf dieser Basis kann der Solver der Software genutzt werden, um den Gesamterlös zu maximieren, resultierend aus der gewichteten Summe der Produktstückzahlen mit den definierten Erlöskoeffizienten (Anwendungsbeispiel siehe Kallrath und Maindl 2006, S. 198). Die gefundene Lösung muss allerdings nicht immer eindeutig sein. Das ist insbesondere dann der Fall, wenn Prozessschritten verschiedener Produkte dieselbe MAE zugeordnet ist, wie dies in der Praxis häufig vorkommt. Begrenzt die Auslastung der MAE die als reellwertig vorausgesetzten Stückzahlen der Produkte und ist der Fall gegeben, dass die kumulierten Erlöse für jedes Produkt bei identischer Auslastung der MAE übereinstimmen, dann existieren unendlich viele Lösungen, die zum maximalen Gesamterlös führen (siehe Erläuterung zur Basisanforderung A10 in Abschnitt 2.6). Gemäß einer Lösung ist der kumulierte Erlös für ein beliebiges Produkt ggf. größer als derjenige für ein zweites Produkt, gemäß einer anderen Lösung kann es sich umgekehrt verhalten, wogegen der Gesamterlös einschließlich aller Produkte im Fall beider Lösungen gleich ist. Um die Anforderungen im Hinblick auf die Optimierung zu erfüllen, muss es möglich sein, zu Beginn eine Strategie festzulegen, welche im beschriebenen, mehrdeutigen Fall die Auswahl einer Lösung bestimmt. Im Folgenden werden diesbezüglich drei Alternativen diskutiert, die unabhängig von SAP APO SNP im Zusammenhang mit der Maximierung oder Minimierung einer Kostenfunktion bestehen. Die Grundannahme ist hierbei, dass es wie im Fall von SAP APO SNP nur möglich ist, einen einzigen Optimierungslauf auszuführen. Ein iteratives Vorgehen, das auf der automatisierten Ausführung aufeinanderfolgender Optimierungsläufe basiert, scheidet aus. Das heißt, die Optimierung der Kostenfunktion muss in einem Schritt zu einer eindeutigen Lösung führen. Die Strategie zur Auswahl der Lösung muss abgebildet werden können, indem der Anwender die Koeffizienten der Kostenfunktion geeignet festlegt und ggf. zusätzliche Nebenbedingungen formuliert. 94 3.4 Software für Supply Chain Management Alternative A: Definition von Schranken Der Anwender könnte für die Stückzahl jedes Produkts eine untere Schranke und/oder eine obere Schranke definieren, um die Menge der optimalen Lösungen zu begrenzen. Für jede Schranke könnte er einen fixen Wert oder eine Funktion der Stückzahlen anderer Produkte vorgeben. Im Allgemeinen ist nicht vorauszusetzen, dass innerhalb beliebiger Schranken genau eine Lösung existiert, die gemäß dem Gesamterlös maximal ist. Vielmehr sind die Schranken, welche der Anwender vorgeben müsste, um die optimale Lösung eindeutig zu bestimmen, von den Parametern des Modells abhängig. Folglich müsste der Anwender zunächst durch eine Analyse des Modells oder durch wiederholte Optimierung solche Schranken suchen, die genau eine optimale Lösung begrenzen, um anschließend den Gesamterlös zu maximieren. Das Vorgehen widerspräche der Prämisse, das Ergebnis in einem einzigen Schritt zu ermitteln, weshalb Alternative A ausscheidet. Alternative B: Festlegung fixer Verhältnisse zwischen Stückzahlen Werden die Stückzahlen zweier Produkte durch die Auslastung derselben MAE beschränkt, könnte der Anwender für das Verhältnis der Stückzahlen einen fixen Wert festlegen. Bei dieser Alternative handelt es sich um einen Spezialfall der vorherigen, da für jede Stückzahl eine untere und eine entsprechende obere Schranke definiert werden. Der Spezialfall wird explizit genannt, da die Überlegung nahe liegt, die Verhältnisse der geplanten Stückzahlen zur eindeutigen Bestimmung einer optimalen Lösung anzuwenden. Dadurch kann jedoch nicht in jedem Fall eine optimale Lösung gefunden werden, da keine Lösung, welche den Gesamterlös maximiert, diesen Verhältnissen entsprechen muss. Analog zu Alternative A müsste der Anwender schrittweise die Kostenfunktion optimieren, um ein Verhältnis zu ermitteln, mit welchem die Menge optimaler Lösungen auf eine Lösung begrenzt werden kann. Alternative B wird deshalb mit derselben Begründung nicht weiterverfolgt. Alternative C: Priorisierung durch Erlöskoeffizienten Denkbar wäre darüber hinaus, dass der Anwender mit der Kostenfunktion eine Priorisierung abbildet und für jedes Produkt einen Erlöskoeffizienten definiert, welcher mit der Priorität steigt. Im Zuge der Maximierung des Gesamterlöses würden als Folge die Stückzahlen all derjenigen Produkte gesteigert, denen eine höhere Priorität zugewiesen wurde. Hierzu müsste der Anwender die Erlöskoeffizienten in einer Weise festlegen, sodass Folgendes gilt: Kann die Stückzahl eines Produkts gesteigert werden, ohne die Stückzahlen von Produkten höherer Priorität zu reduzieren, muss dadurch auch der Gesamterlös wachsen. Dies muss unabhängig davon gelten, in welchem Maße hierfür die Stückzahlen von Produkten niedrigerer Priorität reduziert werden müssen. Im Fall komplexer Modelle ist es jedoch schwierig, geeignete Erlöskoeffizienten zu bestimmen. Des Weiteren ist die resultierende Kostenfunktion aufgrund numerischer Instabilitäten oft nicht lösbar, wie nachfolgend gezeigt wird. Daher ist auch Alternative C nur begrenzt anwendbar. Da alle der aufgeführten Alternativen verworfen werden oder nicht in jedem Fall anwendbar sind, gilt die Basisanforderung A10 allenfalls als teilweise erfüllt. 95 3 Stand der Technik Produkt Taktzeit t eff,1/2 , in min Erlöskoeffizient, in e/Stück MAE 1 MAE 2 MAE 3 MAE 4 MAE 5 MAE 6 MAE 7 MAE 8 MAE 9 PRD 1 PRD 2 PRD 3 PRD 4 PRD 5 PRD 6 PRD 7 PRD 8 PRD 9 PRD 10 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,0 10,0 1,00 = 100 10,01 101 100,11 102 1001,11 103 10 011,11 104 100 111,11 105 1 001 111,11 106 10 011 111,11 107 100 111 111,11 108 1 001 111 111,11 109 Hinweis: Ist keine Taktzeit angegeben, wird das jeweilige Produkt nicht mit dieser MAE bearbeitet. Tabelle 3.4: Ermittlung der Kapazitäten mit einer Kostenfunktion (Beispiel). Das Beispiel beschreibt die Bearbeitung von zehn Produkten (PRD) unter Nutzung von neun MAEs. Alle Produkte außer dem ersten und dem letzten durchlaufen Prozessschritte mit zwei MAEs. Jede MAE wird für zwei Produkte genutzt. Die Taktzeiten seien wie angegeben definiert, und es sei das Ziel, die Kapazitäten durch Maximierung einer Kostenfunktion zu ermitteln. Um die Produkte aufsteigend zu priorisieren, müssen exponentiell wachsende Erlöskoeffizienten definiert werden. Als Ergänzung wird an einem Beispiel erläutert, worin die Schwierigkeit besteht, gemäß Alternative C geeignete Erlöskoeffizienten festzulegen. Wie in Tabelle 3.4 dargestellt, seien zehn Produkte und neun MAEs gegeben. Für jedes Produkt seien ein bzw. zwei Prozessschritte mit einer bestimmten Taktzeit und jeweils einer MAE auszuführen. Die Produkte seien entsprechend ihrer Reihenfolge aufsteigend zu priorisieren. Das heißt, bei gleicher Auslastung der MAEs sollen durch Maximierung der Kostenfunktion stets die Stückzahlen höher priorisierter Produkte gesteigert werden. Der Anwender muss nun Erlöskoeffizienten bestimmen, sodass die Stückzahl eines Produkts gegenüber allen vorherigen priorisiert wird. Durch die Abhängigkeiten und die Taktzeiten muss der Erlöskoeffizient eines beliebigen Produkts mehr als zehnmal größer als der Wert des jeweils vorangegangenen sein. Andernfalls würde der Gesamterlös wachsen oder gleich bleiben, wenn bei gleicher Auslastung der MAEs die Stückzahl eines Produkts reduziert und die Stückzahl eines Produkts niedrigerer Priorität um die zehnfache Differenz gesteigert wird. Bei der Suche geeigneter Erlöskoeffizienten treten zwei Probleme auf: Erstens ist die Suche sehr aufwändig, da alle Prozessschritte, Verknüpfungen und Taktzeiten berücksichtigt werden müssen. Zweitens wachsen die Erlöskoeffizienten im ungünstigsten Fall exponentiell, sodass die Kostenfunktion als Folge numerischer Instabilitäten nicht mehr lösbar ist. In Bezug auf das erste Problem verdeutlicht das Beispiel, dass alle Abhängigkeiten eines Modells in die Ermittlung geeigneter Werte einbezogen werden müssen. Die Komplexität erfährt eine zusätzliche Steigerung, falls Prozessschritte selektiv miteinander verknüpft sind. In diesem Fall muss der Anwender das Modell dahingehend prüfen, ob die Bearbeitung von zwei Produkten mit derselben MAE erfolgt und dem Produkt mit der höheren Priorität eine größere Quote zugeordnet ist. Umso höher muss der Erlöskoeffizient für dieses Produkt sein, da bei gegebener Auslastung und gleichen Taktzeiten eine größere Stückzahl des niedriger 96 3.4 Software für Supply Chain Management priorisierten Produkts möglich ist. Bei alledem ist entscheidend, welche MAE die Kapazitäten begrenzt. Da diese aber oftmals unbekannt ist, muss der Anwender das maximale Verhältnis der Taktzeiten zweier Produkte suchen, unter Berücksichtigung der Quoten selektiver Verknüpfungen. Gemäß diesem Verhältnis muss der Anwender die Erlöskoeffizienten festlegen, sodass die Produkte wie vorgegeben priorisiert werden. Das exponentielle Wachstum der Erlöskoeffizienten führt zum zweiten Problem. Eine Kostenfunktion ist mit Hilfe von LP oder MILP nur dann exakt lösbar, wenn das Verhältnis ihrer Koeffizienten zueinander nicht größer als 1010 ist.9 Ist das aber der Fall, wie im beschriebenen Beispiel, besteht die Gefahr numerischer Instabilitäten. Unter dem Begriff werden Ungenauigkeiten durch Rundungsfehler verstanden, die darauf zurückzuführen sind, dass die verfügbare Zahl von Kommastellen für Gleitkommawerte endlich ist. Die Auswirkung solcher Fehler steigt, wenn Berechnungen mit Werten unterschiedlicher Größenordnungen durchgeführt werden. Die Fehler können sich im Verlauf der Optimierung weiter verstärken, sodass keine Lösung gefunden wird. Selbst wenn der Anwender den immensen Aufwand akzeptiert, geeignete Erlöskoeffizienten zu ermitteln, ist es möglich, dass die Maximierung der Kostenfunktion nicht zu einer Lösung führt. Schlussendlich soll belegt werden, dass das Beispiel die Komplexität realer Systeme widerspiegelt. In entsprechenden Systemen werden deutlich mehr Produkte mit einer ungleich größeren Zahl von MAEs hergestellt, wie Tabelle 2.2 auf Seite 38 zeigt (im Mittel 59 Produkte unter Nutzung von 136 MAEs). In den Wertströmen der Produkte werden meist mehrere Prozessschritte verknüpft (im Mittel 9,7 Prozessschritte je Produkt). Die MAEs werden zudem nicht nur zur Ausführung von Prozessschritten eines Produkts, sondern verschiedener Produkte genutzt (siehe genannte Tabelle, maximal 67 Produkte je MAE). Weiter wird angenommen, dass die Taktzeiten der Prozessschritte zweier Produkte mit derselben MAE in einem Verhältnis stehen, welches dem Faktor zehn entspricht. Das gleiche Verhältnis wird für die Taktzeiten zweier Prozessschritte eines Produkts mit verschiedenen MAEs vorausgesetzt. In der Praxis treten Taktzeiten in noch größeren Verhältnissen auf, wie die Werte in Tabelle 3.5 verdeutlichen. Eine Härterei wird z. B. für Produkte mit Taktzeiten verschiedener Größenordnungen genutzt. Betrachtet man die Fertigung eines Produkts, unterscheiden sich oft die Taktzeiten zur automatisierten und manuellen Bearbeitung. Zwar führt in dem Beispiel jede andere Priorisierung der Produkte zu einem geringeren Wachstum der Erlöskoeffizienten. Da aber die Prioritäten eine Prämisse für die Planung darstellen, muss hierbei vom ungünstigsten Fall ausgegangen werden. Damit lässt sich zusammenfassen, dass das Beispiel aussagekräftig ist, um die Probleme aufzuzeigen, Kapazitäten mit Hilfe einer Kostenfunktion zu maximieren. 9 IBM ILOG CPLEX Optimization Studio 12.6.2: Diagnosing Performance Problems, Numeric Difficulties. Intern von SAP APO SNP verwendeter Solver, Benutzerhandbuch. Abgerufen am 26. Januar 2018. http://www.ibm.com/support/knowledgecenter/en/SSSA5P_12.6.2/ilog.odms.cplex.help/↵ CPLEX/UsrMan/topics/cont_optim/simplex/20_num_difficulty.html. 97 3 Stand der Technik Standort* Standort 1 Standort 2 Standort 3/1 Standort 3/2 Standort 4 Standort 5 Standort 6/1 Standort 6/2 Standort 7 Standort 8 Standort 9/1 Standort 9/2 Mittelwert Region EMEA EMEA AMER AMER EMEA EMEA EMEA EMEA APAC AMER EMEA EMEA Taktzeiten (zwei Produkte, eine MAE) Taktzeiten (ein Produkt, zwei MAEs) max t eff,1 : t eff,2 t eff,1 , in min t eff,2 , in min max t eff,1 : t eff,2 t eff,1 , in min t eff,2 , in min 31,3 5,6 1,8 7,9 100,0 6,9 4,0 11,8 62,8 3,0 42,4 28,9 5,95 5,94 9,00 55,00 10,00 6,90 4,33 811,00 15,70 1,44 93,20 1530,00 25,5 0,19 1,06 5,00 7,00 0,10 1,00 1,08 69,00 0,25 0,48 2,20 53,00 114,5 23,1 10,0 28,3 100,0 27,7 16,1 31,7 70,3 16,7 63,8 660,0 21,76 6,23 15,00 85,00 10,00 36,00 2,15 1320,00 17,57 8,33 185,00 660,00 0,19 0,27 1,50 3,00 0,10 1,30 0,13 41,70 0,25 0,50 2,90 1,00 96,8 *anonymisiert Tabelle 3.5: Größenordnungen von Taktzeiten (Beispielzahlen). Es werden die Planungen der Bosch Rexroth AG aus Tabelle 2.2 auf Seite 38 betrachtet. Die Tabelle zeigt zum einen das maximale Verhältnis der Taktzeiten von zwei Prozessschritten, die zur Bearbeitung verschiedener Produkte dienen und denen dieselbe MAE zugeordnet ist. Zum anderen ist dieses Verhältnis für zwei Prozessschritte eines Produkts angegeben, deren Ausführung jeweils verschiedene MAEs erfordert. Erfüllungsgrad der Basisanforderung A11 Minimierung der Investitionen Um auf der Grundlage geplanter Produktstückzahlen die minimalen Investitionen zu bestimmen, ist es analog zur Maximierung der Kapazitäten möglich, eine Kostenfunktion zu definieren. Voraussetzung hierfür ist, dass die Überlastung der verfügbaren MAEs mit Hilfe spezifischer Kosten bewertet wird. Mit SAP APO SNP ist es möglich, Kosten zur Nutzung von Ressourcen in zusätzlichen Schichten festzulegen (Production Resource Capacity Expansion Cost, siehe Kallrath und Maindl 2006, S. 19). Im Anschluss daran werden die Gesamtkosten zur Herstellung der geplanten Produktstückzahlen minimiert. Jedoch ist die Minimierung einer Kostenfunktion auch in diesem Fall nur begrenzt anwendbar. Der Grund liegt darin, dass die Überlastung einer MAE ggf. reduziert werden kann, indem die Überlastung anderer MAEs erhöht wird. Das heißt, es können unendlich viele Lösungen existieren, welche die Kostenfunktion minimieren. Daher wird auch im Hinblick auf die Minimierung der Investitionen gefordert, dass nach einer festgelegten Strategie eine optimale Lösung ausgewählt wird. Von den möglichen Alternativen, die im Zusammenhang mit der Maximierung der Kapazitäten diskutiert wurden, kommt nur Alternative C in Betracht. Diese ist jedoch aus den gleichen Gründen, der Schwierigkeit, die Kostenfaktoren zu bestimmen, und daneben ihrem exponentiellen Wachstum, im Allgemeinen nicht praktikabel. Die Basisanforderung A11 ist ebenso nur teilweise erfüllt. 98 3.4 Software für Supply Chain Management Erfüllungsgrad der Basisanforderung A12 Optimierung der Auslastung Der Ansatz, eine Kostenfunktion zu minimieren, kann auch auf die Optimierung der Auslastung angewandt werden. Zu diesem Zweck werden die Prioritäten alternativ verknüpfter Prozessschritte als Priorisierung der zugeordneten MAEs interpretiert. Dabei wird jedoch bewusst vernachlässigt, dass MAEs i. d. R. für verschiedene alternativ verknüpfte Prozessschritte und verschiedene Produkte genutzt werden. Da SAP APO SNP nicht die Möglichkeit bietet, eine Zielfunktion in mehreren Iterationsschritten zu optimieren, wird wieder die zuvor diskutierte Alternative C aufgegriffen. Der Anwender legt in diesem Fall spezifische Kosten für die Unterauslastung jeder Ressource fest (Production Resource Capacity UnderUtilization Penalty, siehe Kallrath und Maindl 2006, S. 19), wobei die Kosten umso größer sein müssen, je höher die Priorität der MAE ist. Darauf folgt die Minimierung der Gesamtkosten, um die geplanten Produktstückzahlen herzustellen. Analog zur Maximierung der Kapazitäten und der Minimierung der Investitionen kann jedoch eine Priorisierung mit Hilfe einer Kostenfunktion nur begrenzt abgebildet werden. Die Kostenfaktoren sind schwierig zu bestimmen und wachsen aufgrund der großen Zahl genutzter MAEs in einem Maße, dass numerische Instabilitäten das Finden einer Lösung verhindern. Auch die Basisanforderung A12 ist daher nur teilweise erfüllt. Erfüllungsgrad der Basisanforderung A13 Globales Optimum SAP APO SNP nutzt intern den Solver IBM ILOG CPLEX10 . Dieser wendet zur Lösung von Optimierungsproblemen exakte, mathematische Verfahren an (LP und MILP). Dadurch ist gewährleistet, dass in jedem Fall das globale Optimum gefunden wird, sofern eine Lösung existiert. Die Basisanforderung A13 ist somit erfüllt. Erfüllungsgrad der Leistungsanforderung A14+ Lineare obere Laufzeitschranke Die Erfüllung der Anforderung kann nicht unmittelbar geprüft werden, da die Bedingung modellabhängig formuliert ist und das Modell nicht offen vorliegt. Allerdings greift SAP APO SNP intern zur Lösung auf IBM ILOG CPLEX und damit auf kommerzielle Software zurück, die zusammen mit FICO Xpress11 als führend auf dem Gebiet der mathematischen Optimierung gilt (siehe Kallrath und Maindl 2006, S. 39). Wie in den nachfolgenden Kapiteln ausgeführt wird, ist es bereits mit frei verfügbarer Software zur linearen Optimierung möglich, die Bedingung in Bezug auf die Laufzeit zu erfüllen. Unter der Voraussetzung, dass das Modell die Systemstruktur vollständig abbildet und folglich den gleichen Detaillierungsgrad aufweist, gilt die Leistungsanforderung A14+ deshalb als erfüllt. 10 IBM Analytics: CPLEX Optimizer. Abgerufen am 26. Januar 2018. 11 FICO® Xpress Optimization. Abgerufen am 26. Januar 2018. http://www.ibm.com/analytics/data-science/prescriptive-analytics/cplex-optimizer/. http://www.fico.com/en/products/fico-xpress-optimization/. 99 3 Stand der Technik Ergebnis der Bewertung Positiv ist zuallererst anzumerken, dass SAP APO SNP die Basisanforderungen A1–A6, welche die Modellierung betreffen, vollständig erfüllt. Mit den bereitgestellten Datenstrukturen können die Elemente eines gegebenen Systems von Wertströmen und alle Beziehungen zwischen diesen Elementen abgebildet werden. Da zur Optimierung exakte, mathematische Verfahren Anwendung finden, ist zudem sichergestellt, dass die globalen Optima innerhalb der definierten linearen oberen Laufzeitschranke gefunden werden. Dementsprechend erfüllt SAP APO SNP die Basisanforderung A13 bzw. die Leistungsanforderung A14+. Zusätzlich bietet die Software die Möglichkeit, die Planung auf der Grundlage aktueller Daten aus dem ERP-System zu optimieren und die Ergebnisse zurück an das ERP-System zu übergeben (Echtzeit-Integration, siehe Kallrath und Maindl 2006, S. 9 f). Negativ ist dagegen, dass eine grafische Modellierung der Wertströme nicht unterstützt wird, wie es die Leistungsanforderungen A7+–A9+ verlangen. Des Weiteren werden im Hinblick auf die Optimierung des Modells die Basisanforderungen A10–A12 nur teilweise erfüllt. Hintergrund ist, dass eine definierte Kostenfunktion nur in einem einzigen Schritt optimiert werden kann und die Abbildung der Planungsziele mit Hilfe einer solchen Kostenfunktion in der Praxis mit deutlichen Einschränkungen verbunden ist. Zudem wird vom Anwender Expertenwissen im Bereich mathematischer Modellierung vorausgesetzt, das notwendig ist, um ein geeignetes Lösungsverfahren auszuwählen und die Optimierungsergebnisse zu interpretieren (siehe Kallrath und Maindl 2006, S. 102). Daher ist zu bezweifeln, dass ein unternehmensweiter Einsatz der Software zur strategischen Planung der TEK die Effizienz im Planungsprozess steigert. Die Nutzung von SAP APO SNP erscheint weniger für diesen Zweck, sondern vielmehr als Erweiterung eines ERP-Systems zur Planung und Optimierung in Unternehmensnetzwerken lohnenswert. 3.5 Software zur Prozessmodellierung Die Modellierung von Geschäftsprozessen, in der Literatur oftmals auch unter der englischen Bezeichnung Business Process Modeling (BPM) zu finden, bildet die Grundlage zur Planung und Steuerung der Abläufe in Unternehmen. Der Begriff ist laut van der Aalst (2004a, S. 248 ff), einem bekannten Vertreter des Fachgebiets, wie folgt definiert: »Supporting business processes using methods, techniques, and software to design, enact, control, and analyze operational processes involving humans, organizations, applications, documents and other sources of information.« Laut dem Handbook on Business Process Modeling ist BPM die Fortführung von zwei Strömungen (siehe Hammer 2010, S. 3 f): (1) der statistischen Prozesssteuerung, die erstmals den Prozess in den Vordergrund stellt, diesen quantitativ im Hinblick auf Abweichungen und Kennzahlen bewertet und kontinuierlich im Detail verbessert (siehe Deming 1953, Shewhart 1986), und (2) dem Business Process Reengineering (BPR), welches den Prozess mit dem Ziel der vollständigen Umgestaltung neu definiert als Arbeit, die sich durch das Unternehmen erstreckt und Werte für den Kunden schafft (siehe Hammer 1990, Hammer und Champy 100 3.5 Software zur Prozessmodellierung 1993). Für Details soll der Verweis auf die Literatur genügen (siehe u. a. van der Aalst 2004a,b, 2013, vom Brocke und Rosemann 2010, Havey 2005, Ko 2009, Ko et al. 2009). Im Kontext von BPM existiert eine Vielzahl sich oft überschneidender Beschreibungssprachen und Notationen (für eine Übersicht siehe Ko et al. 2009). Viele Standards unterstützen zumindest einen Schritt des Lebenszyklus von BPM (siehe Ko et al. 2009, S. 751). Dieser läuft nach van der Aalst et al. (2003, S. 5) in den Schritten der Prozessgestaltung, der Systemkonfiguration, der Prozessausführung und der Diagnose ab. Die verfügbaren Standards lassen sich wie folgt kategorisieren (siehe Ko et al. 2009, S. 751 ff): (1) (2) (3) (4) grafische Standards (Graphical Standards), Ausführungsstandards (Execution Standards), Austauschstandards (Interchange Standards), Diagnosestandards (Diagnosis Standards). Im weiteren Verlauf wird die Prozessmodellierung mit Hilfe eines grafischen Standards betrachtet und auf Prozesse in der Produktion übertragen. Die Grundlage bilden Prozesse im Verständnis eines Systems von Wertströmen, wie im vorigen Kapitel beschrieben. Beispiele wichtiger grafischer Standards sind UML AD (Unified Modeling Language Activity Diagrams, siehe OMG 2015), EPC (Event-Driven Process Chains, siehe Keller et al. 1992, Nüttgens und Rump 2002), YAWL (Yet Another Workflow Language, auch zur Prozessausführung geeignet, siehe van der Aalst et al. 2004, ter Hofstede et al. 2010) und BPMN. 3.5.1 Beispiel: BPMN mit idealem Interpreter und Optimierer Unter allen grafischen Standards für die Prozessmodellierung ist BPMN (Business Process Model and Notation) in der Praxis der dominierende (siehe Ko et al. 2009, S. 756, Recker 2010, S. 182). Zudem ist BPMN einer derjenigen grafischen Standards, die sich am besten für die Integration, den Austausch und die Ausführung der modellierten Prozesse eignen (siehe Ko et al. 2009, S. 754). Diese Punkte führen zur Entscheidung, BPMN als Grundlage für die folgende Bewertung zu verwenden. Der Standard wird durch die Object Management Group (OMG) definiert und liegt aktuell (Stand Januar 2018) in der Version 2.0.2 vor (Spezifikation siehe OMG 2013). Für eine Einführung zu BPMN wird auf die einschlägige Literatur verwiesen (siehe u. a. Allweyer 2010, Freund und Rücker 2012, Silver 2011). Zum Zeitpunkt der Bewertung existieren 64 Softwareanwendungen12 , die BPMN implementieren. Um die Ergebnisse auf möglichst viele Vertreter des Softwaretyps übertragen zu können, erfolgt die Bewertung nicht für eine spezifische Software zur Prozessmodellierung. Stattdessen wird von einer Softwareanwendung ausgegangen, welche die theoretischen Möglichkeiten von BPMN maximal ausschöpft. Um einen Prozess zu modellieren und zu implementieren, wird dieser zunächst mit Hilfe einer grafischen Notation (z. B. in BPMN) beschrieben. Anschließend wird das grafische Modell in einen Ausführungsstandard wie z. B. WS-BPEL (Web Services Business Process Execution Language) übersetzt, einem Standard der Organization for the Advancement of 12 OMG BPMN: Implementers. Abgerufen am 27. Januar 2018. http://www.bpmn.org/. 101 3 Stand der Technik Structured Information Standards (Spezifikation siehe OASIS 2007). Danach ist es möglich, den Prozess zu testen, anzupassen und auszuführen (siehe Ko 2009, S. 17). Bei der Übersetzung der Prozesse von einem grafischen in einen Ausführungsstandard treten in der Praxis jedoch Schwierigkeiten auf. Diese Schwierigkeiten resultieren aus konzeptionellen Unterschieden der Standards (siehe Ko et al. 2009, S. 757 am Beispiel von BPMN und WS-BPEL sowie Koskela und Haajanen 2007, Recker und Mendling 2006, 2007). Dessen ungeachtet ist dieses Vorgehen zumindest theoretisch auf das vorliegende Problem transferierbar. Es ist vorstellbar, ein System von Wertströmen einschließlich aller Prozesse in der Produktion zunächst in BPMN abzubilden und anschließend durch einen Interpreter zu übersetzen. Das Ziel der Übersetzung ist dabei nicht die Ausführung der Prozesse, sondern die Optimierung des Modells gemäß den definierten Planungszielen. Dementsprechend ist das Zielformat kein Ausführungsstandard wie z. B. WS-BPEL, sondern ein geeignetes mathematisches Modell (vgl. SAP APO SNP). Zur Übersetzung von BPMN existieren verschiedene Interpreter, die jedoch unterschiedlichen Limitationen unterworfen sind. Der Grund ist die mangelnde formale Eindeutigkeit der grafischen Notation von BPMN (siehe Ko et al. 2009, S. 759). Um Software zur Prozessmodellierung unabhängig von der Leistung des Interpreters zu bewerten, wird deshalb ein hypothetischer idealer Interpreter und Optimierer angenommen. Durch die Bewertung am Beispiel von BPMN mit einem solchen Interpreter und Optimierer ist es möglich, (1) BPMN zur grafischen Modellierung auszuschließen, falls die Anforderungen unzureichend erfüllt werden, und (2) Lösungsideen für eine neue Entwicklung zu diskutieren, die sich zur grafischen Modellierung an BPMN orientiert oder bewusst von BPMN abweicht. In Bezug auf die grafischen Symbole definiert BPMN in der Version 2.0.2 fünf grundlegende Kategorien von Elementen (siehe OMG 2013, S. 25 f): (1) (2) (3) (4) (5) Flow Objects (Events, Activities und Gateways), Data (Data Objects, Data Inputs, Data Outputs und Data Stores), Connecting Objects (mit weiteren Unterkategorien), Swimlanes (Pools und Lanes), Artifacts. Die sogenannten Flow Objects sind die wichtigsten Elemente, da sie den Ablauf eines Prozesses definieren. Elemente des Typs Data modellieren den Datenfluss. Connecting Objects verbinden Flow Objects untereinander oder verknüpfen diese mit weiteren Informationen. Swimlanes gruppieren Elemente eines Prozesses. Artifacts fügen einem Modell zusätzliche, unstrukturierte Informationen über den Prozess hinzu (siehe OMG 2013, S. 25 f). BPMN stellt damit alle grafischen Elemente zur Verfügung, um allgemeine Prozesse in Unternehmen zu beschreiben. Abbildung 3.2 illustriert die Verknüpfung dieser Elemente am Beispiel eines Versandprozesses. Im Kontext der vorliegenden Arbeit wird die Beschreibung von Prozessen in der Produktion betrachtet. Hierzu müssen die Elemente um quantitative Informationen für die Kalkulation der Auslastung erweitert werden (z. B. Betriebsmittelzeiten der genutzten MAEs und Taktzeiten der Prozessschritte). 102 Take out extra insurance Normal post Extra insurance required Clerk Hardware Retailer Logistics Manager 3.5 Software zur Prozessmodellierung Warehouse Worker Goods to ship Decide if normal post or special shipment Check if extra insurance is necessary Special carrier Always Request quotes from carriers Mode of delivery Package goods Insurance is included in carrier service Fill in a post label Assign a carrier and prepare paperwork Add paperwork and move package to pick area Goods available for pick Abbildung 3.2: Modellierung eines einfachen Prozesses mit BPMN (Beispiel). Die Abbildung beschreibt den Versandprozess eines Eisenwarenhändlers. Durch die Einführung jeweils verschiedener Lanes werden die Verantwortlichkeiten der handelnden Personen abgegrenzt. Gateways definieren Verzweigungen und Vereinigungen, die unabhängig voneinander oder bedingt auszuführende Prozessabschnitte kennzeichnen (Quelle und Erläuterung siehe OMG 2010). 3.5.2 Erfüllungsgrad der Anforderungen Erfüllungsgrad der Basisanforderung A1 Superposition aller Wertströme BPMN definiert eine Vielzahl von Klassen und Elementen, welche die Liste im vorigen Abschnitt erweitern. Die Klasse Resource fasst Objekte zusammen, die von Activities referenziert werden können (siehe OMG 2013, S. 93 f, 152 ff). Unter einer Referenz wird im Verständnis der Objektorientierung der Verweis eines Objekts auf ein anderes Objekt verstanden. In diesem Fall handelt es sich um den Verweis einer Activity auf eine Resource, die zur Ausführung der Activity erforderlich ist. Dabei können verschiedene Activities dieselbe Resource referenzieren. Auf diese Weise ist es möglich, die Zuordnung von MAEs zu Prozessschritten abzubilden. In Bezug auf die Software zur Prozessmodellierung wird angenommen, dass alle Wertströme des abzubildenden Systems in einem Modell zusammengefasst werden können. Unter dieser Annahme ist die Basisanforderung A1 erfüllt. Erfüllungsgrad der Basisanforderung A2 Systemstruktur Mit den zur Verfügung stehenden Elementen von BPMN können auch komplexe Systeme in allen erforderlichen Details abgebildet werden. Werden die Elemente geeignet verbunden, 103 3 Stand der Technik entspricht die Struktur des Modells dem abzubildenden System im Hinblick auf Wertströme, Prozessschritte/Prozesse und MAEs. Die Basisanforderung A2 ist daher erfüllt. Im Folgenden soll bewertet werden, inwieweit hierbei die Besonderheiten eines Systems von Wertströmen berücksichtigt werden können. Dazu zählen die unterschiedlichen Typen der Verknüpfung von Prozessschritten und die Anwendungsfälle der Vereinigung von Prozessen, die jeweils ein und dieselbe MAE durchlaufen. Erfüllungsgrad der Basisanforderung A3 Systemschnittstelle Mit BPMN können Data Inputs und Data Outputs definiert werden, um zu kennzeichnen, an welchen Stellen Informationen zwischen dem System und der Umwelt ausgetauscht werden (siehe OMG 2013, S. 25 f, 210 ff). Um das Modell zu optimieren, muss auf der Grundlage vorgegebener Produktstückzahlen und Prozessstückzahlen die resultierende Auslastung aller MAEs bestimmt werden. Die Zuordnung entsprechender Ausgaben zu den Eingaben des Informationsflusses ist abhängig vom eingesetzten Interpreter. Unter Annahme eines hypothetischen idealen Interpreters ist die Basisanforderung A3 erfüllt. Erfüllungsgrad der Basisanforderungen A4–A6 Sequenzielle, alternative und selektive Verknüpfung Sequence Flows bezeichnen Elemente, die zur Gruppe der Connecting Objects gehören (siehe OMG 2013, S. 26 f, 95 ff). Sie erlauben es, Events, Activities und Gateways zu verknüpfen, und werden als gerichtete Pfeile dargestellt. Dadurch kann ausgedrückt werden, dass die verknüpften Elemente in einer definierten Abfolge durchlaufen werden, wie Abbildung 3.2 anhand eines Beispiels zeigt. Auf diese Weise ist es möglich, sequenzielle Verknüpfungen in einem Modell abzubilden (A4). Gateways beschreiben Elemente, an denen Sequence Flows vereinigt oder verzweigt werden (Merging und Branching, siehe S. 27, 286 ff, 434 ff OMG 2013). Mit Hilfe von Gateways können komplexe Bedingungen definiert werden, die bestimmen, welcher der nachfolgenden Sequence Flows fortgesetzt wird. Insbesondere können dadurch alternative und selektive Verknüpfungen in einem Modell wiedergegeben werden (A5 bzw. A6). Die Basisanforderungen A4–A6 sind somit erfüllt. Erfüllungsgrad der Leistungsanforderung A7+ Grafische Modellierung BPMN ist zwar ein grafischer Standard zur Prozessmodellierung, unterstützt aber nicht in vollständigem Umfang die grafische Darstellung aller Beziehungen zwischen den Elementen eines Modells. Dieser Punkt ist insbesondere für Referenzen von Activities zu Resources von Bedeutung, da verschiedenen Prozessschritten je nach Anwendungsfall in der Praxis dieselbe MAE zugeordnet sein kann (siehe Superposition). Referenzen zur Zuordnung von Resources werden in BPMN auf Basis von XML (Extensible Markup Language) definiert und nicht durch grafische Symbole repräsentiert (siehe OMG 2013, S. 169 ff). Um die Zuordnung von Resources zu visualisieren, ist es darüber hinaus möglich, Activities grafisch in Lanes zu gruppieren. In der Literatur wird diese Möglichkeit oft verwendet, um 104 3.5 Software zur Prozessmodellierung Rollen von Personen oder Abteilungen abzugrenzen. In diesem Kontext ist sie theoretisch auch auf die Zuordnung von MAEs zu Prozessschritten anwendbar. Eine Lane bezeichnet die horizontale oder vertikale Partition eines grafischen Modells entlang der gesamten Breite bzw. Tiefe des Prozesses. Sie dient der Gruppierung sämtlicher Activities, die in Bezug auf ein bestimmtes Merkmal übereinstimmen (siehe OMG 2013, S. 304 ff). Entsprechend können Lanes im vorliegenden Fall genutzt werden, um alle Activities zusammenzufassen, denen dieselbe Resource zugeordnet ist. Allerdings eignet sich die Gruppierung von Activities mit Hilfe von Lanes nicht für große Zahlen von Prozessschritten und MAEs. Aus diesem Grund ist die Leistungsanforderung A7+ nur teilweise erfüllt. Diesem Ansatz wird eine Idee gegenübergestellt, die eine höhere Transparenz mit Blick auf die Beziehungen zwischen den Elementen verspricht: Nicht Prozessschritte, sondern MAEs werden durch Knoten repräsentiert und durch Kanten verknüpft, wie es die Beispielschemata im vorigen Kapitel zeigen. Prozessschritte werden durch eingehende Kanten an einer MAE visualisiert, die je nach Anwendungsfall getrennt oder vereinigt werden. Um den Weg jedes Stücks intuitiv abzubilden, werden die MAEs räumlich frei angeordnet, nicht notwendigerweise horizontal oder vertikal gruppiert. Dadurch ist eine grafische Darstellung für eine große Zahl an Prozessschritten und MAEs möglich. Auf der Grundlage dieser Idee wird im folgenden Kapitel eine neue, eigenständige grafische Notation entwickelt. Erfüllungsgrad der Leistungsanforderung A8+ Minimale Symbolmenge Da die Elemente von BPMN nicht formal definiert und z. T. mehrdeutig sind, kann nicht von einer minimalen Symbolmenge gesprochen werden (siehe Dijkman et al. 2008, S. 1281 ff, Ko et al. 2009, S. 759, van Nuffel et al. 2009, S. 115 ff, Wohed et al. 2006, S. 161 ff). Als Konsequenz ist die Leistungsanforderung A8+ nicht erfüllt. Erfüllungsgrad der Leistungsanforderung A9+ Modelltransformation Selbst in dem Fall, dass von einem idealen Interpreter ausgegangen wird, ist die Umwandlung eines grafischen Modells in ein mathematisches Modell als Folge der nicht formalen, mehrdeutigen Notation von BPMN nicht immer vollständig möglich (siehe minimale Symbolmenge, vgl. Umwandlung von BPMN in WS-BPEL). Notwendig ist eine Formalisierung der Notation, indem die verfügbaren Symbole eingeschränkt und Konventionen zur Verknüpfung der Symbole definiert werden. Die Leistungsanforderung A9+ ist daher auch unter der Annahme eines idealen Interpreters nur teilweise erfüllt. Erfüllungsgrad der Basisanforderungen A10–A13 Maximierung der Kapazitäten, Minimierung der Investitionen, Optimierung der Auslastung und globales Optimum Neben einem idealen Interpreter wird für die Bewertung ein ebenso hypothetischer Optimierer angenommen, welcher die Anforderungen bestmöglich erfüllt. Im vorliegenden Fall 105 3 Stand der Technik muss dieser ein exaktes, mathematisches Verfahren wie z. B. LP und MILP anwenden (vgl. SAP APO SNP). Nur dann ist gewährleistet, dass für jede definierte Zielfunktion das globale Optimum gefunden wird. Voraussetzung für die Anwendung eines solchen Verfahrens ist allerdings, dass das Modell in mathematischer Form vorliegt. Die Erfüllung der Anforderungen in Bezug auf die Optimierung ist somit an die Erfüllung der Leistungsanforderung A9+ geknüpft. Entsprechend sind die Basisanforderungen A10–A13 selbst unter der Annahme eines idealen Interpreters und Optimierers nur teilweise erfüllt. Erfüllungsgrad der Leistungsanforderung A14+ Lineare obere Laufzeitschranke Es findet die gleiche Argumentation wie im vorigen Absatz Anwendung. Eine vollständige Transformation des grafischen Modells in ein mathematisches Modell bildet die Voraussetzung für die Nutzung eines exakten Optimierungsverfahrens, welches die lineare obere Schranke für die Laufzeit erfüllt. Die Leistungsanforderung A14+ ist entsprechend auch unter der formulierten Annahme nur teilweise erfüllt. Ergebnis der Bewertung Positiv ist zusammenzufassen, dass BPMN geeignet ist, ein System von Wertströmen vollständig abzubilden. Eine Softwareanwendung, die zur Modellierung auf BPMN basiert, erfüllt damit die Basisanforderungen A1–A6. In Bezug auf die Abbildung der Systemschnittstelle gemäß Basisanforderung A3 wird dabei angenommen, dass die Softwareanwendung in Kombination mit einem hypothetischen idealen Interpreter und Optimierer eingesetzt wird. Ausgewählte Elemente von BPMN und das Konzept eines Interpreters und Optimierers werden in den folgenden Kapiteln für das vorliegende Problem adaptiert. Negativ ist dagegen, dass die grafische Modellierung eines Systems nur mit Einschränkungen möglich ist, da nicht alle Beziehungen zwischen den Elementen des Systems grafisch abgebildet werden können. Auch wenn sich BPMN als weit verbreiteter Standard besonders zur Visualisierung von Geschäftsprozessen eignet, ist damit die Leistungsanforderung A7+ nur teilweise erfüllt. Weiterhin basiert die grafische Modellierung mit BPMN nicht auf einer minimalen Symbolmenge, sondern auf nicht formal definierten, z. T. mehrdeutigen Symbolen. Die Leistungsanforderung A8+ kann daher nicht als erfüllt gelten. Damit einhergehend ist nicht sichergestellt, dass das grafische Modell vollständig in ein mathematisches Modell umgewandelt werden kann, selbst wenn man die zuvor getroffene Annahme eines idealen Interpreters und Optimierers zugrunde legt. Die Leistungsanforderung A9+ wie auch die Anforderungen A10–A14+, welche die Optimierung des mathematischen Modells betreffen, sind aus diesem Grund nur teilweise als erfüllt anzusehen. Um BPMN für die Modellierung von Wertströmen einzusetzen und auf dieser Grundlage die TEK strategisch zu planen, wäre es zuvor notwendig, die zur Verfügung stehenden Symbole einzuschränken. Zudem müssten Konventionen definiert werden, wie die verbleibenden Symbole zu verknüpfen sind und welche zusätzlichen Informationen abgebildet werden müssen, um die Auslastung kalkulieren zu können. Jedoch stellen solche Konventionen eine Fehlerquelle dar, da nicht garantiert ist, dass die Anwender diese berücksichtigen. 106 3.6 Fazit: Bedarf nach einer neuen Entwicklung Zweckmäßiger ist es, eine Software zu entwickeln, welche diese Konventionen auf Basis einer formal eindeutigen, grafischen Notation automatisch umsetzt. 3.6 Fazit: Bedarf nach einer neuen Entwicklung In Abschnitt 2.6 des vorigen Kapitels wurde eine Systemanalyse durchgeführt, die in der Formulierung der Anforderungen A1–A14+ mündete. In diesem Kapitel erfolgte eine Bewertung kommerzieller und frei verfügbarer Software in Bezug auf die Erfüllung dieser Anforderungen. Da in der Praxis ein unüberschaubares Angebot in Frage kommender Software existiert, wurden zunächst Softwaretypen auf der Grundlage von zwei Kriterien ausgewählt: Die Software muss sich erstens grundsätzlich für die strategische Planung der TEK eignen, indem sie die Basisanforderungen A1–A6 erfüllt. Zweitens muss sie mit Blick auf die Qualifikation der Anwender und den arbeitsteiligen Planungsprozess produktiv in Unternehmen eingesetzt werden können. Auf dieser Basis wurden vier Softwaretypen identifiziert: Software zur Erstellung von Tabellenkalkulationen, zur Materialflusssimulation, für das Supply Chain Management und schließlich Software zur Prozessmodellierung. Jeder dieser Softwaretypen wurde an einem charakteristischen Beispiel bewertet, wodurch sichergestellt ist, dass die getroffenen Aussagen weitgehend übertragbar sind. Das Ergebnis der Bewertung lautet zusammengefasst, dass keiner der Softwaretypen alle formulierten Anforderungen erfüllt, wie Tabelle 3.3 auf Seite 81 zeigt. Software zur Erstellung von Tabellenkalkulationen wie Microsoft Excel ist zwar zur Abbildung eines Systems von Wertströmen geeignet, jedoch nicht zu dessen grafischer Modellierung und zur Optimierung des Modells gemäß den definierten Planungszielen. Demgegenüber bietet Software zur Materialflusssimulation wie Siemens Plant Simulation zwar die Möglichkeit, ein grafisches Modell zu erstellen, ist aber zur Optimierung in diesem Kontext ebenso wenig geeignet. Software für das Supply Chain Management wie SAP APO SNP verfügt wiederum i. d. R. über die Möglichkeit zur exakten, mathematischen Optimierung, erreicht die Optima der gegebenen Planungsziele aber auch nur teilweise und bietet dem Anwender keinen grafischen Zugang zur Erstellung des Modells. Zuletzt wurde Software zur Prozessmodellierung auf Basis von BPMN und unter der Annahme eines idealen Interpreters und Optimierers bewertet. Selbst unter dieser Annahme deckt der Softwaretyp nicht alle Anforderungen ab, da die grafische Notation unvollständig, nicht formalisiert und z. T. mehrdeutig ist. Hervorzuheben ist dabei, dass keiner der Softwaretypen die Leistungsanforderung A7+ zur grafischen Modellierung und die Basisanforderungen A10–A12 bezüglich der Optimierung des Modells vollständig erfüllt. Die Leistungsanforderung A8+, welche die Erstellung eines grafischen Modells auf Basis einer minimalen Symbolmenge beschreibt, erfüllt keiner der Softwaretypen zudem auch nur teilweise. Es besteht als Konsequenz ein begründeter Bedarf nach einer Software für die strategische Planung der TEK, welche die folgenden drei Punkte umsetzt: (1) die Software soll die Möglichkeit bieten, ein System von Wertströmen grafisch vollständig abzubilden, wobei das grafische Modell auf einer minimalen, formal eindeutigen Symbolmenge basieren soll; (2) sie soll dieses Modell in ein mathematisches Modell umwandeln können, und (3) sie soll das mathematische Modell gemäß den vorgegebenen Planungszielen optimieren können. Insbesondere der erste Punkt wird im Zusammenhang 107 3 Stand der Technik mit den Unzulänglichkeiten grafischer Standards in der Literatur bestätigt. Folgendes Zitat bezieht sich auf BPMN in einer Version, die diesbezüglich nur begrenzt weiterentwickelt wurde, und dient als akzentuierender Beleg (Ko et al. 2009, S. 783): »Graphical standards are easily interpreted by business analysts but lack computational formalisms.« Diese Forschungslücke schließt die Software AURELIE, die im Rahmen der vorliegenden Arbeit entwickelt wurde und die genannten Punkte vollständig umsetzt. Die betriebswirtschaftliche Relevanz der Entwicklung wird dadurch unterstrichen, dass die Software im Jahr 2012 weltweit an den Standorten der Bosch Rexroth AG mit signifikant messbarem Erfolg eingeführt wurde. Als Ergebnis wurde die Zeit für die strategische Planung der TEK abhängig vom Standort um 50 bis 75 Prozent reduziert. Das heißt, die Effizienz im Planungsprozess, gemessen am Ergebnis der Planung in Relation zur eingesetzten Zeit, wurde um 100 bis 300 Prozent gesteigert. Die Ideen, Modelle und die Kernalgorithmen zur Modellierung und Optimierung werden in den nun folgenden Kapiteln erläutert. 108 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Mit der Entwicklung der Software AURELIE wurde das Ziel verfolgt, den im vorigen Kapitel identifizierten Entwicklungsbedarf zu decken. Entsprechend erlaubt es die Software, ein grafisches Modell für ein System von Wertströmen zu erstellen, automatisch in ein mathematisches Modell zu transformieren und gemäß den definierten Planungszielen zu optimieren. Damit erfüllt AURELIE erstmals die formulierten Anforderungen an eine geeignete Software zur strategischen Planung der TEK. In diesem Kapitel sollen die Grundgedanken des ersten Lösungsschrittes, der grafischen Modellierung und der Modelltransformation, begründet werden. Die Transformation eines grafischen Modells in ein mathematisches, das mit Hilfe exakter Verfahren optimiert werden kann, ist einer der wichtigsten Beiträge der vorliegenden Arbeit. Um die gewonnenen Erkenntnisse wiederzugeben, werden die entwickelten Kernalgorithmen zur Validierung und Transformation erläutert und kurz gefasst in natürlicher Sprache beschrieben. Zur Vertiefung und zum Beleg der getroffenen Aussagen sind die ausführlichen Fassungen der Algorithmen in formalem, kommentiertem Pseudocode einschließlich aller Datenstrukturen im Anhang aufgeführt. Grundlage für die folgenden Betrachtungen ist der Begriff eines Modells, das ein abstrahiertes und vereinfachtes Abbild der Realität darstellt (siehe Bungartz et al. 2009, S. 5, Vajna et al. 2009, S. 98, Pohl und Rupp 2011). Durch die Abbildung eines Systems von Wertströmen mit einem geeigneten Modell können die Prozesse in der Produktion geplant und gestaltet werden, bevor sie realisiert werden. Dies entspricht dem Zweck eines Modells, wie ihn der VDI definiert (Richtlinie VDI 3633:1996-11, S. 9): »Ein Modell ist eine vereinfachte Nachbildung eines existierenden oder gedachten Systems mit seinen Prozessen in einem anderen begrifflichen oder gegenständlichen System. [. . .] Es wird genutzt, um eine [. . .] Aufgabe zu lösen, deren Durchführung [. . .] am Original nicht möglich oder zu aufwendig wäre.« Das Kapitel ist folgendermaßen aufgebaut: In Abschnitt 4.1 werden zunächst die notwendigen Grundlagen der Graphentheorie und der Komplexitätstheorie eingeführt. Anschließend wird in Abschnitt 4.2 die grafische Modellierung eines gegebenen Systems von Wertströmen mit Hilfe von Wertstromgraphen thematisiert. Nachdem der Anwender ein solches grafisches Modell erstellt hat, muss dieses validiert und transformiert werden, um ein entsprechendes mathematisches Modell zu erzeugen. Die Validierung und die Transformation werden in den folgenden Abschnitten 4.3 bzw. 4.4 erläutert. Danach wird in Abschnitt 4.5 109 4 Lösungsschritt I: grafische Modellierung und Modelltransformation aus praktischer Sicht beleuchtet, wie die vorgestellten Konzepte in der Software AURELIE umgesetzt wurden. Abschließend wird in Abschnitt 4.6 diskutiert und letztlich bestätigt, dass damit das Entwicklungsziel erreicht wird. 4.1 Kurzeinführung: Graphentheorie und Komplexität Die Graphentheorie ist ein Teilgebiet der Informatik, das sich der abstrakten Beschreibung von mathematischen, insbesondere diskreten Problemen widmet. Naturgemäß bildet die Graphentheorie den Rahmen für die grafische Modellierung eines Systems von Wertströmen. Für die Beschreibung von Algorithmen wird außerdem die Komplexitätstheorie benötigt, welche die Werkzeuge bereitstellt, um das asymptotische Wachstum der Laufzeit und des Speicherplatzbedarfs zu charakterisieren. Um die nötigen Voraussetzungen für die Betrachtungen in diesem Kapitel zu schaffen, folgt hierzu jeweils eine Kurzeinführung. 4.1.1 Graphentheorie Bevor sich der Blick auf die Modellerweiterungen richtet, die im Zuge dieser Arbeit eingeführt werden, sollen die notwendigen graphentheoretischen Begriffe erläutert werden, wie sie in der Literatur Verwendung finden. In diesem Zusammenhang werden die nachfolgenden Symbole definiert und im weiteren Verlauf konkretisiert. dG− (v), dG+ (v) E G v, v ′ V σ Eingangsgrad bzw. Ausgangsgrad des Knotens v, dG− (v), dG+ (v) ∈ N0 Menge der Kanten (engl. edge, Plural edges) eines Graphen G endlicher Graph mit Knoten V und Kanten E, definiert als Paar G = (V, E ) aktuell bzw. als Nächstes zu besuchender Knoten, v, v ′ ∈ V Menge der Knoten (engl. vertex, Plural vertices) eines Graphen G allgemeiner, zuerst zu besuchender Knoten, σ ∈ V Begriff des Graphen. In der diskreten Mathematik werden Graphen verwendet, um Beziehungen zwischen gleichartigen Elementen eines Systems zu beschreiben. Formal repräsentiert ein Graph G eine Struktur aus einer Knotenmenge V und einer Kantenmenge E, welche die Knoten verbinden (siehe Deo 2004, S. 1 f, Diestel 2006, S. 2, Tutte 2001, S. 1 f). Entsprechend wird ein Graph zumeist als ein Paar (V, E ) definiert. Ein typischer Anwendungsfall sind Graphen, in denen der kürzeste Weg zur Verbindung zweier festgelegter Knoten gesucht ist. Ähnlich der Fragestellung in dieser Arbeit werden Graphen weiterhin eingesetzt, um den maximalen Fluss zwischen zwei Knoten zu ermitteln, wobei die Kapazität der Kanten jeweils vorgegeben ist. Zu entsprechenden Verfahren zählen der Ford-Fulkerson-Algorithmus (siehe Elias et al. 1956, Ford und Fulkerson 1956, 1957) wie auch dessen zahlreiche Weiterentwicklungen (siehe u. a. Dinic 1970, Edmonds und Karp 1972, Goldberg und Tarjan 1988, Korte und Vygen 2012, Suhl und Mellouli 2009). Eine Adaption der noch vorzustellenden linearen Optimierung zur Maximierung des Flusses in einem Graphen ist der Netzwerksimplex (siehe Bazaraa et al. 2010, Hamacher und Klamroth 2006, Orlin 1997). In der Darstellung werden für Knoten meist einfache Symbole gewählt, die um eine Bezeichnung des Knotens ergänzt werden. Eine Kante wird durch eine beliebig verlaufende 110 4.1 Kurzeinführung: Graphentheorie und Komplexität 1 1 5 2 4 3 (a) Ungerichteter Graph ohne Mehrfachkanten 1 5 2 4 3 (b) Gerichteter Graph ohne Mehrfachkanten 1 5 2 4 3 (c) Ungerichteter Graph mit Mehrfachkanten 5 2 4 3 (d) Gerichteter Graph mit Mehrfachkanten Abbildung 4.1: Kategorisierung von unterschiedlichen Typen endlicher Graphen. Ein Graph repräsentiert eine Struktur, die aus einer Knotenmenge und einer Kantenmenge zusammengesetzt ist, wobei die Kanten die Knoten verbinden. In gerichteten Graphen ist im Unterschied zu ungerichteten entscheidend, in welcher Reihenfolge zwei Knoten durch eine Kante verbunden werden. In Graphen mit Mehrfachkanten existieren mehrere identische Kanten. Linie zwischen den zu verbindenden Knoten repräsentiert, wobei die Linien je nach Graphentyp ggf. als Pfeile zur Anzeige einer Richtung dargestellt werden. Im Folgenden werden die allgemein üblichen Typen von Graphen unterschieden und deren Eigenschaften beschrieben. Für eine weitergehende Einführung zur Graphentheorie wird auf die Literatur verwiesen (siehe u. a. Deo 2004, Diestel 2006, Turau 2009, Werners 2013). Je nach Einsatzzweck werden verschiedene Typen endlicher Graphen unterschieden, von denen die häufigsten in Abbildung 4.1 an einem einfachen Beispiel veranschaulicht werden. In diesem Zusammenhang bezieht sich der Begriff der Endlichkeit darauf, dass die Knotenmenge V und die Kantenmenge E eine endliche Zahl von Elementen enthalten (siehe Tutte 2001, S. 1 f). Die Graphentypen sind dadurch gekennzeichnet, welche Eigenschaften eine Kante zur Verbindung von Knoten besitzt und wie viele Knoten eine Kante jeweils verbindet. Somit können die Graphentypen durch die Definition der Kantenmenge E voneinander abgegrenzt werden, wie Tabelle 4.1 zeigt. In gerichteten Graphen, auch als Digraphen bezeichnet, ist die Reihenfolge entscheidend, in welcher eine Kante von einem Knoten zum nächsten führt, wogegen in ungerichteten Graphen keine solche Reihenfolge definiert ist. Folglich repräsentiert eine Kante in gerichteten Graphen ein geordnetes Paar (v, v ′ ) zweier Knoten v und v ′. Dagegen ist eine Kante in ungerichteten Graphen als eine Menge {v, v ′ } darstellbar (siehe Turau 2009, S. 20, Diestel 2006, Werners 2013). Zudem können in Graphen mehrere identische Kanten, sogenannte Mehrfachkanten, existieren. In solchen Fällen wird auch von Multigraphen gesprochen (siehe Deo 2004, S. 2, Diestel 2006, S. 30, Illik 2009, S. 125, Turau 2009, S. 20). In Hypergraphen können Kanten mehr als zwei Knoten verbinden, weshalb sich eine Kante als eine Teilmenge der Knotenmenge V auffassen lässt (siehe Diestel 2006, S. 28). Die Definition der Kantenmenge E in einem Graphen mit Mehrfachkanten ist somit zum einen davon abhängig, ob dessen Kanten gerichtet oder ungerichtet sind. Sofern Mehrfachkanten erlaubt sind, muss zum anderen berücksichtigt werden, ob diese als eigenständige mathematische Objekte unterschieden oder zusammengefasst werden sollen. Im einfachen Fall werden Mehrfachkanten nicht unterschieden, und es ist nur die Zahl der Kanten ent- 111 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Graphentyp Definition in natürlicher Sprache bzw. formaler Notation (a) Ungerichtet, ohne Mehrfachkanten (b) Gerichtet, ohne Mehrfachkanten (c) Ungerichtet, mit Mehrfachkanten* (d) Gerichtet, mit Mehrfachkanten* (e) Hypergraph Teilmenge aller zweielementigen Teilmengen der Knotenmenge V E ⊆ {{v, v ′ } : v, v ′ ∈ V } Teilmenge aller Paare aus dem kartesischen Produkt V × V der Knotenmenge V E ⊆ V ×V Multimenge über der Menge aller zweielementigen Teilmengen der Knotenmenge V E : {{v, v ′ } : v, v ′ ∈ V } → N0 Multimenge über dem kartesischen Produkt V × V der Knotenmenge V E : V × V → N0 Teilmenge der Potenzmenge P (V ) über der Knotenmenge V E ⊆ P (V ) *Hinweis: Die Definition gilt für den Fall, dass Mehrfachkanten zusammengefasst werden. Tabelle 4.1: Definitionen der Kantenmenge abhängig vom Graphentyp. Die in Abbildung 4.1 eingeführten Graphentypen unterscheiden sich im Hinblick darauf, wie die Kantenmenge definiert ist. Im ungerichteten Fall ist eine Kante eine Menge zweier Knoten, im gerichteten Fall ein geordnetes Paar. Wenn Mehrfachkanten erlaubt sind und nicht unterschieden werden, ist die Kantenmenge eine Abbildung solcher Mengen bzw. Paare auf die natürlichen Zahlen. In Hypergraphen ist jede Kante eine Teilmenge aller Knoten, da Kanten beliebig viele Knoten verbinden. scheidend, die zwischen zwei Knoten existieren. Unter dieser Voraussetzung bezeichnet die Kantenmenge E eine Abbildung aller möglichen Kanten auf die natürlichen Zahlen. Alternativ wird jede Mehrfachkante als eigenes Objekt betrachtet. Um dies formal auszudrücken, müssen Hilfsfunktionen definiert werden, die jeweils den Startknoten und den Endknoten einer Kante zurückgeben (siehe Diestel 2006, S. 28). Zur Speicherung von Graphen existieren verschiedene Möglichkeiten. Beispielsweise kann für jeden Knoten eine Adjazenzliste definiert werden, welche in ungerichteten Graphen die Nachbarn und in gerichteten Graphen die Nachfolger eines Knotens enthält. Eine weitere Möglichkeit ist die Speicherung in einer Adjazenzmatrix, deren Zeilen und Spalten jeweils einen Knoten repräsentieren. Wenn der Wert in einer Zeile und einer Spalte ungleich null ist, drückt dies aus, dass zwischen zwei Knoten eine Kante existiert. In einer Inzidenzmatrix entsprechen die Zeilen den Knoten und die Spalten den Kanten, wobei das Vorzeichen der Werte die Richtung angibt (siehe Cormen et al. 2001, S. 599 f, Illik 2009, S. 227 ff). Traversierung, Quellen und Senken. Unter der Traversierung eines Graphen wird eine Suche verstanden, in deren Zuge alle Knoten und Kanten beschritten werden (siehe u. a. Cormen et al. 2010, Hochstättler 2010, Krumke und Noltemeier 2012, Nebel 2012, Turau 2009). Abhängig vom Startknoten und den Kanten in einem Graphen können nicht immer alle Knoten erreicht werden. In diesem Zusammenhang wird von Quellen und Senken gesprochen. Eine Quelle ist ein Knoten, zu dem keine Kanten führen, und eine Senke ein Knoten, an dem keine ausgehenden Kanten anliegen. Zur Definition der Begriffe ist es zweckmäßig, den Eingangsgrad dG− (v) und den Ausgangsgrad dG+ (v) eines Knotens v einzuführen, die jeweils die Zahl eingehender bzw. ausgehender Kanten des Knotens bezeichnen. Auf dieser Basis lässt sich eine Quelle als ein Knoten mit einem Eingangsgrad von null und eine Senke analog als ein Knoten mit einem Ausgangsgrad von null definieren. 112 4.1 Kurzeinführung: Graphentheorie und Komplexität Die Information, welche Knoten und Kanten im Verlauf einer Suche beschritten werden, kann unterschiedlich repräsentiert werden. In der Literatur wird unter einem Kantenzug oft, aber nicht einheitlich eine alternierende Folge von Knoten und Kanten verstanden, die einen solchen Verlauf wiedergeben (siehe Diestel 2005, S. 10, Ray 2013, S. 14). Der Begriff wird in dieser Arbeit für eine einfache Folge von Kanten gebraucht, da die jeweiligen Knoten durch die Definition der Kanten eindeutig bestimmt sind. Ein Weg ist im Allgemeinen ein Kantenzug, in dem sich kein Knoten wiederholt (siehe Ray 2013, S. 15). Da in dieser Arbeit kein unendlicher Zyklus vorliegen muss, wenn derselbe Knoten wiederholt besucht wird, ist es zweckmäßig, von dieser Definition abzuweichen. Im Folgenden ist ein Weg daher ein Kantenzug, in welchem sich keine Kante wiederholt. Breitensuche vs. Tiefensuche. Zur Suche in allgemeinen Graphen existieren zwei Verfahren, die nachfolgend beschrieben werden: die Breitensuche und die Tiefensuche. Die beiden Verfahren unterscheiden sich in Bezug auf die Reihenfolge, in welcher die Knoten V eines Graphen G entdeckt und besucht werden. Den Ausgangspunkt bildet jeweils ein allgemeiner Knoten σ aus der Knotenmenge V. Jedes dieser zwei Verfahren kann prinzipiell rekursiv oder nichtrekursiv implementiert werden. Die entsprechenden Implementierungen sind jeweils durch die Algorithmen A.1.1–A.1.4 im Anhang wiedergegeben. Durch Ausführung einer Breitensuche werden immer erst alle Knoten besucht, die ausgehend vom aktuellen Knoten unmittelbar erreicht werden können (siehe Cormen et al. 2010, S. 603 ff, Krumke und Noltemeier 2012, S. 161). Die Bedingung bezieht sich darauf, dass jeweils eine Kante vom aktuellen Knoten zu ebendiesen Knoten existiert. Nachdem alle dieser Knoten besucht wurden, setzt die Suche mit deren Nachfolgern fort. Entsprechend kann zur Speicherung der noch zu besuchenden Knoten eine Warteschlange verwendet werden. Eine Warteschlange bezeichnet eine linear verkettete Liste, die nach dem FIFO-Prinzip verwaltet wird. Das heißt, zuerst hinzugefügte Elemente werden zuerst zurückgegeben. Im Fall der Breitensuche kann die Datenstruktur nicht durch den rekursiven Aufruf einer Hilfsprozedur ersetzt werden, da die Verschachtelung der Aufrufe dem LIFO-Prinzip entspricht. Daher handelt es sich bei der rekursiven Implementierung der Breitensuche in Algorithmus A.1.2 nicht um eine echte rekursive Variante. Stattdessen wird die Schleife der nichtrekursiven Implementierung in Algorithmus A.1.1 durch den wiederholten Aufruf einer Hilfsprozedur ersetzt, wobei die Warteschlange weiterhin zur Verwaltung der zu besuchenden Knoten genutzt und als Argument übergeben wird. Die Tiefensuche ist von der Breitensuche dadurch abzugrenzen, dass zunächst immer erst alle nachfolgenden Knoten besucht werden (siehe Cormen et al. 2010, S. 613 ff, Turau 2009, S. 94 ff, Krumke und Noltemeier 2012, S. 147 ff). Ausgehend vom aktuellen Knoten werden wieder alle unmittelbar erreichbaren Knoten ermittelt. Nachdem jeweils einer von diesen Knoten besucht wurde, werden all dessen Nachfolger besucht, bevor die Suche mit den verbleibenden unmittelbar erreichbaren Knoten fortsetzt. In der nichtrekursiven Implementierung der Tiefensuche, wie sie in Algorithmus A.1.3 wiedergegeben ist, wird zur Speicherung der als Nächstes zu besuchenden Knoten ein Stapel verwendet. Ein Stapel ist eine linear verkettete Liste, die im Gegensatz zu einer Warteschlange nach dem LIFO-Prinzip verwaltet wird. Das heißt, zuerst werden die zuletzt 113 4 Lösungsschritt I: grafische Modellierung und Modelltransformation hinzugefügten Elemente zurückgegeben. In der rekursiven Implementierung kann auf eine Datenstruktur zur Verwaltung der Knoten verzichtet werden, da es durch die Verschachtelung der Prozeduraufrufe möglich ist, die Knoten in der erforderlichen Reihenfolge als Argumente zu übergeben. Die entsprechende Variante ist in Algorithmus A.1.4 wiedergegeben. In der Praxis wird zumeist die nichtrekursive Variante bevorzugt, da diese u. a. den wachsenden Speicherplatzbedarf des Prozedurstapels vermeidet. Der Nachteil, dass eine Tiefensuche nicht terminiert, sofern stets ein nächster Knoten existiert, kann wie folgt eliminiert werden: In einem iterativen Prozess wird die Tiefensuche wiederholt vom selben Knoten ausgehend begonnen, wobei die maximale Tiefe in jedem Iterationsschritt wächst. Diese Variante wird als iterative Tiefensuche bezeichnet. 4.1.2 Komplexität von Algorithmen Ein Algorithmus ist eine wohldefinierte Berechnungsvorschrift zur Umwandlung von Eingaben in Ausgaben, bestehend aus einer Folge von Rechenschritten (siehe Cormen et al. 2010, S. 5). Der Zweck eines Algorithmus ist die Lösung eines Rechenproblems, wofür dieser eine bestimmte Laufzeit und Speicherplatz benötigt. Um die Leistung von Algorithmen im Hinblick auf die letztgenannten Kriterien zu vergleichen und hierbei die Größe des Problems zu berücksichtigen, wird die Komplexität eines Algorithmus untersucht. Zur Beschreibung der Laufzeit und des Speicherplatzbedarfs eines Algorithmus werden zwei reellwertige Funktionen definiert. Diese sind im Zusammenhang mit den Komplexitätsklassen relevant, die nachfolgend erläutert werden. c n f (n) g (n) in diesem Kapitel verwendet als konstanter, positiver reeller Faktor, c ∈ R 0 Größe zu verarbeitender Eingabedaten eines Algorithmus, n ∈ N 0 asymptotische, obere oder untere Schranke für Laufzeit oder Speicherplatzbedarf, f (n) ∈ R Funktion zur Beschreibung von Laufzeit oder Speicherplatzbedarf, g (n) ∈ R 0 0 Komplexität als asymptotisches Maß. Eine unvermeidliche Einflussgröße bezogen auf die Laufzeit eines Algorithmus ist u. a. die Geschwindigkeit des genutzten Systems zur Ausführung der Rechenschritte. Der beanspruchte Speicherplatz ist neben den verwendeten Datenstrukturen von der Speicherverwaltung des ausführenden Systems abhängig. Durch die Beschreibung der Komplexität eines Algorithmus ist es möglich, diese Einflüsse zu eliminieren, indem die Laufzeit und der Speicherplatzbedarf nicht als absolute Werte gemessen werden. Stattdessen wird das asymptotische Wachstum ermittelt, das mit steigender Größe der Eingabedaten zu erwarten ist. Die Komplexität entspricht somit einem Grenzwert, welchen die Laufzeit bzw. der Speicherplatzbedarf bezogen auf die Größe der Eingabedaten nicht unterschreitet oder überschreitet (siehe Mehlhorn und Sanders 2008, S. 20). Da es von der Fragestellung abhängig ist, ob eine obere oder untere Schranke gefordert ist, werden mehrere Komplexitätsklassen unterschieden, die in Tabelle 4.2 aufgeführt sind. Unter diesen ist die obere Schranke O( f (n)) in der Praxis diejenige mit der größten Relevanz, weshalb auch von der O-Notation gesprochen wird (siehe u. a. Cormen et al. 2010, Mehlhorn und Sanders 2008, Ottmann und Widmayer 2012). Hintergrund ist, dass zumeist die Laufzeit oder der Speicherplatzbedarf im ungünstigsten Fall gefragt sind. Die als Argument übergebene Funktion f (n) beschreibt das Wachstum der Schranke für eine Funktion g (n), welche 114 4.1 Kurzeinführung: Graphentheorie und Komplexität Notation Veranschaulichung g (n) ∈ O ( f (n)) g (n) wächst nicht schneller als f (n) g (n) ∈ Ω( f (n)) g (n) wächst nicht langsamer als f (n) g (n) ∈ Θ ( f (n)) g (n) wächst genauso schnell wie f (n) g (n) ∈ o ( f (n)) g (n) wächst echt langsamer als f (n) g (n) ∈ ω ( f (n)) g (n) wächst echt schneller als f (n) Formale Definition © O ( f (n)) = g (n) : ∃c © Ω( f (n)) = g (n) : ∃c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) 0 ∃n 0 ∈ N0 ∀n n 0 g (n) Θ ( f (n)) = O( f (n)) ∩ Ω( f (n)) © o ( f (n)) = g (n) : ∀c 0 ∃n 0 ∈ N0 ∀n © ω ( f (n)) = g (n) : ∀c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) n 0 g (n) ª c f (n) ª c f (n) ª c f (n) ª c f (n) Tabelle 4.2: Definitionen unterschiedlicher Komplexitätsklassen. Die Komplexität eines Algorithmus bezieht sich i. d. R. auf die Laufzeit oder den Speicherplatzbedarf und beschreibt das asymptotische Wachstum abhängig von der Größe n der Eingabedaten. Hierfür werden die obigen Symbole verwendet, die jeweils unteren oder oberen Schranken entsprechen. Die Zugehörigkeit einer Funktion g (n) zu einer Komplexitätsklasse drückt aus, dass diese Funktion innerhalb der Schranke wächst, welche durch die Funktion f (n) definiert ist (siehe Mehlhorn und Sanders 2008, S. 20). der Komplexitätsklasse O( f (n)) zugeordnet wird. In dem Fall, dass die Laufzeit mit dem Quadrat der Eingabedaten wächst und eine entsprechende Schranke nicht überschreitet, gehört die Laufzeitfunktion g (n) zur Komplexitätsklasse O(n 2 ). Ein solches Wachstum der Laufzeit ist für einfache Sortierverfahren typisch. Weitere Beispiele für Komplexitätsklassen sind O(log n), O(n), O(n log n) und O(2n ), die jeweils ein logarithmisches, lineares, quasilineares bzw. exponentielles Wachstum beschreiben. Ein Algorithmus mit logarithmischem Wachstum der Laufzeit ist z. B. die binäre Suche. Fortgeschrittene Sortierverfahren wie z. B. Mergesort besitzen ein quasilineares Wachstum der Laufzeit. Bei der Bestimmung der Komplexitätsklasse eines Algorithmus ist zu beachten, dass konstante Faktoren vernachlässigt werden. Das heißt, eine Funktion g (n), die zur Klasse O(c n) mit einem konstanten Faktor c größer als null gehört, ist stets auch der Klasse O(n) zugehörig. Des Weiteren wird im Zusammenhang mit einer oberen Schranke O( f (n)) in Summen immer der Summand mit dem höchsten Grad betrachtet. Daneben existieren weitere Regeln, die in der Literatur beschrieben sind (siehe u. a. Mehlhorn und Sanders 2008). Komplexität von Breitensuche und Tiefensuche. Sowohl Breitensuche als auch Tiefensuche besitzen eine Laufzeit von O(|V | + |E |) und einen Speicherplatzbedarf von O(|V |), wobei |V | die Zahl der Knoten und |E | die Zahl der Kanten bezeichnet (siehe Cormen et al. 2010, S. 603 ff, 613 ff, Hochstättler 2010, S. 59). Der Grund dafür ist, dass im ungünstigsten Fall alle Knoten V und Kanten E des gegebenen Graphen G besucht werden müssen. Dabei wird vorausgesetzt, dass zur Bestimmung nachfolgender Knoten und Kanten eine Datenstruktur eingesetzt wird, die einen Zugriff innerhalb einer Laufzeit von O(1) ermöglicht (z. B. eine Adjazenzmatrix). Der Speicherplatzbedarf schließt die Speicherung des Graphen selbst nicht mit ein, da diese von der gewählten Datenstruktur abhängig ist. Beim Vergleich beider Suchverfahren ist zudem zu berücksichtigen, dass die Tiefensuche nicht vollständig ist, falls der Graph unendlich oder zyklisch ist. In einem solchen Graphen werden nicht alle Knoten besucht, selbst wenn es möglich ist, diese ausgehend vom Startknoten zu erreichen. Nur durch die iterative Tiefensuche ist sichergestellt, dass jeder erreichbare Knoten besucht wird. Die Breitensuche ist dagegen stets vollständig, sofern jeder Knoten 115 4 Lösungsschritt I: grafische Modellierung und Modelltransformation eine endliche Zahl von Nachfolgern besitzt und der Zielknoten erreichbar ist. Das gilt selbst dann, wenn der zu durchsuchende Graph unendlich ist. Ein weiterer Faktor beim Vergleich der beiden Suchverfahren ist deren Eignung, die optimale Lösung zu ermitteln. Darunter wird verstanden, dass der gefundene Weg von einem Startknoten zu einem Zielknoten dem jeweils kürzestmöglichen Weg entspricht. Die Breitensuche ist optimal, sofern die Kanten keine Gewichte tragen. Demgegenüber garantiert die Tiefensuche nicht, den kürzesten Weg zu einem Knoten zu ermitteln. In Bezug auf die Wertstromgraphen, die zur Modellierung von Systemen in den folgenden Abschnitten beschrieben werden, sind diese Punkte nicht relevant. Hintergrund ist, dass die Wertstromgraphen vollständig traversiert werden müssen und somit stets alle Knoten und alle Kanten zu besuchen sind. Einziges Kriterium zur Unterscheidung der Suchverfahren ist in diesem Kontext die Reihenfolge, in welcher die Knoten und Kanten besucht werden. Im Hinblick darauf wird in der vorliegenden Arbeit die Entscheidung für die Tiefensuche getroffen, da immer erst ein vollständiger Weg vom aktuellen Knoten bis zur Senke gesucht werden muss, bevor andere Wege fortgesetzt werden. 4.2 Modellierung eines Systems durch Wertstromgraphen Um Wertströme in der Produktion auf eine Weise abzubilden, die zur strategischen Planung der TEK geeignet ist, muss der Begriff des Graphen aus der Literatur erweitert werden. Die Grundlagen aus dem ersten Abschnitt, die sich auf die formale Definition eines Graphen auf Basis einer Knotenmenge und einer Kantenmenge beziehen, sowie die grundsätzlichen Suchverfahren finden weiterhin Anwendung. Jedoch müssen zum einen spezifische Typen von Knoten unterschieden werden, um Ressourcen und Verzweigungen in den Wertströmen abzubilden. Zum anderen muss berücksichtigt werden, ob sich Kanten an einem Knoten vereinigen oder der weitere Weg nach dem Knoten je nach Anwendungsfall getrennt verläuft. Diese Erweiterungen des Standardbegriffs eines Graphen sind durch die Anforderungen aus Abschnitt 2.6 begründet, wie im Folgenden erläutert wird. Zur formalen Beschreibung dieser Konzepte werden die folgenden Symbole eingeführt oder erweitert. Daneben wird auf die bereits eingeführten Symbole aus den vorherigen Kapiteln verwiesen, wie z. B. auf die Menge R der verfügbaren und zu installierenden MAEs, die in Abschnitt 2.4 eingeführt wurde. b, b ′ DAL,b , D SL,b d+ max e, e ′ E WS,b G WS,b {G WS,b } i, i ′ j, j ′ m, n v, v ′ 116 Index zur Bezeichnung eines Produkts, b, b ′ ∈ {1, . . . , n}, ggf. mit Index 1, 2 usw. Menge aller alternativen bzw. selektiven Flusspunkte von G WS,b , DAL,b bzw. D SL,b ⊂ V WS,b maximaler Ausgangsgrad aller Flusspunkte DAL,b und D SL,b aktuell bzw. als Nächstes zu besuchende Kante, e, e ′ ∈ E WS,b , ggf. mit Index 1, 2 usw. Kantenmenge von G WS,b , E WS,b ⊂ {(v, j, v ′, i ′ ) : v, v ′ ∈ V WS,b ∧ j, i ′ ∈ N} Wertstromgraph des Produkts b, definiert als Paar G WS,b = (V WS,b , E WS,b ) grafisches Modell eines Systems von Wertströmen, Abkürzung für {G WS,b : b ∈ {1, . . . , n}} natürliche Zahl, Eingang eines Knotens v bzw. v ′, i, i ′ ∈ N, ggf. mit Index 1, 2 usw. s. o., Ausgang eines Knotens v bzw. v ′, j, j ′ ∈ N, ggf. mit Index 1, 2 usw. Zahl der Prozessstückzahlen xa bzw. der Produktstückzahlen y b , m, n ∈ N aktueller bzw. nächster Knoten, im weiteren Verlauf v, v ′ ∈ V WS,b , ggf. mit Index 1, 2 usw. 4.2 Modellierung eines Systems durch Wertstromgraphen V WS,b σb , τb Knotenmenge von G WS,b , V WS,b = R ∪ DAL,b ∪ D SL,b ∪ {σb , τb } Quelle bzw. Senke, kennzeichnen Beginn bzw. Ende eines Wertstroms, σb , τb ∈ V WS,b Ein grafisches Modell spiegelt in seiner Struktur das abzubildende System der gegebenen Wertströme wider. Zunächst soll diese übergeordnete Modellstruktur beschrieben werden, bevor die Eigenschaften der Modellelemente folgen. 4.2.1 Grafische Modellstruktur: Knoten und Kanten Mit Hilfe der Software AURELIE bildet der Anwender im vorgegebenen Planungszeitraum jeweils einen Wertstrom für jedes Produkt ab. Falls sich Prozesse verändern, ist es möglich, den Planungszeitraum zu teilen, wodurch die eindeutige Beziehung zwischen Produkten und Wertströmen erhalten bleibt. Entsprechend ist das erstellte grafische Modell {G WS,b } formal als Menge aller Wertstromgraphen G WS,b abbildbar, wobei jeweils ein Wertstromgraph für jedes Produkt b definiert ist. Analog zum Standardbegriff ist ein Wertstromgraph aus einer Knotenmenge V WS,b und einer Kantenmenge E WS,b zusammengesetzt. Die nachfolgenden Vereinbarungen in Bezug auf das grafische Modell sind das Ergebnis ausführlicher Tests mit Pilotanwendern an Standorten der Bosch Rexroth AG. Die Teilnehmer haben durchgängig bestätigt, dass die Darstellung der Modellelemente und der Beziehungen zwischen diesen verständlich und intuitiv ist. Knotenmenge V WS,b . Aus dem Index in der formalen Bezeichnung der Knotenmenge V WS,b geht hervor, dass die Menge von einem gegebenen Produkt b abhängig ist. Hintergrund ist, dass spezifische Knoten der Abbildung des Materialflusses dienen und sich dieser je nach Produkt unterscheidet. Zu solchen Knoten zählen die Quelle σb und die Senke τb zur Kennzeichnung des Beginns bzw. des Endes eines Wertstroms sowie die alternativen und die selektiven Flusspunkte DAL,b bzw. D SL,b für entsprechende Verknüpfungen. Diese Knoten sind der Knotenmenge V WS,b genau eines Produkts b zugehörig. Ressourcen bilden verfügbare und zu installierende MAEs ab, die von verschiedenen, möglicherweise allen Produkten genutzt werden. Aus diesem Grund ist die Menge R der Ressourcen nicht genau einem Produkt zugeordnet, sondern Teilmenge der Knotenmenge V WS,b jedes einzelnen Produkts. Die Knotenmenge V WS,b umfasst somit neben den produktspezifischen Mengen alle Knoten der Menge R. Auf diese Weise wird die Basisanforderung A1 umgesetzt, die besagt, dass das Modell die Wertströme aller Produkte unter Berücksichtigung der Ressourcenzuordnung in sich vereinigen soll. Zusammenfassend ist die Knotenmenge V WS,b durch die Vereinigung der spezifischen Mengen des gegebenen Produkts b und der Ressourcen R definiert, wie eingangs in der Liste der Symbole angegeben. Die Knotentypen sind in Abbildung 4.2 aufgeführt und werden erläutert, nachdem der Begriff der Kante in diesem Kontext konkretisiert wurde. Kantenmenge E WS,b . In der Kurzeinführung zu diesem Kapitel wurde dargelegt, dass sich Graphentypen anhand der Definition der Kantenmenge unterscheiden lassen. Da in dieser Arbeit der Begriff des Wertstromgraphen G WS,b geprägt wird, muss auch eine entsprechende Definition der Kantenmenge E WS,b eines Produkts folgen. Der Index in der Bezeichnung der 117 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Formale Bezeichnung Grafisches Symbol Bedeutung und Eigenschaften (a) Quelle σb I Beginn des Wertstroms eines Produkts. Besitzt keinen Eingang und genau einen Ausgang. (b) Senke τb O Ende des Wertstroms eines Produkts. Besitzt im Gegensatz zur Quelle genau einen Eingang und keinen Ausgang. 1 Maschinen, Anlagen und Einrichtungen. Besitzen beliebig viele Eingänge, denen jeweils der gegenüberliegende Ausgang zugeordnet ist. Für jede Ressource ist im Planungsintervall eine Betriebsmittelzeit TBM definiert. Jeder Eingang entspricht einem Prozessschritt mit einer effektiven Taktzeit t eff . (c) Ressourcen R 1 (d) Alternative Flusspunkte DAL,b 2 3 Alternative Verknüpfungen von Prozessschritten und ggf. verketteten Verknüpfungen im Wertstrom eines Produkts. Besitzen jeweils genau einen Eingang und beliebig viele Ausgänge. Die Ausgänge sind nach ihrer Priorität sortiert. 50 % (e) Selektive Flusspunkte D SL,b 25 % 25 % Selektive Verknüpfungen im Wertstrom eines Produkts. Besitzen jeweils genau einen Eingang und beliebig viele Ausgänge. Jedem Ausgang ist eine fixe Quote größer als null und kleiner als oder gleich 100 Prozent zugeordnet. Abbildung 4.2: Bezeichnungen, Symbole und Bedeutungen der Knotentypen. Dargestellt sind die eingeführten Knotentypen zur grafischen Modellierung von Wertströmen. Quellen und Senken existieren jeweils genau einmal in jedem Wertstrom. Ressourcen können in Wertströmen verschiedener Produkte verknüpft werden, wobei an zueinander gehörigen Eingängen und Ausgängen Kanten aus demselben Wertstrom anliegen müssen. Flusspunkte sind dem Wertstrom genau eines Produkts zugeordnet und verbinden nur Kanten in diesem Wertstrom. Menge weist darauf hin, dass sich die Menge je nach Produkt unterscheidet. Der Grund ist wie im Fall der Knotenmenge V WS,b , dass Kanten den Materialfluss eines Produkts abbilden und jeweils nur ein Produkt b betreffen. Folglich müssen sowohl die Knotenmenge V WS,b als auch die Kantenmenge E WS,b für jedes Produkt b definiert werden. Ein Wertstromgraph ist im Verständnis dieser Arbeit zunächst ein endlicher, gerichteter Graph mit Mehrfachkanten. Da entscheidend ist, welche Ressourcen nacheinander durchlaufen werden, muss in Bezug auf Kanten zwischen zwei Knoten berücksichtigt werden, in welcher Reihenfolge sie diese Knoten verbinden. Weiter müssen Mehrfachkanten erlaubt sein, da sich Kanten, die zu einem Knoten führen, nicht notwendigerweise an diesem Punkt vereinigen müssen. Stattdessen werden sie je nach Anwendungsfall weiter unterschieden, wie nachfolgend erläutert werden soll. Kanten führen von einem Knoten zum nächsten und bilden auf diese Weise sequenzielle Verknüpfungen ab. Zudem werden Kanten genutzt, um zur Erfüllung der Basisanforderung A2 zwei Anwendungsfälle zu unterscheiden: Erstens können sich zwei Prozesse an einer MAE vereinigen, sodass derselbe Prozessschritt mit derselben Taktzeit ausgeführt wird und sich alle nachfolgenden Prozessschritte gleichen. Zweitens muss der Anwendungsfall 118 4.2 Modellierung eines Systems durch Wertstromgraphen abgebildet werden können, dass die Prozesse nicht vereinigt werden, um verschiedene Prozessschritte mit unterschiedlichen Taktzeiten und/oder nachfolgenden Prozessschritten auszuführen. Daraus folgt, dass die Information, von welchem Knoten eine Kante zum nächsten Knoten führte, auch weiterhin wichtig ist, nachdem der nächste Knoten beschritten wurde. Nur unter Berücksichtigung dieser Information kann abhängig vom vorhergehenden Knoten eine jeweils andere nachfolgende Kante gewählt werden. Um dies umzusetzen, wird das Konzept eines Eingangs und eines Ausgangs an einem Knoten eingeführt. Diese Eingänge und Ausgänge werden jeweils durch einen natürlichen Index i bzw. j repräsentiert und bezeichnen den Punkt, an dem eine Kante in einen Knoten mündet bzw. einen Knoten verlässt. Indem zwei Kanten zum selben Eingang an einer Ressource führen, wird derselbe Prozessschritt ausgeführt, und der weitere Weg im Wertstrom unterscheidet sich nicht. Führen die Kanten zu verschiedenen Eingängen, werden diese nicht vereinigt, und der Weg unterscheidet sich nach Verlassen der Ressource. Eine Kante e ist somit nicht als ein geordnetes Paar (v, v ′ ) zweier Knoten definiert, wie dies in allgemeinen gerichteten Graphen der Fall ist. Stattdessen wird den Knoten jeweils die Information über den Ausgang j bzw. Eingang i ′ hinzugefügt, sodass eine Kante e durch ein Tupel (v, j, v ′, i ′ ) repräsentiert werden kann. Die Definition besagt, dass die gegebene Kante e den Knoten v am Ausgang j verlässt und zum Eingang i ′ des nächsten Knotens v ′ führt. Hinzuzufügen ist, dass beliebig viele Kanten zu einem Eingang an einem Knoten führen können, worauf sie an diesem Punkt vereinigt werden. An einem Ausgang eines Knotens kann jedoch nur eine ausgehende Kante anliegen. Demzufolge entspricht jede ausgehende Kante an einem Knoten einem eigenen Ausgang. Die Zuordnung von Ausgängen zu Eingängen und damit von ausgehenden zu eingehenden Kanten an diesem Knoten wird durch den Knotentyp bestimmt, wie nachfolgend beschrieben wird. 4.2.2 Modellelemente: Quellen, Senken, Ressourcen und Flusspunkte Die Menge V WS,b der Knoten eines Wertstromgraphen G WS,b repräsentiert den Materialfluss eines Produkts. Dies schließt alle Betriebsmittel ein, die im Ablauf der Fertigung und Montage benötigt werden. Zudem ist für jeden Knoten eine eindeutige Zuordnung der Ausgänge zu den Eingängen definiert, welche der Anwender durch die Vorgabe von Prioritäten und Quoten beeinflussen kann. Auf diese Weise bestimmen die Knoten nicht nur den Materialfluss, sondern auch die Stückzahlverteilung und damit den Informationsfluss (siehe Erläuterung zum Begriff des Wertstroms in der Systemanalyse, Abschnitt 2.2). Quellen σb und Senken τb . Allgemein ist eine Quelle als ein Knoten definiert, dessen Eingangsgrad gleich null ist. Dementsprechend ist die Quelle σb eines Wertstromgraphen G WS,b im Kontext dieser Arbeit der einzige Knoten aus der Menge V WS,b , an dem keine eingehende Kante anliegen darf. Ihr Gegenstück ist die Senke τb , die ebenfalls entsprechend ihrer allgemeinen Definition einen Ausgangsgrad von null besitzt. Das heißt, an der Senke τb darf analog zur Quelle σb keine ausgehende Kante anliegen. Die Symbole der beiden Knotentypen sind in Abbildung 4.2(a) bzw. 4.2(b) dargestellt. Mit Blick auf die Bedeutung der Knoten repräsentiert die Quelle σb den Beginn eines Wertstroms, 119 4 Lösungsschritt I: grafische Modellierung und Modelltransformation die Senke τb analog dazu dessen Ende. Entsprechend enthält die Knotenmenge V WS,b eines Wertstromgraphen G WS,b genau eine Quelle und eine Senke. In Bezug auf den Materialfluss bilden die beiden Knoten die Schnittstelle des Systems mit der Umwelt, wobei Komponenten an der Quelle aufgenommen und Produkte an der Senke bereitgestellt werden. Ein Unterschied in der Definition der Knotentypen bezieht sich auf die Zahl der jeweils ausgehenden und eingehenden Kanten von Quellen bzw. Senken. Da der Weg in einem Wertstromgraphen G WS,b beendet ist, sobald die Senke τb erreicht wird, ist es unerheblich, welche Kante zu dieser Senke führte. Es sind daher mehrere eingehende Kanten an einer Senke σb erlaubt, und es wird lediglich gefordert, dass diese in denselben Eingang münden. Dagegen darf nur eine einzige Kante am Ausgang einer Quelle σb anliegen, da andernfalls der Weg zum ersten Knoten nicht eindeutig bestimmt ist. Ressourcen R. Wie bereits angesprochen, repräsentieren Ressourcen MAEs, die von allen Produkten genutzt werden können, weshalb sie als eine Teilmenge zur Knotenmenge V WS,b jedes Produkts b gehören. Betrachtet man in einem Wertstromgraphen G WS,b eine Kante, die zu einem Eingang an einer Ressource führt, dann entspricht dieser Eingang einem Prozessschritt, welchem die jeweilige MAE zugeordnet ist. Daraus folgt, dass sich der Begriff des Eingangs an einem Knoten auch im Fall von Ressourcen stets auf genau einen Wertstromgraphen G WS,b bezieht. An einem Eingang i einer Ressource können in verschiedenen Wertstromgraphen G WS,b unterschiedliche Kanten anliegen, und entsprechend repräsentieren die Eingänge unterschiedliche Prozessschritte in den Wertströmen. Einem gegebenen Eingang i einer Ressource ist eindeutig genau ein Ausgang j zugeordnet. Hierbei handelt es sich um denjenigen Ausgang, dessen Index j dem Index i des Eingangs entspricht. In der visuellen Darstellung ist dies der Ausgang, welcher dem jeweiligen Eingang genau gegenüberliegt, wie in Abbildung 4.2(c) dargestellt ist. Sofern das grafische Modell {G WS,b } gültig ist, besitzt eine Ressource in jedem Wertstromgraphen G WS,b als Folge die gleiche Zahl von Eingängen und Ausgängen. Durch die eindeutige, unveränderliche Zuordnung jeweils eines Ausgangs zu jedem Eingang einer Ressource kann unterschieden werden, welche Kante nach Verlassen der Ressource weiterverfolgt wird. Es ist stets die Kante am Ausgang der Ressource gegenüber von demjenigen Eingang, zu welchem die vorhergehende Kante führte. Abbildung 4.3 veranschaulicht das Konzept anhand der Beispiele sequenzieller Verknüpfungen aus Abschnitt 2.5. Mit Hilfe dieser Festlegung und der entsprechenden Definition des grafischen Modells ist es möglich, die beschriebenen Anwendungsfälle der Basisanforderung A2 grafisch auf intuitive Weise abzubilden. Insbesondere kann die Zuordnung einer MAE zu einem Prozessschritt zeichnerisch wiedergegeben werden. Darüber hinaus wird durch die grafische Darstellung deutlich, dass eine Ressource für verschiedene Prozessschritte eines Produkts genutzt wird und welche nachfolgenden Prozessschritte ausgeführt werden. Bemerkung: Die obigen Erläuterungen beziehen sich darauf, wie der Anwender durch Verknüpfung von Ressourcen den Materialfluss eines Produkts abbildet. Daneben bietet die Benutzeroberfläche der Software AURELIE dem Anwender die Möglichkeit, für alle Ressourcen eine Betriebsmittelzeit TBM und für jeden Eingang an einer Ressource in einem Wertstromgraphen G WS,b eine effektive Taktzeit t eff vorzugeben. Damit liegen alle notwen- 120 4.2 Modellierung eines Systems durch Wertstromgraphen digen Informationen vor, um im langfristigen Mittel die Auslastung der jeweiligen MAE zu kalkulieren, wie es die Basisanforderung A3 verlangt. Alternative und selektive Flusspunkte DAL,b bzw. D SL,b . Flusspunkte entsprechen im Gegensatz zu Ressourcen nicht physischen Objekten, sondern stellen Verzweigungen in einem Wertstrom dar. Zusammen mit Kanten, die sequenzielle Verknüpfungen abbilden, werden alternative und selektive Flusspunkte genutzt, um alternative bzw. selektive Verknüpfungen zu modellieren. Hierbei entsprechen die Knoten, zu denen die ausgehenden Kanten an einem Flusspunkt führen, den jeweils zu verknüpfenden Operanden. Um dieses Konzept zu veranschaulichen: Wenn an einem alternativen Flusspunkt eine bestimmte Zahl ausgehender Kanten anliegt und die Kanten zu Ressourcen führen, dann wird auf diese Weise eine alternative Verknüpfung von Prozessschritten abgebildet. Die verknüpften Prozessschritte werden, wie zuvor erläutert, durch die Eingänge an den jeweiligen Ressourcen repräsentiert. Das heißt, allein durch die Verknüpfung der Knoten mit Hilfe von Kanten definiert der Anwender, dass Prozessschritte in einem Wertstrom alternativ bzw. selektiv miteinander verbunden sein sollen. Da alternative und selektive Flusspunkte unterschiedliche Verknüpfungstypen repräsentieren, muss der Anwender jeweils spezifische Informationen an den ausgehenden Kanten hinzufügen. Im Fall alternativer Flusspunkte sind dies die Prioritäten der nachfolgenden Prozessschritte, wie in Abbildung 4.2(d) dargestellt. Durch diese Priorisierung ist es möglich, für die Herstellung geplanter Stückzahlen ein eindeutiges Ergebnis in Bezug auf die Auslastung der genutzten MAEs zu bestimmen. Gleichzeitig trägt die Priorisierung eine weitere Information: Folgt man an jedem alternativen Flusspunkt stets nur der ersten ausgehenden Kante, dann beschreibt der Weg die Prozessschritte, die zu einer Überlastung der MAEs führen dürfen, sofern die Kapazität nicht zur Herstellung der geplanten Produktstückzahlen ausreicht. Dadurch kann der Anwender festlegen, welche MAEs im Bedarfsfall überlastet werden sollen. Um die Nutzung alternativer Flusspunkte zu illustrieren, sind die Beispiele alternativer Verknüpfungen aus Abschnitt 2.5 in Abbildung 4.4 und 4.5 dargestellt. Abbildung 4.6 zeigt zusätzlich ein komplexeres Beispiel eines Wertstroms. Im Fall selektiver Flusspunkte definiert der Anwender an jeder ausgehenden Kante einen positiven Wert von höchstens 100 Prozent, wie Abbildung 4.2(e) zeigt. Diese fix vorgegebene Quote entspricht dem relativen Anteil der Stückzahl, welche den Flusspunkt am jeweiligen Ausgang verlässt, im Verhältnis zur Stückzahl, die an dessen Eingang anliegt. Abbildung 4.7 veranschaulicht, wie die Beispiele selektiver Verknüpfungen aus Abschnitt 2.5 in die grafische Notation zur Modellierung von Wertströmen übertragen werden. Abbildung 4.8 stellt ein komplexeres Beispiel eines Wertstroms aus der Praxis dar, in welchem Flusspunkte verschiedener Typen miteinander verkettet werden. Bemerkung: Die Definitionen 2.6 und 2.7 der alternativen bzw. selektiven Verknüpfung aus Abschnitt 2.2 beziehen sich jeweils auf genau zwei Operanden. Zwar wäre es theoretisch möglich, mehrere Flusspunkte mit jeweils zwei Ausgängen nacheinander zu verketten und auf diese Weise Verknüpfungen mit einer größeren Zahl von Operanden abzubilden. Um aber den Aufwand zur grafischen Modellierung zu reduzieren, ist eine beliebige, aber endliche 121 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 1 I 2 O (a) Beispiel SQ1 1 I I 1 2 O O (b) Beispiel SQ2 (c) Beispiel SQ3 Abbildung 4.3: Modellierung sequenzieller Verknüpfungen (Beispiel SQ1, SQ2 und SQ3). Die Abbildungen zeigen die Übertragung der Beispiele SQ1, SQ2 und SQ3 in die Notation zur grafischen Modellierung von Wertströmen. Das zweite und dritte Beispiel illustrieren, wie Eingängen an Ressourcen der jeweils gegenüberliegende Ausgang zugeordnet wird. Dadurch ist es im vorliegenden Fall möglich, den weiteren Ablauf abhängig vom gewählten Eingang festzulegen. O 1 1 1 1 O I I 2 2 2 2 (a) Beispiel AL1 (b) Beispiel AL2 Abbildung 4.4: Modellierung alternativer Verknüpfungen (Beispiel AL1 und AL2). Die Abbildungen geben die Beispiele AL1 und AL2 in der eingeführten Notation wieder. Zur grafischen Modellierung der Verknüpfungen wird jeweils ein alternativer Flusspunkt genutzt. Die zugehörigen Prioritäten der verknüpften Prozessschritte sind an den ausgehenden Kanten ergänzt. In Beispiel AL2 werden analog zu den Beispielen sequenzieller Verknüpfungen verschiedene Eingänge an Ressourcen verbunden, um die nachfolgenden Prozessschritte fallweise zu unterscheiden. 122 4.2 Modellierung eines Systems durch Wertstromgraphen 2 1 1 I 3 O 2 3 Abbildung 4.5: Modellierung einer alternativen Verknüpfung (Beispiel AL3). Die Abbildung verdeutlicht die Einfachheit, mit welcher komplexere Wertströme wie jener aus Beispiel AL3 grafisch modelliert werden können. Im vorliegenden Fall wird hierzu ein alternativer Flusspunkt mit drei ausgehenden Kanten definiert. Zudem führen die anliegenden Kanten an jeder Ressource jeweils zu zwei unterschiedlichen Eingängen. Abhängig vom gewählten Eingang der ersten Ressource folgt der zweite Prozessschritt unter Nutzung einer anderen Ressource. 1 Schruppen 1 I Glühen 2 Reinigen 11 2 Schleifen 10 Entgraten 8 2 1 Schleifen 9 Fräsen 6 1 Strahlen 3 2 1 Vordrehen 4 Vordrehen 5 Fräsen 7 Nitrieren 13 Reinigen 15 Messen 12 2 Nitrieren 14 Messen 16 O Abbildung 4.6: Wertstromgraph für die Fertigung einer Komponente (Praxisbeispiel). Die Modellierung eines realen Wertstroms, wie ihn die Abbildung zeigt, erfordert eine größere Zahl von Knoten und Kanten. Grundlage ist der Ablauf zur Fertigung einer Komponente für ein Produkt an einem Standort der Bosch Rexroth AG. Das Beispiel illustriert einige Möglichkeiten der eingeführten Notation zur Kombination von Elementen. Hierzu zählen die Verkettung von sequenziellen und alternativen Verknüpfungen sowie die Unterscheidung von Eingängen an Ressourcen. 123 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 80 % 80 % 1 1 1 O I O I 2 2 2 20 % 20 % (a) Beispiel SL1 (b) Beispiel SL2 Abbildung 4.7: Modellierung selektiver Verknüpfungen (Beispiel SL1 und SL2). Wie die Abbildungen verdeutlichen, werden selektive Verknüpfungen analog zu alternativen Verknüpfungen durch entsprechende Flusspunkte modelliert. In Beispiel SL2 werden darüber hinaus zwei Verknüpfungen miteinander verkettet. Entsprechend führt eine ausgehende Kante des ersten Flusspunkts zum Eingang des zweiten Flusspunkts. Durch die Nutzung verschiedener Eingänge an der zweiten Ressource ist es möglich, unterschiedliche Taktzeiten je Prozessschritt zu definieren. 35 % 1 I Montieren 1 65 % 60 % 72 % 1 Prüfen 4 2 Montieren 2 2 Prüfen 5 3 Montieren 3 3 Prüfen 6 4 Prüfen 7 12 % 5 Automat. Prüfen 8 16 % 6 Automat. Prüfen 9 Lackieren 10 O 40 % Abbildung 4.8: Wertstromgraph für die Montage eines Produkts (Praxisbeispiel). In der Praxis werden insbesondere zur Montage eines Produkts oftmals verschiedene Varianten betrachtet. Der abgebildete Wertstrom basiert auf drei Prozessschritten, die jeweils ein Stückzahlanteil durchläuft, und spiegelt die Montage eines Produkts an einem Standort der Bosch Rexroth AG wider. Durch die Verkettung von Verknüpfungen und die entsprechende Verbindung mehrerer Flusspunkte können komplexe Bedingungen zur Nutzung der Ressourcen abgebildet werden. 124 4.3 Validierung eines grafischen Modells Zahl von ausgehenden Kanten erlaubt. Die Definitionen der Verknüpfungstypen werden dementsprechend auf eine größere Zahl von Operanden erweitert. Kombination der Modellelemente. Mit Hilfe der oben beschriebenen Knoten und Kanten sowie den Regeln, wie diese miteinander zu kombinieren sind, ist es möglich, komplexe Wertströme auf intuitive Weise zu modellieren. Die Einführung der Software AURELIE bei der Bosch Rexroth AG hat gezeigt, dass die Anwender die grafische Notation nutzen, um eigenständig Lösungen zur Abbildung sich wiederholender Ablaufabschnitte in der Produktion zu entwickeln. Im Zuge der Einführung wurden diese Fragmente grafischer Modelle, in Anlehnung an Entwurfsmuster im Software Engineering auch Wertstrommuster genannt, extrahiert und allen Anwendern bereitgestellt (siehe Hahmann 2012). Damit wurde zum einen das Ziel verfolgt, das Verständnis der grafischen Notation zu fördern. Zum anderen sollte die Modellierung von Systemen beschleunigt werden, indem Wertstrommuster zu Wertströmen zusammengesetzt werden. Abbildung 4.9 zeigt Beispiele für Wertstrommuster zur optionalen Ausführung eines Arbeitsinhalts mit Hilfe einer anderen MAE, von denen eines dem Beispiel AL2 aus Abschnitt 2.5 entspricht. 4.3 Validierung eines grafischen Modells Bestimmte Regeln in Bezug auf die grafische Notation dürfen während der Modellerstellung zu keinem Zeitpunkt verletzt werden. Hierzu zählt beispielsweise, dass Quellen keinen Eingang und nur einen Ausgang, Senken umgekehrt nur einen Eingang und keinen Ausgang und Flusspunkte nur einen Eingang besitzen dürfen. Andere Regeln müssen im Verlauf der Erstellung eines grafischen Modells verletzt werden können, da sie einen Zwischenzustand des Modells darstellen. Beispielsweise kann an einem Eingang einer Ressource eine Kante anliegen, die zugehörige am gegenüberliegenden Ausgang aber fehlen, da der Anwender die Modellierung noch nicht abgeschlossen hat. Daraus folgt, dass eine geeignete Software bereits mit Hilfe der Benutzeroberfläche bestimmte Regeln umsetzen kann. Es verbleiben jedoch Regeln, die vor der Umwandlung des grafischen Modells in ein mathematisches Modell geprüft werden müssen. Die Prüfung dieser zweiten Gruppe von Regeln, die sogenannte Validierung eines grafischen Modells {G WS,b }, wird im Folgenden beschrieben. 4.3.1 Ziel, Grundidee und Datenstrukturen Im Rahmen der Validierung wird geprüft, ob ein gegebenes grafisches Modell {G WS,b } in ein mathematisches Modell umgewandelt werden kann. Dieser Schritt erfolgt stets unmittelbar vor der Transformation des grafischen Modells. Der Ablauf orientiert sich grundsätzlich an der Tiefensuche, ebenso wie die verwendeten Datenstrukturen. Ziel und Vorbedingungen. Das Ziel der Validierung besteht darin, für jeden Wertstromgraphen G WS,b eines grafischen Modells {G WS,b } die Erfüllung der folgenden vier Bedingungen zu prüfen. Es genügt hierbei festzustellen, dass mindestens eine Bedingung im Fall eines 125 4 Lösungsschritt I: grafische Modellierung und Modelltransformation (a) Definition der Taktzeiten je Ressource (b) Definition der Taktzeiten je Arbeitsinhalt O 1 (1) Ausgliederung eines vorbereitenden Arbeitsinhalts 1 1 1 O I I 2 2 2 2 2 I 1 (2) Ausgliederung eines abschließenden Arbeitsinhalts I 1 1 1 O O 2 2 2 Abbildung 4.9: Muster in grafischen Modellen zur Ausgliederung eines Arbeitsinhalts. Wertstrommuster sind Modellfragmente zur Abbildung von Ablaufabschnitten, die in der Praxis wiederholt anzutreffen sind. Die Abbildung zeigt Möglichkeiten zur Modellierung eines Arbeitsinhalts, der bei Bedarf unter Nutzung einer anderen MAE ausgeführt werden kann. Abhängig davon, ob es sich um einen vorbereitenden oder abschließenden Arbeitsinhalt handelt und ob Taktzeiten einer Ressource zusammengefasst oder unterschieden werden sollen, existieren vier Fälle. einzigen Wertstromgraphen verletzt ist, da in diesem Fall das grafische Modell als Ganzes ungültig ist. Die vier Bedingungen lauten: B1 Definierter Beginn jedes Wertstroms: Am Ausgang der Quelle σb jedes Wertstromgraphen G WS,b muss genau eine Kante anliegen, die zu einem anderen Knoten führt. Das heißt, die Quelle σb muss einen definierten nachfolgenden Knoten besitzen, welcher durch die anliegende Kante erreicht wird. B2 Kein unendlicher Zyklus: Folgt man ausgehend von der Quelle σb in jedem Wertstromgraphen G WS,b den nachfolgenden Kanten, darf keine Kante mehr als einmal besucht werden. Die vier möglichen Fälle solcher unendlichen Zyklen sind in Abbildung 4.10 zusammenfassend dargestellt. B3 Keine Kante ohne Nachfolger: Zur Traversierung des Wertstromgraphen G WS,b muss jede Kante zur Senke τb weiterverfolgt werden können. Folglich muss jede Kante einen Nachfolger besitzen, sofern sie nicht in die Senke τb mündet. Ein Beispiel für eine Kante ohne Nachfolger ist in Abbildung 4.11(a) wiedergegeben. 126 4.3 Validierung eines grafischen Modells B4 Keine Kante ohne Vorgänger: Jede Kante des Wertstromgraphen G WS,b muss ausgehend von der Quelle σb erreichbar sein. Das heißt, jede Kante muss einen Vorgänger besitzen, sofern sie nicht an der Quelle σb anliegt. Abbildung 4.11(b) zeigt ein entsprechendes Beispiel einer Kante ohne Vorgänger. Dabei wird vorausgesetzt, dass das zu validierende grafische Modell {G WS,b } die folgenden Vorbedingungen erfüllt. Diese repräsentieren Regeln, deren Einhaltung bereits im Verlauf der Modellerstellung durch die Software geprüft werden kann: V1 Jeder Knoten darf höchstens die Zahl von Eingängen und Ausgängen besitzen, welche der Knotentyp erlaubt (siehe Abbildung 4.2). Dies betrifft die Quelle σb und die Senke τb sowie die alternativen und selektiven Flusspunkte DAL,b bzw. D SL,b . V2 An jedem Ausgang eines Knotens darf jeweils nur eine einzige Kante anliegen. Im Fall der alternativen und selektiven Flusspunkte DAL,b bzw. D SL,b entspricht jede ausgehende Kante einem jeweils anderen Ausgang. V3 Im Fall der Ressourcen R muss für jede eingehende Kante eine effektive Taktzeit t eff größer als null definiert sein. Darüber hinaus muss für jede Ressource eine Betriebsmittelzeit TBM gegeben sein, die ebenfalls größer als null ist. V4 Im Fall der alternativen Flusspunkte DAL,b muss jeder ausgehenden Kante eine Priorität zugeordnet sein. Es wird im Folgenden vorausgesetzt, dass die Priorität jeweils dem Ausgang j entspricht, an welchem die Kante anliegt. V5 Im Fall der selektiven Flusspunkte D SL,b muss jeder ausgehenden Kante eine Quote größer als null und kleiner als oder gleich 100 Prozent zugeordnet sein. Die Summe der Quoten eines selektiven Flusspunkts muss gleich 100 Prozent sein. Grundidee zum Ablauf. Zum besseren Verständnis wird der Algorithmus in zwei Stufen vorgestellt. Zunächst soll der Ablauf der Traversierung aller Kanten eines grafischen Modells {G WS,b } durch einen ersten, einfachen Algorithmus 4.1 veranschaulicht werden. Der Algorithmus wird anschließend um Datenstrukturen und Anweisungen erweitert, um die Erfüllung der obigen Bedingungen zu prüfen. Diese Erweiterung führt zu Algorithmus 4.2, welcher dazu dient, ein grafisches Modell {G WS,b } zu validieren. Die Beschreibung erfolgt in diesem Kapitel anhand von Kurzfassungen in natürlicher Sprache. Die Langfassungen liegen in Gestalt des Algorithmus A.1.5 bzw. A.1.6 im Anhang vor, jeweils erstellt in formalem, kommentiertem Pseudocode. Im Anhang ist zudem eine vollständige Liste aller Objekte und Variablen sowie Funktionen und Prozeduren zu finden. Zur Prüfung der oben aufgeführten Bedingungen müssen alle Wertstromgraphen G WS,b eines grafischen Modells {G WS,b } betrachtet werden. Die Prüfung endet, nachdem die entsprechende Schleife durchlaufen wurde oder ein Wertstromgraph G WS,b auch nur eine der oben stehenden Bedingungen verletzt. Im Zuge der Prüfung ist es erforderlich, jeden Wertstromgraphen G WS,b vollständig zu traversieren. Das heißt, alle Kanten E WS,b des jeweiligen Graphen müssen genau einmal beschritten werden. Da entscheidend ist, ob ausgehend von der Quelle σb eine Kante mehrmals besucht wird, orientiert sich der Algorithmus der 127 4 Lösungsschritt I: grafische Modellierung und Modelltransformation (a) Einstufiger Zyklus (Beispiel) (1) Unbedingter Fall: Verknüpfung von Ressourcen ohne Flusspunkte (b) Mehrstufiger Zyklus (Beispiel) 1 I 1 I O (2) Bedingter Fall: Verknüpfung mindestens eines Flusspunkts 2 O 1 1 I 2 I 2 2 O O Abbildung 4.10: Kategorisierung unendlicher Zyklen in Wertstromgraphen. Im Zuge der Validierung wird sichergestellt, dass kein Wertstromgraph einen unendlichen Zyklus enthält. Unter dem Begriff ist ein Kantenzug zu verstehen, in welchem sich eine Kante wiederholt, sodass stets eine nachfolgende Kante existiert, aber die Senke niemals erreicht wird. Zyklen dieser Art können mehrstufig sein und durch Flusspunkte verlaufen, entsprechend den dargestellten vier Fällen. 1 1 1 1 O I O I 2 2 (a) Kante ohne Nachfolger (Beispiel) (b) Kante ohne Vorgänger (Beispiel) 2 Abbildung 4.11: Kategorisierung nicht zulässiger Kanten in Wertstromgraphen. Neben unendlichen Zyklen muss ausgeschlossen werden, dass in Wertstromgraphen Kanten existieren, die nicht Teil eines Wegs von der Quelle bis zur Senke sind. Sofern kein unendlicher Zyklus vorliegt, betrifft dies alle Kanten, die keinen Nachfolger oder keinen Vorgänger besitzen und nicht an der Senke bzw. Quelle anliegen. Die zugehörigen zwei Fälle sind jeweils durch ein Beispiel veranschaulicht. 128 4.3 Validierung eines grafischen Modells 1 80 % 1 Schritt 1: 4 3 I v1 O v2 2 5 2 20 % 1 80 % 1 Schritt 2: 4 3 I v1 O v2 2 5 2 20 % 1 80 % 1 Schritt 3: 4 3 I v1 O v2 2 2 5 20 % Abbildung 4.12: Schrittfolge der Validierung eines Wertstromgraphen (Beispiel). Grundlage ist ein einfacher exemplarischer Wertstromgraph mit zwei Flusspunkten. Wie für die Tiefensuche charakteristisch wird zuerst ein vollständiger Weg von der Quelle bis zur Senke gesucht, wobei jeweils der letzte Ausgang an jedem Flusspunkt weiterverfolgt wird. Danach wird die Kante am vorherigen Ausgang des zuletzt besuchten Flusspunkts betrachtet. Die Suche wird solange fortgesetzt, bis alle Kanten beschritten wurden, die ausgehend von der Quelle erreichbar sind. Validierung an der Tiefensuche. Die Traversierung beginnt bei der Quelle σb und wird solange fortgesetzt, bis keine weiteren Kanten zu besuchen sind, wie Abbildung 4.12 an einem einfachen Beispiel zeigt. An alternativen und selektiven Flusspunkten werden alle ausgehenden Kanten beschritten, wobei immer erst eine Kante bis zur Senke τb weiterverfolgt wird, bevor die anderen Kanten besucht werden. Zur Prüfung der Bedingungen werden die nachfolgenden Datenstrukturen verwendet. Datenstrukturen. Analog zur Tiefensuche kommt ein Stapel zum Einsatz, um die als Nächstes zu besuchenden Kanten zu verwalten. Wie in der Einführung erläutert, ist ein solcher Stapel eine linear verkettete Liste, die nach dem LIFO-Prinzip verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst zurückgegeben. Dank dieser Eigenschaft eignet sich ein Stapel zur Ausführung einer Tiefensuche, da sich diese dadurch auszeichnet, dass zunächst immer erst alle nachfolgenden Kanten und Knoten besucht werden. Bei den Elementen des Stapels handelt es sich um Kanten und nicht, wie im Fall der Tiefensuche aus der Literatur gemäß Algorithmus A.1.3, um Knoten, da die Bedingungen die Kanten jedes Wert- 129 4 Lösungsschritt I: grafische Modellierung und Modelltransformation stromgraphen G WS,b betreffen. Weitere Datenstrukturen werden für den Algorithmus 4.1 zur Traversierung der Kanten nicht benötigt. In dem darauf aufbauenden Algorithmus 4.2 zur Validierung eines gegebenen grafischen Modells {G WS,b } müssen zusätzliche Datenstrukturen verwendet werden, um die definierten Bedingungen zu prüfen. Zum einen wird mit Hilfe eines Kantenzugs die Folge von Kanten verwaltet, die in jedem Wertstromgraphen G WS,b ausgehend von der Quelle σb zur aktuellen Kante führen. Indem geprüft wird, ob die jeweils als Nächstes zu besuchende Kante bereits in dem Kantenzug enthalten ist, können unendliche Zyklen erkannt werden. Nachdem die Senke τb erreicht wurde, muss der Kantenzug von der letzten Kante beginnend reduziert werden, bis die letzte verbleibende Kante der Vorgänger der als Nächstes zu besuchenden Kante ist. Dadurch ist sichergestellt, dass der Kantenzug zu jedem Zeitpunkt die beschriebene Folge von Kanten von der Quelle σb bis zur aktuellen Kante repräsentiert. Da der Kantenzug jeweils an dessen Ende um eine Kante erweitert oder reduziert wird, handelt es sich wie im Fall des Stapels um eine nach dem LIFO-Prinzip verwaltete, linear verkettete Liste. Um zu prüfen, ob letztendlich alle Kanten besucht wurden, genügt es, eine Menge aller noch nicht besuchten Kanten zu definieren. Diese wird mit der Menge E WS,b jedes Wertstromgraphen G WS,b initialisiert und bei jedem Besuch einer Kante um ebendiese Kante reduziert. Ist der Stapel leer und verbleiben keine weiteren zu besuchenden Kanten, muss entsprechend auch die MengeUnbesuchterKanten leer sein. 4.3.2 Beschreibung der Algorithmen Zunächst soll der Ablauf des einführenden Algorithmus 4.1 erläutert werden, welcher die Traversierung aller Kanten eines grafischen Modells {G WS,b } beschreibt (Langfassung siehe Algorithmus A.1.5). Auf dieser Basis folgt die Erläuterung des Algorithmus 4.2 zur Validierung eines solchen grafischen Modells (Langfassung siehe Algorithmus A.1.6). Algorithmus 4.1: Traversierung der Kanten eines grafischen Modells {G WS,b } Prozedur TraversiereKantenVonGrafischemModell( . . . ) In Zeile 01 ist die Hauptprozedur zur Traversierung der Kanten eines gegebenen grafischen Modells {G WS,b } deklariert. Gemäß der Definition dieser Prozedur werden nacheinander die Wertstromgraphen G WS,b aller Produkte b betrachtet. In dem Zuge werden alle Kanten E WS,b des jeweiligen Wertstromgraphen G WS,b als nicht entdeckt markiert, bevor die Hilfsprozedur zur Traversierung dieser Kanten aufgerufen wird. Prozedur TraversiereKantenVonWSGraphen( . . . ) Die Definition der entsprechenden Hilfsprozedur folgt ab Zeile 06. Im ersten Schritt wird der Stapel als ein leeres Tupel initialisiert, wobei dessen Elemente jeweils eine Kante e bezeichnen. Daran anknüpfend wird geprüft, ob am Ausgang der Quelle σb eine Kante anliegt. Ist dies der Fall, wird der Kante zum nächsten Knoten v ′ und dessen Eingang i ′ gefolgt, um die entsprechende Kante ans Ende des Stapels zu fügen. Ab Zeile 13 wird in einer Schleife geprüft, ob der Stapel Elemente enthält und somit weitere Kanten zu besuchen sind. Wurde 130 4.3 Validierung eines grafischen Modells Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b für alle Produkte b Ausgabe : markierte Kanten E WS,b 01: 02: ··· 05: Prozedur TraversiereKantenVonGrafischemModell({G WS,b }) für alle Produkte b tue für alle Kanten E WS,b tue initialisiere die Kante als nicht entdeckt TraversiereKantenVonWSGraphen(G WS,b , b ) 06: 07: 08: ··· 13: 14: 15: 16: ··· Prozedur TraversiereKantenVonWSGraphen(G WS,b , b ) initialisiere Stapel als leeres Tupel wenn an der Quelle σb eine Kante anliegt dann folge dieser Kante e ′, um sie ans Ende des Stapels zu fügen solange Stapel nicht leer ist tue entferne aktuelle Kante e vom Ende des Stapels wenn Kante e bisher noch nicht entdeckt wurde dann markiere Kante e als entdeckt TraversiereKantenAusRessource( . . . ) bzw. TraversiereKantenAusFlusspunkt( . . . ) 22: 23: 24: ··· Prozedur TraversiereKantenAusRessource(G WS,b , Stapel, v, i ) betrachte nur Ausgang j des Knotens v gegenüber von Eingang i wenn an Ausgang j eine Kante anliegt dann folge dieser Kante e ′, um sie ans Ende des Stapels zu fügen 29: 30: ··· Prozedur TraversiereKantenAusFlusspunkt(G WS,b , Stapel, v) für alle Kanten an Ausgängen j tue folge dieser Kante e ′, um sie ans Ende des Stapels zu fügen Algorithmus 4.1: Traversierung der Kanten eines grafischen Modells {G WS,b } (Kurzfassung). zu Beginn an der Quelle σb eine Kante gefunden, ist diese Bedingung erfüllt. Im Anschluss daran wird eine Kante e vom Ende des Stapels entfernt, um diese im nächsten Schritt zu betrachten. Falls die aktuelle Kante e noch nicht entdeckt wurde, wird sie entsprechend als entdeckt markiert, und es wird der Knoten v ′ ermittelt, zu welchem die Kante e führt. Sofern es sich bei dem Knoten v ′ um eine Ressource handelt, wird die Hilfsprozedur zur Traversierung solcher Kanten aufgerufen, die an Ausgängen einer Ressource anliegen. Ist der Knoten v ′ jedoch ein alternativer oder selektiver Flusspunkt, dann wird die Hilfsprozedur für entsprechende Knoten aufgerufen. Wenn aber der Knoten v ′ die Senke τb bezeichnet, dann wird die Kante e nicht weiterverfolgt. Falls der Stapel keine weiteren Elemente enthält, wird die Schleife daraufhin verlassen. Prozedur TraversiereKantenAusRessource( . . . ) Die Hilfsprozedur ab Zeile 22 beschreibt, welche Kante nach einer Ressource weiterverfolgt werden soll, wenn eine gegebene Kante an einem Eingang i dieser Ressource anliegt. Wie zuvor erläutert, wird der Ausgang j der Ressource betrachtet, welcher dem Eingang i gegenüberliegt und in Bezug auf den Index diesem Eingang i entspricht. Sofern am Ausgang j eine Kante anliegt, wird diese Kante e ′ zum Knoten v ′ und dem Eingang i ′ an diesem 131 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Knoten weiterverfolgt. Um die ausgehende Kante e ′ als Nächstes zu besuchen, wird sie ans Ende des Stapels gefügt und danach die Hilfsprozedur verlassen. Prozedur TraversiereKantenAusFlusspunkt( . . . ) In Zeile 29 ist die umso kürzere Hilfsprozedur definiert, die beschreibt, welche Kanten nach einem alternativen oder selektiven Flusspunkt weiterverfolgt werden sollen. Einfacherweise werden die Kanten e ′ an allen Ausgängen j nacheinander zu den jeweils nächsten Knoten v ′ und Eingängen i ′ weiterverfolgt, um sie ans Ende des Stapels zu fügen. Auf diese Weise wird die Kante, die am letzten Ausgang anliegt, zuerst besucht. Die Reihenfolge, in welcher die ausgehenden Kanten eines Flusspunkts betrachtet werden, besitzt im Fall der Validierung eines grafischen Modells {G WS,b } noch keine Bedeutung. Algorithmus 4.2: Validierung eines grafischen Modells {G WS,b } Auf dieser Basis folgt nun die Beschreibung von Algorithmus 4.2, der Validierung eines grafischen Modells {G WS,b } (Langfassung siehe Algorithmus A.1.6). Viele Abschnitte basieren auf dem vorangegangenen, weshalb sie kürzer gefasst wiedergegeben werden. Funktion ValidiereGrafischesModell( . . . ) In der Hauptfunktion, die in Zeile 01 deklariert ist, werden wie zuvor alle Wertstromgraphen G WS,b des grafischen Modells {G WS,b } betrachtet. Sobald die Validierung eines dieser Wertstromgraphen negativ ausfällt, wird ein entsprechendes Ergebnis zurückgegeben, und die Hauptfunktion wird vorzeitig verlassen. Nur wenn die Wertstromgraphen G WS,b aller Produkte b die definierten Bedingungen erfüllen, wird die Schleife bis zum letzten Produkt b durchlaufen und ein positives Ergebnis zurückgegeben. Funktion ValidiereWSGraphen( . . . ) Ab Zeile 06 folgt die Definition der Hilfsfunktion zur Validierung eines Wertstromgraphen G WS,b . Zunächst wird der Stapel wieder als leeres Tupel initialisiert, ebenso wie der Kantenzug, welcher den Weg von der Quelle σb bis zur aktuellen Kante wiedergibt. Anschließend werden alle Kanten als nicht besucht markiert. Liegt an der Quelle σb keine Kante an, wird die Validierung des Wertstromgraphen G WS,b bereits an diesem Punkt negativ beendet. Sonst wird die entsprechende Kante e ′ ans Ende des Stapels gefügt. Damit wird in Zeile 16 die Schleife betreten, wobei die Schleifenbedingung an dieser Stelle erfüllt sein muss und daher im Gegensatz zum vorigen Algorithmus erst am Ende geprüft wird. Zuerst wird die aktuelle Kante e 2 vom Ende des Stapels entfernt. Enthält der Kantenzug mindestens eine Kante und wird folglich ein begonnener Weg von der Quelle σb fortgesetzt, wird die Kante e 1 an dessen Ende ermittelt. Solange die aktuelle Kante e 2 vom Stapel kein Nachfolger der Kante e 1 vom Kantenzug ist, wird der Kantenzug reduziert, danach dessen letzte Kante e 1 bestimmt und die Bedingung erneut geprüft. Als Ergebnis wird der Kantenzug zurückverfolgt, bis dieser den Weg von der Quelle σb bis zur aktuellen Kante e 2 widerspiegelt. Diese Schrittfolge muss jeweils ausgeführt werden, nachdem ein vollständiger Weg von der Quelle σb bis zur Senke τb beschritten wurde oder wenn nach der betrachteten Kante keine 132 4.3 Validierung eines grafischen Modells Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b für alle Produkte b Ausgabe : wahr, wenn das grafische Modell {G WS,b } gültig ist, sonst falsch 01: 02: 03: 04: 05: 06: ··· 09: 10: 11: ··· 16: ··· 19: ··· 22: ··· 26: 27: 28: 29: ··· ··· 37: 38: 39: 40: Funktion ValidiereGrafischesModell({G WS,b }) für alle Produkte b tue wenn nicht ValidiereWSGraphen(G WS,b , b ) gilt dann liefere falsch zurück liefere wahr zurück Funktion ValidiereWSGraphen(G WS,b , b ) initialisiere Stapel und Kantenzug als leere Tupel für alle Kanten E WS,b tue initialisiere die Kante als nicht besucht wenn an der Quelle σb keine Kante anliegt dann liefere falsch zurück folge der Kante e ′ an der Quelle σb , um sie ans Ende des Stapels zu fügen wiederhole entferne aktuelle Kante e 2 vom Ende des Stapels wenn Kantenzug nicht leer ist dann ermittle zuletzt besuchte Kante e 1 vom Ende des Kantenzugs solange Kante e 2 nicht unmittelbar auf Kante e 1 folgt tue entferne Kante und ermittle zuletzt besuchte Kante e 1 vom Ende des Kantenzugs wenn Kante e 2 bereits im Kantenzug enthalten ist dann liefere falsch zurück wenn Kante e 2 bisher noch nicht besucht wurde dann markiere Kante e 2 als besucht und füge sie ans Ende des Kantenzugs wenn nicht ValidiereKantenAusRessource( . . . ) bzw. nicht ValidiereKantenAusFlusspunkt( . . . ) gilt dann liefere falsch zurück solange Stapel nicht leer ist wenn nicht alle Kanten E WS,b besucht wurden dann liefere falsch zurück liefere wahr zurück 41: 42: 43: 44: ··· 49: Funktion ValidiereKantenAusRessource(G WS,b , Stapel, v, i ) betrachte nur Ausgang j des Knotens v gegenüber von Eingang i wenn an Ausgang j keine Kante anliegt dann liefere falsch zurück folge der Kante e ′ an Ausgang j, um sie ans Ende des Stapels zu fügen liefere wahr zurück 50: ··· 53: 54: ··· 59: Funktion ValidiereKantenAusFlusspunkt(G WS,b , Stapel, v) wenn an keinem Ausgang eine Kante anliegt dann liefere falsch zurück für alle Kanten an Ausgängen j tue folge dieser Kante e ′, um sie ans Ende des Stapels zu fügen liefere wahr zurück Algorithmus 4.2: Validierung eines grafischen Modells {G WS,b } (Kurzfassung). 133 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Kanten mehr folgen, die es noch zu besuchen gilt (siehe Schritt 1 in Abbildung 4.12). Danach müssen alle verbleibenden Kanten beschritten werden, die an Flusspunkten anliegen, die auf diesem Wege besucht wurden (siehe Schritt 2 und 3 in Abbildung 4.12). Ist die aktuelle Kante e 2 gemäß der Prüfung in Zeile 26 in dem reduzierten Kantenzug enthalten, muss ein unendlicher Zyklus vorliegen, und die Hilfsfunktion wird mit negativem Ergebnis verlassen. Wenn das aber nicht der Fall ist und die Kante e 2 noch nicht besucht wurde, dann wird diese entsprechend markiert und ans Ende des Kantenzugs gefügt. Analog zum vorherigen Algorithmus werden im Anschluss daran unterschiedliche Hilfsfunktionen aufgerufen, um abhängig vom Typ des Knotens v 2′ , zu welchem die Kante e 2 führt, zu verzweigen. Sobald der Stapel keine Elemente mehr enthält, wird gemäß der Bedingung in Zeile 37 die Schleife verlassen, und es wird geprüft, ob alle Kanten E WS,b des Wertstromgraphen G WS,b besucht wurden. Ist dies nicht der Fall, muss mindestens eine Kante ohne Vorgänger existieren, die nicht an der Quelle σb anliegt. Danach wird die Hauptfunktion verlassen und das Ergebnis dieser Prüfung zurückgegeben. Funktion ValidiereKantenAusRessource( . . . ) In Zeile 41 ist die Hilfsfunktion zur Validierung aller ausgehenden Kanten an einem Eingang i einer Ressource deklariert. Wieder wird ausschließlich derjenige Ausgang j betrachtet, welcher dem Eingang i der Ressource gegenüberliegt. Wenn an Ausgang j keine Kante anliegt, wird die Hilfsfunktion mit negativem Ergebnis beendet. In diesem Fall besitzt die Kante, die zum vorherigen Eingang i der Ressource führt, keinen Nachfolger. Andernfalls wird die jeweilige Kante e ′ ans Ende des Stapels gefügt und somit als Nächstes besucht. Funktion ValidiereKantenAusFlusspunkt( . . . ) Die Hilfsfunktion zur Validierung aller Kanten an Ausgängen alternativer und selektiver Flusspunkte folgt ab Zeile 50. Liegen keine Kanten an, wird die Hilfsfunktion verlassen und ein negatives Ergebnis zurückgegeben. In diesem Fall besitzt die eingehende Kante keinen Nachfolger. Sonst werden wie schon zuvor die Kanten e ′ an allen Ausgängen j ans Ende des Stapels gefügt, um sie als Nächstes zu besuchen. 4.3.3 Beweis der Zeitkomplexität Gesucht ist nun die Komplexität der zwei Algorithmen. Der Fokus liegt auf einer oberen Schranke für die asymptotisch wachsende Laufzeit. Da hierzu die Größe der Datenstrukturen betrachtet wird, kann damit auch auf den Speicherplatzbedarf geschlossen werden. Gegeben sei ein grafisches Modell {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b , deren Kanten zu traversieren sind bzw. welches zu validieren ist. Algorithmus 4.1: Traversierung der Kanten eines grafischen Modells {G WS,b } Der einführende Algorithmus 4.1 entspricht einer Tiefensuche, in deren Verlauf die Wertstromgraphen G WS,b vollständig traversiert werden. Im Unterschied zu einer klassischen Tiefensuche werden nicht die Knoten, sondern die Kanten E WS,b jedes Wertstromgraphen G WS,b in einem Stapel verwaltet. Bezüglich der Laufzeit des Algorithmus gilt: 134 4.3 Validierung eines grafischen Modells Theorem 4.1: Zeitkomplexität von Algorithmus 4.1. Es sei ein grafisches Modell {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b gegeben, welche die Wertströme eines Systems zur Herstellung einer entsprechenden Zahl von Produkten abbilden. Der Algorithmus zur Traversierung aller des Modells besitzt in der angegebenen Imple¢ ¡ + Kanten Pn mentierung eine Laufzeit von O d max b =1 |E WS,b | . Beweis. Im Verlauf der Traversierung wird jede Kante e höchstens einmal entdeckt, da sie unmittelbar danach entsprechend markiert wird. Nachdem sie entdeckt wurde, werden all ihre Nachfolger e ′ ans Ende des Stapels gefügt. Wenn die aktuelle Kante in einen Eingang i eines Knotens v mündet, dann bezeichnet ein solcher Nachfolger eine Kante, die an einem zugeordneten Ausgang j desselben Knotens anliegt. Die entsprechende Zuordnung von Ausgängen j zu Eingängen i ist vom Typ des Knotens v abhängig. Im Fall einer Ressource wird nur die Kante weiterverfolgt, die am Ausgang j gegenüber von Eingang i anliegt, sofern diese existiert. Bezeichnet der Knoten v eine Ressource, besitzt die eingehende Kante daher unabhängig vom gewählten Eingang i höchstens einen Nachfolger. Im Fall eines alternativen oder selektiven Flusspunkts werden alle Kanten betrachtet, die an den Ausgängen des Knotens anliegen. Diesbezüglich wird angenommen, dass der Ausgangsgrad der Flusspunkte einen gegebenen Wert d + max nicht überschreitet. Unter dieser Annahme werden für jeden Wertstromgraphen G WS,b nicht mehr als d + max |E WS,b | Kanten in den Stapel aufgenommen. Da jeweils genau eine Kante aus dem Stapel entfernt wird, muss die Schleife entsprechend oft durchlaufen werden. Weiter wird angenommen, dass die P Zahl nb =1 |E WS,b | der Kanten mindestens der Zahl n der Produkte entspricht. Weiterhin wird vorausgesetzt, dass die Bestimmung nachfolgender Kanten e ′ an einem Knoten v mit einer Laufzeit von O(1) möglich ist. Dabei wird unterstellt, dass eine geeignete Datenstruktur zur Repräsentation der Kanten genutzt wird (wie z. B. eine Adjazenzmatrix). Die gleiche Voraussetzung gilt für das Hinzufügen und Entfernen von Elementen des Stapels sowie für die Bestimmung, ob eine Kante bereits entdeckt wurde, und die entsprechende Markierung der Kante. Daraus resultieren für die Zeilen im Rumpf der Prozeduren jeweils die folgenden Laufzeiten (ohne aufgerufene Hilfsprozeduren): 02: 03 . . . 04: 05: 07 . . . 12: O(n) ¡P ¢ O nb =1 |E WS,b | O(n) O(n) 13 . . . 15: 16 . . . 21: 23 . . . 28: 30 . . . 34: ¢ ¡ Pn O d+ max b =1 |E WS,b | ¡P ¢ O nb =1 |E WS,b | ¢ ¡Pn O b =1 |E WS,b | ¡ ¢ Pn O d+ max b =1 |E WS,b | Die Gesamtlaufzeit entspricht der Summe der angegebenen Laufzeiten für jede Zeile. Da hierbei kleinere Summanden und konstante Faktoren vernachlässigt werden, ¢ ist die gesuchte ¡ + Pn obere Schranke gleich dem zu zeigenden Ausdruck O d max b =1 |E WS,b | . In grafischen Modellen realer Wertströme besitzen Flusspunkte i. d. R. nur einen einstelligen Ausgangsgrad. Zudem skaliert zwar die Zahl der Knoten und Kanten mit der Größe des Modells, jedoch wächst in der Praxis typischerweise nicht die Zahl ausgehender Kanten der einzelnen Flusspunkte. Folglich kann der maximale Ausgangsgrad d + max der Flusspunkte als Konstante aufgefasst werden.¡ Unter dieser¢ Annahme ist es möglich, für die Laufzeit von P Algorithmus 4.1 die Schranke O nb =1 |E WS,b | anzugeben. 135 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Algorithmus 4.2: Validierung eines grafischen Modells {G WS,b } Der Algorithmus 4.2 zur Validierung eines grafischen Modells {G WS,b } erweitert den zuvor beschriebenen, einführenden Algorithmus 4.1. Wie dieser beruht er auf einer Tiefensuche zur vollständigen Traversierung der Wertstromgraphen G WS,b . Neben einem Stapel werden ein Kantenzug und eine Menge genutzt, um die als Nächstes zu besuchenden bzw. bereits besuchten Kanten zu verwalten. Im Hinblick auf die Laufzeit gilt: Theorem 4.2: Zeitkomplexität von Algorithmus 4.2. Es sei ein grafisches Modell {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b gegeben, welche die Wertströme eines Systems zur Herstellung einer entsprechenden Zahl von Produkten abbilden. Der Algorithmus zur des Modells besitzt in der angegebenen Implementierung eine ¡ Validierung ¢ Pn Laufzeit von O d + E . max b =1 | WS,b | Beweis. Jede Kante e eines Wertstromgraphen G WS,b wird im Verlauf des Algorithmus höchstens einmal besucht. Danach werden alle Nachfolger e ′ ans Ende des Stapels gefügt. Betrachtet man eine Kante, die zu einem Eingang i eines Knotens v führt, dann ist ein Nachfolger eine Kante, die an einem zugeordneten Ausgang j des Knotens anliegt. Die Zuordnung von Ausgängen j zu Eingängen i ist eine Eigenschaft des Knotentyps. Falls die aktuelle Kante zu einer Ressource führt, dann wird nur die Kante am gegenüberliegenden Ausgang j betrachtet. Mündet die Kante in einen alternativen oder selektiven Flusspunkt, werden die Kanten an allen Ausgängen weiterverfolgt. Hierbei gilt die Annahme, dass kein Flusspunkt einen Ausgangsgrad besitzt, welcher den Wert d + max überschreitet. E Somit werden in jedem Wertstromgraphen G WS,b nicht mehr als d + | max WS,b | Kanten ans Ende des Stapels gefügt. Entsprechend oft wird die äußere Schleife durchlaufen, da in jedem Durchlauf genau eine Kante vom Stapel entfernt wird. In dem Moment ihrer Entdeckung wird eine Kante ans Ende des Kantenzugs gefügt. Da jede Kante nur ein einziges Mal entdeckt werden kann, folgt daraus, dass in jedem Wertstromgraphen G WS,b insgesamt höchstens |E WS,b | Kanten in den Kantenzug aufgenommen werden. Diese Zahl bildet damit eine obere Schranke für die Zahl der Durchläufe der inneren Schleife, in welcher jeweils genau eine Kante vom Kantenzug entfernt wird. Für die Bestimmung nachfolgender Kanten e ′ sowie für die Operationen des Stapels und des Kantenzugs gelten die gleichen Voraussetzungen, wie sie im Beweis für Algorithmus 4.1 formuliert wurden. Daraus resultieren jeweils die folgenden Laufzeiten für die Zeilen im Rumpf der Funktionen (ohne aufgerufene Hilfsprozeduren): 02 . . . 04: 05: 07 . . . 15: 16 . . . 22: 23 . . . 25: 26 . . . 28: 29 . . . 36: O(n) O(1) O(n) ¢ ¡ Pn O d+ E b =1 | ¢WS,b | ¡Pmax O nb =1 |E WS,b | ¡ ¢ Pn O d+ max b =1 |E WS,b | ¢ ¡P O nb =1 |E WS,b | 37: 38 . . . 40: 42 . . . 49: 51 . . . 53: 54 . . . 58: 59: ¡ ¢ Pn O d+ max b =1 |E WS,b | O(n) ¢ ¡P O nb =1 |E WS,b | ¢ ¡P O nb =1 |E WS,b | ¡ + Pn ¢ O d max b =1 |E WS,b | ¡P ¢ O nb =1 |E WS,b | Da bei der Bildung der Summe kleinere Summanden Faktoren vernachlässigt ¢ ¡ undPkonstante n . werden, ist die gesuchte obere Schranke gleich O d + E max b =1 | WS,b | 136 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Mit Blick auf Modelle aus der Praxis ist wie im Fall von Algorithmus 4.1 anzumerken, dass die maximale Zahl ausgehender Kanten d + max der einzelnen Flusspunkte nicht mit der Größe des Modells skaliert und somit eine Konstante ¡Pn darstellt.¢ Demzufolge kann für die Laufzeit von Algorithmus 4.2 die obere Schranke O b =1 |E WS,b | angenommen werden. Nach der Validierung eines gegebenen grafischen Modells {G WS,b } sind die Voraussetzungen erfüllt, um dieses in ein mathematisches Modell zu transformieren. Die Beschreibung der zugehörigen Algorithmen folgt im nächsten Abschnitt. 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Wie zu Beginn des Kapitels hervorgehoben, ist einer der wichtigsten Beiträge dieser Arbeit die Transformation eines grafischen Modells in ein mathematisches Modell, das sich zur Optimierung eignet. Ziel der Transformation ist es, die Elemente eines gegebenen Systems und die Beziehungen zwischen diesen Elementen in eine geeignete, insbesondere mathematische Form zu übersetzen. Sobald das Modell in dieser Form vorliegt, können Standardverfahren der mathematischen Optimierung genutzt werden, um die optimalen Werte gemäß den definierten Planungszielen zu suchen. In diesem Abschnitt soll beschrieben werden, wie die genannten Elemente und Beziehungen mathematisch repräsentiert werden und die Transformation eines grafischen Modells abläuft. Um das resultierende mathematische Modell eindeutig zu beschreiben, werden die folgenden Symbole eingeführt. Darüber hinaus gelten alle anderen Symbole in der Bedeutung, wie in den vorhergehenden Abschnitten und im zugehörigen Verzeichnis angegeben. Aus Abschnitt 2.4 werden die Zeitgrößen zur Kalkulation der Auslastung aufgegriffen. Dies betrifft die Betriebsmittelzeit TBM und die effektive Taktzeit t eff . a, a ′ N q, q ′ x xa y yb Index zur Bezeichnung der aktuellen bzw. am jeweils nächsten Eingang i oder Ausgang j anliegenden Prozessstückzahl xa bzw. xa ′ , a, a ′ ∈ {1, . . . , m}, ggf. mit Index 1, 2 usw. Stufe in der Strukturstückliste eines Produkts b, N ∈ {1, . . . , n} Koeffizient der aktuellen bzw. nächsten Prozessstückzahl xa bzw. xa ′ , q, q ′ ∈ [0, 1] Vektor [x 1 . . . xm ]⊤ an Eingängen i und Ausgängen j anliegender Prozessstückzahlen xa , x ∈ Rm0 Prozessstückzahl mit fortlaufendem Index a ∈ {1, . . . , m}, xa ∈ R 0 Vektor [y 1 . . . yn ]⊤ der Stückzahlen y b aller gegebenen Produkte b, y ∈ Rn 0 Stückzahl des Produkts b ∈ {1, . . . , n}, y b ∈ R 0 Matrizen eines mathematischen Modells (P, S, F, L, L Invest ) (jeweils mit einer allgemeinen, zuerst nicht näher bezeichneten Zeile i ): P S F L L Invest Prozessmatrix, Produktstrukturmatrix, Flussmatrix, Auslastungsmatrix, Investitionsmatrix, ∀b ∈ {1, . . . , n}, a ∈ {1, . . . , m} ∀b, b ′ ∈ {1, . . . , n} ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} P[b, a ] ∈ {0, 1} S [b, b ′ ] ∈ R 0 F [i, a ] ∈ [−1, 1] L [i, a ] ∈ R 0 L Invest [i, a ] ∈ R 0 137 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Hilfsmatrizen (zur Bestimmung der oben stehenden Matrizen F, L und L Invest , jeweils mit Zeile i und j als Eingang bzw. Ausgang eines Knotens v): Ausgangsmatrix des Knotens v im Wertstromgraphen G WS,b des Produkts b, ∀ j ∈ {1, 2, . . .}, a ∈ {1, . . . , m} Qaus,bv [ j, a ] ∈ [0, 1] { Qaus,bv } Menge der Ausgangsmatrizen Qaus,bv für alle Produkte b und alle alternativen Flusspunkte DAL,b , Abkürzung für { Qaus,bv : b ∈ {1, . . . , n} ∧ v ∈ DAL,b } Qein,bv Eingangsmatrix des Knotens v im Wertstromgraphen G WS,b des Produkts b, ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} Qein,bv [i, a ] ∈ [0, 1] { Qein,bv } Menge der Eingangsmatrizen Qein,bv für alle Produkte b und alle Knoten V WS,b außer Quellen σb und Senken τb , Abkürzung für { Qein,bv : b ∈ {1, . . . , n} ∧ v ∈ V WS,b \ {σb , τb }} U Vereinigungsmatrix, ∀a ′, a ∈ {1, . . . , m} U[a ′, a ] ∈ [−1, 1] Qaus,bv Bevor der Algorithmus zur Transformation eines grafischen Modells folgt, soll zunächst dargelegt werden, wie die oben stehenden Matrizen genutzt werden, um ein abzubildendes System durch ein mathematisches Modell zu repräsentieren. 4.4.1 Mathematische Modellstruktur: Matrizen und Folgen Ein mathematisches Modell, welches aus einem grafischen Modell {G WS,b } hervorgeht, ist aus fünf Matrizen zusammengesetzt: der Prozessmatrix P, der Produktstrukturmatrix S, der Flussmatrix F und der Auslastungsmatrix L sowie der Investitionsmatrix L Invest . Die ersten vier Matrizen dienen der Abbildung von Bedingungen in Bezug auf Produkte und Prozesse. Die Investitionsmatrix L Invest wird eingeführt, um die Entscheidung des Anwenders abzubilden, welche Prozessschritte im Bedarfsfall zur Überlastung von Ressourcen führen dürfen. Somit kann ein solches mathematisches Modell als ein Tupel (P, S, F, L, L Invest ) aufgefasst werden. Die Verteilung der Produktstückzahlen y b wird durch Variablen, die Prozessstückzahlen xa , abgebildet. Deren Priorisierung wird durch die MaxFolge wiedergegeben. Im Folgenden werden die Matrizen bzw. Folgen erläutert. Variablen zur Abbildung der Stückzahlverteilung. In der Gesamtheit bestimmen die Matrizen die Verteilung der Produktstückzahlen in den Wertströmen der Produkte (vgl. Systemstruktur, Abschnitt 2.2). Dem liegt folgendes Konzept zugrunde: An jedem Eingang i und an jedem Ausgang j eines Knotens v liegt ein Anteil der Stückzahl y b eines Produkts b an, welcher den Knoten an dem Eingang durchläuft bzw. an dem Ausgang verlässt. Der Stückzahlanteil folgt aus der Multiplikation einer Prozessstückzahl xa mit einem Koeffizienten q im Intervall [0, 1], die diesem Eingang bzw. Ausgang zugeordnet sind. Die Prozessstückzahlen beschreiben im Verständnis von Abschnitt 2.5 nichtnegative reelle Variablen und werden durch einen fortlaufenden natürlichen Index a größer als null bezeichnet. Am Ausgang der Quelle σb jedes Produkts wird eine neue Prozessstückzahl xa ′ eingeführt, die jeweils der Produktstückzahl y b entspricht. Freiheitsgrade in Gestalt zusätzlicher Prozessstückzahlen entstehen durch alternative Verknüpfungen (siehe Definition 2.6). Mit jeder ausgehenden Kante an einem alternativen Flusspunkt wird entsprechend eine neue Prozessstückzahl xa ′ erzeugt. Im Unterschied dazu definiert eine selektive Verknüpfung ein fixes Verhältnis zwischen den Stückzahlanteilen, welche die Operanden der Verknüpfung durchlaufen (siehe Definition 2.7). Folglich liegt an jedem Ausgang eines selektiven Flusspunkts 138 4.4 Transformation eines grafischen Modells in ein mathematisches Modell ein fixer relativer Anteil der Stückzahl vom Eingang an, welcher die fix vorgegebene Quote am jeweiligen Ausgang widerspiegelt. Ressourcen bewirken keine Veränderung der Stückzahlen, weshalb der Stückzahlanteil am Eingang i einer Ressource dem gegenüberliegenden Ausgang j mit gleichem Index zugeordnet wird. Damit verbleiben sequenzielle Verknüpfungen als einfachster Typ zur Verteilung der Stückzahl auf zwei Operanden (siehe Definition 2.5). Eine sequenzielle Verknüpfung wird durch eine Kante abgebildet, die stets zwei Knoten v und v ′ miteinander verbindet. Durch die Verbindung der Knoten wird der Stückzahlanteil vom Ausgang j des ersten Knotens v zum Eingang i ′ des zweiten Knotens v ′ übertragen, ohne diesen zu verändern. Eine Besonderheit bilden Vereinigungen von Kanten am Eingang eines Knotens. Sofern es sich nicht um die Senke τb eines Wertstromgraphen G WS,b handelt, werden an solchen Punkten ebenfalls neue Prozessstückzahlen xa ′ eingeführt. Diese müssen jeweils mit der Summe der Stückzahlen an den vereinigten Kanten übereinstimmen und stellen folglich keine Freiheitsgrade dar. Die Einführung neuer Prozessstückzahlen an Vereinigungen ist notwendig, um jeder nachfolgenden Kante an dem jeweils betreffenden Knoten genau eine Prozessstückzahl xa und einen Koeffizienten q zuzuordnen. Bemerkung: Im weiteren Verlauf wird von Stückzahlen gesprochen, die an Eingängen, Ausgängen und Kanten anliegen. Diese beziehen sich stets auf Anteile der Stückzahl desselben Produkts, da die Begriffe eines Eingangs und eines Ausgangs eines Knotens nur innerhalb des Wertstromgraphen G WS,b eines Produkts b Gültigkeit besitzen. Bedingungen in Bezug auf die Variablen. Um die unterschiedlichen Verknüpfungen und Vereinigungen abzubilden, sind Bedingungen erforderlich, welche die Werte der Prozessstückzahlen beschränken. Grundsätzlich muss die Produktstruktur berücksichtigt werden, die festlegt, welche Stückzahlen zur Herstellung von übergeordneten Produkten benötigt werden. Betrachtet man die Wertstromgraphen G WS,b der Produkte b, muss eine Zuordnung von den Prozessstückzahlen xa am Ausgang der Quellen σb zu den Produktstückzahlen y b definiert werden. An Vereinigungen und an alternativen Flusspunkten müssen die eingehenden und ausgehenden Stückzahlen insgesamt stets gleich sein, bezeichnet als Flusserhalt. Da Ressourcen eine endliche Betriebsmittelzeit besitzen, müssen die Stückzahlen an den Eingängen in die Berechnung der Auslastung einfließen. Prozessmatrix P. Wie zuvor bereits angesprochen, muss eine Zuordnung zwischen dem Vektor y = [y 1 . . . yn ]⊤ der Produktstückzahlen y b und dem Vektor x = [x 1 . . . xm ]⊤ der Prozessstückzahlen xa hergestellt werden. Hierzu wird die Prozessmatrix P mit n Zeilen und m Spalten definiert. Eine Komponente P[b, a ] in Zeile b und Spalte a ist genau dann gleich eins, wenn die Prozessstückzahl xa am Ausgang der Quelle σb des Wertstromgraphen G WS,b von Produkt b anliegt. In diesem Fall entspricht die Prozessstückzahl xa der Produktstückzahl y b . In jedem anderen Fall existiert keine solche Zuordnung, und die Komponente P[b, a ] der Matrix ist entsprechend gleich null. Der Vektor y der Produktstückzahlen y b lässt sich nach dieser Festlegung als Ergebnis einer Matrixmultiplikation ausdrücken: y = Px. (4.1) 139 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Produktstrukturmatrix S. Die Matrix beschreibt die Zuordnung von Komponenten, d. h. von untergeordneten Produkten, zu übergeordneten Produkten und bildet damit die Strukturstückliste jedes Produkts ab. Zu diesem Zweck ist die Produktstrukturmatrix S als Matrix nichtnegativer reeller Komponenten in n Zeilen und n Spalten definiert. Die Komponente S[b, b ′ ] in Zeile b und Spalte b ′ drückt aus, dass ein Produkt b zu S[b, b ′ ] Stück in Produkt b ′ enthalten ist. Somit entspricht der Wert S[b, b ′ ] dem Stücklistenfaktor des gegebenen Produkts b im übergeordneten Produkt b ′. Die Information ist wichtig, um den Sekundärbedarf an Produkten zur Herstellung von übergeordneten Produkten zu bestimmen. Dieser resultiert aus der Matrixmultiplikation S y oder, nach Einsetzen der Prozessmatrix P aus Gleichung (4.1), dem Ausdruck S P x. Daraus folgt die Bedingung in Bezug auf die Produktstruktur, die besagt, dass die Stückzahlen der Produkte P x nicht kleiner als die Werte sein dürfen, die zur Deckung des Sekundärbedarfs notwendig sind: Produktstruktur: (I − S) P x 0. (4.2) Darüber hinaus können mit Hilfe der Produktstrukturmatrix S Zyklen in der Produktstruktur erkannt werden, wie nachfolgend gezeigt werden soll. Theorem 4.3: Zyklische Produktstruktur. Gegeben sei eine Zahl n von mindestens zwei Produkten und eine Produktstrukturmatrix S, wie oben definiert. Die Struktur eines Produkts b ist genau dann auf einer Stufe N zyklisch, wenn die Matrix SN in Zeile b und Spalte b einen positiven Wert enthält. Hierbei bezeichnet die Stufe N eine natürliche Zahl größer als null und kleiner als oder gleich n. Das heißt, die Produktstruktur ist im Allgemeinen zyklisch, wenn diese Bedingung für mindestens ein Produkt b und eine Stufe N erfüllt ist. Beweis. Im Fall einer Stufe N gleich eins ist das Theorem durch die Definition der Produktstrukturmatrix S erfüllt, sodass der Fall einer Stufe N größer als eins verbleibt. Zu diesem Zweck wird eine Folge von Produkten (b 1 , b 2 , . . . , bN , b 1 ) angenommen. Das Produkt b 1 sei in b 2 enthalten, das Produkt b 2 in b 3 usw. usf. Die Folge wird bis zum Produkt bN fortgesetzt, das wiederum im Produkt b 1 enthalten sein soll. Das heißt, die Produkte bilden einen Zyklus auf der Stufe N. Die Produktstruktur ist genau dann auf der Stufe N zyklisch, wenn mindestens eine solche Folge existiert. Formal lautet die Bedingung: ∃b 2 , . . . , bN ∈ {1, . . . , n} S[b 1 , b 2 ] 0 ∧ S[b 2 , b 3 ] 0∧... ∧ S[bN −1 , bN ] 0 ∧ S[bN , b 1 ] 0. (4.3) Da die Matrix S ausschließlich nichtnegative Komponenten enthält, liefert die Multiplikation der Komponenten genau dann ein positives Ergebnis, wenn jeder einzelne Wert größer als null ist. Auf dieser Basis lässt sich Gleichung (4.3) wie folgt umformulieren: ∃b 2 , . . . , bN ∈ {1, . . . , n} S[b 1 , b 2 ] S[b 2 , b 3 ] . . . S[bN −1 , bN ] S[bN , b 1 ] 0. (4.4) Ist eine Folge von Produkten (b 1 , b 2 , . . . , bN , b 1 ) gegeben, welche die Bedingung für einen Zyklus erfüllen, dann ist der obige Ausdruck größer als null. In jedem anderen Fall ist der 140 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Ausdruck gleich null. Daher muss genau dann eine solche Folge existieren, wenn die Summe über alle Folgen größer als null ist. Gleichung (4.4) ist somit äquivalent zu: " # n n n X X X 0. (4.5) ... S[b 1 , b 2 ] S[b 2 , b 3 ] . . . S[bN −1 , bN ] S[bN , b 1 ] bN =1 bN −1 =1 b 2 =1 Durch geeignetes Setzen der Klammern lässt sich Gleichung (4.5) unter Berücksichtigung der Laufvariablen in jeder Summe wie folgt darstellen: " # # # " " n n n X X X S[b 1 , b 2 ] S[b 2 , b 3 ] . . . S[bN −1 , bN ] S[bN , b 1 ] 0. (4.6) ... bN =1 bN −1 =1 b 2 =1 Wenn man die multiplizierten Ausdrücke S[b 1 , b 2 ] S[b 2 , b 3 ] über alle möglichen Produkte b 2 aufaddiert, entspricht das Ergebnis der Komponente S2 [b 1 , b 3 ] des Quadrats der Matrix S in Zeile b 1 und Spalte b 3 . Eingesetzt in Gleichung (4.6) folgt daraus: " " # # # " n n n X X X ... S2 [b 1 , b 3 ] S[b 3 , b 4 ] . . . S[bN −1 , bN ] S[bN , b 1 ] 0. (4.7) bN =1 bN −1 =1 b 3 =1 Analog lässt sich dies bis zur Potenz N − 2 fortsetzen. Die Summen werden schrittweise von innen nach außen aufgelöst, sodass der folgende Ausdruck verbleibt: " # # " n n X X SN −2 [b 1 , bN −1 ] S[bN −1 , bN ] S[bN , b 1 ] 0. (4.8) bN =1 bN −1 =1 Die Ersetzung der letzten zwei Summen liefert schließlich den gesuchten Ausdruck, welcher nur noch vom Produkt b 1 und der Stufe N abhängig ist: " # n X 0. (4.9) SN −1 [b 1 , bN ] S[bN , b 1 ] bN =1 Daraus folgt: SN [b 1 , b 1 ] 0. (4.10) Das heißt, die Produktstruktur ist gemäß der Matrix S genau dann zyklisch, wenn mindestens ein Produkt b 1 auf einer Stufe N die zu zeigende Bedingung erfüllt. Vereinigungsmatrix U. Wenn sich im Wertstromgraphen G WS,b eines Produkts b Kanten an einem Eingang eines Knotens vereinigen, dann muss, wie oben erläutert, eine neue Prozessstückzahl xa ′ erzeugt werden. Diese Information wird durch die Vereinigungsmatrix U abgebildet, die als Matrix mit reellen Komponenten in m Zeilen und m Spalten definiert ist. Die Komponenten U[a ′, a ] in den Zeilen a ′ und den Spalten a sind entweder gleich minus eins oder nicht negativ und höchstens gleich eins. Ist der Wert in einer Zeile a ′ und einer entsprechenden Spalte gleich minus eins, dann drückt dies aus, dass die Prozessstückzahl xa ′ als Folge sich vereinigender Kanten an einem Eingang eines Knotens erzeugt wird. Jede 141 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Zeile, die nicht dem Nullvektor entspricht, repräsentiert somit eine Vereinigung von Kanten. Die Werte in der Zeile a ′ und den verbleibenden Spalten a geben jeweils den relativen Anteil der Prozessstückzahl xa an, welcher insgesamt an den sich vereinigenden Kanten anliegt. Bezüglich der Notation wird für die Zeile a ′ die Kennzeichnung mit einem Akzent gewählt, da es sich um eine neue Prozessstückzahl xa ′ handelt. Die Vereinigungsmatrix U wird als Hilfsmatrix genutzt, um die Komponenten der Flussmatrix F zu bestimmen. Der erste Teil des Flusserhalts, welcher unter Verwendung der Vereinigungsmatrix U formuliert wird, betrifft die Stückzahlen vor und nach Vereinigungen von Kanten. Demnach muss die Summe der Stückzahlen an sich vereinigenden Kanten stets mit der Stückzahl nach der Vereinigung übereinstimmen. Wird eine Prozessstückzahl xa ′ durch eine Vereinigung erzeugt, muss das Ergebnis der Matrixmultiplikation U[a ′,∗] x entsprechend gleich null sein, wobei der Ausdruck U[a ′,∗] den Vektor an Zeile a ′ der Matrix bezeichnet. Betrachtet man alle Prozessstückzahlen xa ′ , welche durch Vereinigungen erzeugt werden, muss daher für den Vektor x gelten: Ux = 0. (4.11) Eingangsmatrizen Qein,bv und Ausgangsmatrizen Qaus,bv . Die Matrizen bilden die Information ab, welche Anteile der Stückzahl y b eines Produkts b an den Eingängen bzw. den Ausgängen eines Knotens v im Wertstromgraphen G WS,b anliegen. Hierzu sind die Eingangsmatrizen Qein,bv als Matrizen nichtnegativer reeller Komponenten in einer beliebigen Zahl von Zeilen und m Spalten definiert. Die Komponente Qein,bv [i, a ] in Zeile i und Spalte a drückt dabei aus, dass der Anteil Qein,bv [i, a ] xa der Produktstückzahl y b den Eingang i des Knotens v durchläuft. In den Wertstromgraphen G WS,b ist jedem Knoten v der Menge V WS,b außer der Quelle σb und der Senke τb eine solche Matrix zugeordnet. Jede Zeile i der Matrix entspricht genau einem Eingang des betreffenden Knotens v. Analog dazu sind die Ausgangsmatrizen Qaus,bv als Matrizen mit nichtnegativen reellen Komponenten in einer beliebigen Zahl von Zeilen und m Spalten definiert. In diesem Fall lautet die Festlegung, dass der Anteil Qaus,bv [ j, a ] xa der Produktstückzahl y b den Ausgang j des Knotens v durchläuft. Das heißt, jede Zeile j entspricht genau einem Ausgang des jeweils bezeichneten Knotens v. Im Gegensatz zu den vorigen werden die Ausgangsmatrizen Qaus,bv nur für die alternativen Flusspunkte DAL,b benötigt. Der Stückzahlanteil eines Produkts b, welcher an einem Eingang i bzw. Ausgang j anliegt, lässt sich auch ohne explizite Definition des Index a der betreffenden Prozessstückzahl xa bestimmen. Da die Komponenten der Matrizen in allen anderen Spalten definitionsgemäß gleich null sind, ist die Stückzahl an Eingang i bzw. an Ausgang j das Ergebnis der Matrixmultiplikation Qein,bv [i,∗] x bzw. Qaus,bv [ j,∗] x. Dabei bezeichnet der Ausdruck Qein,bv [i,∗] bzw. Qaus,bv [ j,∗] den Vektor an Zeile i bzw. an Zeile j der jeweiligen Matrix. Die Matrizen werden als Hilfsmatrizen benötigt, um die Flussmatrix F, die Auslastungsmatrix L und die Investitionsmatrix L Invest zu bestimmen. Zunächst lässt sich mit ihrer Hilfe der zweite Teil der Bedingung des Flusserhalts formulieren, der sich auf die Stückzahlen an den Eingängen und Ausgängen der alternativen Flusspunkte DAL,b bezieht. Demnach muss die Stückzahl am Eingang solcher Knoten der Summe der Stückzahlen an den Ausgängen entsprechen. Indem man durch die Multiplikation mit einem vorangestellten transponierten 142 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Einsvektor die Stückzahlen Qaus,bv [ j,∗] x an allen Ausgängen j addiert, muss jeweils für alle alternativen Flusspunkte v in den Wertstromgraphen G WS,b gelten: ∀b ∈ {1, . . . , n} ∀v ∈ DAL,b £ ¤ Qein,bv − 1⊤ Qaus,bv x = 0 . (4.12) Flussmatrix F. Die Vereinigungsmatrix U, die Mengen der Eingangsmatrizen {Qein,bv } und die Mengen der Ausgangsmatrizen {Qaus,bv } werden zur Flussmatrix F zusammengeführt. Sowohl an Vereinigungen von Kanten als auch an alternativen Flusspunkten muss der Flusserhalt gelten, wie weiter oben in Gleichung (4.11) bzw. (4.12) definiert. Auf dieser Grundlage wird die Flussmatrix F gebildet, indem die Koeffizienten der einzelnen Bedingungen fortlaufend in jeweils einer neuen Zeile ergänzt werden. Jede Zeile der Matrix drückt folglich die Differenz der Stückzahlen vor und nach einer Vereinigung oder am Eingang und an den Ausgängen eines alternativen Flusspunkts aus. Der Flusserhalt ist genau dann gewährleistet, wenn für einen Vektor x von Prozessstückzahlen xa gilt: Flusserhalt: Fx = 0. (4.13) Auslastungsmatrix L und Investitionsmatrix L Invest . Mit den Eingangsmatrizen Qein,bv , welche die Stückzahlen an den Eingängen eines Knotens angeben, den effektiven Taktzeiten t eff an jedem Eingang einer Ressource und der Betriebsmittelzeit TBM ist es möglich, die Auslastung der genutzten Ressourcen zur Herstellung der Produktstückzahlen y b ermitteln. Hierzu sind die Auslastungsmatrix L und die Investitionsmatrix L Invest als Matrizen mit nichtnegativen reellen Komponenten in einer beliebigen Zahl von Zeilen und m Spalten definiert. Jede Zeile i der Matrizen ist genau einer Ressource zugeordnet. Gemäß dieser Zuordnung entspricht das Ergebnis der Matrixmultiplikation L[i,∗] x bzw. L Invest [i,∗] x der Auslastung u r (x) der Ressource an der gegebenen Zeile i. Hierbei bezeichnet der Ausdruck L[i,∗] bzw. L Invest [i,∗] den Vektor an Zeile i der jeweiligen Matrix. Damit kann die Bedingung in Bezug auf die Auslastung formuliert werden, welche den Vektor x der Prozessstückzahlen xa begrenzt. Die Schranke ist vom Planungsziel abhängig und im Fall der Suche maximaler Kapazitäten gleich eins, sodass formal gilt: Auslastung: Lx 1. (4.14) Die Auslastungsmatrix L unterscheidet sich von der Investitionsmatrix L Invest dahingehend, dass erstere sämtliche Eingänge an einer Ressource berücksichtigt. Letztere bezieht dagegen nur solche Eingänge ein, die nicht erreichbar sind, indem man an jedem alternativen Flusspunkt stets die erste ausgehende Kante weiterverfolgt. Hintergrund ist, dass all diejenigen Eingänge, welche nach den ersten ausgehenden Kanten folgen, Prozessschritte repräsentieren, die zu einer Überlastung von Ressourcen führen dürfen. Durch geeignete Priorisierung ausgehender Kanten an alternativen Flusspunkten legt der Anwender fest, welche Ressourcen im Bedarfsfall überlastet werden sollen. Anschaulich gesprochen, ist der Weg entlang der ersten ausgehenden Kanten alternativer Flusspunkte in einem Wertstromgraphen G WS,b von der Quelle σb bis zur Senke τb der Weg, welcher immer dann genutzt werden soll, sofern die vorhandenen Kapazitäten nicht ausreichen. 143 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Um dies umzusetzen, muss eine Bedingung formuliert werden, nach der nur diejenigen Prozessschritte genutzt werden sollen, welche eine Überlastung der jeweiligen Ressource bewirken dürfen. Die entsprechende Bedingung wird angewandt, um für die Minimierung der Überlastung eine initiale Lösung x der Prozessstückzahlen xa zu bestimmen, und wird im nächsten Kapitel aufgegriffen. Diese lautet: L Invest x = 0 . (4.15) MaxFolge der Prozessstückzahlen xa . Falls die Möglichkeit besteht, verschiedene Ressourcen zu nutzen, muss der Anwender eine Festlegung treffen, welche dieser Ressourcen bevorzugt ausgelastet werden sollen. Hierzu definiert der Anwender für alle ausgehenden Kanten alternativer Flusspunkte entsprechende Prioritäten. Damit ist jedoch nur eine Ordnung zwischen den Prozessstückzahlen hergestellt, die an den ausgehenden Kanten eines alternativen Flusspunkts anliegen. Um eine vollständige Ordnung aller Prozessstückzahlen zu definieren, wird zusätzlich die Information einbezogen, von welcher ausgehenden Kante eines alternativen Flusspunkts die nachfolgenden Knoten erreichbar sind. Wenn zwei Eingänge eines oder zweier verschiedener Knoten betrachtet werden, in beiden Fällen der Weg von der Quelle über denselben alternativen Flusspunkt führt und im ersten Fall eine ausgehende Kante mit höherer Priorität beschritten wird, dann muss die Prozessstückzahl am erstgenannten Eingang in der Sortierung vor jener am zweiten Eingang folgen. Diese Information kann gewonnen werden, indem ausgehend von der Quelle σb in jedem Wertstromgraphen G WS,b eine Tiefensuche durchgeführt wird, in deren Verlauf die jeweils höher priorisierten Ausgänge alternativer Flusspunkte zuerst beschritten werden. In der daraus resultierenden Sortierung werden die Indizes a der Prozessstückzahlen xa in die MaxFolge (a 1 , a 2 , . . . ) eingefügt. Die Elemente der Folge bilden in ihrer Gesamtheit eine Teilmenge aller Indizes a. Die Sortierung wird genutzt, um die Prozessstückzahlen iterativ zu maximieren und dadurch die Auslastung gemäß dem entsprechenden Planungsziel zu optimieren, wie im nächsten Kapitel vertieft wird. Durch die Transformation eines gegebenen grafischen Modells {G WS,b } in ein mathematisches Modell (P, S, F, L, L Invest ) bleiben somit alle Elemente und die Beziehungen zwischen diesen Elementen erhalten. Die Matrizen drücken Bedingungen aus, welche den Vektor x der Prozessstückzahlen xa beschränken. Dies betrifft die Zuordnung zu den Produktstückzahlen y b sowie die Bedingungen in Bezug auf die Produktstruktur, den Flusserhalt und die Auslastung. Die MaxFolge entspricht der Reihenfolge, in welcher die Prozessstückzahlen xa laut der Festlegung des Anwenders priorisiert werden müssen. Illustratives Beispiel. Um die Definition der Matrizen und der MaxFolge zu veranschaulichen, sollen die Werte für das Beispiel in Abbildung 4.13 bestimmt werden. Gegeben ist ein grafisches Modell {G WS,b } für zwei Produkte, deren Wertstromgraphen auf den Beispielen AL2 bzw. SL2 aus Abschnitt 2.5 basieren. Es ist das mathematische Modell (P, S, F, L, L Invest ) gesucht, welches dem grafischen Modell entspricht. Aus der Zahl der Produkte folgt ein Vektor y = [y 1 y 2 ]⊤ von zwei Produktstückzahlen y b . Nach Traversierung der Wertstromgraphen G WS,b steht fest, dass ein Vektor x = [x 1 . . . x 7 ]⊤ von sieben Prozessstückzahlen xa 144 4.4 Transformation eines grafischen Modells in ein mathematisches Modell nötig ist, um die Stückzahlverteilung in den Wertströmen abzubilden. Zunächst werden den Produktstückzahlen y b die Prozessstückzahlen xa zugeordnet, die im Wertstromgraphen G WS,b des jeweiligen Produkts b an der Quelle σb anliegen: y 1 = x1 , y 2 = x5 . (4.16a, 4.16b) Die Zuordnung der Prozessstückzahlen xa aus Gleichung (4.16a, 4.16b) lässt sich mit Hilfe einer entsprechenden Prozessmatrix P wie folgt ausdrücken: · ¸ 1 0 0 0 0 0 0 y= x = Px. 0 0 0 0 1 0 0 (4.17) In dem Beispiel seien jeweils zwei Stück des ersten Produkts zur Herstellung des zweiten Produkts erforderlich. Zur Deckung des Sekundärbedarfs muss gelten: y1 2 y2 . (4.18) Durch Formulierung einer geeigneten Produktstrukturmatrix S kann Gleichung (4.18) als Ergebnis einer Matrixmultiplikation dargestellt werden: ¸ · 0 2 y y = S y. 0 0 (4.19) Damit richtet sich der Blick auf die Verteilung der Produktstückzahlen y b . Die Transformation des grafischen Modells {G WS,b } führt zu der in Abbildung 4.13 dargestellten Zuordnung von Prozessstückzahlen xa und Koeffizienten q zu den Eingängen und Ausgängen der Knoten V WS,b . Die Eingangsmatrizen Qein,1,v und Ausgangsmatrizen Qaus,1,v der Knoten v im Wertstromgraphen G WS,1 des ersten Produkts lauten wie folgt: £ Qein,1,v 1 = 1 0 0 0 · 0 Qaus,1,v 1 = 0 · 0 1 0 0 Qein,1,r 1 = 0 0 0 1 £ Qein,1,r 2 = 0 0 1 0 ¤ 0 0 0 , ¸ 1 0 0 0 0 0 , 0 1 0 0 0 0 ¸ 0 0 0 , 0 0 0 ¤ 0 0 0 . (4.20) (4.21) (4.22) (4.23) Die Eingangsmatrizen Qein,2,v und Ausgangsmatrizen Qaus,2,v der Knoten v im Wertstromgraphen G WS,2 des zweiten Produkts nehmen die folgenden Werte an: £ Qein,2,v 2 = 0 0 0 0 £ Qein,2,v 3 = 0 0 0 0 · 0 Qaus,2,v 3 = 0 ¤ 0 0 , ¤ 0,8 0 0 , 1 ¸ 0 0 0 0 1 0 , 0 0 0 0 0 1 (4.24) (4.25) (4.26) 145 4 Lösungsschritt I: grafische Modellierung und Modelltransformation ¤ 1 0 , £ Qein,2,r 3 = 0 0 0 0 0 (4.27) ¸ · 0 0 0 0 0,2 0 0 . Qein,2,r 4 = 0 0 0 0 0 0 1 (4.28) Im Wertstromgraphen G WS,1 werden die beiden Kanten, die von den Ressourcen r 1/2 ausgehen, vor dem zweiten Eingang der Ressource r 1 vereinigt. Vor der Vereinigung liegen an den zwei Kanten die Prozessstückzahlen x 2/3 an, nach der Vereinigung vor dem Eingang die Prozessstückzahl x 4 . Um den Flusserhalt zu gewährleisten, muss gelten: x2 + x3 − x4 = 0 . (4.29) Die Bedingung in Gleichung (4.29) lässt sich durch geeignete Formulierung einer Vereinigungsmatrix U wie unten angegeben ausdrücken. Die Nullzeilen sind dadurch zu erklären, dass nach Erzeugung einer Prozessstückzahl xa ′ an einer Vereinigung von Kanten die Bedingung in der Zeile a ′ ergänzt wird. Auf diese Weise kann mit dem Index a ′ der Prozessstückzahl die zugehörige Zeile wiedergefunden werden. Damit gilt:  0 0 U x = 0 0 0 0 0 1 0 0 0 0 0 0 1 −1 0 0 0 0 0 0 0 0  0 0 x = 0. 0 0 (4.30) Der Flusserhalt muss zudem an allen alternativen Flusspunkten DAL,b gelten. Die Bedingungen sind für die Knoten v 1/3 nachfolgend angegeben. Die Indizes a der Prozessstückzahlen xa und die Koeffizienten q stammen aus den obigen Eingangsmatrizen Qein,bv und Ausgangsmatrizen Qaus,bv . Diese führen zu folgendem Ergebnis: x1 − x2 − x3 = 0 , 0,8 x 5 − x 6 − x 7 = 0 . (4.31a, 4.31b) Die Zusammenfassung von Gleichung (4.30) sowie von Gleichung (4.31a, 4.31b) liefert die Bedingung in Bezug auf den Flusserhalt. Diese lässt sich mit Hilfe einer entsprechenden Flussmatrix F in dem Beispiel folgendermaßen darstellen:   0 1 1 −1 0 0 0 F x = 1 −1 −1 0 0 0 0 x = 0 . 0 0 0 0 0,8 −1 −1 (4.32) Die Stückzahlen werden durch die endliche Auslastung der MAEs begrenzt. Die Schranke ist vom Planungsziel abhängig und im Fall der Maximierung der Kapazitäten gleich eins. Bezüglich der effektiven Taktzeiten t eff und Betriebsmittelzeiten TBM werden Indizes gewählt, welche den Bezeichnungen in den Beispielen AL2 und SL2 aus Abschnitt 2.5 entsprechen. Damit gilt für die Auslastung u r (x) der vier MAEs jeweils die Bedingung: u r 1(x) = 146 t eff,1A TBM,1 x2 + t eff,2 TBM,1 x4 1, (4.33) 4.4 Transformation eines grafischen Modells in ein mathematisches Modell t eff,1B u r 2(x) = u r 3(x) = u r 4(x) = 0,2 TBM,2 t eff,3HA TBM,3 t eff,3L TBM,4 x5 + x3 1, (4.34) x6 1, (4.35) t eff,3HB TBM,4 x7 1. (4.36) Die obigen Bedingungen aus Gleichung (4.33) bis (4.36) können wie die vorigen als Ergebnis einer Matrixmultiplikation dargestellt werden. Hierzu werden die effektiven Taktzeiten t eff und die Stückzahlen an den Eingängen aller Ressourcen mit den jeweiligen Betriebsmittelzeiten TBM in Beziehung gesetzt, um eine entsprechende Auslastungsmatrix L zu formulieren. Daraus folgt die Bedingung in Bezug auf die Auslastung:  0   0  L x = 0   0 t eff,1A TBM,1 0 0 0 t eff,2 0 0 0 0 0 0 0 0 0 0 TBM,1 t eff,1B TBM,2 0 0 0 0,2 t eff,3L TBM,4 t eff,3HA TBM,3 0 t eff,3HB 0 TBM,4      x    1. (4.37) Die Investitionsmatrix L Invest entspricht der Auslastungsmatrix L aus Gleichung (4.37), wobei Eingänge von Ressourcen, die nach den ersten Ausgängen alternativer Flusspunkte folgen, unberücksichtigt bleiben. Um nur Prozessschritte zu nutzen, die gemäß der Festlegung des Anwenders zu einer Überlastung von Ressourcen führen dürfen, muss der Ausdruck L Invest x gleich null sein. In dem vorliegenden Beispiel lautet die Bedingung:  0   0  L Invest x =  0   0 0 0 0 t eff,1B TBM,2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t eff,3HB TBM,4      x = 0.    (4.38) Abschließend wird die MaxFolge bestimmt. Sofern zuerst der Wertstromgraph G WS,1 transformiert wird und alle Ausgänge der zwei alternativen Flusspunkte v 1/3 berücksichtigt werden, entspricht die MaxFolge der Folge (2, 3, 6, 7). Gemäß der Sortierung der Indizes a, welche die Priorisierung des Anwenders abbildet, müssen die jeweiligen Prozessstückzahlen xa iterativ maximiert werden, um die Auslastung zu optimieren. Nachtrag zur Eindeutigkeit der Priorisierung. An Ausgängen alternativer Flusspunkte entstehen Prozessstückzahlen, welche durch die Sortierung der ausgehenden Kanten priorisiert werden. Um eine Ordnung zwischen allen Prozessstückzahlen herzustellen, wird zusätzlich berücksichtigt, welche ausgehenden Kanten an alternativen Flusspunkten von der Quelle 147 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Index Definition Stückzahlverteilung x1 (1) (2) (3) (4) (5) max x 2 : x © 0 ∧ P x = yplan ∧ ª 1 Fx = 0∧Lx .. . © max x 5 : x 0 ∧ P x = yplan ∧ ª 1 Fx = 0∧Lx x2 200 200 200 y 0 100 100 200 0,00 1,00 1,00 1,00 1,00 25 50 75 75 100 50 100 25 100 200 200 200 0,25 0,50 0,75 1,00 1,00 1,00 0,75 0,50 0,25 1,00 1,00 1,00 1,00 1,00 1,00 200 0 100 100 100 0 100 200 1,00 1,00 0,00 1,00 1,00 75 50 25 x4 0 100 25 100 50 100 75 100 x5 x6 u r 1 (x) u r 2 (x) u r 3 (x) u r 4 (x) u r 5 (x) x7 200 100 x3 Auslastung Tabelle 4.3: Lösungen im Fall mehrdeutiger Priorisierung (Beispiel). Dargestellt sind mögliche Lösungen für den Wertstromgraphen in Abbildung 4.14. Die Taktzeiten und Betriebsmittelzeiten seien in einer Weise vorgegeben, dass die Auslastung jeder Ressource bei einer Stückzahl von 100 den Wert eins erreicht. Die Lösungen (1) und (5) repräsentieren jeweils den Fall, dass die Prozessstückzahl x 2 bzw. x 5 maximal ist. Die Zwischenlösungen folgen daraus, dass die Steigerung einer der zwei Prozessstückzahlen die Reduktion der jeweils anderen erfordert. bis zum aktuellen Knoten führen. Das Ergebnis liegt in Gestalt der MaxFolge vor, welche die Indizes a der Prozessstückzahlen xa in der entsprechenden Reihenfolge enthält. Es lassen sich jedoch Fälle konstruieren, in denen die definierte Ordnung nicht eindeutig ist. Hierzu müssen selektive und alternative Flusspunkte miteinander verkettet werden und die jeweils ausgehenden Kanten zu verschiedenen Eingängen derselben Ressource führen. Das heißt, in einem Wertstrom müssen verschiedene Prozessschritte, denen dieselbe MAE zugeordnet ist, durch rekursive Verkettung selektiv und alternativ miteinander verknüpft sein. Einen entsprechenden Fall zeigt Abbildung 4.14. In einem solchen Fall ist die Ordnung zweier oder mehrerer Prozessstückzahlen davon abhängig, welche ausgehende Kante eines selektiven Flusspunkts zuerst weiterverfolgt wird. Diese Entscheidung beeinflusst wiederum die Auslastung der MAEs, wie Tabelle 4.3 für den gegebenen Fall zeigt. Jedoch wurde darauf verzichtet, das grafische Modell dahingehend zu erweitern, dass an ausgehenden Kanten selektiver Flusspunkte nicht nur Quoten, sondern auch Prioritäten ergänzt werden müssen. Hierfür existieren drei Gründe: (1) Die Komplexität des Modells würde gesteigert werden, da den Anwendern die Notwendigkeit einer Priorisierung vermittelt werden müsste, obgleich die Stückzahlen an den ausgehenden Kanten durch die vorgegebenen Quoten unveränderlich sind. (2) Solange die ausgehenden Kanten eines Knotens in einer Liste und nicht in einer Menge verwaltet werden, ist sichergestellt, dass stets dasselbe Ergebnis erzielt wird, auch wenn die Sortierung der Liste für den Anwender nicht sichtbar ist. (3) Entsprechende Fälle verketteter Verknüpfungen sind im Zuge der Einführung der Software AURELIE bei der Bosch Rexroth AG nicht aufgetreten, auch nicht im Fall besonders komplexer Wertströme mit einer großen Zahl von Prozessschritten und MAEs. Der letzte Punkt unterstreicht, dass es sich um eine rein theoretische Unvollständigkeit des grafischen Modells handelt, die in der Praxis keine Relevanz besitzt. 148 4.4 Transformation eines grafischen Modells in ein mathematisches Modell O 1 x2 80 % v3 x2 1 0,8 x 5 x4 3 x6 x7 x5 x1 I I 1 v2 v1 O 2 0,2 x 5 x3 4 2 x3 2 20 % (a) Produkt 1 (vgl. Beispiel AL2) (b) Produkt 2 (vgl. Beispiel SL2) Abbildung 4.13: Variablen als Ergebnis einer Modelltransformation (Beispiel). Nachdem ein grafisches Modell validiert wurde, kann dieses in ein mathematisches Modell transformiert werden, das sich zur Optimierung eignet. Hierzu werden jedem Eingang und jedem Ausgang eines Knotens eine Prozessstückzahl und ein Koeffizient zugeordnet, die jeweils einem Anteil der Produktstückzahl entsprechen. Das Ergebnis dieser Zuordnung ist für ein exemplarisches grafisches Modell dargestellt, das aus je einem Wertstromgraphen für zwei Produkte zusammengesetzt ist. 2 x3 1 x3 50 % x4 v2 0,5 x 1 I x5 x2 x1 2 1 v1 4 O x2 0,5 x 1 v3 1 x5 50 % x7 5 x6 2 3 x6 Abbildung 4.14: Mehrdeutige Priorisierung als Folge verketteter Verknüpfungen (Beispiel). Im Regelfall ist durch Priorisierung der Ausgänge alternativer Flusspunkte gewährleistet, dass eine eindeutige Lösung existiert, welche den geplanten Produktstückzahlen entspricht. Überlagern sich verkettet verknüpfte Prozessschritte, genügen die Prioritäten nicht immer, um eine Ordnung zwischen allen Prozessstückzahlen abzuleiten. Einen solchen, konstruierten Fall zeigt das Beispiel. 149 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.4.2 Ziel, Grundidee und Datenstrukturen Das Ziel der Transformation besteht darin, ein vom Anwender erstelltes grafisches Modell {G WS,b } in ein entsprechendes mathematisches Modell (P, S, F, L, L Invest ) umzuwandeln, das sich zur Optimierung eignet. Zudem soll die MaxFolge mit den Indizes a der zu priorisierenden Prozessstückzahlen xa bestimmt werden. Danach ist es möglich, das mathematische Modell zu nutzen, um mittels exakter Verfahren die Optima der definierten Planungsziele zu suchen. Wie die zuvor erläuterte Validierung basiert auch die Transformation in ihrem Ablauf auf einer Tiefensuche in den Wertstromgraphen G WS,b . Ziel und Vorbedingungen. Konkret ist es das Ziel, die zu Beginn des Abschnitts eingeführten Matrizen und Folgen zu ermitteln: die Prozessmatrix P, die Flussmatrix F, die Auslastungsmatrix L, die Investitionsmatrix L Invest und die MaxFolge der Prozessstückzahlen xa . Die Produktstrukturmatrix S ist vorgegeben und wird folglich nicht durch den Algorithmus bestimmt. Zur Ausführung des Algorithmus existieren zwei Vorbedingungen: V1 Es müssen sämtliche Vorbedingungen erfüllt sein, die bereits im Hinblick auf die Validierung für Algorithmus 4.2 galten. Dies betrifft sowohl die Verknüpfung der grafischen Modellelemente als auch die Ergänzung der Knoten um effektive Taktzeiten t eff , Betriebsmittelzeiten TBM , Prioritäten und Quoten. V2 Das gegebene grafische Modell {G WS,b } muss vor der Transformation in ein mathematisches Modell (P, S, F, L, L Invest ) erfolgreich validiert worden sein. Entsprechend wird vorausgesetzt, dass alle notwendigen Kanten zur Verbindung der Knoten vorliegen und die Wertstromgraphen G WS,b keine unendlichen Zyklen besitzen. Grundidee zum Ablauf. Analog zu dem Vorgehen, welches bereits für die Validierung eines grafischen Modells {G WS,b } Anwendung fand, erfolgt die Beschreibung des Algorithmus für dessen Transformation in zwei Stufen. Zuerst soll an einem einführenden, einfachen Algorithmus 4.3 die Traversierung aller Knoten eines grafischen Modells {G WS,b } erläutert werden, wobei die gesuchten Matrizen und Folgen noch nicht bestimmt werden. Danach wird der Algorithmus 4.4 zur Transformation des grafischen Modells {G WS,b } vorgestellt. Hierzu wird der erstgenannte Algorithmus erweitert, um im Zuge der Traversierung alle notwendigen Informationen aus dem grafischen Modell {G WS,b } zu extrahieren. Wie im vorigen Abschnitt wird eine kurz gefasste Form der Beschreibung in natürlicher Sprache gewählt. Die Langfassungen sind einschließlich aller verwendeten Datenstrukturen als Algorithmus A.1.7 bzw. A.1.8 im Anhang zu finden. Diese sind in formalem, kommentiertem Pseudocode erstellt und geben den Ablauf detailliert wieder. Zur Transformation eines gegebenen grafischen Modells {G WS,b } müssen alle Wertstromgraphen G WS,b traversiert werden. Um eine vollständige Ordnung zwischen den Prozessstückzahlen an den ausgehenden Kanten alternativer Flusspunkte herzustellen, basiert der Algorithmus auf einer Tiefensuche. Im Unterschied zur Validierung werden nicht die Kanten, sondern die Eingänge i aller Knoten V WS,b traversiert, da es das Ziel ist, diesen jeweils eine Prozessstückzahl xa und einen Koeffizienten q zuzuordnen. An alternativen und selektiven 150 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Flusspunkten werden alle ausgehenden Kanten weiterverfolgt, wobei an alternativen Flusspunkten Kanten mit höherer Priorität zuerst beschritten werden. Die Traversierung beginnt in jedem Wertstromgraphen G WS,b bei der Quelle σb und endet, wenn kein weiterer Eingang eines Knotens zu besuchen ist. Abbildung 4.15 zeigt an einem Beispiel den Ablauf und die Zuordnung von Prozessstückzahlen und Koeffizienten in jedem Schritt. Es ist jedoch möglich, dass ein Eingang i eines Knotens v bereits besucht wurde, nun aber erstmalig erreicht wird, indem ein Weg entlang der ersten ausgehenden Kanten alternativer Flusspunkte fortgesetzt wird. Dann muss die Information gewonnen werden, welche der nachfolgenden Eingänge i ′ von Knoten v ′ ebenfalls auf einem solchen Weg von der Quelle σb bis zur Senke τb liegen. Hintergrund ist, dass diese Eingänge Prozessschritte repräsentieren, die eine Überlastung der zugeordneten Ressourcen verursachen dürfen. Aus diesem Grund wird jeder Eingang ggf. mehr als einmal besucht. Die nachfolgenden Kanten jedes Eingangs werden mindestens einmal, höchstens aber zweimal weiterverfolgt, und die Traversierung verläuft entsprechend in zwei Modi: (1) einem Entdeckungsmodus, in welchem ein Eingang eines Knotens erstmalig besucht wird und welcher dazu dient, die definierten Matrizen und Folgen zu bestimmen, und (2) einem Investitionsmodus, in welchem ein Eingang wiederholt besucht wird, um die Information zu gewinnen, welche nachfolgenden Eingänge von Knoten in dem Wertstromgraphen G WS,b ausgehend von der Quelle σb jeweils entlang der ersten ausgehenden Kanten alternativer Flusspunkte DAL,b erreicht werden können. Im Weiteren werden die Datenstrukturen erläutert, die zur Verwaltung der zu besuchenden Eingänge von Knoten und zur Bestimmung der Ergebnisse dienen. Datenstrukturen. Der Algorithmus 4.3 zur Traversierung der Knoten und der Algorithmus 4.4 zur Transformation eines grafischen Modells {G WS,b } basieren wie die Validierung auf einer Tiefensuche. Der Grund hierfür ist, dass die Reihenfolge entscheidend ist, in welcher die alternativen Flusspunkte ausgehend von der Quelle erreicht werden, um eine vollständige Ordnung der Prozessstückzahlen herzustellen. Folglich wird wie schon zuvor ein Stapel eingesetzt, um die als Nächstes zu besuchenden Elemente zu verwalten. Jedes dieser Elemente bezeichnet nun allerdings, wie oben erläutert, ein Paar (v, i ) aus einem Eingang i eines Knotens v. Im Fall des Algorithmus 4.4 wird zudem die Information benötigt, welche Prozessstückzahl xa und welcher Koeffizient q diesem Eingang des Knotens zuzuordnen sind. Somit wird das Paar (v, i ) zu einem Tupel (v, i, a, q) erweitert. Für den Algorithmus 4.4 zur Transformation eines grafischen Modells {G WS,b } werden neben den Skalaren, Vektoren und Matrizen weitere Datenstrukturen benötigt. Die Ordnung der Prozessstückzahlen xa wird dadurch abgebildet, dass deren Indizes a in der Reihenfolge ihrer Erzeugung in die MaxFolge aufgenommen werden. Bei der MaxFolge handelt es sich um eine linear verkettete Liste, die nach dem FIFO-Prinzip verwaltet wird. Das heißt, zuerst hinzugefügte Elemente werden entsprechend auch zuerst entfernt und zurückgegeben. Durch sukzessives Entfernen der Indizes a aus der MaxFolge kann damit die Ordnung der Prozessstückzahlen xa rekonstruiert werden. Des Weiteren muss die Information gespeichert werden, dass ein Eingang i eines Knotens v dadurch erreicht wurde, dass stets die erste ausgehende Kante an jedem alternativen Flusspunkt weiterverfolgt wurde. Sofern der Knoten eine Ressource bezeichnet, entspricht 151 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 50 % 1 v2 x2 1 x2 x3 0,5 x 1 2 Schritt 1: I 2 x1 3 x4 v1 1 0,5 x 1 4 O 4 O 4 O 4 O 5 v3 50 % 2 50 % 1 v2 6 x2 x3 0,5 x 1 2 Schritt 2: I 1 x3 2 x1 x5 v1 1 0,5 x 1 x2 3 x5 / 5 v3 50 % 2 50 % 1 v2 6 x2 x3 0,5 x 1 2 Schritt 3: I 1 x3 2 x1 / v1 1 0,5 x 1 x2 5 3 x5 x4 x6 x6 v3 50 % 2 x7 50 % 1 v2 x2 x3 0,5 x 1 2 Schritt 4: I 6 1 x3 2 x1 x5 v1 1 0,5 x 1 x2 5 3 x5 / x6 x6 v3 50 % 2 x7 6 x7 Abbildung 4.15: Schrittfolge der Transformation eines Wertstromgraphen (Beispiel). Grundsätzlich entspricht der Ablauf der Tiefensuche, da zuerst ein Weg von der Quelle bis zur Senke gesucht wird, wobei die Kante zur Senke ausgenommen ist. Eine nachfolgende Kante eines Eingangs wird nur dann beschritten, wenn der Eingang zuvor noch nicht besucht wurde oder erstmalig ein Weg fortgesetzt wird, welcher die erste ausgehende Kante jedes alternativen Flusspunkts weiterführt. Dadurch kann ermittelt werden, welche Eingänge entlang der ersten Prioritäten erreichbar sind. 152 4.4 Transformation eines grafischen Modells in ein mathematisches Modell ein solcher Eingang einem Prozessschritt, der zu einer Überlastung führen darf. Eingänge von Knoten, auf welche die genannte Bedingung zutrifft, werden in der InvestMenge verwaltet. Die Menge wird zum Abschluss des Algorithmus genutzt, um die Werte der Investitionsmatrix L Invest zu bestimmen. Diese Matrix unterscheidet sich von der Auslastungsmatrix L dahingehend, dass Eingänge aus der InvestMenge nicht berücksichtigt werden. Jedes Element der InvestMenge ist ein Tupel (b, v, i ) aus einem Produkt b, einem Knoten v und einem Eingang i. Im Gegensatz zum Stapel ist es notwendig, den Index b des Produkts zu ergänzen, da der Stapel für jeden Wertstromgraphen G WS,b initialisiert, verwaltet und vollständig abgebaut wird. Die InvestMenge wird dagegen im Verlauf des Algorithmus erweitert und erst nach der Traversierung aller Wertstromgraphen G WS,b ausgewertet. 4.4.3 Beschreibung der Algorithmen Zu Beginn soll der einführende Algorithmus 4.3 zur Traversierung der Knoten eines grafischen Modells {G WS,b } beschrieben werden (Langfassung siehe Algorithmus A.1.7). Danach wird der Algorithmus 4.4 erläutert, welcher dazu dient, ein entsprechendes Modell in ein mathematisches zu transformieren (Langfassung siehe Algorithmus A.1.8). Um den grundsätzlichen Ablauf der Transformation mit der Validierung zu vergleichen, wird im Fall des einführenden Algorithmus 4.3 noch nicht vorausgesetzt, dass das grafische Modell {G WS,b } validiert ist. Aus diesem Grund werden dieselben Prüfungen auf das Vorliegen von Kanten notwendig, wie sie auch der Algorithmus 4.1 zur Traversierung der Kanten eines grafischen Modells {G WS,b } enthält. Für den erweiterten Algorithmus 4.4 zur Transformation eines solchen Modells gelten danach allerdings alle genannten Vorbedingungen, sodass auf diese Prüfungen verzichtet werden kann. Algorithmus 4.3: Traversierung der Knoten eines grafischen Modells {G WS,b } Prozedur TraversiereKnotenVonGrafischemModell( . . . ) Zeile 01 enthält die Deklaration der Hauptprozedur zur Traversierung der Knoten eines gegebenen grafischen Modells {G WS,b }. Zunächst werden alle Produkte b betrachtet, um die Knoten V WS,b in den zugehörigen Wertstromgraphen G WS,b als nicht entdeckt zu markieren. Danach wird für jeden Wertstromgraphen G WS,b eine Hilfsprozedur aufgerufen, welche dazu dient, die Knoten in dem jeweiligen Graphen zu traversieren. Prozedur TraversiereKnotenVonWSGraphen( . . . ) Die entsprechende Hilfsprozedur ist ab Zeile 07 definiert. Zuerst wird der Stapel als ein leeres Tupel initialisiert, wobei jedes Element ein Paar (v, i ) aus einem Knoten v und einem Eingang i bezeichnet. Daraufhin findet die Prüfung statt, ob an der Quelle σb eine Kante anliegt. Existiert eine solche Kante, wird diese zum nächsten Knoten v ′ und dessen Eingang i ′ weiterverfolgt, um das entsprechende Paar ans Ende des Stapels zu fügen. Danach wird ab Zeile 13 in einer Schleife geprüft, ob der Stapel Elemente enthält und entsprechend weitere Eingänge von Knoten besucht werden müssen. Falls zu Beginn eine Kante an der Quelle σb anlag, ist diese Bedingung erfüllt, und die Schleife wird betreten. Anschließend werden 153 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b für alle Produkte b Ausgabe : markierte Eingänge i aller Knoten V WS,b außer den Quellen σb 01: 02: ··· 06: Prozedur TraversiereKnotenVonGrafischemModell({G WS,b }) für alle Produkte b tue für alle Eingänge i der Knoten V WS,b tue initialisiere Eingang i als nicht entdeckt TraversiereKnotenVonWSGraphen(G WS,b , b ) 07: 08: 09: ··· 13: 14: 15: 16: ··· Prozedur TraversiereKnotenVonWSGraphen(G WS,b , b ) initialisiere Stapel als leeres Tupel wenn an der Quelle σb eine Kante anliegt dann folge der Kante, um nächsten Knoten v ′ und Eingang i ′ ans Ende des Stapels zu fügen solange Stapel nicht leer ist tue entferne aktuellen Knoten v und Eingang i vom Ende des Stapels wenn Eingang i bisher noch nicht entdeckt wurde dann markiere Eingang i als entdeckt TraversiereRessource( . . . ) bzw. TraversiereFlusspunkt( . . . ) 21: 22: 23: ··· Prozedur TraversiereRessource(G WS,b , Stapel, v, i ) betrachte nur Ausgang j des Knotens v gegenüber von Eingang i wenn an Ausgang j eine Kante anliegt dann folge der Kante, um nächsten Knoten v ′ und Eingang i ′ ans Ende des Stapels zu fügen 27: 28: ··· Prozedur TraversiereFlusspunkt(G WS,b , Stapel, v) für alle Kanten an Ausgängen j tue folge der Kante, um nächsten Knoten v ′ und Eingang i ′ ans Ende des Stapels zu fügen Algorithmus 4.3: Traversierung der Knoten eines grafischen Modells {G WS,b } (Kurzfassung). jeweils ein Knoten v und ein Eingang i vom Ende des Stapels entfernt. Wurde der Eingang i noch nicht entdeckt, dann wird dieser nun als entdeckt markiert, und es wird nach dem Typ des Knotens v unterschieden. Handelt es sich bei dem Knoten v um eine Ressource, wird die Hilfsprozedur zur Traversierung solcher Knoten aufgerufen. Bezeichnet der Knoten v einen alternativen oder selektiven Flusspunkt, folgt der Aufruf der entsprechenden Hilfsprozedur. Wurde mit dem Knoten v dagegen die Senke τb erreicht, dann besitzt die Kante, die zu diesem Knoten führt, keinen Nachfolger. Falls danach keine Elemente mehr im Stapel enthalten sind, wird die Schleife an dieser Stelle verlassen. Prozedur TraversiereRessource( . . . ) Ab Zeile 21 ist die Hilfsprozedur zur Traversierung einer Ressource angegeben. Die Hilfsprozedur beschreibt, welcher nachfolgende Eingang i ′ an einem Knoten v ′ betrachtet werden soll, nachdem der Eingang i des aktuellen Knotens v entdeckt wurde. Hierbei wird nur derjenige Ausgang j berücksichtigt, welcher dem Eingang i gegenüberliegt und dessen Index folglich übereinstimmt. Liegt an Ausgang j eine Kante an, wird diese Kante zum nächsten Knoten v ′ und Eingang i ′ weiterverfolgt. Danach wird das entsprechende Paar (v ′, i ′ ) ans Ende des Stapels gefügt, um den Eingang i ′ als Nächstes zu besuchen. 154 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Prozedur TraversiereFlusspunkt( . . . ) Die Hilfsprozedur zur Traversierung eines alternativen oder selektiven Flusspunkts ist ab Zeile 27 beschrieben. In einer Schleife werden nacheinander alle Ausgänge j des jeweiligen Flusspunkts betrachtet und die Kanten zu den nächsten Knoten v ′ und Eingängen i ′ weiterverfolgt. Daraufhin wird jeweils das Paar (v ′, i ′ ) ans Ende des Stapels gefügt. Als Folge wird der Eingang i ′ des Knotens v ′, welcher nach dem letzten Ausgang folgt, zuerst besucht. Die Reihenfolge, in welcher die Ausgänge eines Flusspunkts betrachtet werden, besitzt erst im nächsten Algorithmus eine Bedeutung. Algorithmus 4.4: Transformation eines grafischen Modells {G WS,b } Prozedur TransformiereGrafischesModell( . . . ) In Zeile 001 ist die Deklaration der Hauptprozedur angegeben, die dazu dient, die Matrizen und Folgen des mathematischen Modells zu bestimmen. Nach der Initialisierung der Daten wird nacheinander für alle Produkte b eine Hilfsfunktion aufgerufen, um den jeweiligen Wertstromgraphen G WS,b zu transformieren. Von dieser Hilfsfunktion wird die Zahl m der insgesamt erzeugten Prozessstückzahlen xa zurückgegeben. Danach folgt der Aufruf weiterer Hilfsprozeduren, um auf Grundlage der ermittelten Zwischenergebnisse die Flussmatrix F, die Auslastungsmatrix L und die Investitionsmatrix L Invest zu bestimmen. Funktion TransformiereWSGraphen( . . . ) Die oben genannte Hilfsfunktion zur Transformation eines Wertstromgraphen G WS,b ist ab Zeile 015 definiert. Zuerst wird der Stapel als leeres Tupel initialisiert, wobei jedes Element wiederum ein Tupel (v, i, a, q) aus einem Knoten v, einem Eingang i, dem Index a einer Prozessstückzahl xa und einem Koeffizienten q ist. Ist der Index a größer als null, wird der Wertstromgraph G WS,b im Entdeckungsmodus traversiert, um den Eingängen der Knoten Prozessstückzahlen und Koeffizienten zuzuordnen. Sonst findet die Traversierung im Investitionsmodus statt, um zu ermitteln, welche Eingänge von Knoten nach bereits besuchten Eingängen erreichbar sind, indem an alternativen Flusspunkten die erste ausgehende Kante beschritten wird. Nach der Initialisierung des Stapels wird eine neue Prozessstückzahl xa ′ erzeugt, die am Ausgang der Quelle σb anliegt, und die Prozessmatrix P aktualisiert. Wenn die Kante an der Quelle σb noch nicht zur Senke τb führt, werden der nächste Knoten v ′ und Eingang i ′ mit dem Index a ′ ans Ende des Stapels gefügt. Ab Zeile 025 erfolgt in einer Schleife die Prüfung, ob der Stapel Elemente enthält, worauf der letzte Knoten v und Eingang i mit dem Index a und dem Koeffizienten q vom Stapel entfernt werden. Vereinigen sich Kanten an diesem Eingang, muss unterschieden werden, ob der Eingang bereits besucht wurde. Falls nicht, wird wieder eine neue Prozessstückzahl xa ′ erzeugt, die zugehörige Zeile der Vereinigungsmatrix U initialisiert und im Entdeckungsmodus fortgesetzt (siehe Ressource r 4 in Schritt 1 von Abbildung 4.15). Falls der Eingang wiederholt besucht wird, aber die Suche im Entdeckungsmodus stattfindet, wird die Vereinigungsmatrix U aktualisiert und im Investitionsmodus weitergesucht (siehe Ressource r 4 in Schritt 2 von Abbildung 4.15). Sofern der aktuelle Eingang i erstmalig besucht wird, schließt sich die Aktualisierung der Eingangsmatrix Qein,bv an. Die nachfolgenden Knoten werden 155 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Eingabe : (validiertes) grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b für alle Produkte b Ausgabe : Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, Investitionsmatrix L Invest , MaxFolge 001: ··· 011: ··· Prozedur TransformiereGrafischesModell({G WS,b }, P, F, L, L Invest , MaxFolge) initialisiere Matrizen, Zahl m der Prozessstückzahlen xa , InvestMenge und MaxFolge für alle Produkte b tue m ← TransformiereWSGraphen(G WS,b , b, . . . ) FülleFlussmatrix( . . . ) und FülleAuslastungsmatrix( . . . ) 015: ··· 021: ··· 025: ··· 028: 029: ··· 036: ··· Funktion TransformiereWSGraphen(G WS,b , b, m, P, {Qein,bv }, {Qaus,bv }, U, InvestMenge, MaxFolge) initialisiere Stapel, erzeuge Prozessstückzahl xa ′ und erweitere Prozessmatrix P wenn nach der Quelle σb nicht die Senke τb folgt dann füge nächsten Eingang i ′ ans Ende des Stapels solange Stapel nicht leer ist tue entferne aktuellen Eingang i vom Ende des Stapels wenn sich mehrere Kanten vor Eingang i vereinigen dann wenn Eingang i noch nicht besucht wurde dann erzeuge Prozessstückzahl xa ′ und erweitere entsprechend Vereinigungsmatrix U sonst wenn vorhergehender Eingang erstmalig besucht wurde dann aktualisiere Vereinigungsmatrix U 042: ··· 051: wenn Eingang i erstmalig besucht wird dann aktualisiere Eingangsmatrix Qein,bv wenn vorherige Bedingung gilt oder Eingang i in der InvestMenge enthalten ist dann TransformiereRessource( . . . ), TransformiereALFlusspunkt( . . . ) bzw. TransformiereSLFlusspunkt( . . . ) liefere Zahl m der Prozessstückzahlen xa zurück 052: ··· 057: 058: ··· 062: 063: ··· Prozedur TransformiereRessource(G WS,b , b, InvestMenge, Stapel, v, i, a, q) wenn nach Ausgang j gegenüber von Eingang i nicht die Senke τb folgt dann wenn Eingang i erstmalig besucht wird dann wenn dieser in der InvestMenge enthalten ist dann ergänze nächsten Eingang i ′ übernimm Prozessstückzahl xa und Koeffizient q von Eingang i füge Eingang i ′ ans Ende des Stapels sonst wenn Eingang i ′ nicht in der InvestMenge enthalten ist dann ergänze ihn und füge diesen ans Ende des Stapels 067: 068: 069: Funktion TransformiereALFlusspunkt(G WS,b , b, m, Qaus,bv , InvestMenge, MaxFolge, Stapel, v, a, q) wenn Eingang des Knotens v erstmalig besucht wird dann wenn dieser in der InvestMenge enthalten ist und nach erstem Ausgang des Knotens v nicht die Senke τb folgt dann ergänze nächsten Eingang i ′ in der InvestMenge ··· 075: ··· 079: ··· für alle Ausgänge j des Knotens v in absteigender Folge tue erzeuge Prozessstückzahl xa ′ und aktualisiere Ausgangsmatrix Qaus,bv wenn nach Ausgang j nicht die Senke τb folgt dann füge nächsten Eingang i ′ ans Ende des Stapels ··· 085: füge erzeugte Prozessstückzahlen xa ′ außer der letzen ans Ende der MaxFolge sonst wenn nach erstem Ausgang nicht die Senke τb folgt und nächster Eingang i ′ nicht in der InvestMenge enthalten ist dann ergänze ihn und füge diesen ans Ende des Stapels ··· 092: liefere Zahl m der Prozessstückzahlen xa zurück (nächster Teil auf Seite 157) Algorithmus 4.4(a): Transformation eines grafischen Modells {G WS,b } (Kurzfassung, Teil 1 von 2). 156 4.4 Transformation eines grafischen Modells in ein mathematisches Modell (vorheriger Teil auf Seite 156) 093: ··· 097: ··· 100: ··· 104: 105: ··· Prozedur TransformiereSLFlusspunkt(G WS,b , b, InvestMenge, Stapel, v, a, q) für alle Ausgänge j des Knotens v in absteigender Folge tue wenn nach Ausgang j nicht die Senke τb folgt dann wenn Eingang des Knotens v erstmalig besucht wird dann wenn dieser in der InvestMenge enthalten ist dann ergänze nächsten Eingang i ′ übernimm Prozessstückzahl xa vom Eingang und multipliziere Koeffizient q mit der definierten Quote von Ausgang j füge Eingang i ′ ans Ende des Stapels sonst wenn Eingang i ′ nicht in der InvestMenge enthalten ist dann ergänze ihn und füge diesen ans Ende des Stapels 109: ··· ··· 115: ··· Prozedur FülleFlussmatrix({G WS,b }, m, F, {Qein,bv }, {Qaus,bv }, U) für alle Vereinigungen von Kanten an Eingängen von Knoten V WS,b tue erweitere Flussmatrix F entsprechend Vereinigungsmatrix U für alle alternativen Flusspunkte DAL,b tue erweitere Flussmatrix F entsprechend Eingangsmatrix Qein,bv und Ausgangsmatrix Qaus,bv 119: ··· 127: Prozedur FülleAuslastungsmatrix({G WS,b }, L, L Invest , {Qein,bv }, InvestMenge) für alle Eingänge i von Ressourcen R in Wertstromgraphen G WS,b tue erweitere Auslastungsmatrix L entsprechend Betriebsmittelzeit TBM , effektiver Taktzeit t eff am jeweiligen Eingang i und Eingangsmatrix Qein,bv wenn Eingang i nicht in der InvestMenge enthalten ist dann erweitere ebenso Investitionsmatrix L Invest 128: 129: Algorithmus 4.4(b): Transformation eines grafischen Modells {G WS,b } (Kurzfassung, Teil 2 von 2). nur dann betrachtet, wenn der Eingang i zum ersten Mal besucht wird (Entdeckungsmodus) oder in der InvestMenge enthalten ist (Investitionsmodus). Unter dieser Bedingung werden je nach Knotentyp Hilfsfunktionen oder Hilfsprozeduren aufgerufen. Prozedur TransformiereRessource( . . . ) In Zeile 052 folgt die Deklaration der Hilfsprozedur zur Transformation einer Ressource, welche an einem Eingang i besucht wird. Hierbei wird nur der gegenüberliegende Ausgang j mit gleichem Index betrachtet. Wenn die Kante an diesem Ausgang noch nicht zur Senke τb führt, wird geprüft, ob der Eingang i erstmalig besucht wird. Ist das der Fall (Entdeckungsmodus) und ist der Eingang i in der InvestMenge enthalten, wird der nachfolgende Eingang i ′ ebenso in der InvestMenge ergänzt. Weiterhin werden in diesem Modus der Index a sowie der Koeffizient q vom Eingang i übernommen und mit dem nächsten Eingang i ′ ans Ende des Stapels gefügt. Falls der Eingang i bereits besucht wurde (Investitionsmodus) und der nächste Eingang i ′ nicht in der InvestMenge enthalten ist, wird dieser in die Menge aufgenommen. Darauf wird der Eingang i ′ ans Ende des Stapels gefügt, um im Investitionsmodus fortzusetzen (siehe Ressource r 3 in Schritt 3 von Abbildung 4.15, die nachfolgende Kante des Eingangs i wird betrachtet, da ein Weg entlang der ersten ausgehenden Kanten an jedem alternativen Flusspunkt fortgesetzt wird, allerdings wird diese Kante nicht beschritten, da der Eingang i ′ bereits der InvestMenge hinzugefügt wurde). 157 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Funktion TransformiereALFlusspunkt( . . . ) Der obigen Prozedur schließt sich in Zeile 067 die Hilfsfunktion zur Transformation eines alternativen Flusspunkts an. Zunächst muss unterschieden werden, ob dessen Eingang erstmalig besucht wird. Falls dies zutrifft (Entdeckungsmodus), der Eingang in der InvestMenge enthalten ist und nach dem ersten Ausgang noch nicht die Senke τb folgt, wird der nächste Eingang i ′ in die InvestMenge aufgenommen. Danach werden in dem Modus alle Ausgänge j absteigend betrachtet. Für jeden Ausgang j wird eine neue Prozessstückzahl xa ′ erzeugt und die Ausgangsmatrix Qaus,bv aktualisiert. Sofern nicht die Senke τb erreicht ist, wird jeweils der nächste Eingang i ′ mit dem Index a ′ der Prozessstückzahl xa ′ ans Ende des Stapels gefügt. Durch die absteigende Sortierung wird der erste Ausgang zuerst weiterverfolgt. Zudem werden alle neuen Prozessstückzahlen bis auf die letzte in aufsteigender Reihenfolge in die MaxFolge aufgenommen. Die Prozessstückzahl am letzten Ausgang ist dabei nicht notwendig, da diese bei bekannter Stückzahl am Eingang und unter der Bedingung des Flusserhalts eindeutig bestimmt ist. Falls der Eingang wiederholt besucht wird (Investitionsmodus), nach dem ersten Ausgang nicht die Senke τb folgt und der nächste Eingang i ′ noch nicht in der InvestMenge enthalten ist, wird dieser ergänzt. Dann wird der nächste Eingang i ′ ans Ende des Stapels gefügt, um im Investitionsmodus fortzusetzen. Zuletzt wird die Zahl m insgesamt erzeugter Prozessstückzahlen xa zurückgegeben. Prozedur TransformiereSLFlusspunkt( . . . ) Die Hilfsprozedur zur Transformation eines selektiven Flusspunkts ist ab Zeile 093 definiert. In absteigender Reihenfolge werden alle Ausgänge j betrachtet, an denen Kanten anliegen, die nicht zur Senke τb führen. Dabei wird unterschieden, ob der Eingang des Flusspunkts erstmalig besucht wird. Ist dies der Fall (Entdeckungsmodus) und ist der Eingang in der InvestMenge enthalten, wird der nächste Eingang i ′ nach dem Ausgang j entsprechend in die InvestMenge aufgenommen. In diesem Modus werden der Index a vom Eingang übernommen, der Koeffizient q mit der Quote an Ausgang j multipliziert und beide mit dem nächsten Eingang i ′ ans Ende des Stapels gefügt. Falls der Eingang des Flusspunkts bereits besucht wurde (Investitionsmodus) und der nächste Eingang i ′ nicht in der InvestMenge enthalten ist, wird dieser ergänzt. Danach wird in dem Modus wieder der nächste Eingang i ′ ans Ende des Stapels gefügt, um im Investitionsmodus fortzusetzen. Prozedur FülleFlussmatrix( . . . ) und FülleAuslastungsmatrix( . . . ) In Zeile 109 und 119 sind abschließend die Hilfsprozeduren zur Bestimmung der Flussmatrix F bzw. der Auslastungsmatrix L sowie der Investitionsmatrix L Invest aufgeführt. Die Prozeduren legen die Werte der Matrizen fest, wofür die zuvor ermittelten Zwischenergebnisse genutzt werden. Hierzu zählen die Vereinigungsmatrix U, die Eingangsmatrizen Qein,bv und Ausgangsmatrizen Qaus,bv sowie die InvestMenge. 158 4.4 Transformation eines grafischen Modells in ein mathematisches Modell 4.4.4 Beweis der Zeitkomplexität Um das asymptotische Wachstum der Laufzeit zu beschreiben, ist analog zu Abschnitt 4.3 die Zeitkomplexität der zwei Algorithmen gesucht. Gegeben sei ein grafisches Modell {G WS,b } endlich vieler Wertstromgraphen G WS,b , deren Knoten zu traversieren sind bzw. welches in ein mathematisches Modell (P, S, F, L, L Invest ) zu transformieren ist. Algorithmus 4.3: Traversierung der Knoten eines grafischen Modells {G WS,b } Der Algorithmus 4.3 entspricht einer wiederholt aufgerufenen Tiefensuche, in deren Zuge die Wertstromgraphen G WS,b vollständig traversiert werden. Gegenüber einer klassischen Tiefensuche werden nicht nur die Knoten V WS,b jedes Wertstromgraphen G WS,b in einem Stapel verwaltet. Die Elemente des Stapels bezeichnen Paare (v, i ) aus einem Knoten v und einem zusätzlichen Eingang i. Im Hinblick auf die Laufzeit des Algorithmus gilt: Theorem 4.4: Zeitkomplexität von Algorithmus 4.3. Es sei ein grafisches Modell {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b gegeben, welche die Wertströme eines Systems zur Herstellung einer entsprechenden Zahl von Produkten abbilden. Der Algorithmus zur Traversierung aller Modells besitzt in der angegebenen Imple¢ ¡P Knoten desP mentierung eine Laufzeit von O nb =1 |V WS,b | + nb =1 |E WS,b | . Beweis. Im Verlauf der Traversierung wird jeder Eingang eines Knotens höchstens einmal entdeckt. Da jeder Eingang durch eine Kante erreicht werden muss, ist die Zahl entdeckter Eingänge in einem Wertstromgraphen G WS,b höchstens gleich der Zahl |E WS,b | der Kanten. Nachdem ein Eingang i eines Knotens v entdeckt wurde, werden alle nachfolgenden Eingänge i ′ von Knoten v ′ ans Ende des Stapels gefügt. Ein solcher Eingang i ′ ist ein Nachfolger des Eingangs i, wenn der Eingang i ′ erreichbar ist, indem eine ausgehende Kante an einem zugeordneten Ausgang j des Knotens v weiterverfolgt wird. Die Zuordnung von Ausgängen j zu Eingängen i eines Knotens v wird dabei durch dessen Typ bestimmt. Im Fall einer Ressource wird nur die Kante berücksichtigt, die am Ausgang j gegenüber von Eingang i anliegt, sofern diese existiert. Im Fall eines alternativen oder selektiven Flusspunkts ist nur ein einziger Eingang gegeben, und es werden die anliegenden Kanten an allen Ausgängen betrachtet. Allgemein wird jedoch jede ausgehende Kante an einem Ausgang j eines Knotens v nur nach der Entdeckung des vorhergehenden Eingangs i fortgesetzt. Das heißt, jede ausgehende Kante an einem solchen Ausgang wird nur ein einziges Mal, nach der Entdeckung des vorherigen Eingangs i, weiterverfolgt. Gleich der Zahl der entdeckten Eingänge i werden daher nicht mehr als |E WS,b | nachfolgende Eingänge i ′ ans Ende des Stapels gefügt. In jedem Durchlauf wird genau ein Eingang aus dem Stapel entfernt, weshalb die Schleife entsprechend oft durchlaufen wird. Des Weiteren wird wie zuvor vorausgesetzt, dass es in einer Laufzeit von O(1) möglich ist, den folgenden Eingang i ′ und Knoten v ′ nach einem Ausgang j eines Knotens v zu bestimmen. Die gleiche Voraussetzung gilt für die Operationen zum Hinzufügen und Entfernen von Elementen des Stapels sowie für die Bestimmung, ob ein Eingang entdeckt wurde, und die entsprechende Markierung. Dies führt jeweils zu den folgenden Laufzeiten für die Zeilen im Rumpf der Prozeduren (ohne aufgerufene Hilfsprozeduren): 159 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 02: 03: 04 . . . 05: 06: O(n) ¢ ¡P O nb =1 |V WS,b | ¡Pn ¢ P O b =1 |V WS,b | + nb =1 |E WS,b | O(n) 08 . . . 12: 13 . . . 20: 22 . . . 26: 28 . . . 31: O(n) ¢ ¡P O nb =1 |E WS,b | ¡Pn ¢ O b =1 |E WS,b | ¡P ¢ O nb =1 |E WS,b | Zur Bestimmung der Gesamtlaufzeit werden die einzelnen Laufzeiten aller Zeilen addiert, wobei kleinere Summanden und konstante berücksichtigt werden. Folglich ¢ ¡PnFaktoren nicht Pn ist die gesuchte obere Schranke gleich O b =1 |V WS,b | + b =1 |E WS,b | . Gegenüber den Algorithmen 4.1 und 4.2 muss keine Annahme in Bezug auf den maximalen Ausgangsgrad von Flusspunkten getroffen werden, um die Laufzeit zu erreichen. Der Grund dafür ist, dass in den beiden genannten Algorithmen eine ausgehende Kante genau dann weiterverfolgt wird, wenn eine der vorigen Kanten entdeckt bzw. erstmalig besucht wird. Im vorliegenden Algorithmus 4.3 wird eine ausgehende Kante nur ein einziges Mal, nach der Entdeckung des vorhergehenden Eingangs des Knotens, beschritten. Der Unterschied ist relevant, wenn sich mehrere Kanten an dem Eingang vereinigen. Algorithmus 4.4: Transformation eines grafischen Modells {G WS,b } Der im Folgenden betrachtete Algorithmus 4.4 beruht auf dem vorhergehenden, einführenden Algorithmus 4.3. In beiden Fällen werden die Wertstromgraphen G WS,b eines grafischen Modells {G WS,b } vollständig traversiert, indem alle Eingänge der Knoten besucht werden. Um die zu besuchenden Eingänge zu verwalten, wird wieder ein Stapel eingesetzt. Zur Bestimmung einer oberen Schranke für die Laufzeit werden grundsätzlich ähnliche Schlüsse gezogen, wobei Unterschiede zu berücksichtigen sind. Da die Wertstromgraphen G WS,b in zwei Modi durchlaufen werden, müssen bestimmte Eingänge wiederholt besucht werden. Zudem werden weitere Datenstrukturen genutzt, um die gesuchten Matrizen, Mengen und Folgen zu bestimmen. Als Folge dessen gilt für die Laufzeit: Theorem 4.5: Zeitkomplexität von Algorithmus 4.4. Es sei ein grafisches Modell {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b gegeben, welche die Wertströme eines Systems zur Herstellung einer entsprechenden Zahl von Produkten abbilden. Der Algorithmus zur Transformation des Modells besitzt in der angegebenen Implementierung ¡P ¢ P eine Laufzeit von O nb =1 |V WS,b | + nb =1 |E WS,b | . Beweis. Jeder Eingang i eines Knotens v kann mehrmals besucht werden, genau einmal im Entdeckungsmodus und als Folge sich vereinigender Kanten ggf. wiederholt im Investitionsmodus. Da mindestens eine Kante zu einem solchen Eingang führen muss, entspricht die Zahl der besuchten Eingänge in einem Wertstromgraphen G WS,b höchstens der Zahl |E WS,b | der Kanten. Wenn ein Eingang i im Entdeckungsmodus besucht wird oder die jeweils nachfolgenden Eingänge i ′ nicht in der InvestMenge enthalten sind, werden die Eingänge i ′ ans Ende des Stapels gefügt. Ein Eingang i ′ ist ein Nachfolger des Eingangs i, wenn der Eingang i ′ erreicht werden kann, indem eine ausgehende Kante an einem zugeordneten Ausgang j des Knotens v fortgesetzt wird. Die Zuordnung von Ausgängen j zu Eingängen i ist dabei nicht nur vom Typ des Knotens v, sondern auch vom Modus abhängig. 160 4.4 Transformation eines grafischen Modells in ein mathematisches Modell Falls der Knoten v eine Ressource bezeichnet, dann wird nur die Kante berücksichtigt, die am Ausgang j gegenüber von Eingang i anliegt. Im Fall eines alternativen Flusspunkts werden im Entdeckungsmodus die anliegenden Kanten an allen Ausgängen betrachtet, im Investitionsmodus nur die Kante am ersten Ausgang. Für selektive Flusspunkte gilt, dass stets die Kanten an allen Ausgängen betrachtet werden, unabhängig vom aktuellen Modus. Jedoch wird jede Kante höchstens zweimal beschritten, da der Entdeckungsmodus nach dem ersten Besuch des Eingangs i verlassen wird und im Investitionsmodus der Eingang i ′ in der InvestMenge ergänzt wird. Als Konsequenz werden nicht mehr als 2 |E WS,b | nachfolgende Eingänge i ′ ans Ende des Stapels gefügt. Entsprechend oft wird die Schleife durchlaufen, da jeweils genau ein Eingang vom Stapel entfernt wird. Wie zuvor wird angenommen, dass für alle Flusspunkte ein maximaler Ausgangsgrad d + max gegeben ist, welcher als Konstante aufgefasst und damit vernachlässigt werden kann. Bezüglich des folgenden Eingangs i ′ und Knotens v ′ nach einem Ausgang j eines Knotens v wird vorausgesetzt, dass deren Bestimmung in einer Laufzeit von O(1) möglich ist. Gleiches gilt für die Operationen des Stapels sowie der Matrizen, Vektoren, Mengen und Folgen. Unter diesen Voraussetzungen können für die Zeilen im Rumpf der Funktionen und Prozeduren folgende Laufzeiten bestimmt werden (ohne aufgerufene Hilfsprozeduren): 002: 003 . . . 004: 005: 006: 007 . . . 010: 011 . . . 012: 013 . . . 014: 016 . . . 024: 025 . . . 050: 051: 053 . . . 066: 068 . . . 092: O(n) ¢ ¡P O nb =1 |V WS,b | ¡ ¢ P O n + nb =1 |DAL,b | ¢ ¡P n O b =1 |DAL,b | O(1) O(n) O(1) O(n) ¡P ¢ O nb =1 |E WS,b | O(n) ¡P ¢ O nb =1 |E WS,b | ¡P ¢ O nb =1 |E WS,b | 094 . . . 108: 110: 111 . . . 114: 115: 116: 117 . . . 118: 120: 121 . . . 123: 124: 125: 126 . . . 129: ¢ ¡P O nb =1 |E WS,b | O(1) ¡P ¢ O nb =1 |E WS,b | O(n) ¢ ¡ P O n + nb =1 |DAL,b | ¡P ¢ O nb =1 |DAL,b | O(1) O(|R |) O(n |R |) ¢ ¡ P O n |R | + nb =1 |E WS,b | ¡Pn ¢ O b =1 |E WS,b | Indem man die Summe der Laufzeiten über alle Zeilen bildet und hierbei kleinere Summanden sowie konstante vernachlässigt,¢entspricht der Ausdruck der zu zeigenden ¡PFaktoren P n oberen Schranke O b =1 |V WS,b | + nb =1 |E WS,b | . Bemerkung: Insbesondere die Annahme, dass die Operationen von Vektoren und Matrizen in einer Laufzeit von O(1) möglich sein sollen, ist in der Praxis zu prüfen. Im Allgemeinen verhält sich die Laufzeit zur Multiplikation zweier Matrizen proportional zur dritten Potenz der Zeilen und Spalten. Für die Software AURELIE wurde eine eigene Softwarebibliothek entwickelt, welche Datenstrukturen und Rechenoperationen bereitstellt, um in linearer Laufzeit über alle Komponenten einer Matrix ungleich null zu iterieren und dadurch die Multiplikation deutlich zu beschleunigen. Hierbei wird ausgenutzt, dass die Matrizen eines mathematischen Modells i. d. R. dünn besetzt sind, d. h. im Verhältnis zur Zahl der Zeilen und Spalten nur wenige Komponenten ungleich null enthalten. 161 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.5 Umsetzung in der Software AURELIE Nach der theoretischen Betrachtung der Kernalgorithmen zur Validierung und Transformation eines grafischen Modells richtet sich der Blick auf deren praktische Umsetzung. Die Anwendbarkeit des Modells und der zugehörigen Algorithmen wurde durch die weltweite Einführung der Software AURELIE bei der Bosch Rexroth AG belegt. Daneben existieren noch viele weitere technische, prozessuale und organisatorische Faktoren, welche die Einführung einer Software zu einem Erfolg werden lassen (siehe u. a. Gingnell et al. 2014, außerdem Hochmuth 2011 am Beispiel von AURELIE). Aus technischer Perspektive repräsentieren die vorgestellten Algorithmen nur ca. drei Prozent des Quelltextes. Zu weiteren technischen Erfolgsfaktoren zählt die grafische Benutzeroberfläche, da sie dem Anwender den Zugang zu den Funktionen der Software ermöglicht. Jedoch würde es den Rahmen sprengen, in dem Zusammenhang auf alle Entwurfsentscheidungen einzugehen. Vielmehr soll ein Kurzüberblick zu den Funktionen und der Führung des Anwenders durch den Prozess der Modellerstellung gegeben werden. Im Anschluss daran soll bewertet werden, inwieweit die Software AURELIE die Anforderungen aus Abschnitt 2.6 im Hinblick auf die Modellierung erfüllt. 4.5.1 Funktionsübersicht und Benutzerführung In Bezug auf die Modellierung muss eine geeignete Software die Möglichkeit bieten, die Wertströme aller Produkte an einem Produktionsstandort durch ein grafisches Modell abzubilden. Im Mittelpunkt steht ein grafischer Konfigurator, mit dessen Hilfe der Anwender zeichnerisch Wertströme erstellen kann. Das Modell muss darüber hinaus alle anderen Informationen enthalten, die zur strategischen Planung der TEK gemäß den definierten Planungszielen benötigt werden. Daraus folgt eine hierarchische Modellstruktur aus grafischen und numerischen Daten. Aus diesem Grund ist die Darstellung eines Modells in der Software AURELIE in folgende vier Stufen gegliedert: (1) (2) (3) (4) Werk: Definition von Produkten, Schichtmodellen und Ressourcentypen; Plan: Vorgabe von Stückzahlszenarien und Priorisierung untergeordneter Bereiche; Bereich: Anordnung von Ressourcen in einem Ressourcenlayout; Wertstrom: Produktfluss mit Zuordnung von Ressourcen und Prozessdaten. Bei der Entwicklung wurde die Entscheidung getroffen, die Java Platform Standard Edition 71 und die Eclipse2 Rich Client Platform (RCP) in der Version 3.7.2 als Grundlage zu verwenden. Eclipse bietet zahlreiche Vorteile wie z. B. eine Bibliothek effizienter grafischer Komponenten zur Benutzerinteraktion, eine Architektur, welche die Entwicklung und Einbindung von Plugins und Fragmenten unterstützt, sowie ein Framework, um im Hintergrund Berechnungen auszuführen und durch den Anwender zu steuern. Zudem ist die Benutzeroberfläche einer Applikation auf Basis von Eclipse übersichtlich strukturiert. Typischerweise 1 Oracle: Java SE at a Glance. Abgerufen am 11. Februar 2018. 2 http://www.oracle.com/technetwork/java/javase/overview/. Eclipse: Eclipse Indigo SR2 Packages. Abgerufen am 9. Dezember 2018. http://www.eclipse.org/downloads/packages/release/Indigo/SR2. 162 4.5 Umsetzung in der Software AURELIE Abbildung 4.16: Bildschirmaufnahme von AURELIE (Definition von Stücklisten). Die Stücklisten bestimmen die Zuordnung von Komponenten zu Produkten, wobei jedes Produkt in einer mehrstufigen Stückliste als Komponente eines oder mehrerer anderer Produkte dienen kann. Der Anwender legt die Stücklisten der Produkte im entsprechenden Reiter fest (auf der Stufe des Werks). Der Stücklistenfaktor kann hierbei jeden reellen Wert größer als null annehmen. wird die hierarchische Struktur des zu bearbeitenden Modells im linken Bereich der Benutzeroberfläche als Baum wiedergegeben. Im zentralen Bereich kann der Anwender Daten aus verschiedenen Teilen des Modells in übereinander gestapelten Teilfenstern anzeigen und parallel bearbeiten. Abbildung 4.16 zeigt dies am Beispiel der Software AURELIE. Im linken Bereich werden die genannten Stufen eines Modells dargestellt, auf die im nun folgenden Teil des Abschnitts eingegangen werden soll. Modellparameter auf der Stufe des Werks Auf der Stufe des Werks definiert der Anwender Produkte, Schichtmodelle und Ressourcentypen. Wie in Abschnitt 2.3 erläutert, ist es für die Planung zweckmäßig, Produkte und Varianten zu Produktfamilien zusammenzufassen. Die Software erlaubt es dem Anwender, die Strukturstücklisten abzubilden, indem er die Zuordnung von Komponenten zu Produkten herstellt und Stücklistenfaktoren festlegt. Jedes Produkt kann hierbei als Komponente eines anderen Produkts dienen, wie Abbildung 4.16 zeigt. Zyklen in der Produktstruktur werden automatisch erkannt, worauf eine entsprechende Warnung erscheint. 163 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Weiterhin kann der Anwender eine beliebige Zahl von Schichtmodellen definieren, um die Zahl der Arbeitstage und der Schichten in jedem Quartal des Jahres festzulegen (siehe Beispiele in Tabelle 2.1 auf Seite 36). Unter all diesen wählt der Anwender ein sogenanntes Standardschichtmodell und ein erweitertes Schichtmodell aus. Diese beiden Schichtmodelle werden für die Kalkulation der Auslastung verwendet. Mit Hilfe von Ressourcentypen kann der Anwender Ressourcen mit gleichen konstruktiven Eigenschaften zusammenfassen, auch wenn sie für unterschiedliche Produkte verwendet werden. Ein Ressourcentyp entspricht einer Klasse von Maschinen, Anlagen oder Einrichtungen und besitzt einen spezifischen Plan-Nutzungsgrad. Wie in Abschnitt 2.4 beschrieben, ist der Plan-Nutzungsgrad eine Zielvorgabe, weshalb Abweichungen vom Zielwert durch Kommentare begründet werden sollen. Im Rahmen der Auswertung werden die notwendigen Investitionen für jeden Ressourcentyp als Summe dargestellt. Modellparameter auf der Stufe des Plans In einem Modell können mehrere Pläne angelegt werden, um unterschiedliche Varianten für die Strukturierung eines Werks abzubilden. Auf der Stufe eines Plans definiert der Anwender Stückzahlszenarien und die Prioritäten der untergeordneten Bereiche. Mit Hilfe von Stückzahlszenarien ist es möglich, Annahmen bezüglich der Absatzentwicklung im Planungszeitraum zu treffen. Wie Abbildung 4.17 zeigt, legt der Anwender hierzu die geplanten Stückzahlen für alle Produkte einschließlich Primärbedarf und Sekundärbedarf fest. Dabei können Lieferungen zwischen Werken berücksichtigt werden, die je nach Vorzeichen als Bedarf oder als Kapazität in die Kalkulation einfließen. Da Produkte ggf. in verschiedenen Bereichen hergestellt werden können, muss der Anwender für jeden Bereich eine Priorität festlegen. Zudem werden die Prozessdaten aller Wertströme in einer Tabelle zusammengefasst, um eine effiziente Eingabe der Taktzeiten und Plan-Nutzungsrade zu ermöglichen. Der Anwender kann die zugehörigen Werte bearbeiten und zur Weiterverarbeitung nach Microsoft Excel exportieren. Modellparameter auf der Stufe des Bereichs Bereiche dienen der räumlichen und organisationalen Strukturierung eines Werks. Beispielsweise kann der Anwender verschiedene Bereiche für die automatisierte und die manuelle Produktion anlegen oder die Abteilungen eines Werks abbilden. In jedem Bereich legt der Anwender fest, welche MAEs für die Herstellung von Produkten zur Verfügung stehen, wobei dies aktuell verfügbare und zu installierende MAEs einschließt. Um eine Ressource zu erzeugen, muss der Anwender einen Ressourcentyp auswählen, die Position im Ressourcenlayout bestimmen und einen eindeutigen Bezeichner definieren. Abbildung 4.18 zeigt beispielhaft die Modellierung der MAEs in einem teilautomatisierten Bereich. Die Anordnung im Ressourcenlayout bildet die Grundlage für die Verknüpfung der Ressourcen in den Wertströmen. Dieser grafische Ansatz unterscheidet AURELIE von verfügbarer, insbesondere tabellarischer und formularbasierter Software für die Planung wie z. B. Microsoft Excel oder SAP APO SNP. 164 4.5 Umsetzung in der Software AURELIE Abbildung 4.17: Bildschirmaufnahme von AURELIE (Vorgabe von Stückzahlszenarien). Die geplanten Produktstückzahlen entsprechen der Summe aus dem Primärbedarf für Kunden und Werke sowie dem Sekundärbedarf. Um eine flexible Planung zu unterstützen, können verschiedene Szenarien definiert werden, welche die Absatzentwicklung widerspiegeln. Die hierfür notwendigen Eingaben nimmt der Anwender im Reiter Stückzahlszenarien vor (auf der Stufe des Plans). Zur Einschränkung der Verfügbarkeit einer Ressource kann der Anwender einen Gültigkeitszeitraum festlegen. Anwendungsfälle sind Maschinen, deren Beschaffung zu einem zukünftigen Datum geplant ist, oder solche, die zu einem bestimmten Datum verlagert, verkauft oder stillgelegt werden sollen. Falls der Anwender die Beschaffung einer Ressource plant, die Investition aber noch nicht genehmigt ist, kann er eine entsprechende Markierung setzen. Als Folge wird die Notwendigkeit einer Investition nicht erst bei einer Überlastung ausgewiesen, sondern bereits dann, wenn die Ressource genutzt wird. Indem der Anwender eine Ressource teilt, kann diese auch in Wertströmen anderer Bereiche eingebunden werden (nützlich für zentrale Einrichtungen eines Werks wie z. B. eine Härterei). Das erstellte grafische Ressourcenlayout kann nach Microsoft PowerPoint exportiert werden, um dieses als Grundlage für eine Präsentation zu verwenden. Modellparameter auf der Stufe des Wertstroms Auf der Stufe des Wertstroms erfolgt die grafische Modellierung der Prozessschritte und Prozesse zur Fertigung und Montage der Produkte. Der Wertstromgraph eines Produkts 165 4 Lösungsschritt I: grafische Modellierung und Modelltransformation Abbildung 4.18: Bildschirmaufnahme von AURELIE (Anordnung von Ressourcen). Einer der ersten Schritte in der Modellierung ist die Abbildung der verfügbaren und zu installierenden MAEs durch Ressourcen. Der Anwender erstellt zu diesem Zweck das sogenannte Ressourcenlayout (siehe gleichnamigen Reiter auf der Stufe des Bereichs). Die Positionierung erleichtert die Verknüpfung innerhalb der Wertstromgraphen und muss nicht der räumlichen Anordnung entsprechen. wird als Produktfluss bezeichnet. Die Software bietet dem Anwender einen zeichnerischen Zugang, um Wertströme grafisch zu modellieren, wie in Abbildung 4.19 dargestellt ist. Hierbei kommen die beschriebenen Konzepte von Knoten unterschiedlicher Typen und deren Verknüpfung an definierten Eingängen und Ausgängen zur Anwendung. Die notwendigen Prozessdaten definiert der Anwender durch Selektion einer Ressource oder einer eingehenden Kante an einer Ressource, welche einen Prozessschritt repräsentiert. Danach kann er jeweils eine Taktzeit und einen Plan-Nutzungsgrad vorgeben, um den Wert des Ressourcentyps zu überschreiben. Alternativ zur Eingabe der Daten im Produktfluss wird auf Grundlage der Verknüpfungen automatisch eine Liste aller Prozessschritte erzeugt, die genutzt werden kann, um die Prozessdaten zu erfassen. Innerhalb eines Bereichs kann der Anwender für jedes Produkt jeweils einen Wertstrom definieren, dessen Gültigkeit sich über den gesamten Planungszeitraum erstreckt. Indem der Anwender unterschiedliche Wertströme für jeweils verschiedene Zeitintervalle anlegt, ist es möglich, zeitliche Veränderungen in den Prozessen abzubilden. Ebenso wie das Ressourcenlayout kann der Produktfluss nach Microsoft PowerPoint exportiert werden, um die grafische Darstellung in einer Präsentation weiterzuverarbeiten. 166 4.5 Umsetzung in der Software AURELIE Abbildung 4.19: Bildschirmaufnahme von AURELIE (grafische Wertstrommodellierung). Nachdem der Anwender das Ressourcenlayout angelegt hat, definiert er für jedes Produkt im Planungsintervall einen Wertstrom. Hierzu verknüpft er die Ressourcen im aktuellen Bereich und definiert ggf. zusätzliche Flusspunkte (siehe Reiter Produktfluss auf der Stufe des Wertstroms). Durch automatisches Routing der Kanten wird eine schnelle Modellierung komplexer Wertströme ermöglicht. 4.5.2 Erfüllungsgrad der Anforderungen Im Anschluss an die Bewertung verfügbarer Software im vorigen Kapitel soll nun belegt werden, dass AURELIE alle Anforderungen in Bezug auf die Modellierung erfüllt. Dies schließt insbesondere die Leistungsanforderungen A7+ bzw. A8+ zur grafischen Modellierung mit einer minimalen Symbolmenge und A9+ zur Modelltransformation ein. Erfüllungsgrad der Basisanforderung A1 Superposition aller Wertströme Die Software bietet die Möglichkeit, für jedes Produkt, das in einem Werk gefertigt oder montiert wird, einen Wertstrom zu erstellen. Hierbei können Prozessschritten verschiedener Wertströme dieselben Ressourcen zugeordnet werden, wobei der Anwender für jeden Prozessschritt eine spezifische Taktzeit vorgeben kann. Durch die Strukturierung des Werks in verschiedene Bereiche kann der Anwender mehrere Wertströme für ein Produkt anlegen. Zudem kann der Anwender in einem Bereich für ein Produkt verschiedene Wertströme mit 167 4 Lösungsschritt I: grafische Modellierung und Modelltransformation jeweils unterschiedlicher Gültigkeit definieren, um die zeitliche Veränderung der Prozesse abzubilden. Die Basisanforderung A1 ist damit erfüllt. Erfüllungsgrad der Basisanforderung A2 Systemstruktur Die Software setzt die Konzepte zur grafischen Modellierung von Wertströmen um, die in diesem Kapitel vorgestellt wurden. Entsprechend werden Wertströme durch Wertstromgraphen, Ressourcen durch spezifische Knoten und Prozessschritte durch eingehende Kanten an diesen Knoten repräsentiert. Mit Hilfe der Unterscheidung oder Vereinigung eingehender Kanten an Ressourcen sind beide Anwendungsfälle abbildbar, die in Abschnitt 2.6 beschrieben wurden: Entweder werden die Prozessschritte an der jeweiligen MAE vereinigt, oder sie durchlaufen die MAE getrennt voneinander. Im zweiten Fall kann der Anwender jeweils unterschiedliche Taktzeiten und/oder nachfolgende Prozessschritte definieren. Auf diese Weise lässt sich die Struktur eines Systems von Wertströmen für den gegebenen Einsatzzweck vollständig abbilden, und die Basisanforderung A2 ist erfüllt. Erfüllungsgrad der Basisanforderung A3 Systemschnittstelle Nachdem der Anwender ein grafisches Modell erstellt hat, wird dieses, wie im Weiteren noch detailliert bewertet werden soll, in ein mathematisches Modell umgewandelt. Nach dieser vollständig automatisiert ablaufenden Modelltransformation liegt das Modell in Form von Matrizen und Folgen vor, die es ermöglichen, nach Vorgabe von geplanten Stückzahlen für alle Produkte und Prozessschritte die Auslastung der jeweils genutzten MAEs zu bestimmen. Die Ein- und Ausgaben des mathematischen Modells spiegeln somit die Ein- bzw. Ausgaben des Informationsflusses an der Systemschnittstelle des abzubildenden Systems wider. Entsprechend ist die Basisanforderung A3 erfüllt. Erfüllungsgrad der Basisanforderungen A4–A6 Sequenzielle, alternative und selektive Verknüpfung Der Anwender erzeugt sequenzielle Verknüpfungen in einem Wertstrom, indem er Ressourcen oder andere Knoten durch Kanten miteinander verbindet (A4). Alternative und selektive Verknüpfungen können durch alternative bzw. selektive Flusspunkte abgebildet werden. Hierbei definiert der Anwender die zugehörigen Prioritäten bzw. Quoten an den ausgehenden Kanten der Flusspunkte (A5 bzw. A6). Gegenüber den Definitionen aus Abschnitt 2.2 ist es möglich, mehr als zwei Operanden durch eine alternative oder selektive Verknüpfung zu verbinden, wodurch sich das grafische Modell einfacher und verständlicher darstellen lässt. Zudem kann der Anwender beliebig viele Flusspunkte nacheinander verbinden und dadurch Verkettungen von Verknüpfungen verschiedener Typen abbilden. Die Bedingungen, wie sie in den Definitionen aus Abschnitt 2.2 formuliert sind, werden bei der Transformation des grafischen Modells in ein mathematisches Modell berücksichtigt. Damit sind die Basisanforderungen A4–A6 jeweils vollständig erfüllt. 168 4.5 Umsetzung in der Software AURELIE Erfüllungsgrad der Leistungsanforderung A7+ Grafische Modellierung Wie in diesem Kapitel beschrieben wurde, erlaubt es die Software AURELIE, ein gegebenes System von Wertströmen grafisch abzubilden. Zu diesem Zweck stellt die Software Symbole bereit, welche den eingeführten Knotentypen entsprechen und sich frei kombinieren lassen. Im Gegensatz zu vielen anderen Softwareanwendungen und üblichen grafischen Notationen können sowohl die erforderlichen Elemente des Systems als auch die Beziehungen zwischen diesen Elementen mit Hilfe solcher Symbole ausgedrückt werden. Der Anwender muss allein notwendige Prozessdaten wie z. B. Taktzeiten, Betriebsmittelzeiten und Quoten ergänzen. Die bereitgestellten Symbole sind eindeutig, und auch ihre Kombination lässt keinen Raum für Mehrdeutigkeit. Als Konsequenz kann jedes gültige, vom Anwender erstellte grafische Modell eindeutig in ein mathematisches Modell umgewandelt und optimiert werden. Die Leistungsanforderung A7+ ist daher erfüllt. Erfüllungsgrad der Leistungsanforderung A8+ Minimale Symbolmenge Im vorherigen Absatz wurden die Symbole angesprochen, welche die Software AURELIE zur grafischen Modellierung bereitstellt. Diese entsprechen den Knotentypen, die zur Modellierung von Wertstromgraphen differenziert werden müssen, und den Kanten, welche die Knoten verbinden. Das heißt, es existiert jeweils ein Symbol für Quellen und Senken, alternative und selektive Flusspunkte sowie Ressourcen (vgl. ordnungsmäßige Modellvisualisierung, Deelmann und Loos 2004, S. 290). Theoretisch könnten Quellen und Senken mit demselben Symbol dargestellt werden, jedoch wurde zugunsten der Verständlichkeit des grafischen Modells darauf verzichtet. Als Ergebnis ist die Symbolmenge als minimal zu betrachten, und die Leistungsanforderung A8+ ist erfüllt. Erfüllungsgrad der Leistungsanforderung A9+ Modelltransformation Nachdem der Anwender mit AURELIE ein gegebenes System grafisch modelliert und alle Eingaben zur Festlegung von Prozessdaten und geplanten Produktstückzahlen vorgenommen hat, ruft er die Funktion zur Kalkulation des Modells auf. Daraufhin validiert die Software das grafische Modell, wandelt es nach erfolgreicher Validierung automatisch in ein mathematisches Modell um und optimiert dieses gemäß den definierten Planungszielen. Im Zuge der Transformation in ein mathematisches Modell bleiben alle Modellelemente und Beziehungen zwischen den Modellelementen erhalten. Das Ergebnis der Modelltransformation liegt in Form der Matrizen und Folgen vor, die in diesem Kapitel beschrieben wurden. Auf dieser Basis können exakte Verfahren zur mathematischen Optimierung eingesetzt werden. Auch die Leistungsanforderung A9+ ist damit erfüllt. 169 4 Lösungsschritt I: grafische Modellierung und Modelltransformation 4.6 Fazit: Erreichen des vorgegebenen Entwicklungsziels In der Diskussion zum Stand der Technik wurde festgestellt, dass keine Software existiert, welche die strategische Planung der TEK wie gefordert unterstützt. Keiner der evaluierten Softwaretypen erlaubt es, ein System von Wertströmen mit Hilfe einer minimalen Menge grafischer Symbole abzubilden, das resultierende Modell automatisch in ein mathematisches Modell zu transformieren und gemäß den Planungszielen zu optimieren. Um diese Lücke zu schließen, war es das Ziel, in einem ersten Lösungsschritt die Anforderungen in Bezug auf die Modellierung zu erfüllen. Mit den Erkenntnissen aus dem zurückliegenden Kapitel lässt sich zusammenfassen, dass die Software AURELIE dieses Entwicklungsziel erreicht. Zum Abschluss des Kapitels liegen nun folgende Ergebnisse vor: (1) Beschreibung eines formal eindeutigen, grafischen Modells : Weiterentwicklung von Graphen zu Wertstromgraphen durch Einführung spezifischer Knotentypen und deren Verknüpfung an definierten Eingängen und Ausgängen (siehe Abschnitt 4.2); (2) Algorithmus zur Validierung eines grafischen Modells: detaillierte Beschreibung von Ziel, Grundidee, Datenstrukturen und Ablauf sowie Beweis der Zeitkomplexität (siehe Abschnitt 4.3 sowie Abschnitt A.1.5 und A.1.6 im Anhang); (3) Algorithmus zur Transformation in ein mathematisches Modell: Definition der mathematischen Modellstruktur, wie zuvor Beschreibung und Beweis der Zeitkomplexität (siehe Abschnitt 4.4 sowie Abschnitt A.1.7 und A.1.8 im Anhang); (4) Beschreibung der Umsetzung in der Software AURELIE: Funktionsübersicht und Benutzerführung sowie Beleg der Erfüllung aller formulierten Anforderungen in Bezug auf die Modellierung (siehe Abschnitt 4.5). Damit ist der erste Lösungsschritt abgeschlossen, und es gilt im verbleibenden, zweiten Lösungsschritt, das mathematische Modell zu optimieren. Im folgenden Kapitel wird an das Ergebnis der Modelltransformation angeknüpft, indem die eingeführten Vektoren, Matrizen und Folgen wieder aufgegriffen werden. Sie werden genutzt, um abhängig vom vorgegebenen Planungsziel Zielfunktionen und Nebenbedingungen zu formulieren. 170 5 Lösungsschritt II: mathematische Optimierung In der Analyse des Stands der Technik wurde festgestellt, dass es einer neuen Software bedarf, welche den Workflow zur strategischen Planung der TEK unterstützt. Um diese Lücke zu schließen, wurde die Software AURELIE entwickelt und bei der Bosch Rexroth AG eingeführt. Wie im vorigen Kapitel dargelegt, erlaubt es die Software AURELIE, ein System von Wertströmen grafisch zu modellieren, das Modell zu validieren und in ein mathematisches Modell zu transformieren. Nach diesem ersten Lösungsschritt folgt nun durch die Optimierung des mathematischen Modells der zweite, um den softwaregestützten Workflow fortzuführen. Hierfür wird auf Standardverfahren der mathematischen Optimierung zurückgegriffen, die wiederholt mit veränderten Parametern aufgerufen werden. Der wissenschaftliche Beitrag besteht in den eigens entwickelten Algorithmen, in deren Verlauf jeweils geeignete Zielfunktionen und Nebenbedingungen formuliert und optimiert werden. Wie im vorherigen Kapitel werden die entsprechenden Kernalgorithmen erläutert und durch Kurzfassungen in natürlicher Sprache veranschaulicht. Die vollständigen Fassungen in formalem, kommentiertem Pseudocode sind mitsamt allen Datenstrukturen im Anhang zu finden. Der Begriff der mathematischen Optimierung bezieht sich in diesem Zusammenhang auf die Maximierung oder Minimierung einer Zielfunktion unter Berücksichtigung von Nebenbedingungen. Es werden die drei Planungsziele betrachtet, die in Abschnitt 2.3 eingeführt und in Abschnitt 2.6 durch Anforderungen konkretisiert wurden: die Maximierung der Kapazitäten, die Minimierung der notwendigen Investitionen und die Optimierung der Auslastung. Die Optimierungsvariablen sind hierbei die Eingaben des Informationsflusses, welche das Modell anstelle des Systems mit seiner Umwelt austauscht. Bei diesen Eingaben handelt es sich um die Stückzahlen aller Produkte und deren Verteilung in den Wertströmen durch die jeweils zugeordneten Prozessstückzahlen. Auf Basis der Stückzahlen werden die Werte für die Auslastung der Produktionsanlagen bestimmt und als Ausgaben des Modells zurückgegeben. Die Eingaben und Ausgaben werden genutzt, um geeignete Zielfunktionen und Nebenbedingungen zu formulieren. Das Kapitel ist analog zum vorhergehenden wie folgt aufgebaut: In Abschnitt 5.1 werden die Begriffe der linearen Optimierung und der Korrektheit von Algorithmen eingeführt, die in diesem Kapitel benötigt werden. Dem schließt sich die mathematische und algorithmische Betrachtung der drei oben genannten Planungsziele an. Entsprechend folgt in Abschnitt 5.2 die Maximierung der Kapazitäten, in Abschnitt 5.3 die Minimierung der Investitionen und in Abschnitt 5.4 die Optimierung der Auslastung. Zuerst wird jeweils das Ziel des Algorithmus von den Anforderungen und den Abhängigkeiten in den Wertströmen des Systems abgeleitet. Daraufhin wird der Ablauf einschließlich wesentlicher Datenstrukturen beschrieben, bevor die Korrektheit und die Zeitkomplexität des Algorithmus bewiesen werden. Wie im Fall des 171 5 Lösungsschritt II: mathematische Optimierung vorherigen Kapitels richtet sich der Blick danach in Abschnitt 5.5 auf die Umsetzung der Konzepte in der Software AURELIE. Abgeschlossen wird das Kapitel mit Abschnitt 5.6 durch den Beleg, dass das vorgegebene Entwicklungsziel erreicht wurde. 5.1 Kurzeinführung: lineare Optimierung und Korrektheit Nach der Transformation eines grafischen Modells liegt dieses in Gestalt eines mathematischen Modells vor, welches sich zur Optimierung eignet. Im weiteren Verlauf des Kapitels werden Algorithmen vorgestellt, deren Ablauf auf einer iterativen Maximierung oder Minimierung linearer Zielfunktionen basiert. Um die Aussage zu belegen, dass diese Algorithmen das jeweils formulierte Ziel erreichen, muss ihre Korrektheit nachgewiesen werden. In diesem Abschnitt werden die hierzu notwendigen Grundlagen der linearen Optimierung und des Beweises der Korrektheit von Algorithmen eingeführt. 5.1.1 Lineare Optimierung Wie in Abschnitt 4.2 beschrieben, erstellt der Anwender zur Abbildung eines Systems von Wertströmen ein grafisches Modell. Dieses wird in ein mathematisches Modell transformiert, welches gemäß den Definitionen in Abschnitt 4.4 als ein Tupel definierter Matrizen dargestellt werden kann. Die Matrizen werden genutzt, um lineare Zielfunktionen und Nebenbedingungen zu formulieren und die Zielfunktionen zu maximieren oder zu minimieren. Hierzu wird auf Standardverfahren der linearen Optimierung zurückgegriffen. Zusätzlich zu den Skalaren, Vektoren und Matrizen aus Abschnitt 4.2 und 4.4, die weiterhin gelten, werden folgende Symbole eingeführt. A b c f (x) yplan y plan,b Matrix reeller Koeffizienten eines Vektors x, ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} A[i, a ] ∈ R Vektor reeller oberer Schranken, A x b, ∀i ∈ {1, 2, . . .} b[i, 1] ∈ R Vektor reeller Koeffizienten eines Vektors x, ∀a ∈ {1, . . . , m} c[a, 1] ∈ R lineare Zielfunktion für einen Vektor x, f (x) = c⊤ x, f (x) ∈ R Vektor [y plan,1 . . . y plan,n ]⊤ der geplanten Produktstückzahlen y plan,b , je nach Planungsziel ggf. vorläufig festgelegt, yplan ∈ Rn 0 geplante Stückzahl des Produkts b ∈ {1, . . . , n}, y plan,b ∈ R 0 Klassen mathematischer Optimierung. Die lineare Optimierung bezeichnet ein Teilgebiet der konvexen Optimierung, die ihrerseits ein Teilgebiet der mathematischen Optimierung darstellt. Um diese Klassen eindeutig beschreiben zu können, müssen zunächst die Begriffe des mathematischen Optimierungsproblems, der Zielfunktion und der Nebenbedingung konkretisiert werden. Ein entsprechendes Optimierungsproblem ist dadurch definiert, dass es gilt, eine Funktion f (x) eines Vektors x zu maximieren oder zu minimieren. Zur Beschränkung der Lösungen ist eine endliche Zahl von weiteren Funktionen des Vektors x gegeben, die jeweils eine obere oder untere Schranke nicht überschreiten bzw. unterschreiten dürfen. Der Vektor x bezeichnet die Optimierungsvariablen, die Funktion f (x) die Zielfunktion, und die weiteren Funktionen mit den zugehörigen Schranken bilden die Nebenbedingungen. Eine optimale Lösung liegt vor, wenn die Zielfunktion f (x) unter allen gültigen Vektoren x 172 5.1 Kurzeinführung: lineare Optimierung und Korrektheit ihren maximalen oder minimalen Wert annimmt. Dabei ist ein Vektor x genau dann gültig, wenn dieser alle Nebenbedingungen erfüllt (siehe u. a. Aigner 2006, Boyd und Vandenberghe 2004, Hochstättler 2010, Korte und Vygen 2012, Unger und Dempe 2010). Unter Verwendung dieser Begriffe ist es möglich, Optimierungsprobleme nach der Form der Zielfunktion und der Nebenbedingungen zu unterscheiden. Eine wichtige Klasse von Optimierungsproblemen bildet die konvexe Optimierung, gemäß welcher die Zielfunktion und die Menge aller gültigen Lösungen konvex sein müssen. Geometrisch bedeutet dies, dass alle Lösungen, die sich auf der Strecke zwischen zwei gültigen Lösungen befinden, ebenfalls gültig sein müssen (siehe Aigner 2006, S. 307). Probleme dieser Art sind dadurch gekennzeichnet, dass jedes lokale Optimum zugleich ein globales Optimum ist. Innerhalb der konvexen Optimierung repräsentiert die lineare Optimierung ein besonders wichtiges Teilgebiet. Im Fall der linearen Optimierung wird zusätzlich gefordert, dass es sich sowohl bei der Zielfunktion als auch den Nebenbedingungen um lineare Funktionen handelt (siehe Hochstättler 2010, S. 199). In diesem Fall bildet die Menge der gültigen Lösungen ein Polytop, wie anhand der Beispiele AL2 und SL2 in Abschnitt 2.5 gezeigt wurde. Eine Vielzahl betriebswirtschaftlicher Fragestellungen lässt sich durch lineare Optimierungsprobleme ausdrücken (für Beispiele siehe u. a. Unger und Dempe 2010). Formulierung linearer Optimierungsprobleme. Um lineare Optimierungsprobleme einheitlich zu beschreiben, wird in der Praxis eine sogenannte Standardform verwendet. Diesbezüglich gilt die Vereinbarung, dass der Vektor x der Optimierungsvariablen ausschließlich nichtnegative reelle Werte enthält. Zur Definition der Zielfunktion f (x) wird ein Vektor c mit reellen Komponenten angegeben, dessen Zahl der Zeilen mit der Zahl der Zeilen des Vektors x übereinstimmt. Die Komponenten des Vektors c entsprechen den Koeffizienten der Zielfunktion f (x). Daneben wird eine Matrix A mit reellen Komponenten definiert, deren Zahl der Spalten der Zahl der Zeilen des Vektors x entspricht. Weiterhin wird ein Vektor b angegeben, welcher im Hinblick auf die Zahl der Zeilen mit der Matrix A übereinstimmt. Die Matrix A und der Vektor b beschreiben die Nebenbedingungen, welche die Zielfunktion f (x) beschränken. Unter Verwendung dieser Vektoren und Matrizen lassen sich lineare Optimierungsprobleme wie folgt definieren (siehe Aigner 2006, S. 296): © max c⊤ x : x 0∧Ax ª b . (5.1) Die Zielfunktion f (x) wird in Gleichung (5.1) als Matrixprodukt des transponierten Vektors c und des Vektors x wiedergegeben. Um Doppelbelegungen mit anderen Symbolen zu vermeiden, wird zur Bezeichnung der Komponenten von Vektoren und Matrizen im Folgenden die Notation verwendet, die im vorigen Kapitel eingeführt wurde. Entsprechend lässt sich die Zielfunktion f (x) wie folgt auflösen: c⊤ x = c[1, 1] x 1 + c[2, 1] x 2 + . . . + c[m, 1] xm . (5.2) Die Zeilen der Matrix A beschreiben mit den jeweils entsprechenden Zeilen des Vektors b die Nebenbedingungen. Die Komponenten der Matrix A repräsentieren die Koeffizienten des Vektors x und die Komponenten des Vektors b die zugehörigen oberen Schranken. Löst 173 5 Lösungsschritt II: mathematische Optimierung man die Bedingung in Gleichung (5.1) auf, führt dies zu folgenden Ungleichungen, welche die in Gleichung (5.2) angegebene Zielfunktion f (x) beschränken: A[1, 1] x 1 + A[1, 2] x 2 + . . . + A[1, m] xm b[1, 1] , A[2, 1] x 1 + A[2, 2] x 2 + . . . + A[2, m] xm b[2, 1] , A[3, 1] x 1 + A[3, 2] x 2 + . . . + A[3, m] xm b[3, 1] , ... ... ... ... (5.3) Die Auslassungszeichen in Gleichung (5.3) zeigen, dass die Matrix A entsprechend der Zahl der Nebenbedingungen beliebig viele Zeilen besitzen kann. Jedoch wird verlangt, dass die oben genannten Bedingungen in Bezug auf die Zahlen der Zeilen der Matrix A und des Vektors b gelten. Durch Negation der Komponenten des Vektors c kann die Standardform auf Probleme der Maximierung und der Minimierung angewandt werden. Indem man die Zeilen der Matrix A und des Vektors b negiert, ist es möglich, Nebenbedingungen mit oberen und unteren Schranken zu beschreiben. Eine Nebenbedingung, welche die Gleichheit mit einem Wert fordert, kann durch zwei Nebenbedingungen mit einer oberen und einer entsprechenden unteren Schranke in die Standardform übertragen werden. Variablen, die auch negative Werte annehmen dürfen, können beschrieben werden, indem diese als Differenz zweier nichtnegativer Variablen ausgedrückt werden. Lösung linearer Optimierungsprobleme. Zunächst kann festgestellt werden, dass eine optimale Lösung genau dann existiert, wenn mindestens eine Lösung gültig und die Zielfunktion beschränkt ist. Hierbei muss es sich im Fall der Maximierung der Zielfunktion um eine obere Schranke und im Fall der Minimierung um eine untere Schranke handeln (siehe Aigner 2006, S. 303). Da im Folgenden jeweils die Startlösung gültig ist und eine solche Schranke existiert, ist es in jedem Fall möglich, eine optimale Lösung zu finden. Zur Lösung linearer Optimierungsprobleme existieren drei Typen universell einsetzbarer Verfahren: das Simplex-Verfahren, das Innere-Punkte-Verfahren und die Ellipsoidmethode. Das Simplex-Verfahren ist am weitesten verbreitet und gilt als effizient, wenn auch keine Variante existiert, welche eine polynomielle Laufzeit garantiert. Innere-Punkte-Verfahren gewinnen zunehmend an Bedeutung, da sie als effizient gelten und zudem versprechen, die optimale Lösung in polynomieller Laufzeit zu finden. Zwar besitzt die Ellipsoidmethode eine polynomielle Laufzeit, jedoch ist das Verfahren in der Praxis nicht effizient einsetzbar (siehe u. a. Hochstättler 2010, Korte und Vygen 2012). Die drei Verfahren werden seit ihrer Einführung im Hinblick auf Effizienz, numerische Stabilität und andere Kriterien weiterentwickelt. In dieser Arbeit wird auf bestehende Implementierungen zurückgegriffen, um Algorithmen zu entwickeln, in deren Verlauf lineare Zielfunktionen maximiert oder minimiert werden. Zu diesem Zweck wird in der vorliegenden Arbeit die Bibliothek lp_solve1 genutzt, die in verschiedene Programmiersprachen eingebunden werden kann. Die Bibliothek ist frei verfügbar und stellt effiziente, universell einsetzbare Standardverfahren zur linearen Optimierung bereit. 1 lp_solve Reference Guide: Introduction to lp_solve 5.5.2.5. Abgerufen am 22. Juni 2018. http://lpsolve.sourceforge.net/5.5/. 174 5.1 Kurzeinführung: lineare Optimierung und Korrektheit Um ein Beispiel anzugeben, nach welchem Muster in den nachfolgenden Abschnitten die Lösung von Optimierungsproblemen beschrieben wird, veranschaulicht Algorithmus A.2.1 im Anhang die Minimierung einer allgemeinen linearen Zielfunktion f (x). Im ersten Schritt wird eine Startlösung x ermittelt, welche eine definierte Menge von Bedingungen erfüllen muss. Im vorliegenden Fall muss die Lösung x den geplanten Produktstückzahlen yplan entsprechen, wie in Abschnitt 4.4 definiert. Darüber hinaus gelten die Bedingungen in Bezug auf den Flusserhalt und die Auslastung, die in Abschnitt 4.4 eingeführt wurden. Um eine Startlösung x zu ermitteln, die diesen Bedingungen genügt, wird die Summe der Stückzahlen y b aller Produkte b maximiert, wobei diese die geplanten Produktstückzahlen y plan,b nicht überschreiten dürfen. Unter der Voraussetzung, dass mindestens eine gültige Lösung existiert, ist dies äquivalent zur Maximierung der Stückzahl y b jedes Produkts b bis zum jeweils geplanten Wert y plan,b . Im zweiten Schritt wird die daraus folgende Startlösung x verwendet, um ausgehend von dieser die Zielfunktion f (x) zu minimieren. Hierbei müssen die Stückzahlen y b aller Produkte b beibehalten werden und die zuvor genannten Bedingungen in Bezug auf den Flusserhalt und die Auslastung erfüllt sein. Zuletzt wird der gefundene Wert der Zielfunktion f (x) als Ergebnis zurückzugeben. 5.1.2 Korrektheit von Algorithmen Im Gegensatz zu den Algorithmen im vorigen Kapitel, die auf Standardverfahren der Graphentheorie basieren, existiert für die Algorithmen in diesem Kapitel keine vergleichbare Grundlage. Ergänzend zur Beschreibung des Ablaufs und dem Beweis der Zeitkomplexität der Algorithmen muss daher auch deren Korrektheit nachgewiesen werden. Unter der Korrektheit wird die Eigenschaft eines Algorithmus verstanden, einer Spezifikation zu genügen, indem ein vorgegebenes formales Ziel erreicht wird. Damit ist nicht gesagt, dass die zugrundeliegende Spezifikation dazu geeignet ist, das vorliegende Problem zu lösen. Aus diesem Grund muss der Formulierung des Ziels eine Diskussion zum jeweils gewählten Ansatz vorangestellt werden. Im Folgenden werden die Grundzüge der Beweisführung dargelegt, nach denen die Korrektheit eines Algorithmus gezeigt werden kann. Für weiterführende Erläuterungen wird auf die Literatur verwiesen (siehe u. a. Cormen et al. 2010 zu Grundlagen von Algorithmen und z. B. Liggesmeyer 2009 zur Verifikation von Software). Partielle und totale Korrektheit. Zunächst muss zwischen partieller und totaler Korrektheit eines Algorithmus unterschieden werden. Ein Algorithmus ist genau dann partiell korrekt, wenn nach einer Eingabe, welche eine definierte Vorbedingung erfüllt, jede Ausgabe einer definierten Nachbedingung genügt. Hierbei wird keine Aussage darüber getroffen, ob der Algorithmus für jede gültige Eingabe eine Ausgabe liefert. Ist dies aber der Fall, spricht man nicht mehr nur von partieller, sondern von totaler Korrektheit. Folglich ist ein Algorithmus genau dann total korrekt, wenn er partiell korrekt ist und für eine gültige Eingabe stets eine Ausgabe zurückgibt. Im Rahmen dieser Kurzeinführung wird vorausgesetzt, dass der zu untersuchende Algorithmus auf einer Schleife basiert. Diese Voraussetzung ist im Fall der folgenden Algorithmen erfüllt und erlaubt es jeweils, zum Beweis der Korrektheit sogenannte Schleifeninvarianten und Schleifenvarianten zu formulieren. 175 5 Lösungsschritt II: mathematische Optimierung Zum Beweis der partiellen Korrektheit existieren verschiedene Verfahren wie z. B. das wpKalkül (engl. Weakest Precondition, siehe Dijkstra 1976). Basiert der betrachtete Algorithmus wie vorausgesetzt auf einer Schleife, kann eine sogenannte Schleifeninvariante definiert werden. Darunter wird ein logischer Ausdruck verstanden, der zu jedem Zeitpunkt im Ablauf der Schleife wahr ist, sofern die Eingabe der Vorbedingung genügt. Zudem muss das formale Ziel des Algorithmus genau dann erreicht sein, wenn sowohl die Schleifeninvariante als auch die negierte Schleifenbedingung erfüllt sind. Danach ist zu zeigen, dass die Schleifeninvariante vor Beginn der Schleife, nach jedem Durchlauf und als Folge nach deren Beendigung gilt. Hierzu wird das Prinzip der vollständigen Induktion genutzt, indem die Gültigkeit der Schleifeninvariante nach dem jeweils vorhergehenden Durchlauf vorausgesetzt wird. Weiter wird im Folgenden vorausgesetzt, dass die Prüfung der Schleifenbedingung die Schleifeninvariante nicht verändert. Da die Schleifenbedingung nach Verlassen der Schleife falsch sein muss, ist dadurch bewiesen, dass das Ziel des Algorithmus erreicht wird. Im Anschluss daran gilt es, die totale Korrektheit des Algorithmus nachzuweisen, wofür z. B. das Hoare-Kalkül angewandt werden kann (siehe Hoare 1969). Wird wieder vorausgesetzt, dass der Algorithmus auf einer Schleife basiert, muss gezeigt werden, dass die Zahl der Schleifendurchläufe endlich ist. Das ist genau dann der Fall, wenn die Schleifenbedingung nach einer endlichen Zahl von Durchläufen der Schleife verletzt wird. Eine Möglichkeit, einen entsprechenden Beweis zu führen, besteht in der Definition einer sogenannten Schleifenvariante, einem Ausdruck, welcher eine natürliche Zahl beschreibt. Die Schleifenvariante muss vor Beginn der Schleife größer als null sein und mit jedem Durchlauf um einen Wert größer als null reduziert werden. Weiterhin muss die Schleifenbedingung immer dann verletzt sein, sobald die Schleifenvariante den Wert null erreicht. Wenn es gelingt, eine solche Schleifenvariante zu formulieren, dann ist damit zugleich bewiesen, dass die Schleife nach einer endlichen Zahl von Durchläufen verlassen wird. Grenzen der Beweisbarkeit. Den Ausführungen ist hinzuzufügen, dass ein Nachweis der Korrektheit eines Algorithmus nicht immer möglich ist. Zwar ist es in bestimmten Fällen durchaus möglich, einen Beweis zu führen, um die partielle und die totale Korrektheit zu bestätigen. Im Allgemeinen gehört aber die Klärung der Frage, ob ein Algorithmus korrekt ist, zur Klasse der nicht berechenbaren Probleme. Die Grundlagen hierzu sind in der Literatur unter dem Begriff des Halteproblems und dem Gödelschen Unvollständigkeitssatz zu finden (siehe Davis 1958 und die darauf Bezug nehmenden Arbeiten). 5.2 Maximierung der Kapazitäten Wie in Abschnitt 2.3 erläutert, besteht das erste Planungsziel darin, die maximal erreichbaren Kapazitäten zur Herstellung der gegebenen Produkte zu ermitteln. Gesucht sind die maximalen Produktstückzahlen, bezeichnet als technische Kapazitäten ymax , welche mit Hilfe der verfügbaren und zu installierenden MAEs erzielt werden können. Diesbezüglich gilt die Bedingung, dass die Auslastung keiner genutzten MAE einen Wert von eins überschreiten darf. Das Ergebnis wird im weiteren Verlauf des Planungsprozesses genutzt, um über Eigenproduktion und Zukauf zu entscheiden. 176 5.2 Maximierung der Kapazitäten Zur formal eindeutigen Beschreibung des Algorithmus werden die folgenden Symbole eingeführt. Diese gelten ergänzend zu allen weiteren Symbolen, die in den vorhergehenden Abschnitten und im entsprechenden Verzeichnis definiert sind. B max k p x′ xa′ y′ y b′ ymax y max,b ε Menge der Indizes aller Produkte b, deren Stückzahl y b maximal ist, B max ⊆ {1, . . . , n} natürliche Zahl, bezeichnet den aktuellen Iterationsschritt, k ∈ N0 Index zur Bezeichnung des Referenzprodukts im aktuellen Iterationsschritt, beliebig ausgewählt unter allen Produkten b, deren Stückzahl y b nicht maximal ist, p ∈ {1, . . . , n} ′ ⊤ Vektor [x 1′ . . . xm ] der Prozessstückzahlen xa′ , vorherige oder zu vergleichende Lösung, x′ ∈ Rm0 vorherige oder zu vergleichende Teillösung mit Index a ∈ {1, . . . , m}, xa′ ∈ R 0 Vektor [y 1′ . . . yn′ ]⊤ der Stückzahlen y b′ aller gegebenen Produkte b, zur Lösung x′ zugehörig, y ′ ∈ Rn 0 Stückzahl des Produkts b ∈ {1, . . . , n}, zur Lösung x′ zugehörig, y b′ ∈ R 0 Vektor [y max,1 . . . y max,n ]⊤ der maximalen Produktstückzahlen y max,b (TEK), ymax ∈ Rn 0 maximale Stückzahl des Produkts b ∈ {1, . . . , n} (TEK), y max,b ∈ R 0 beliebig kleine Zahl größer als null, verwendet als Schranke, ε ∈ R 0 Der Algorithmus zur Maximierung der technischen Kapazitäten ymax wird nach dem gleichen Vorgehen wiedergegeben, welches bereits für die Algorithmen im vorigen Kapitel angewandt wurde. Nach der Formulierung des Ziels folgt die Beschreibung des Ablaufs, bevor die Korrektheit und die Zeitkomplexität nachgewiesen werden. 5.2.1 Ziel, Grundidee und Datenstrukturen Das Ziel des Algorithmus folgt aus der Beschreibung in Abschnitt 2.3 und der zugehörigen, zusammenfassenden Anforderung A10 in Abschnitt 2.6. Wie an den genannten Stellen erläutert, besteht die wesentliche Herausforderung in der Festlegung einer Strategie, welche die Auswahl einer nicht dominierten Lösung beschreibt. Im Allgemeinen existiert im reellwertigen Suchraum eine unendliche Zahl von Lösungen, die einander nicht dominieren. Zwei Lösungen dominieren sich nicht gegenseitig, wenn folgende zwei Bedingungen erfüllt sind: Gemäß der ersten Lösung ist die TEK im Fall mindestens eines Produkts größer als die TEK desselben Produkts gemäß der zweiten Lösung. Umgekehrt ist gemäß der zweiten Lösung die TEK im Fall mindestens eines anderen Produkts größer als die TEK desselben Produkts gemäß der ersten Lösung. Das heißt, keine der beiden Lösungen ist der jeweils anderen eindeutig vorzuziehen, und beide Lösungen sind als optimal anzusehen. Hintergrund ist, dass zur Herstellung verschiedener Produkte in vielen Fällen dieselben MAEs genutzt werden. Als Folge kann häufig die TEK eines Produkts ohne Auswirkung auf die Auslastung der MAEs gesteigert werden, indem die TEK mindestens eines anderen Produkts reduziert wird. Ein solches Ergebnis, das nicht eindeutig bestimmt ist, kann jedoch nicht als Entscheidungsgrundlage in Unternehmen dienen. Vorabdiskussion zum gewählten Ansatz. Es muss somit ein Ziel für den zu entwickelnden Algorithmus formuliert werden, welches die maximalen Produktstückzahlen ymax eindeutig bestimmt. Der gewählte Ansatz besteht darin, die Stückzahlen y b aller Produkte b beginnend mit dem Nullvektor schrittweise zu maximieren. Solange die Stückzahlen y b zweier Produkte b gesteigert werden können, muss deren Verhältnis jenem der vorläufigen geplanten 177 5 Lösungsschritt II: mathematische Optimierung Produktstückzahlen y plan,b entsprechen. Das heißt, wenn die TEK für ein Produkt erhöht werden kann, indem man die TEK für ein anderes Produkt reduziert, muss das vorgegebene Verhältnis gelten. Sobald es aber nicht mehr möglich ist, die Stückzahl y b eines Produkts b zu steigern, wird dessen Stückzahl unverändert beibehalten, um im weiteren Verlauf die Stückzahlen y b der verbleibenden Produkte weiter zu maximieren. Alternativ existieren andere Ansätze, die allerdings aus folgenden Gründen nicht weiterverfolgt werden. Wie in Abschnitt 3.4 zur Bewertung von Software für Supply Chain Management diskutiert, ist es grundsätzlich möglich, die optimalen Lösungen durch Schranken zu begrenzen. Jedoch müsste der Anwender durch die Analyse oder die wiederholte Optimierung des Modells geeignete Schranken suchen, weshalb der Gedanke verworfen wird. Einen Spezialfall bildet der Ansatz, zwischen den Stückzahlen von jeweils zwei Produkten ein fixes Verhältnis festzulegen. Dieser Fall ist verwandt mit dem letztlich gewählten Ansatz, jedoch mit dem Unterschied, dass nur ein einziger Iterationsschritt ausgeführt wird. Problematisch wäre hierbei, dass keine der optimalen Lösungen den festgelegten Verhältnissen zwischen den Produktstückzahlen entsprechen muss. Das heißt, würde man solche Verhältnisse voraussetzen, dann träte häufig der Fall ein, dass ein Produkt mit geringerer maximaler Stückzahl alle anderen Produktstückzahlen beschränkt. Dies wäre auch dann der Fall, wenn die verfügbaren Ressourcen noch nicht vollständig ausgelastet sind. Ein weiterer Ansatz bestünde in der Priorisierung aller Produkte, um die verfügbaren Ressourcen in einer bestimmten Reihenfolge für die Produkte zu nutzen. In Abschnitt 3.4 wurde erläutert, dass ein solcher Ansatz mit Hilfe einer Kostenfunktion in der Praxis nur begrenzt umsetzbar ist. Algorithmisch ließe sich eine entsprechende Priorisierung zwar auf einfache Weise realisieren, indem ein iteratives Vorgehen angewandt wird. Allerdings würden in diesem Fall all diejenigen Ressourcen, die Prozessschritten verschiedener Produkte zugeordnet sind, bevorzugt nur durch bestimmte Produkte ausgelastet. Die Folge wäre ein deutliches Ungleichgewicht zugunsten höher priorisierter Produkte, sodass im Extremfall die Stückzahl nur eines einzigen Produkts maximiert würde. Währenddessen würden die Stückzahlen aller anderen Produkte nicht den Wert null übersteigen. Auch der Ansatz, auf der Ebene einer Ressource jeweils einen fixen Zeitanteil für jedes Produkt festzulegen, in welchem die Ressource für das Produkt genutzt werden soll, muss verworfen werden. Analog zu den vorigen Gedanken müsste der Anwender durch Analysen oder wiederholte Optimierung geeignete Zeitanteile suchen. Der Grund ist, dass Ressourcen nicht vollständig ausgelastet würden, wenn die Stückzahl eines Produkts nicht mehr gesteigert werden kann, bevor der fixe Zeitanteil erreicht ist. Als die Entwicklung der Software AURELIE bei der Bosch Rexroth AG begann, wurde dieser Ansatz zunächst von den zukünftigen Anwendern vorgeschlagen. Das Verhältnis der Zeitanteile für die Produkte sollte jeweils den geplanten Produktstückzahlen entsprechen. Der eingangs beschriebene Ansatz stellt dagegen sicher, dass alle Ressourcen bestmöglich genutzt werden. Die Nutzung der Ressourcen wird optimiert, sodass das Verhältnis der zu maximierenden Produktstückzahlen y b dem Verhältnis der vorläufig festgelegten, geplanten Produktstückzahlen y plan,b entspricht. Dieser Gedanke wurde in der Software AURELIE umgesetzt und wird seither bei der Bosch Rexroth AG angewandt. 178 5.2 Maximierung der Kapazitäten Ziel und Vorbedingungen. Zur Bestimmung der maximalen Produktstückzahlen ymax findet ein iteratives Vorgehen Anwendung. Laut der obigen Beschreibung werden in jedem Iterationsschritt die Stückzahlen y b all derjenigen Produkte b erhöht, die noch nicht maximal sind. Die Stückzahl eines Produkts wird als maximal bezeichnet, wenn diese unter den vorgegebenen Bedingungen nicht weiter erhöht werden kann, ohne die Stückzahlen anderer Produkte zu reduzieren. Sobald eine Produktstückzahl y b entsprechend dieser Definition ihr Maximum erreicht, wird ihr Wert unverändert beibehalten. Die Stückzahlen y b aller anderen Produkte werden weiter gesteigert, wobei deren Verhältnis den vorläufigen geplanten Produktstückzahlen y plan,b entsprechen muss. Durch die Definition dieser zusätzlichen Bedingung ist sichergestellt, dass die maximalen Produktstückzahlen ymax eindeutig bestimmt sind. Der Begriff der Vorläufigkeit bezieht sich darauf, dass die Stückzahlen für Produktion und Zukauf im Planungsprozess erst nach Bestimmung der Kapazitäten festgelegt werden. Die Iterationsschritte werden wiederholt, solange die Stückzahl y b mindestens eines Produkts b nicht ihren maximalen Wert erreicht hat. Entsprechend basiert die Formulierung des Ziels auf einer Iterationsvorschrift, welche die Schritte definiert, nach denen die Stückzahlen y b aller Produkte b zu maximieren sind. Gegeben sei ein mathematisches Modell (P, S, F, L, L Invest ), welches aus der Transformation eines grafischen Modells {G WS,b } hervorgegangen ist. Zu jedem Zeitpunkt vor, während und nach der Iteration muss zwischen Produkten b unterschieden werden, deren Stückzahl y b maximal bzw. nicht maximal ist. Bevor die Iteration beginnt, gelten die Stückzahlen y b aller Produkte b als noch nicht maximal. Um maximale Stückzahlen y b von solchen zu trennen, die nicht maximal sind, wird die Menge B max definiert (der eingeklammerte Exponent k bezeichnet im Folgenden den Iterationsschritt): k = 0: (0) B max = ∅, (5.4a) k ∈ N: © ª (k) B max = b : b ∈ {1, . . . , n} ∧ yb(k) ist maximal . (5.4b) Die Menge B max bezeichnet die Teilmenge der Indizes aller Produkte b, deren Stückzahlen y b unter allen gültigen Lösungen x maximal sind. Eine Lösung x ist genau dann gültig, wenn diese alle Nebenbedingungen in Bezug auf die Produktstruktur, den Flusserhalt und die Auslastung erfüllt. Dies bezieht sich auf die Bedingungen, die in Abschnitt 4.4 im Zuge der Transformation eines grafischen Modells {G WS,b } in ein mathematisches Modell (P, S, F, L, L Invest ) eingeführt wurden. Gegeben sei jeweils die Lösung x aus dem aktuellen Iterationsschritt, von welcher vorausgesetzt wird, dass diese gültig ist. Der nachfolgende Ausdruck beschreibt auf dieser Basis die Suche einer zu vergleichenden Lösung x′, nach welcher die Produktstückzahl y b ihren größten Wert annimmt. Diese folgt aus der Matrixmultiplikation P[b,∗] x′, wie in Abschnitt 4.4 definiert. Formal ist die Stückzahl y b eines Produkts b im aktuellen Iterationsschritt gemäß folgender Äquivalenz maximal: k ∈ N0 : yb(k) ist maximal ⇔ © yb(k) = max P[b,∗] x′ : x′ Px ′ Px (k) 0∧ ∧ (I − S) P x′ 0 ∧ F x′ = 0 ∧ L x′ ª 1 . (5.5) 179 5 Lösungsschritt II: mathematische Optimierung Weiter oben wurde erläutert, dass in jedem Iterationsschritt die Produktstückzahlen y b , die noch nicht maximal sind, maximiert werden müssen. Das Verhältnis der Produktstückzahlen y b wird durch die geplanten Produktstückzahlen y plan,b paarweise festgelegt. Da sich die Verhältnisse nicht widersprechen, ist dies äquivalent zur Maximierung einer beliebigen Produktstückzahl y b , wobei folgende Bedingungen gelten: Die Stückzahl y b des Produkts b darf gemäß Gleichung (5.5) noch nicht maximal sein und muss im Verhältnis zum geplanten Wert y plan,b paarweise allen anderen Produkten entsprechen. Diesem Gedanken folgend wird in jedem Iterationsschritt die Stückzahl yp eines sogenannten Referenzprodukts mit einem Index p maximiert. Das Referenzprodukt p bezeichnet ein beliebig ausgewähltes Produkt b, dessen Stückzahl y b nach dem vorigen Iterationsschritt noch nicht ihren maximalen Wert erreicht hatte. Für alle Produkte b, deren Stückzahl y b bereits maximal war, wird diese im aktuellen und den danach folgenden Iterationsschritten unverändert beibehalten. Unter Nutzung der Ausdrücke in Gleichung (5.4a, 5.4b) und (5.5) gilt für die Lösung x im aktuellen Iterationsschritt der folgende Ausdruck: k = 0: x(0) = 0 , k ∈ N: © x(k) = arg max P[p,∗] x : x (5.6a) b b (I − S) P x 0 ∧∀b ∈ {1, . . . , n} \ {p } (k−1) ∉ B max → ( y plan,p P[b,∗] − y plan,b P[p,∗]) x = 0 ∧ (k−1) ∈ B max → P[b,∗] x = P[b,∗] x(k−1) ∧ 0∧Fx = 0∧Lx ª 1 . (5.6b) Von der Lösung x aus Gleichung (5.6b) werden die Stückzahlen y b aller Produkte b abgeleitet, die in diesem Iterationsschritt maximiert wurden. Analog zu Gleichung (5.5) folgen die Produktstückzahlen y b aus der Matrixmultiplikation P[b,∗] x, entsprechend der allgemeinen Definition in Abschnitt 4.4. Im Anschluss muss erneut geprüft werden, ob die Produktstückzahlen y b , die zuvor noch nicht maximal waren, nun ihren maximalen Wert erreicht haben. Trifft dies nicht auf alle Produkte b zu, wird die Iteration fortgesetzt. Zusammenfassend ist festzustellen, dass Gleichung (5.6a, 5.6b) die iterative Maximierung der Stückzahl yp eines jeweils ausgewählten Referenzprodukts p beschreibt. Dabei werden alle Produktstückzahlen y b , die noch nicht maximal sind, durch ein fixes Verhältnis an die Stückzahl yp gebunden und alle maximalen Produktstückzahlen y b beibehalten. Die Lösung ist durch die Stückzahl y b mindestens eines Produkts b beschränkt, welche zuvor noch nicht maximal war, nun aber ihren maximalen Wert erreicht. Zur Bestimmung dieser Produkte wird jeweils deren Stückzahl y b maximiert, wobei gemäß Gleichung (5.5) gefordert wird, dass die Stückzahlen aller anderen Produkte nicht reduziert werden. Genau dann, wenn die Stückzahl y b eines Produkts b im Zuge dieser Maximierung nicht zu steigern ist, beschränkt diese die Stückzahl yp des Referenzprodukts p. Es ist nicht möglich, dass eine Stückzahl y b als Folge des fixen Verhältnisses die Stückzahl yp des Referenzprodukts p beschränkt, aber gemäß Gleichung (5.5) nicht maximal ist. Dies ist durch die nachfolgenden Vorbedingungen sichergestellt, welche die Vektoren und Matrizen in den Nebenbedingungen betreffen. Hervorzuheben ist hierbei, dass nach jedem Iterationsschritt die Stückzahl y b mindestens eines weiteren Produkts b ihren maximalen Wert annimmt. 180 5.2 Maximierung der Kapazitäten Zur Ausführung des Algorithmus müssen vier Vorbedingungen erfüllt sein. Erst dann ist gewährleistet, dass eine gültige Lösung existiert, die Iteration wie beschrieben verläuft und die gefundene optimale Lösung sinnvoll interpretiert werden kann. Die Vorbedingungen und deren Begründungen lauten wie folgt: V1 Das mathematische Modell (P, S, F, L, L Invest ) muss als Ergebnis aus der Transformation eines validierten grafischen Modells {G WS,b } folgen. Dies betrifft die Zeilen, Spalten und die Komponenten der Matrizen, die in ihrer Gesamtheit das mathematische Modell repräsentieren. Andernfalls wären die Zielfunktionen und Nebenbedingungen nicht immer mathematisch definiert, oder es wäre nicht möglich, die Lösung sinnvoll zu interpretieren. Hierbei werden die Vorbedingungen und die Korrektheit von Algorithmus 4.2 und 4.4 zur Validierung bzw. Transformation vorausgesetzt. V2 Die Stückzahlen y b aller Produkte b müssen durch die Bedingungen in Gleichung (5.5) und (5.6b) nach oben beschränkt sein. Dies ist genau dann der Fall, wenn die Prozessstückzahlen xa , welche den Produktstückzahlen y b jeweils zugeordnet sind, durch die Auslastung von Ressourcen begrenzt werden. Das heißt für das zugrundeliegende grafische Modell {G WS,b }, dass in den Wertstromgraphen G WS,b der Produkte b jeweils mindestens eine Ressource verknüpft sein muss. Nur wenn diese Vorbedingung gilt, existiert eine optimale Lösung für Gleichung (5.6b). V3 Die geplanten Stückzahlen y plan,b aller Produkte b müssen, auch wenn diese als vorläufig gelten, größer als null sein. Durch die Bedingung in Gleichung (5.6b) wird gefordert, dass das Verhältnis der Produktstückzahlen y b mit jenem der zugehörigen geplanten Werte y plan,b übereinstimmt. Wäre nun die geplante Stückzahl y plan,b mindestens eines Produkts b gleich null, entspräche die einzig gültige Lösung der Produktstückzahlen y b dem Nullvektor. Obwohl die Stückzahl y b keines Produkts b gemäß Gleichung (5.5) ihren maximalen Wert erreichen würde, wäre keine andere Lösung gültig. V4 Die geplanten Produktstückzahlen yplan müssen die Bedingung in Bezug auf die Produktstruktur erfüllen, wie durch Gleichung (4.2) in Abschnitt 4.4 definiert. Das heißt, die geplanten Stückzahlen y plan,b der untergeordneten Produkte b müssen mindestens dem Sekundärbedarf entsprechen. Sonst könnten für übergeordnete Produkte b keine Stückzahlen y b größer als null erzielt werden. Das fixe Verhältnis, welches durch Gleichung (5.6b) vorgegeben ist, würde bewirken, dass die Stückzahlen y b untergeordneter Produkte b den Sekundärbedarf nicht erreichen. Grundidee zum Ablauf. Der Ablauf zur Maximierung der technischen Kapazitäten ymax wird durch die iterative Formulierung des Ziels vorweggenommen. Im verbleibenden Teil des Abschnitts werden die Schritte, die zur Erreichung des Ziels ausgeführt werden müssen, durch Algorithmus 5.1 veranschaulicht. Bei diesem handelt es sich um eine Kurzfassung, die zum besseren Verständnis in natürlicher Sprache erstellt wurde. Die zugehörige, detaillierte Langfassung ist im Anhang als Algorithmus A.2.2 angefügt. Analog zu den Algorithmen im vorherigen Kapitel ist die Langfassung in formalem, kommentiertem Pseudocode wiedergegeben. Zusätzlich sind im Anhang an gleicher Stelle alle verwendeten Objekte und Variablen sowie Funktionen und Prozeduren aufgeführt. 181 5 Lösungsschritt II: mathematische Optimierung Abbildung 5.1 stellt den Ablauf von Algorithmus 5.1 an einem einfachen Beispiel grafisch dar. Die zwei Produktstückzahlen y 1/2 spannen einen Raum auf, in welchem die maximalen Produktstückzahlen y max,1/2 gesucht werden. Entsprechend den Ressourcen besitzt die Auslastungsmatrix L zwei Zeilen, wobei die Auslastung der Ressourcen komponentenweise dem Ergebnis der Matrixmultiplikation L x entspricht. Die Beschränkung der Auslastung wird dadurch ausgedrückt, dass die Komponenten des Vektors L x nicht größer als eins sein dürfen. Diese Bedingungen werden im allgemeinen, mehrdimensionalen Fall durch Hyperebenen und im vorliegenden, zweidimensionalen Fall durch Geraden repräsentiert. Die Hyperebenen bzw. Geraden teilen den Raum der Produktstückzahlen y 1/2 jeweils in einen abgeschlossenen, gültigen Halbraum und einen offenen, ungültigen Halbraum. Resultierend aus der Menge aller gültigen Lösungen x bildet die konvexe Schnittmenge der gültigen Halbräume die Menge erreichbarer Produktstückzahlen y 1/2 . Im allgemeinen Fall wird diese Schnittmenge durch ein Polytop und im gegebenen, zweidimensionalen Fall durch ein Polygon repräsentiert. Die optimalen Lösungen, welche die technischen Kapazitäten y max,1/2 repräsentieren, liegen auf den Seitenflächen des Polytops bzw. Polygons. Das Verhältnis der geplanten Produktstückzahlen y plan,1/2 ist als Gerade durch den Koordinatenursprung dargestellt. Ausgehend von der Startlösung x(0), welche dem Nullvektor entspricht und folglich den Koordinatenursprung bezeichnet, werden beide Produktstückzahlen±y 1/2 maximiert. Die gefundene Lösung y (1) beschreibt den Schnittpunkt der Gera± den y 1 y plan,1 = y 2 y plan,2 mit der Geraden L[2,∗] x = 1, entsprechend der größten zulässigen Auslastung der zweiten Ressource. Der weitere Ablauf ist davon abhängig, in welchem Iterationsschritt die Produktstückzahlen y 1/2 ihr Maximum erreichen. In dem dargestellten Beispiel werden zwei Fälle unterschieden, je nachdem, ob die Produktstückzahl y1(1) nach dem ersten Iterationsschritt bereits maximal ist. Im Fall (a) begrenzt die Auslastung der zweiten Ressource, entsprechend der zweiten Zeile der Auslastungsmatrix L, beide Produktstückzahlen y 1/2 . Folglich sind die technischen (1) Kapazitäten y max,1/2 gleich den Produktstückzahlen y1/2 nach dem ersten Iterationsschritt. Demgegenüber begrenzt im Fall (b) die Auslastung der zweiten Ressource zwar die Produktstückzahl y 2 , nicht aber die Produktstückzahl y 1. In dem Fall ist die Produktstückzahl y2(1) nach dem ersten Iterationsschritt maximal, worauf diese beibehalten wird, wohingegen die Produktstückzahl y1(1) weiter maximiert wird. Als Konsequenz entspricht danach das Verhältnis der Produktstückzahlen y 1/2 nicht mehr den geplanten Produktstückzahlen y plan,1/2 . Im (2) zweiten Iterationsschritt werden mit den Produktstückzahlen y1/2 die gesuchten maximalen Produktstückzahlen y max,1/2 gefunden. Wie die grafische Darstellung zeigt, bezeichnet die Lösung y (2) den Schnittpunkt der Geraden L[1,∗] x = 1 und L[2,∗] x = 1, jeweils entsprechend der größten zulässigen Auslastung der beiden Ressourcen. Datenstrukturen. Neben den Skalaren, Vektoren und Matrizen beschränken sich die Datenstrukturen auf die Information, welche Produktstückzahlen im aktuellen Iterationsschritt maximal sind. Die Indizes all derjenigen Produkte b, deren Stückzahl y b maximal ist, müssen der Menge B max zugeordnet werden, wie in Gleichung (5.4a, 5.4b) angegeben. Hierzu wird das eindimensionale, zweiwertige Feld istMax eingeführt, dessen Elemente istMax[b ] genau dann wahr sind, wenn die Indizes b in der Menge B max enthalten sind. 182 5.2 Maximierung der Kapazitäten y2 y2 y1 = y plan,1 y plan,2 y2(1) y (1) = ymax L[2,∗] x L[1,∗] x 0 1 1 y1 y1(1) (a) Produktstückzahl y 1 ist nach einem Iterationsschritt maximal y2 y1 y2 = y plan,1 y plan,2 y (2) = ymax ¡ ¢ y2(1) = y2(2) y (1) L[2,∗] x L[1,∗] x 0 y1(1) y1(2) 1 1 y1 (b) Produktstückzahl y 1 ist nach einem Iterationsschritt noch nicht maximal Abbildung 5.1: Visualisierung der Suche maximaler Kapazitäten ymax (Beispiel). Die Produktstückzahlen y 1/2 werden schrittweise maximiert, solange diese laut Definition noch nicht ihren maximalen Wert erreicht haben. Bis dieser Punkt erreicht ist, muss das Verhältnis der Produktstückzahlen y 1/2 den geplanten Werten y plan,1/2 entsprechen, welches als Gerade durch den Koordinatenursprung dargestellt ist. Die Lösungen werden durch die Auslastung der Ressourcen gemäß der Matrix L begrenzt, im gegebenen, zweidimensionalen Fall jeweils repräsentiert durch eine Gerade. 183 5 Lösungsschritt II: mathematische Optimierung Eingabe : Vektor (vorläufiger) geplanter Produktstückzahlen yplan , Prozessmatrix P, Produktstrukturmatrix S, Flussmatrix F, Auslastungsmatrix L Ausgabe : Vektor maximaler Produktstückzahlen ymax unter den vorgegebenen Bedingungen 01: 02: 03: ··· 06: 07: 08: 09: 10: ··· 13: 14: 15: Funktion MaxKapazitäten(yplan , P, S, F, L) initialisiere Lösung x als Nullvektor für alle Produkte b tue initialisiere Produktstückzahl y b als nicht maximal lege erstes Produkt als Referenzprodukt p fest wiederhole speichere vorherige Lösung x als Lösung x′ bestimme eine Lösung x, welche die Produktstückzahl yp wie folgt maximiert: © x ← arg max P[p,∗] x : x 0 ∧∀b ∈ {1, . . . , n} \ {p } Produktstückzahl y b ist nicht maximal → ( y plan,p P[b,∗] − y plan,b P[p,∗]) x = 0 ∧ Produktstückzahl y b ist maximal → P[b,∗] x = P[b,∗] x′ ∧ ª (I − S) P x 0 ∧ F x = 0 ∧ L x 1 setze Referenzprodukt p zurück für alle Produkte b, deren Stückzahl y b nicht maximal ist tue wenn IstMaxKapazität( . . . ) gilt dann markiere Produktstückzahl y b als maximal sonst wenn noch kein Referenzprodukt p bestimmt wurde dann lege Produkt b als neues Referenzprodukt p fest 16: ··· solange Referenzprodukt p bestimmt ist liefere technische Kapazitäten ymax gemäß Lösung x zurück 19: 20: 21: 22: Funktion IstMaxKapazität(x, b, P, S, F, L) speichere aktuellen Wert der Produktstückzahl y b initialisiere Lösung x′ mit aktueller Lösung x maximiere Produktstückzahl y b′ gemäß folgendem Ausdruck: © y b′ ← max P[b,∗] x′ : x′ 0 ∧ P x′ P x ∧ ª P[b,∗] x′ y b + ε ∧ (I − S) P x′ 0 ∧ F x′ = 0 ∧ L x′ 1 wenn Wert y b′ nicht größer als Wert y b ist dann liefere wahr zurück liefere falsch zurück 23: 24: 25: Algorithmus 5.1: Maximierung der technischen Kapazitäten ymax (Kurzfassung). 5.2.2 Beschreibung des Algorithmus Im folgenden Teil des Abschnitts wird der Algorithmus 5.1 zur Maximierung der Kapazitäten ymax beschrieben, welcher das weiter oben formulierte Ziel umsetzt (Langfassung siehe Algorithmus A.2.2). Gegeben seien die vorläufigen geplanten Produktstückzahlen yplan und die Matrizen des mathematischen Modells (P, S, F, L, L Invest ). Funktion MaxKapazitäten( . . . ) In Zeile 01 ist die Hauptfunktion deklariert, welche dazu dient, die maximalen Produktstückzahlen ymax entsprechend obiger Definition zu ermitteln. Der Ablauf der Funktion basiert auf einer Schleife, deren wiederholter Durchlauf die Iterationsvorschrift aus Gleichung (5.6a, 5.6b) umsetzt. Vor Betreten der Schleife wird der Nullvektor als Startlösung x 184 5.2 Maximierung der Kapazitäten der Prozessstückzahlen xa übernommen, und die Stückzahlen y b aller Produkte b werden als nicht maximal initialisiert. Gemäß dem Ausdruck in Gleichung (5.6b) muss unter allen Produkten b, deren Stückzahl y b noch nicht maximal ist, ein beliebiges Referenzprodukt p ausgewählt werden. Da diese Bedingung vor Betreten der Schleife auf alle Produkte zutrifft, wird das erste Produkt als Referenzprodukt p festgelegt. Ab Zeile 06 werden in einer Schleife alle noch nicht maximalen Produktstückzahlen y b iterativ maximiert. In jedem Iterationsschritt wird die bisherige Lösung x der Prozessstückzahlen xa aus dem vorhergehenden Iterationsschritt als Lösung x′ gespeichert. Im Anschluss daran wird eine neue Lösung x bestimmt, welche die Stückzahl yp des Referenzprodukts p maximiert, wobei die zuvor gefundene Lösung als Startlösung dient. Dabei existieren die folgenden zwei Nebenbedingungen in Bezug auf die Stückzahlen y b aller Produkte b außer dem Referenzprodukt p : Für alle nicht maximalen Produktstückzahlen y b gilt, dass diese im Verhältnis zum jeweils geplanten Wert y plan,b der Stückzahl yp des Referenzprodukts p entsprechen müssen. Für alle maximalen Produktstückzahlen y b gilt dagegen, dass deren Werte unverändert beibehalten werden und folglich mit der vorherigen Lösung x′ übereinstimmen müssen. Daneben müssen weitere, allgemeine Nebenbedingungen erfüllt sein, die in Abschnitt 4.4 eingeführt wurden. Dies betrifft die Bedingung in Bezug auf die Produktstruktur gemäß Gleichung (4.2), nach welcher gefordert wird, dass die Produktstückzahlen y b mindestens dem Sekundärbedarf entsprechen. Wie durch Gleichung (4.13) angegeben, muss an Vereinigungen von Kanten und an alternativen Flusspunkten in den Wertstromgraphen der Flusserhalt gelten. Des Weiteren darf die Auslastung der Ressourcen gemäß Gleichung (4.14) einen Wert von eins nicht überschreiten. Ab Zeile 09 wird die zuletzt gefundene Lösung x ausgewertet. Zunächst wird das Referenzprodukt p zurückgesetzt, um im nächsten Schritt ein neues Referenzprodukt festzulegen. Dann werden alle Produktstückzahlen y b , die zuvor noch nicht maximal waren, dahingehend geprüft, ob diese nun ihren maximalen Wert erreicht haben. Hierzu wird eine Hilfsfunktion aufgerufen, die weiter unten erläutert wird und welcher die gefundene Lösung x übergeben wird. Das erste Produkt b, dessen Stückzahl y b in dem Zuge noch nicht maximal ist, wird als Referenzprodukt p übernommen. Nach jedem Iterationsschritt muss mindestens eine Produktstückzahl y b , die noch nicht maximal war, ihren maximalen Wert erreichen, wie oben erläutert wurde. Abschließend wird die Schleifenbedingung geprüft, nach welcher im aktuellen Durchlauf der Schleife ein Referenzprodukt p bestimmt worden sein muss. Das ist genau dann der Fall, wenn die Stückzahl y b mindestens eines Produkts b noch nicht maximal ist. Nach Verlassen der Schleife werden die maximalen Produktstückzahlen ymax auf Grundlage der ermittelten Lösung x bestimmt, wie in Gleichung (4.1) angegeben. Zuletzt wird der Vektor ymax als Ergebnis der Funktion zurückgegeben. Funktion IstMaxKapazität( . . . ) Ab Zeile 19 folgt die Hilfsfunktion, welche der Feststellung dient, ob eine Produktstückzahl y b im aktuellen Iterationsschritt ihren maximalen Wert erreicht hat. Die Hilfsfunktion setzt die Prüfung der Bedingung um, welche durch die oben stehende Gleichung (5.5) definiert ist. Zum Vergleich wird der aktuelle Wert der Produktstückzahl y b gespeichert und die zuvor ermittelte Lösung x als Startlösung x′ übernommen. Im Anschluss daran wird ausgehend von der Lösung x′ die Produktstückzahl y b′ maximiert, wobei folgende Nebenbedingun- 185 5 Lösungsschritt II: mathematische Optimierung gen erfüllt sein müssen: Die im vorhergehenden Iterationsschritt ermittelten Stückzahlen y b aller Produkte b müssen mindestens beibehalten werden und dürfen entsprechend nicht reduziert werden. Weiterhin soll die Produktstückzahl y b′ gegenüber dem gespeicherten Wert y b höchstens um einen festgelegten Betrag ε erhöht werden. Der Zweck dieser Nebenbedingung besteht darin, den Algorithmus zu beschleunigen, da allein entscheidend ist, ob die Produktstückzahl y b′ gegenüber dem aktuellen Wert y b erhöht werden kann. Darüber hinaus gelten für die gesuchte Lösung x′ die Bedingungen in Bezug auf die Produktstruktur, den Flusserhalt und die Auslastung. Sofern die ermittelte Produktstückzahl y b′ nicht größer als der aktuelle Wert y b ist, muss die Produktstückzahl y b unter den gegebenen Bedingungen maximal sein. In diesem Fall wird ein positives Ergebnis zurückgegeben, sonst wird die Hilfsfunktion mit einem negativen Ergebnis verlassen. 5.2.3 Beweis der Korrektheit und Zeitkomplexität Analog zu den Algorithmen im vorigen Kapitel soll der Algorithmus 5.1 zur Maximierung der technischen Kapazitäten ymax formal untersucht werden. Zunächst muss dessen Korrektheit bewiesen werden, da für diesen keine Grundlage in der Literatur existiert, wie sie im Fall der vorhergehenden Algorithmen bestand. Anschließend folgt wieder die Untersuchung der Komplexität und insbesondere der Komplexität in Bezug auf die Laufzeit. Die Komplexität in Bezug auf den Speicherplatzbedarf ist abhängig von den verwendeten Datenstrukturen. Im gegebenen Fall betrifft dies neben den Skalaren, Vektoren und Matrizen das eindimensionale Feld istMax, dessen Länge der Zahl n der gegebenen Produkte entspricht. Beweis der Korrektheit. Um die Korrektheit des Algorithmus nachzuweisen, ist entscheidend, welche Nachbedingung in Bezug auf dessen Ausgabe formuliert wird. Allgemein bezieht sich das Ziel des Algorithmus darauf, die verfügbaren Ressourcen bestmöglich auszulasten, um die Produktstückzahlen y b zu maximieren. Das heißt, die Stückzahl y b jedes Produkts b muss den maximalen Wert annehmen, der erreichbar ist, ohne die Stückzahlen der jeweils anderen Produkte zu reduzieren. Dass im Zuge der Maximierung zwischen jedem Paar von Produktstückzahlen y b jeweils ein fixes Verhältnis erfüllt werden muss, ist nicht Teil der Definition des Ziels. Stattdessen wird dies bei der Formulierung des Ziels durch eine Nebenbedingung berücksichtigt. Vor diesem Hintergrund wird als Nachbedingung die folgende zu beweisende Aussage formuliert: Theorem 5.1: Korrektheit von Algorithmus 5.1. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. Des Weiteren seien alle Vorbedingungen des Algorithmus erfüllt. Unter diesen Voraussetzungen ist der Algorithmus zur Maximierung der technischen Kapazitäten ymax partiell und total korrekt. Korrekt heißt hierbei, dass nach Beendigung des Algorithmus die Stückzahlen y b aller Produkte b maximal sind, wie in Gleichung (5.5) definiert. Beweis. Aus der oben stehenden Formulierung des Theorems geht bereits hervor, dass nacheinander die partielle und die totale Korrektheit nachgewiesen werden müssen. Wie in der 186 5.2 Maximierung der Kapazitäten Kurzeinführung erläutert, wird zum Beweis der partiellen Korrektheit zunächst eine geeignete Schleifeninvariante gewählt. Die Schleifeninvariante muss einem logischen Ausdruck entsprechen, der zu jedem Zeitpunkt im Ablauf des Algorithmus wahr ist, sofern die Eingabe des Algorithmus den Vorbedingungen genügt. Weiterhin muss das Ziel des Algorithmus genau dann erreicht sein, wenn die Schleifeninvariante und die negierte Schleifenbedingung erfüllt sind. Die Schleifenbedingung besagt im Fall des gegebenen Algorithmus, dass im aktuellen Durchlauf der Schleife ein Referenzprodukt p bestimmt wurde. Ein entsprechendes Referenzprodukt p wird genau dann bestimmt, wenn der Index mindestens eines Produkts b noch nicht in der Menge B max enthalten ist. Mit Bezug auf Gleichung (5.5) wird als Schleifeninvariante folgender logischer Ausdruck definiert: Schleifeninvariante: (k) ∀b ∈ B max yb(k) ist maximal. (5.7) Oben stehende Gleichung (5.7) beschreibt den Teil der Definition gemäß Gleichung (5.4b), welcher sich auf die Elemente der Menge B max bezieht. Für den Beweis der Korrektheit ist dabei jedoch nicht vorauszusetzen, dass die Menge B max wie in Gleichung (5.4b) angegeben definiert ist. Nicht notwendigerweise mit der Definition übereinstimmend enthält die Menge B max genau diejenigen Indizes b von Produkten, die dieser im Ablauf des Algorithmus zugeordnet werden. Ein Index b ist jeweils genau dann in der Menge B max enthalten, wenn das Element istMax[b ] für das Produkt b zu diesem Zeitpunkt wahr ist. Wenn die Schleifenbedingung nicht erfüllt ist, existiert kein Produkt b, dessen Index nicht in der Menge B max enthalten ist. Umgekehrt formuliert heißt das, wenn die Schleifenbedingung verletzt ist, dann sind die Indizes aller Produkte b in der Menge B max enthalten. Unter dieser Bedingung und der Gültigkeit der Schleifeninvariante sind folglich die Stückzahlen y b aller Produkte b maximal, und das Ziel des Algorithmus ist erreicht. Somit muss als Nächstes die Gültigkeit der Schleifeninvariante vor Beginn der Schleife, nach jedem Durchlauf und daraus folgend nach deren Beendigung gezeigt werden. (0) Da die Menge B max als leere Menge initialisiert wird, ist der Ausdruck in Gleichung (5.7) vor Beginn der Schleife wahr (Induktionsanfang). Im Weiteren wird vorausgesetzt, dass die definierte Schleifeninvariante für den jeweils vorhergehenden Schleifendurchlauf galt und (k−1) der oben stehende Ausdruck folglich für B max erfüllt ist. Für alle Produkte b, deren Indizes (k−1) in der Menge B max enthalten waren, gilt, dass die Indizes auch nach dem aktuellen Schlei(k) fendurchlauf in der Menge B max enthalten sind. Unter der genannten Voraussetzung waren (k−1) die Stückzahlen yb(k−1) der Produkte b in der Menge B max nach dem vorherigen Schleifendurchlauf maximal. Da all diese Stückzahlen y b beibehalten und andere Produktstückzahlen nicht reduziert werden, müssen auch die Produktstückzahlen yb(k) maximal sein. Damit ist die Schleifeninvariante für alle Produkte b erfüllt, deren Indizes nach dem vorhergehenden (k−1) Durchlauf der Schleife in der Menge B max enthalten waren. Es verbleibt, die Schleifeninvariante für alle Produkte b zu beweisen, deren Indizes nicht in (k−1) enthalten waren. In jedem Schleifendurchlauf wird die Stückzahl yp des Reder Menge B max ferenzprodukts p maximiert, eines beliebig ausgewählten Produkts, dessen Stückzahl nicht maximal ist. Dabei muss die Nebenbedingung erfüllt sein, dass alle anderen Produktstückzahlen y b , die nicht maximal sind, zur Stückzahl yp des Referenzprodukts in einem fixen Verhältnis stehen. Danach wird für all diese Produkte b eine Hilfsfunktion aufgerufen, wel- 187 5 Lösungsschritt II: mathematische Optimierung che die Bedingung in Gleichung (5.5) umsetzt und prüft, ob die Stückzahl y b nun maximal ist. Wenn die Prüfung bestätigt, dass die genannte Bedingung erfüllt ist, wird der Index b des (k) jeweils betreffenden Produkts in die Menge B max aufgenommen. Unter der oben stehenden Voraussetzung, dass die Schleifeninvariante nach dem vorhergehenden Schleifendurchlauf galt, ist diese folglich auch für alle anderen Produkte b erfüllt. Das Zwischenergebnis lautet entsprechend zusammengefasst, dass die definierte Schleifeninvariante nach jedem Durchlauf der Schleife wahr ist (Induktionsschritt). Die zuvor getroffenen Aussagen gelten gleichermaßen für den letzten Schleifendurchlauf, nach welchem die Schleife verlassen wird. Folglich ist die partielle Korrektheit des Algorithmus bewiesen, und es gilt nun, die totale Korrektheit des Algorithmus nachzuweisen. Zu diesem Zweck wird, wie in der Kurzeinführung des Kapitels erläutert, eine Schleifenvariante festgelegt, die folgenden Anforderungen genügen muss: Die Schleifenvariante muss einen Ausdruck bezeichnen, der zu Beginn einer natürlichen Zahl größer als null entspricht und mit jedem Durchlauf der Schleife reduziert wird. Zudem muss die Schleifenbedingung immer dann verletzt sein, wenn die Schleifenvariante einen Wert von null annimmt. Zur Umsetzung dieser Anforderungen wird folgender Ausdruck definiert: Schleifenvariante: (k) n − |B max |. (5.8) Auf dieser Grundlage muss nun gezeigt werden, dass die Schleifenvariante die genannten (0) Anforderungen erfüllt. Vor Beginn der Schleife wird die Menge B max als leere Menge initialisiert, sodass der Ausdruck in Gleichung (5.8) der endlichen Zahl n der Produkte entspricht. Nach jedem Schleifendurchlauf erreicht die Stückzahl y b mindestens eines Produkts b, die (k) zuvor nicht maximal war, ihren maximalen Wert, worauf die Menge B max erweitert wird. Dies folgt aus den Vorbedingungen des Algorithmus und den Nebenbedingungen der Zielfunktionen, wie oben an der entsprechenden Stelle festgestellt. Insbesondere wird durch die Vorbedingungen gefordert, dass die Stückzahlen y b aller Produkte b nach oben beschränkt sein müssen. Werden alle Produktstückzahlen y b , die zuvor nicht maximal waren, in einem fixen Verhältnis maximiert, beschränkt mindestens eine Produktstückzahl y b die gefundene Lösung. Als Konsequenz wird der Index mindestens eines Produkts b, welcher zuvor noch (k−1) (k) kein Element der Menge B max war, der Menge B max hinzugefügt. Mit jedem Durchlauf der (k) Schleife wächst entsprechend die Kardinalität der Menge B max , und die Schleifenvariante wird jeweils mindestens um den Wert eins reduziert. Nach jedem Durchlauf wird die Schleifenbedingung geprüft, welche der Feststellung dient, ob ein Referenzprodukt p bestimmt werden konnte. Ein Referenzprodukt p kann genau (k) dann nicht bestimmt werden, wenn die Menge B max die Indizes aller Produkte b enthält und die Schleifenvariante gleich null ist. Das heißt, erreicht die Schleifenvariante den Wert null, dann ist die Schleifenbedingung verletzt, und die Schleife wird verlassen. Damit ist bewiesen, dass der Algorithmus partiell und total korrekt ist. Beweis der Zeitkomplexität. Der Fokus liegt im Folgenden auf der Untersuchung der Zeitkomplexität von Algorithmus 5.1. Gesucht ist entsprechend eine obere Schranke für die asymptotisch wachsende Laufzeit, deren Definition von den jeweiligen Eingaben des Al- 188 5.3 Minimierung der Investitionen gorithmus abhängig ist. Der betrachtete Algorithmus basiert auf einer Schleife, welche die iterative Formulierung des Ziels umsetzt, sodass bezüglich der Laufzeit gilt: Theorem 5.2: Zeitkomplexität von Algorithmus 5.1. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. Der Algorithmus zur Maximierung der technischen Kapazitäten ymax besitzt in der angegebenen Implementierung eine Laufzeit von O(n 2 ). Beweis. Da vorausgesetzt wird, dass sämtliche Vorbedingungen des Algorithmus gelten, müssen die Stückzahlen y b aller Produkte b nach oben beschränkt sein. Bezug nehmend auf die Definition in Gleichung (5.5) ist bekannt, dass vor Beginn der Schleife die Stückzahl y b keines Produkts b ihren maximalen Wert annimmt. In jedem Schleifendurchlauf wird die Stückzahl yp des jeweils gewählten Referenzprodukts p maximiert, wobei die in Gleichung (5.6b) angegebenen Bedingungen gelten. Daraufhin ist die Stückzahl y b mindestens eines weiteren Produkts b maximal, wie im Zuge des Beweises der Korrektheit festgestellt wurde. Die Schleife wird nur dann wiederholt, wenn mindestens ein Produkt b verbleibt, dessen Stückzahl y b noch nicht maximal ist. Als Folge ist die Zahl der Schleifendurchläufe nicht größer als die endliche Zahl n der gegebenen Produkte b. Im Hinblick auf die Laufzeiten wird vorausgesetzt, dass Aufrufe zur Maximierung von Zielfunktionen in einer Laufzeit von O(1) erfolgen. Weiterhin wird angenommen, dass mathematische Operationen mit Vektoren und Matrizen in einer Laufzeit von O(1) ausgeführt werden. Unter diesen Voraussetzungen können für die Zeilen im Rumpf der Funktionen folgende Laufzeiten angegeben werden (ohne aufgerufene Hilfsfunktionen): 02: 03 . . . 04: 05: 06 . . . 09: O(1) O(n) O(1) O(n) 10 . . . 15: 16: 17 . . . 18: 20 . . . 25: O(n 2 ) O(n) O(1) O(n 2 ) Die Gesamtlaufzeit resultiert aus der Addition der Laufzeiten für alle Zeilen, wobei kleinere Summanden und konstante Faktoren vernachlässigt werden. Demzufolge ist die gesuchte obere Schranke gleich dem zu zeigenden Ausdruck O(n 2 ). 5.3 Minimierung der Investitionen Nachdem die maximalen Kapazitäten ermittelt wurden, folgt im Planungsprozess die Entscheidung über die Stückzahlen für Eigenproduktion und Zukauf. Hierzu wird der erwartete Bedarf unter Berücksichtigung von strategischen Faktoren wie z. B. einem festgelegten Eigenproduktionsanteil mit den technischen Kapazitäten ymax verglichen. Das Ergebnis sind die im Unternehmen herzustellenden, geplanten Produktstückzahlen yplan , wobei anzumerken ist, dass diese die technischen Kapazitäten ymax überschreiten können. Das heißt, durch die Herstellung der geplanten Produktstückzahlen yplan ist es möglich, dass die Auslastung 189 5 Lösungsschritt II: mathematische Optimierung einer oder mehrerer MAEs den Wert eins übersteigt. Von dieser Überlastung werden, wie in Abschnitt 2.3 beschrieben, die notwendigen Investitionen abgeleitet, indem die überlasteten MAEs vervielfacht werden. Gesucht ist die minimale Überlastung, die erforderlich ist, um die Produkte in den geplanten Stückzahlen yplan herzustellen. Um das Ziel und den Ablauf des Algorithmus formal eindeutig zu beschreiben, werden einige zusätzliche Symbole eingeführt. Diese werden neben den bekannten Symbolen aus den vorigen Abschnitten und dem entsprechenden Verzeichnis verwendet. i , i′ I min j natürliche Zahl, nicht näher bezeichnete Zeile des Vektors L x, i , i ′ ∈ N Menge der Zeilen i, an denen der Wert des Vektors L x minimal ist, I min ⊆ {1, . . . , N(L)} natürliche Zahl, bezeichnet im aktuellen Iterationsschritt diejenige oder ggf. eine derjenigen Zeilen des Vektors L x mit dem größten nicht minimalen Wert größer als eins, j ∈ N j′ s. o., nächste Zeile des Vektors L x mit dem größten nicht minimalen Wert größer als eins, j ′ ∈ N N(X) größte Zeile einer Matrix X ungleich dem Nullvektor, N(X) ∈ N0 ′ ⊤ x′ Vektor [x 1′ . . . xm ] der Prozessstückzahlen xa′ , zu vergleichende Lösung, x′ ∈ Rm0 ′ xa zu vergleichende Teillösung mit Index a ∈ {1, . . . , m}, xa′ ∈ R 0 Analog zu Algorithmus 5.1 im vorigen Abschnitt folgt zunächst das Ziel, welches durch den Algorithmus erreicht werden soll. Danach wird der Ablauf des Algorithmus beschrieben, um zuletzt dessen Korrektheit und Zeitkomplexität nachzuweisen. 5.3.1 Ziel, Grundidee und Datenstrukturen Die Formulierung des Ziels knüpft an die Erläuterung in Abschnitt 2.3 und die zusammenfassende Anforderung A11 in Abschnitt 2.6 an. Es besteht analog zum vorigen Abschnitt die Herausforderung, eine geeignete Strategie festzulegen, welche die Auswahl einer nicht dominierten Lösung beschreibt. In diesem Fall dominieren zwei Lösungen im reellwertigen Suchraum einander nicht, wenn zwei Bedingungen gelten: Nach der ersten Lösung ist die Überlastung im Fall mindestens einer Ressource kleiner als die Überlastung derselben Ressource nach der zweiten Lösung. Umgekehrt ist nach der zweiten Lösung die Überlastung im Fall mindestens einer anderen Ressource kleiner als die Überlastung derselben Ressource nach der ersten Lösung. Folglich ist es nicht möglich, eine Lösung der jeweils anderen eindeutig vorzuziehen, und beide Lösungen gelten als optimal. Zwar legt der Anwender fest, welche Ressourcen im Wertstromgraphen jedes Produkts überlastet werden sollen, jedoch werden oft Gruppen von Ressourcen für verschiedene Produkte genutzt. Als Folge besteht in vielen Fällen die Möglichkeit, die Überlastung einer Ressource zu reduzieren, indem im Gegenzug die Überlastung anderer Ressourcen erhöht wird. Wie schon im Zusammenhang mit der TEK festgehalten, ist ein solches, mehrdeutiges Ergebnis nicht als Entscheidungsgrundlage für die Planung geeignet. Vorabdiskussion zum gewählten Ansatz. Um aus der Menge der optimalen Lösungen eindeutig eine Lösung zu bestimmen, wird folgender Ansatz gewählt: Schrittweise wird die Überlastung all derjenigen Ressourcen minimiert, deren Auslastung unter allen betrachteten Ressourcen am größten ist. Hierbei werden nur diejenigen Ressourcen betrachtet, deren mindestens notwendige Überlastung noch nicht feststeht. Als Folge wird die Überlastung, 190 5.3 Minimierung der Investitionen die zur Herstellung der geplanten Produktstückzahlen notwendig ist, gleichmäßig verteilt. Das heißt, wenn die Überlastung einer Ressource reduziert werden kann, indem man die Überlastung anderer erhöht, werden die Werte einander angeglichen. Analog zur Maximierung der Kapazitäten und dem hierzu angegebenen Algorithmus sind grundsätzlich auch andere Ansätze denkbar. Zunächst erscheint es naheliegend, spezifische Kosten für die Überlastung von Ressourcen zu definieren, um die Aufwände für Beschaffung und Betrieb abzubilden. Auf dieser Basis könnten theoretisch die Gesamtkosten zur Herstellung der Produkte minimiert werden, wodurch nur bestimmte Ressourcen überlastet würden. Die praktische Umsetzung wird aus dem gleichen Grund erschwert, der bereits in Abschnitt 2.3 im Zusammenhang mit der Optimierung der Auslastung dargelegt wurde: Zum Zeitpunkt der Planung liegen die notwendigen Informationen über den laufenden Betrieb im Allgemeinen noch nicht in ausreichender Genauigkeit vor. Auszuschließen ist der Ansatz jedoch aus dem Grund, dass eine unendliche Menge optimaler Lösungen existieren kann, deren Gesamtkosten sich nicht unterscheiden. Alternativ könnte der Anwender eine Priorisierung aller Ressourcen definieren, um festzulegen, welche Ressourcen bevorzugt überlastet werden sollen. Diese Priorisierung könnte als Grundlage dienen, um die Überlastung der Ressourcen in der umgekehrten Reihenfolge zu minimieren. Dadurch würden Ressourcen in einem größeren Maße überlastet, wenn diesen eine höhere Priorität zugeordnet ist. In Abschnitt 3.4 wurde im Zusammenhang mit Software für Supply Chain Management angemerkt, dass sich eine Kostenfunktion nur eingeschränkt eignet, um dies umzusetzen. Mit Hilfe eines iterativ ablaufenden Algorithmus wäre es zwar möglich, eine entsprechende Priorisierung zu realisieren. Jedoch ist analog zum vorigen Abschnitt zu bemerken, dass ein Ungleichgewicht zugunsten höher priorisierter Ressourcen bestünde, sodass im Extremfall nur eine einzige Ressource überlastet würde. Um eine Priorisierung aller Ressourcen abzubilden, müsste zudem das Modell erweitert werden, wodurch für den Anwender der Aufwand zur Modellierung stiege. Demgegenüber kann der gewählte Ansatz realisiert werden, ohne dass eine Erweiterung des grafischen Modells erforderlich ist. Hierzu wird die Sortierung ausgehender Kanten von alternativen Flusspunkten genutzt, welche der Anwender festlegt, um die zugeordneten Prozessschritte zu priorisieren. Wie in Abschnitt 4.2 beschrieben, dürfen nur solche Prozessschritte, die nach den ersten Ausgängen alternativer Flusspunkte folgen, zu einer Überlastung führen. Die Information, welche Prozessschritte dies betrifft, wird im mathematischen Modell durch die Investitionsmatrix L Invest abgebildet. Ziel und Vorbedingungen. Damit gilt es nun, das Ziel des Algorithmus in formal eindeutiger Notation auszudrücken. Betrachtet werden zunächst alle Lösungen x der Prozessstückzahlen xa , welche den geplanten Stückzahlen y plan,b der gegebenen Produkte b entsprechen. Wie in Abschnitt 4.4 definiert wurde, ist die Auslastung der Ressourcen jeweils gleich den Komponenten des Vektors L x, wobei jeder Zeile eine Ressource zugeordnet ist. Der Vektor L x bezeichnet dabei das Ergebnis aus der Multiplikation der Auslastungsmatrix L und einer Lösung x, welche die vorgegebenen Bedingungen erfüllt. Unter dieser Voraussetzung beschreibt die gesuchte minimale Überlastung die Menge der minimalen oberen Schranken für die Komponenten des Vektors L x. Genauer sind die minimalen oberen Schranken größer 191 5 Lösungsschritt II: mathematische Optimierung als oder gleich eins gesucht, für welche unter den vorgegebenen Bedingungen eine Lösung x existiert. Wenn eine dieser Schranken für eine Komponente des Vektors L x größer als eins ist, muss die jeweils zugeordnete Ressource in dem angegebenen Maße überlastet werden. Ist die Schranke dagegen gleich eins, ist keine Überlastung der Ressource notwendig, um die geplanten Produktstückzahlen yplan herzustellen. Um die minimalen oberen Schranken größer als oder gleich eins zu bestimmen, wird gedanklich ein iteratives Vorgehen angewandt. Zu Beginn wird für alle Werte des Vektors L x, von denen bekannt ist, dass diese nicht größer als eins sein können, eine minimale obere Schranke von eins festgelegt. Für alle anderen Werte ist die minimale obere Schranke vor Beginn der Iteration dagegen noch nicht definiert. Danach wird in jedem Iterationsschritt der größte nicht minimale Wert minimiert, wobei alle anderen Werte, die noch nicht minimal sind, diesen nicht überschreiten dürfen. Abweichend vom mathematischen Verständnis eines Extremwertes wird ein Wert genau dann minimal genannt, wenn seine minimale obere Schranke feststeht. Das ist genau dann der Fall, wenn die obere Schranke des Wertes gleich eins ist oder der Wert gegenüber seiner oberen Schranke nicht reduziert werden kann, ohne andere Werte über deren obere Schranken zu steigern. Nach jedem Iterationsschritt wird für alle Werte, die zuvor noch nicht minimal waren, der größte unter all diesen Werten als obere Schranke übernommen. Die Iteration wird fortgesetzt, solange der Vektor L x mindestens einen Wert enthält, welcher nicht minimal und größer als eins ist. Entsprechend wird das Ziel durch eine Iterationsvorschrift ausgedrückt, welche die Minimierung oberer Schranken für die Komponenten des Vektors L x definiert. Wie im vorigen Abschnitt sei ein mathematisches Modell (P, S, F, L, L Invest ) gegeben, welches aus der Transformation eines grafischen Modells {G WS,b } folgt. Vor, während und nach der Iteration müssen die Zeilen i des Vektors L x dahingehend unterschieden werden, ob die zugehörigen Werte laut der obigen Beschreibung minimal oder nicht minimal sind. Der Wert an einer Zeile i ist jeweils gleich dem Ergebnis der Matrixmultiplikation L[i ,∗] x, wie in Abschnitt 4.4 allgemein definiert. Die Startlösung sei durch eine Lösung x(0) gegeben, von welcher vorausgesetzt werden kann, dass die Werte des Vektors L x(0) größer als oder gleich null sind. Wie weiter unten noch dargelegt wird, darf eine Ressource, entsprechend einer Zeile der Auslastungsmatrix L, nur dann überlastet werden, wenn der Wert des Vektors L x(0) an dieser Zeile größer als null ist. Wenn dieser Wert gleich null ist, dann ist dessen minimale obere Schranke gleich eins, und der Wert gilt bereits vor dem ersten Iterationsschritt als minimal. Um die Menge der Zeilen i zu beschränken, wird die Funktion N(X) eingeführt, welche die größte Zeile einer Matrix X ungleich dem Nullvektor zurückgibt. Auf dieser Basis wird zur Unterscheidung minimaler und nicht minimaler Werte die Menge I min definiert (der Iterationsschritt wird wie zuvor durch den Exponenten k ausgedrückt): k = 0: k ∈ N: © ª (0) I min = i : i ∈ {1, . . . , N(L)} ∧ L[i ,∗] x(0) = 0 , © (k) I min = i : i ∈ {1, . . . , N(L)} ∧ ª L[i ,∗] x(k) ist minimal . (5.9a) (5.9b) Die Menge I min repräsentiert die Teilmenge aller Zeilen i des Vektors L x, deren Werte innerhalb der gültigen Lösungen x minimal sind. Eine Lösung x ist genau dann gültig, wenn 192 5.3 Minimierung der Investitionen diese den geplanten Produktstückzahlen yplan entspricht und die Bedingung in Bezug auf den Flusserhalt erfüllt. Zur Bezeichnung der oberen Schranken, welche für die Komponenten des Vektors L x gelten, wird das eindimensionale, reellwertige Feld minMax eingeführt. Wie erläutert, wird für jeden Wert des Vektors L x an einer Zeile i, der vor Beginn der Iteration minimal ist, eine minimale obere Schranke minMax[i ] von eins festgelegt. Solange ein Wert noch nicht minimal ist, wird seiner oberen Schranke minMax[i ] nach jedem Iterationsschritt jeweils der größte nicht minimale Wert zugeordnet. Sobald ein Wert aber minimal ist, wird dessen obere Schranke minMax[i ] nicht mehr verändert. Da die minimalen oberen Schranken größer als oder gleich eins gesucht sind, gilt ein Wert bereits als minimal, wenn die obere Schranke minMax[i ] gleich eins ist. Wenn dagegen der Wert an einer Zeile i kleiner als dessen obere Schranke minMax[i ] und letztere größer als eins ist, kann dieser Wert noch nicht als minimal gelten. Entspricht der Wert seiner oberen Schranke und ist diese größer als eins, muss eine Lösung x′ gesucht werden, welche den Wert des Vektors L x′ an Zeile i weiter reduziert. Formal ausgedrückt gilt (vorausgesetzt, die obere Schranke minMax[i ] ist definiert, sonst wird der Wert als nicht minimal aufgefasst): k ∈ N0 : L[i,∗] x(k) ist minimal ⇔ ¡ ¢ ¡ minMax[i ](k) = 1 ∨ L[i,∗] x(k) = minMax[i ](k) ∧ © L[i,∗] x(k) = min L[i,∗] x′ : x′ 0 ∧ P x′ = P x(k) ∧ F x′ = 0 ∧ ∀i ′ ∈ {1, . . . , N(L)} \ {i } ª¢ L[i ′,∗] x′ minMax[i ′ ](k) . (5.10) Die Startlösung x(0) muss alle oben genannten Bedingungen erfüllen, wobei eine Bedingung ergänzt wird: Die Auslastung einer Ressource darf jeweils nur dann größer als null sein, wenn diese gemäß der Festlegung des Anwenders bei Bedarf überlastet werden soll. Das heißt, es werden nur solche Prozessschritte betrachtet, welche im grafischen Modell nach den ersten Ausgängen alternativer Flusspunkte folgen. Diese Bedingung ist erfüllt, wenn das Ergebnis der Matrixmultiplikation L Invest x dem Nullvektor entspricht, wie in Abschnitt 4.4 definiert. Um unter dieser Voraussetzung die Startlösung x(0) zu ermitteln, wird analog zu Algorithmus A.2.1 die Summe aller Produktstückzahlen y b maximiert. Da die Stückzahl y b eines Produkts b jeweils durch den geplanten Wert y plan,b beschränkt ist, entspricht dies in Bezug auf das Ergebnis der Maximierung aller Produktstückzahlen y b . In jedem Iterationsschritt wird die Zeile j bestimmt, welche den größten nicht minimalen Wert des Vektors L x größer als eins bezeichnet. Existieren mehrere Zeilen, deren Werte mit dem größten übereinstimmen, ist nicht entscheidend, welche von diesen als Zeile j festgelegt wird. Der Wert an Zeile j wird minimiert, wobei Werte an Zeilen i, die nicht minimal sind, diesen nicht überschreiten dürfen. Für alle minimalen Werte gilt jeweils die obere Schranke minMax[i ]. Unter Verwendung der Ausdrücke in Gleichung (5.9a, 5.9b) und (5.10) folgt daraus für die Lösung x im aktuellen Iterationsschritt: k = 0: © x(0) = arg max 1⊤ P x : x Px 0∧ ª yplan ∧ F x = 0 ∧ L Invest x = 0 , (5.11a) 193 5 Lösungsschritt II: mathematische Optimierung k ∈ N: © x(k) = arg min L[ j ,∗] x : x 0∧ P x = yplan ∧ F x = 0 ∧ ∀i ∈ {1, . . . , N(L)} \ { j } (k−1) i ∉ I min → (L[i,∗] − L[ j,∗]) x (k−1) i ∈ I min → L[i,∗] x 0∧ ª minMax[i ](k−1) . (5.11b) Der aus Gleichung (5.11b) resultierende Wert des Vektors L x an Zeile j wird verwendet, um nach jedem Iterationsschritt die oberen Schranken minMax[i ] für all diejenigen Werte festzulegen, die zuvor nicht minimal waren. Im Anschluss muss geprüft werden, ob diese Werte nun als minimal anzusehen sind. Solange mindestens ein Wert größer als eins existiert, der noch nicht minimal ist, muss die Iteration fortgesetzt werden. Zusammenfassend beschreibt Gleichung (5.11a, 5.11b) die iterative Minimierung des Wertes an Zeile j, welcher jeweils den größten unter allen nicht minimalen Werten repräsentiert. Dabei werden alle anderen Werte an Zeilen i nach oben beschränkt, fallweise durch den Wert an Zeile j oder ihre minimale obere Schranke minMax[i ]. Die resultierende Lösung x ist durch mindestens einen Wert an einer Zeile i beschränkt, der gemäß Gleichung (5.10) zuvor noch nicht minimal war, nun aber als minimal gilt. Um die betreffenden Zeilen zu bestimmen, wird jeder nicht minimale Wert nach der Festlegung seiner oberen Schranke geprüft, wie in Gleichung (5.10) angegeben ist. Wenn der Wert an einer Zeile i seiner oberen Schranke minMax[i ] entspricht und nicht zu reduzieren ist, beschränkt dieser den größten nicht minimalen Wert an Zeile j. Damit ist nach jedem Iterationsschritt mindestens ein weiterer Wert des Vektors L x minimal. Zuletzt werden die Vorbedingungen angegeben, die erfüllt sein müssen, damit nach den Vorgaben des Anwenders eine sinnvoll zu interpretierende, optimale Lösung gefunden wird. Diese entsprechen inhaltlich den ersten drei Vorbedingungen von Algorithmus 5.1, werden aber wiederholt, da deren Begründung z. T. abweicht: V1 Das mathematische Modell (P, S, F, L, L Invest ) muss wie zuvor aus der Transformation eines validierten grafischen Modells {G WS,b } folgen. Diese Vorbedingung ist notwendig, um sicherzustellen, dass die genannten Matrizen Werte innerhalb ihrer Definitionsbereiche annehmen. Damit kann vorausgesetzt werden, dass die Zielfunktionen und Nebenbedingungen mathematisch definiert sind und die Lösung sinnvoll zu interpretieren ist. In Bezug auf die Validierung und Transformation werden die Vorbedingungen und die Korrektheit von Algorithmus 4.2 bzw. 4.4 angenommen. V2 Die Stückzahlen y b aller Produkte b müssen durch die Bedingungen in Gleichung (5.5) und (5.6b) nach oben beschränkt sein. Mit Hilfe dieser Vorbedingung ist gewährleistet, dass in jedem Wertstromgraphen G WS,b eines Produkts b jeweils mindestens ein Prozessschritt definiert ist. Im Fall von Algorithmus 5.2 müsste nur ein einziger Prozessschritt mit einer Ressource vorausgesetzt werden, welcher die Produktstückzahlen y b nicht nach oben beschränken muss. Wichtig ist, dass die Auslastungsmatrix L als Folge mindestens eine Zeile ungleich dem Nullvektor enthält. 194 5.3 Minimierung der Investitionen Bemerkung: Die Vorbedingung wird in der Fassung formuliert, die in Abschnitt 5.2 angegeben ist, da die drei Planungsziele nicht unabhängig voneinander betrachtet werden. Bevor die Funktion der Software AURELIE zur mathematischen Optimierung aufgerufen wird, muss sichergestellt sein, dass die Vorbedingungen aller Algorithmen erfüllt sind. Es ist daher nicht notwendig, die angegebene Formulierung zu konkretisieren, da eine allgemeinere, aus einem anderen Grund zu erfüllende Vorbedingung existiert. V3 Die geplanten Stückzahlen y plan,b aller Produkte b, welche zu diesem Zeitpunkt nicht mehr als vorläufig gelten, müssen größer als null sein. Die Startlösung x(0) wird auf Basis der geplanten Produktstückzahlen yplan bestimmt, wobei nur Ressourcen ausgelastet werden, deren Überlastung zulässig ist. Danach wird für alle Werte des Vektors L x(0), die gleich null sind und nach Gleichung (5.9a) minimal sein müssen, eine minimale obere Schranke von eins festgelegt. Wäre diese Vorbedingung nicht erfüllt, würden ggf. Ressourcen, deren Überlastung zulässig sein soll, nicht überlastet. Grundidee zum Ablauf. Der Ablauf zur Minimierung der Überlastung L x ist analog zum vorigen Algorithmus 5.1 durch die iterative Formulierung des Ziels bestimmt. Im Weiteren werden die einzelnen Schritte anhand von Algorithmus 5.2 beschrieben, welcher eine Kurzfassung darstellt und in natürlicher Sprache vorliegt. Die zugehörige Langfassung ist wie im Fall der vorangegangenen Abschnitte in Gestalt des Algorithmus A.2.3 im Anhang zu finden. Diese gibt den Ablauf detailliert wieder und ist in formalem, kommentiertem Pseudocode verfasst. An der genannten Stelle im Anhang sind außerdem alle genutzten Objekte und Variablen sowie Funktionen und Prozeduren aufgeführt. Im Gegensatz zum vorigen Algorithmus 5.1 ist eine beispielhafte grafische Darstellung nicht auf vergleichbar einfache Weise möglich. Da der Ablauf der Algorithmen aber Parallelen aufweist, werden zur Förderung des Verständnisses stattdessen wesentliche Übereinstimmungen und Unterschiede herausgestellt. Durch diese vergleichende Betrachtung soll das Muster verdeutlicht werden, welches den beiden Algorithmen zugrundeliegt. Zunächst ist festzuhalten, dass in jedem Iterationsschritt von Algorithmus 5.1 eine Zielfunktion maximiert wird, wohingegen der Algorithmus 5.2 die Minimierung einer Zielfunktion beschreibt. Folglich unterscheiden sich die Startlösungen: Im ersten Fall ist dies der Nullvektor, im zweiten Fall der Vektor größtmöglicher nicht minimaler Werte. Im Verlauf von Algorithmus 5.1 werden schrittweise all diejenigen Produktstückzahlen y b gesteigert, die noch nicht maximal sind. Analog hierzu werden gemäß Algorithmus 5.2 die oberen Schranken all derjenigen Werte des Vektors L x reduziert, die noch nicht minimal sind. Die Definition minimaler Werte bezieht sich dabei jedoch nicht auf die Werte selbst, sondern darauf, dass deren minimale obere Schranken noch nicht feststehen. Unter allen Produkten b, deren Stückzahl y b noch nicht maximal ist, wird im Fall von Algorithmus 5.1 ein beliebiges Referenzprodukt p ausgewählt und dessen Stückzahl yp maximiert. Das Gegenstück bildet im Fall von Algorithmus 5.2 der größte nicht minimale Wert des Vektors L x, welcher sich an Zeile j befindet und minimiert wird. Hierbei gilt, dass bereits maximale Produktstückzahlen y b bzw. minimale obere Schranken des Vektors L x beibehalten bzw. berücksichtigt werden müssen. Für alle verbleibenden noch nicht maximalen bzw. minimalen Werte werden jeweils Bedingungen in Bezug auf den zu 195 5 Lösungsschritt II: mathematische Optimierung maximierenden bzw. zu minimierenden Wert formuliert. Im Fall von Algorithmus 5.1 ist dies ein fixes Verhältnis, wohingegen im Fall von Algorithmus 5.2 der zu minimierende Wert nicht überschritten werden darf. Als Folge erreicht nach jedem Iterationsschritt von Algorithmus 5.1 die Stückzahl y b mindestens eines weiteren Produkts b ihren maximalen Wert. Damit vergleichbar ist im Fall von Algorithmus 5.2 nach jedem Iterationsschritt mindestens ein weiterer Wert des Vektors L x minimal. Der Grundgedanke ist folglich übereinstimmend, die Menge gültiger Lösungen x, die zu Beginn jeweils unendlich ist, schrittweise zu beschränken. Im Verlauf der Iteration werden fortlaufend zusätzliche Bedingungen formuliert, welche die Freiheitsgrade reduzieren, die durch die Prozessstückzahlen xa repräsentiert werden. Die Iteration endet jeweils, sobald die Menge gültiger Lösungen x in hinreichender Weise begrenzt worden ist. Im Fall von Algorithmus 5.1 ist diese Bedingung genau dann erfüllt, wenn die Stückzahlen aller Produkte b ihre maximalen Werte erreicht haben. Dagegen ist die Iteration im Fall von Algorithmus 5.2 beendet, wenn kein Wert des Vektors L x existiert, welcher noch nicht minimal und größer als eins ist. Der Grund für den Vergleich mit dem Wert eins ist, dass die Überlastung betrachtet wird und folglich nur Komponenten größer als eins relevant sind. Datenstrukturen. Zusätzlich zu den Skalaren, Vektoren und Matrizen, die eingangs genannt wurden, muss die Information abgebildet werden, welche Werte des Vektors L x im aktuellen Iterationsschritt minimal sind. Wie in Gleichung (5.9a, 5.9b) festgehalten, müssen die Zeilen i all derjenigen Werte des Vektors L x, deren minimale obere Schranke zum jeweiligen Zeitpunkt feststeht, der Menge I min zugeordnet werden. Zur Abbildung der entsprechenden Information wird das eindimensionale, zweiwertige Feld istMin definiert, dessen Index i die Zeile des Vektors L x bezeichnet. Ein Element istMin[i ] des Feldes ist genau dann wahr, wenn die Zeile i des Vektors L x in der Menge I min enthalten ist. Um festzustellen, ob ein Wert des Vektors L x minimal oder noch nicht minimal ist, muss gemäß Gleichung (5.10) dessen obere Schranke betrachtet werden. Zur Verwaltung dieser oberen Schranken, die im aktuellen Iterationsschritt feststehen oder noch vorläufig sind, wird das eindimensionale Feld minMax definiert. Die Elemente minMax[i ] bezeichnen die oberen Schranken größer als oder gleich eins, welche für die Komponenten des Vektors L x an den Zeilen i festgelegt sind. Im Iterationsverlauf sind die oberen Schranken noch vorläufig, da die Werte des Vektors L x mit Bezug auf die Elemente minMax[i ] nicht minimal sein müssen. Nach dem Durchlauf des Algorithmus erfüllen alle Werte des Vektors L x und alle zugehörigen Elemente des Feldes minMax die Bedingung in Gleichung (5.10). Daneben wird die Variable zeilenzahl eingeführt, die zwar nicht in der Kurzfassung, aber in der Langfassung im Anhang verwendet wird. Die Variable bezeichnet die größte Zeile der Auslastungsmatrix L ungleich dem Nullvektor und wird genutzt, um die Beschreibung des Ablaufs zu vereinfachen. Dies betrifft verschiedene Stellen, an denen all diejenigen Zeilen der genannten Matrix betrachtet werden, die nicht dem Nullvektor entsprechen. Da vorausgesetzt wird, dass die Stückzahlen y b aller Produkte b nach oben beschränkt sind, muss stets mindestens eine solche Zeile existieren. 196 5.3 Minimierung der Investitionen 5.3.2 Beschreibung des Algorithmus Im Anschluss folgt nun die Beschreibung von Algorithmus 5.2, welcher das definierte Ziel umsetzt, die nötige Überlastung genutzter Ressourcen zu minimieren (Langfassung siehe Algorithmus A.2.3). Die Minimierung der Überlastung bezieht sich, wie zuvor formuliert, auf diejenigen Komponenten des Vektors L x, die Werte größer als eins annehmen. Gegeben seien die geplanten Produktstückzahlen yplan , die an dieser Stelle nicht mehr als vorläufig gelten, und die Matrizen des mathematischen Modells (P, S, F, L, L Invest ). Funktion MinÜberlastung( . . . ) Ab Zeile 01 ist die Hauptfunktion aufgeführt, welche die minimalen oberen Schranken größer als oder gleich eins für die Komponenten des Vektors L x ermittelt. Die Funktion basiert auf einer Schleife, die wiederholt durchlaufen wird, um die Iterationsvorschrift nach Gleichung (5.11a, 5.11b) umzusetzen. Zuallererst muss eine Startlösung x bestimmt werden, welche die Bedingungen erfüllt, die in Gleichung (5.11a) angegeben sind. Zu diesem Zweck wird eine Hilfsfunktion aufgerufen, die eine Lösung x zurückgibt, welche den geplanten Produktstückzahlen yplan entspricht. Die Startlösung ist außerdem dadurch gekennzeichnet, dass die gültigen Lösungen x, im Gegensatz zur Maximierung der Kapazitäten im vorigen Abschnitt, nicht durch die Auslastung der Ressourcen beschränkt werden. Jedoch darf nur die Auslastung derjenigen Ressourcen größer als null sein, die laut dem Anwender überlastet werden sollen, wie weiter unten erläutert wird. Danach werden alle Zeilen der Auslastungsmatrix L betrachtet, und es wird der Wert des Vektors L x an jeder Zeile i ermittelt. Wenn dieser größer als null ist, dann bezeichnet die Zeile i eine Ressource, die gemäß der Festlegung des Anwenders bei Bedarf überlastet werden soll. Da die minimalen oberen Schranken für die Werte an den entsprechenden Zeilen i folglich noch nicht feststehen, werden diese Werte als noch nicht minimal initialisiert. In dem Zuge wird die Zeile j bestimmt, die im Folgenden den größten nicht minimalen Wert des Vektors L x bezeichnet, der größer als eins ist. Falls dieser Wert an mehreren Zeilen zu finden ist, wird die erste Zeile übernommen. Wenn der Wert des Vektors L x an Zeile i gleich null ist, darf die Ressource nicht überlastet werden. Folglich werden diese Werte vor Beginn der Schleife als minimal initialisiert, und für ihre oberen Schranken minMax[i ] wird jeweils ein Wert von eins festgelegt. Da alle anderen Werte zu diesem Zeitpunkt noch nicht minimal sind, wird für diese noch keine obere Schranke minMax[i ] definiert. Ab Zeile 13 folgt die Schleife, in deren Verlauf der jeweils größte nicht minimale Wert des Vektors L x iterativ minimiert wird. Zu Beginn wird die Schleifenbedingung geprüft, die genau dann erfüllt ist, wenn die Zeile j bestimmt ist und folglich noch nicht alle minimalen oberen Schranken feststehen. Danach wird eine neue Lösung x gesucht, welche den Wert an Zeile j minimiert, wobei von der vorigen Lösung ausgegangen wird. In Bezug auf die Werte an allen anderen Zeilen i existieren zwei Nebenbedingungen, welche die Werte nach oben beschränken: Für alle nicht minimalen Werte gilt, dass diese den jeweils zu minimierenden Wert des Vektors L x, bezeichnet durch die Zeile j, nicht überschreiten dürfen. Für alle minimalen Werte gilt deren minimale obere Schranke minMax[i ], die im Fall der betreffenden Werte feststeht. Im Hinblick auf die gesuchte Lösung x wird gefordert, dass diese wie die vorige den geplanten Produktstückzahlen yplan entspricht. Analog zur Suche der maximalen 197 5 Lösungsschritt II: mathematische Optimierung Eingabe : Vektor geplanter Produktstückzahlen yplan , Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, Investitionsmatrix L Invest Ausgabe : minimale obere Schranken größer als oder gleich eins für die Komponenten des Vektors L x, für welche unter den vorgegebenen Bedingungen eine Lösung x existiert 01: ··· 05: 06: ··· 10: ··· 13: 14: 15: 16: 17: ··· 19: ··· 22: ··· 25: 26: ··· 28: 29: 30: 31: 32: 33: ··· 36: 37: 38: 39: Funktion MinÜberlastung(yplan , P, F, L, L Invest ) initialisiere Lösung x entsprechend InitMinÜberlastung( . . . ) und Zeile j als unbestimmt für alle Zeilen i der Auslastungsmatrix L tue wenn Wert des Vektors L x an Zeile i größer als null ist dann initialisiere diesen als nicht minimal und bestimme Zeile j mit größtem Wert größer als eins sonst initialisiere Wert des Vektors L x an Zeile i als minimal und lege eins als Schranke minMax[i ] fest solange Zeile j bestimmt ist tue bestimme eine Lösung x, welche den Wert des Vektors L x an Zeile j wie folgt minimiert: © x ← arg min L[ j,∗] x : x 0 ∧ P x = yplan ∧ F x = 0 ∧ ∀i ∈ {1, . . . , Zeilen der Matrix L} \ { j } Wert des Vektors L x an Zeile i ist nicht minimal → (L[i,∗] − L[ j,∗]) x 0 ∧ ª Wert des Vektors L x an Zeile i ist minimal → L[i,∗] x minMax[i ] initialisiere nächste Zeile j ′ als unbestimmt wenn Wert des Vektors L x an Zeile j größer als eins ist dann für alle Zeilen i des Vektors L x, deren Wert nicht minimal ist tue lege Wert an Zeile j als Schranke minMax[i ] fest für alle Zeilen i des Vektors L x, deren Wert nicht minimal ist tue wenn dieser Wert gleich jenem an Zeile j ist und IstMinÜberlastung( . . . ) gilt dann markiere Wert des Vektors L x an Zeile i als minimal sonst bestimme nächste Zeile j ′ mit größtem Wert größer als eins übernimm nächste Zeile j ′ als Zeile j für alle Zeilen i des Vektors L x, deren Wert nicht minimal ist tue lege eins als Schranke minMax[i ] fest liefere minimale obere Schranken minMax zurück Funktion InitMinÜberlastung(yplan , P, F, L Invest ) initialisiere Lösung x als Nullvektor bestimme eine Lösung x, welche den geplanten Produktstückzahlen y plan,b wie folgt entspricht: © ª x ← arg max 1⊤ P x : x 0 ∧ P x yplan ∧ F x = 0 ∧ L Invest x = 0 liefere initiale Lösung x zurück Funktion IstMinÜberlastung(x, P, F, L, i, minMax) initialisiere Lösung x′ mit aktueller Lösung x bestimme eine Lösung x′, welche den Wert des Vektors L x′ an Zeile i wie folgt minimiert: © x′ ← arg min L[i,∗] x′ : x′ 0 ∧ P x′ = P x ∧ F x′ = 0 ∧ L[i,∗] x′ L[i,∗] x − ε ∧ ∀i ′ ∈ {1, . . . , Zeilen der Matrix L} \ {i } ª L[i ′,∗] x′ minMax[i ′ ] wenn Wert des Vektors L x′ an Zeile i nicht kleiner als Wert des Vektors L x ist dann liefere wahr zurück liefere falsch zurück Algorithmus 5.2: Minimierung der Überlastung L x (Komponenten größer als eins) (Kurzfassung). 198 5.3 Minimierung der Investitionen Kapazitäten muss zudem die Bedingung in Bezug auf den Flusserhalt erfüllt sein, welche durch Gleichung (4.13) im vorigen Kapitel definiert ist. Ist der zuvor minimierte Wert des Vektors L x an Zeile j auch weiterhin größer als eins, wird dieser als obere Schranke minMax[i ] für alle nicht minimalen Werte festgelegt. Dann werden alle Werte an Zeilen i, die noch nicht minimal waren, jeweils dahingehend geprüft, ob diese nun gemäß der Definition in Gleichung (5.10) minimal sind. Hierzu werden die betreffenden Werte mit dem minimierten Wert an Zeile j verglichen, welcher nach dem vorherigen Schritt ihrer oberen Schranke minMax[i ] entspricht. Stimmen die Werte an Zeile i und j überein, dann wird zur weiteren Prüfung eine Hilfsfunktion aufgerufen, welcher die Lösung x übergeben wird. Wie oben erläutert, muss nach jedem Iterationsschritt mindestens ein Wert an einer Zeile i, der zuvor noch nicht minimal war, diese Bedingung erfüllen. Daraufhin wird unter allen Werten, die nicht minimal und größer als eins sind, der größte Wert ermittelt und die zugehörige Zeile j ′ bestimmt. Als Folge ist die Zeile j ′ nur dann bestimmt, wenn nach dem aktuellen Schleifendurchlauf mindestens ein Wert verbleibt, der nicht minimal und größer als eins ist. Im Anschluss wird die Zeile j ′ für den nächsten Schleifendurchlauf als Zeile j übernommen und die Schleifenbedingung erneut geprüft. Nach Verlassen der Schleife wird für die oberen Schranken minMax[i ] aller verbleibenden Werte, die noch nicht minimal sind, der Wert eins festgelegt. Zuletzt wird das Feld minMax zurückgegeben, welches nun die minimalen oberen Schranken größer als oder gleich eins für alle Komponenten des Vektors L x enthält. Funktion InitMinÜberlastung( . . . ) In Zeile 29 folgt die zuvor angesprochene Hilfsfunktion zur Ermittlung einer Startlösung, welche den geplanten Produktstückzahlen yplan entspricht. Ausgehend vom Nullvektor wird analog zu Algorithmus A.2.1, der eingangs erläutert wurde und im Anhang aufgeführt ist, die Summe der Stückzahlen y b aller Produkte b maximiert. Da der geplante Wert y plan,b jeweils nicht überschritten werden darf, entspricht dies einer Maximierung der Stückzahl y b jedes einzelnen Produkts b bis zu dem jeweiligen Wert. Von der Lösung x wird gefordert, dass diese die Bedingung in Bezug auf den Flusserhalt erfüllt. Wie in Algorithmus A.2.1 wird keine Bedingung in Bezug auf die Auslastung der Ressourcen formuliert. Jedoch dürfen nur bestimmte Prozessstückzahlen xa einen Wert größer als null annehmen, wie durch Gleichung (4.15) im vorigen Kapitel definiert. Genauer formuliert gilt die Bedingung, dass das Ergebnis der Matrixmultiplikation L Invest x aus der Investitionsmatrix L Invest und der Lösung x gleich null sein muss. Dadurch dürfen nur diejenigen Prozessschritte zu einer Auslastung von Ressourcen führen, die im grafischen Modell nach den ersten ausgehenden Kanten alternativer Flusspunkte folgen. Das heißt, es werden nur solche Ressourcen genutzt, die gemäß der Festlegung des Anwenders bei Bedarf überlastet werden sollen. Durch diese Bedingung und den Flusserhalt werden die gültigen Lösungen x soweit beschränkt, dass die Startlösung eindeutig bestimmt ist. Nach Ermittlung der entsprechenden Startlösung x wird diese als Ergebnis zurückgegeben und die Hilfsfunktion verlassen. 199 5 Lösungsschritt II: mathematische Optimierung Funktion IstMinÜberlastung( . . . ) In Zeile 33 ist zuletzt die Hilfsfunktion angegeben, welche der Prüfung dient, ob ein Wert des Vektors L x an einer Zeile i minimal ist. Die Hilfsfunktion setzt den letzten Teil der Bedingung in Gleichung (5.10) um und wird folglich nur aufgerufen, wenn der Wert seiner oberen Schranke minMax[i ] entspricht. Zunächst wird die zuvor ermittelte Lösung x als Startlösung x′ übernommen, um einen zu vergleichenden Wert zu suchen. Anschließend wird der Wert des Vektors L x′ an Zeile i ausgehend von der Lösung x′ minimiert, wobei folgende Nebenbedingungen gelten: Die Stückzahlen y b aller Produkte b müssen unverändert beibehalten werden, wodurch sichergestellt ist, dass diese auch weiterhin den jeweils geplanten Werten y plan,b entsprechen. Die gesuchte Lösung x′ muss zudem die Bedingung in Bezug auf den Flusserhalt erfüllen, wie schon in den vorigen Funktionen und Hilfsfunktionen. Um den Algorithmus analog zur Maximierung der Kapazitäten zu beschleunigen, wird die Reduktion des Wertes an Zeile i auf einen vorab festgelegten Betrag ε begrenzt. Für alle Zeilen i ′ des Vektors L x′ außer der Zeile i gilt, dass die zugehörigen Werte ihre oberen Schranken minMax[i ′ ] nicht überschreiten dürfen. Sofern der minimierte Wert des Vektors L x′ nicht kleiner als der aktuelle Wert ist, muss letzterer gemäß Definition minimal sein. Wenn dies der Fall ist, wird die Hilfsfunktion nach Rückgabe eines positiven Ergebnisses beendet, sonst wird diese mit einem negativen Ergebnis verlassen. 5.3.3 Beweis der Korrektheit und Zeitkomplexität Analog zu den Betrachtungen im vorigen Abschnitt soll der Algorithmus 5.2 zur Minimierung der Überlastung formal untersucht werden. Da für diesen wie auch für den vorangegangenen Algorithmus 5.1 keine Grundlage in der Literatur existiert, muss dessen Korrektheit nachgewiesen werden. Danach folgt die Untersuchung der Komplexität, wobei sich der Blick wieder auf die Laufzeit richtet. Die Komplexität im Hinblick auf den Speicherplatzbedarf ist abhängig von den Datenstrukturen, die weiter oben beschrieben wurden. Neben den Skalaren, Vektoren und Matrizen sind dies die eindimensionalen Felder istMin und minMax, deren Länge der Zeilenzahl N(L) der Auslastungsmatrix L entspricht. Beweis der Korrektheit. Für den Beweis der Korrektheit ist wie zuvor entscheidend, welche Nachbedingung in Bezug auf die Ausgabe des Algorithmus definiert wird. Allgemein formuliert lautet das Ziel des Algorithmus, die Überlastung der Ressourcen zur Herstellung der geplanten Produktstückzahlen yplan zu minimieren. Das heißt, gesucht ist die minimale Überlastung jeder Ressource, entsprechend den Komponenten des Vektors L x größer als eins, die erreichbar ist, ohne die Überlastung anderer Ressourcen zu steigern. Der Ausgleich der Überlastung zwischen Ressourcen ist nicht Teil der Definition des Ziels, sondern wird durch eine Nebenbedingung abgebildet. Auf dieser Grundlage wird als Nachbedingung folgende Aussage formuliert, die es zu beweisen gilt: Theorem 5.3: Korrektheit von Algorithmus 5.2. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. 200 5.3 Minimierung der Investitionen Des Weiteren seien alle Vorbedingungen des Algorithmus erfüllt. Unter diesen Voraussetzungen ist der Algorithmus zur Minimierung der Überlastung aller gegebenen Ressourcen, repräsentiert durch die Komponenten des Vektors L x größer als eins, partiell und total korrekt. Korrekt heißt hierbei, dass nach Beendigung des Algorithmus alle Werte des Vektors L x minimal sind, wie in Gleichung (5.10) definiert. Beweis. Analog zum vorigen Algorithmus wird zunächst die partielle Korrektheit nachgewiesen, wofür eine geeignete Schleifeninvariante gewählt wird. Diese muss einem logischen Ausdruck entsprechen, der zu jedem Zeitpunkt wahr ist, sofern die Eingabe den Vorbedingungen genügt, und folgende Anforderung erfüllt: Das Ziel des Algorithmus muss genau dann erreicht sein, wenn die Schleifeninvariante und die negierte Schleifenbedingung wahr sind. Die Schleifenbedingung besagt, dass vor dem Beginn bzw. nach dem vorherigen Durchlauf der Schleife eine Zeile j bestimmt wurde. Die Bedingung ist genau dann erfüllt, wenn mindestens eine Zeile i existiert, die noch nicht in der Menge I min enthalten ist und deren zugehöriger Wert größer als eins ist. Bezug nehmend auf die Definition in Gleichung (5.10) wird folgender logischer Ausdruck als Schleifeninvariante formuliert: Schleifeninvariante: (k) ∀i ∈ I min L[i ,∗] x(k) ist minimal. (5.12) Der obige Ausdruck gibt den Teil der Definition in Gleichung (5.9b) wieder, der sich auf die Elemente der Menge I min bezieht. Analog zum vorigen Abschnitt kann für den zu führenden Beweis allerdings nicht vorausgesetzt werden, dass die Menge I min wie in Gleichung (5.9b) definiert ist. Vielmehr enthält die Menge I min genau diejenigen Zeilen i, die dieser im Ablauf des Algorithmus zugeordnet werden. Eine Zeile i ist jeweils genau dann in der Menge I min enthalten, wenn das Element istMin[i ] für die Zeile i wahr ist. Ist die Schleifenbedingung nicht erfüllt, dann sind alle Zeilen i in der Menge I min enthalten oder die zugehörigen Werte nicht größer als eins. Wenn dies der Fall ist und daneben die Schleifeninvariante wie in Gleichung (5.12) angegeben gilt, müssen alle Werte des Vektors L x minimal oder nicht größer als eins sein. Nach Beendigung der Schleife wird für alle verbleibenden nicht minimalen Werte eine minimale obere Schranke minMax[i ] von eins festgelegt. Als Ergebnis sind alle Werte des Vektors L x gemäß Gleichung (5.10) minimal, und das Ziel des Algorithmus ist erreicht, wie in oben stehendem Theorem festgehalten. Das heißt, die formulierte Schleifeninvariante genügt der genannten Anforderung und ist zur Führung des Beweises geeignet. Im nächsten Schritt muss gezeigt werden, dass die Schleifeninvariante vor Beginn und nach jedem Schleifendurchlauf gültig ist. Vor Beginn der Schleife wird gemäß Gleichung (5.11a) eine Startlösung x(0) ermittelt, nach welcher nur ausgewählte Prozessstückzahlen xa Werte größer als null annehmen dürfen. (0) Daraufhin werden all diejenigen Zeilen i in die Menge I min aufgenommen, deren zugehörige Werte des Vektors L x(0) gleich null sind. Die minimalen oberen Schranken minMax[i ] all dieser Werte werden im Zuge der Initialisierung auf den Wert eins festgelegt. Damit sind zu (0) Beginn alle Zeilen i in der Menge I min gemäß Gleichung (5.10) minimal, und der Ausdruck in Gleichung (5.12) ist erfüllt (Induktionsanfang). Im Weiteren wird vorausgesetzt, dass die Schleifeninvariante für den vorherigen Schlei(k−1) fendurchlauf galt und der Ausdruck für I min entsprechend wahr ist. Nach dem aktuellen 201 5 Lösungsschritt II: mathematische Optimierung (k−1) Schleifendurchlauf sind alle Zeilen i, die in der Menge I min enthalten waren, auch weiterhin (k) Elemente der Menge I min . Unter der zuvor angegebenen Voraussetzung waren nach dem (k−1) minimal. Da vorherigen Schleifendurchlauf die Werte an den Zeilen i in der Menge I min die minimalen oberen Schranken minMax[i ] dieser Werte nicht verändert werden und der Wert an Zeile j nicht erhöht wird, müssen die Werte an den Zeilen i wie zuvor minimal sein. Folglich gilt die Schleifeninvariante für all diejenigen Zeilen i, die nach dem vorhergehenden (k−1) Schleifendurchlauf in der Menge I min enthalten waren. Als Nächstes steht der Beweis aus, dass die Schleifeninvariante für alle Zeilen i gilt, die (k−1) nicht in der Menge I min enthalten waren. In jedem Schleifendurchlauf wird der größte unter allen nicht minimalen Werten größer als eins, bezeichnet durch die Zeile j, minimiert. Dabei muss die Nebenbedingung erfüllt sein, dass alle anderen Werte, die noch nicht minimal sind, den zu minimierenden Wert nicht überschreiten. Ist der daraus folgende, minimierte Wert größer als eins, wird dieser für alle nicht minimalen Werte als obere Schranke minMax[i ] übernommen. Jeder Wert, der zuvor noch nicht minimal war, wird danach dahingehend geprüft, ob dieser nun mit dem minimierten Wert übereinstimmt. Ist dies der Fall, wird eine Hilfsfunktion aufgerufen, welche die in Gleichung (5.10) formulierte Bedingung umsetzt. Wenn die Prüfung zu dem Ergebnis führt, dass der Wert minimal ist, wird die betreffende (k) Zeile i des Wertes der Menge I min hinzugefügt. Unter der zuvor genannten Voraussetzung, dass die Schleifeninvariante nach dem vorhergehenden Schleifendurchlauf galt, ist diese folglich auch für alle anderen Zeilen i erfüllt. Als Zwischenergebnis ist festzuhalten, dass die Schleifeninvariante nach jedem Durchlauf wahr ist (Induktionsschritt). Die Schleife wird verlassen, wenn entweder kein Wert verbleibt, der nicht minimal ist, oder der zuletzt minimierte Wert an Zeile j nicht mehr größer als eins ist. In letzterem Fall müssen alle Werte, die zuvor nicht minimal waren, kleiner als oder gleich eins sein, da diese den Wert an Zeile j nicht überschreiten dürfen. Auf dieser Grundlage wird nach Beendigung der Schleife der Wert eins als minimale obere Schranke minMax[i ] für alle verbleibenden Werte festgelegt. Damit ist Gleichung (5.10) auch für diejenigen Werte erfüllt, die beim Verlassen der Schleife noch nicht minimal waren. Fasst man die Erkenntnisse zusammen, ist der Algorithmus partiell korrekt, und es muss im nächsten Schritt die totale Korrektheit nachgewiesen werden. Hierzu wird eine Schleifenvariante festgelegt, die entsprechend der Kurzeinführung zu Beginn des Kapitels folgenden Anforderungen genügen muss: Die Schleifenvariante muss einen Ausdruck bezeichnen, welcher vor Beginn der Schleife einer natürlichen Zahl größer als null entspricht und mit jedem Durchlauf reduziert wird. Sobald die Schleifenvariante einen Wert von null annimmt, muss die Schleifenbedingung verletzt sein. Dabei wird derjenige Teil der Schleifenbedingung betrachtet, der sich darauf bezieht, dass die Werte an allen Zeilen i minimal sind. Zwar wird die Schleife bereits zu einem früheren Zeitpunkt verlassen, wenn der größte nicht minimale Wert, bezeichnet durch die Zeile j, nicht größer als eins ist. Da dies jedoch allein dazu führt, dass die Schleife früher beendet wird, genügt zum Nachweis der totalen Korrektheit der angegebene Teil der Bedingung. Um diese Anforderungen an eine Schleifenvariante umzusetzen, wird folgender Ausdruck definiert: Schleifenvariante: 202 (k) N(L) − | I min |. (5.13) 5.3 Minimierung der Investitionen Damit gilt es nun zu zeigen, dass die Schleifenvariante die genannten Anforderungen (0) eine endliche Teilmenge aller Zeilen i erfüllt. Nach der Initialisierung ist die Menge I min des Vektors L x und der Ausdruck in Gleichung (5.13) größer als oder gleich null. Ist der Ausdruck gleich null, dann sind die Werte an allen Zeilen i minimal, und entsprechend wird die Schleife nicht betreten. Die Schleife wird auch dann nicht betreten, wenn zwar Werte noch nicht minimal sind, aber keiner von diesen größer als eins ist. Wie oben angemerkt, genügt es jedoch zum Nachweis der totalen Korrektheit, dass die Schleife nicht betreten bzw. verlassen wird, wenn der Ausdruck gleich null ist. Nach jedem Schleifendurchlauf ist ein Wert (k) an mindestens einer zusätzlichen Zeile i minimal, welche der Menge I min hinzugefügt wird. Dies folgt aus den Vorbedingungen und den Nebenbedingungen der Zielfunktionen, die im Verlauf des Algorithmus minimiert werden, wie zuvor festgestellt. Wenn der größte aller nicht minimalen Werte minimiert wird, während alle anderen diesen nicht überschreiten dürfen, beschränkt mindestens einer von diesen Werten die Lösung. Als Folge wird mindestens (k−1) (k) eine Zeile i, die nicht in der Menge I min enthalten war, in die Menge I min aufgenommen. (k) Entsprechend wächst mit jedem Durchlauf der Schleife die Kardinalität der Menge I min , und die Schleifenvariante wird jeweils mindestens um den Wert eins reduziert. Vor jedem Durchlauf wird die Schleifenbedingung geprüft, die besagt, dass eine Zeile j bestimmt werden konnte. Eine entsprechende Zeile j kann genau dann nicht bestimmt (k) werden, wenn alle Zeilen i in der Menge I min enthalten sind oder die Werte an diesen Zeilen kleiner als oder gleich eins sind. Das heißt, eine solche Zeile j kann insbesondere dann nicht (k) bestimmt werden, wenn die Menge I min alle Zeilen i enthält und die Schleifenvariante als Konsequenz gleich null ist. Daraus folgt, dass die Schleifenbedingung in jedem Fall verletzt sein muss, sobald die Schleifenvariante den Wert null erreicht. Zusammengefasst liegt damit der Beweis vor, dass der Algorithmus partiell und total korrekt ist. Beweis der Zeitkomplexität. Abschließend soll die Zeitkomplexität von Algorithmus 5.2 untersucht werden. Genauer ist eine obere Schranke für die asymptotisch wachsende Laufzeit gesucht, die abhängig von den jeweiligen Eingaben des Algorithmus formuliert wird. Da der Algorithmus wie der vorhergehende auf einer Schleife basiert, welche die iterative Formulierung des Ziels umsetzt, gilt für die Laufzeit: Theorem 5.4: Zeitkomplexität von Algorithmus 5.2. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. Der Algorithmus zur Minimierung der Überlastung, der Komponenten des Vektors L x größer als eins, besitzt wie angegeben eine Laufzeit von O(N(L)2 ). Beweis. Vor Beginn der Schleife wird gemäß Gleichung (5.11a) eine Startlösung x(0) ermittelt, nach welcher eine bestimmte Zahl der Werte des Vektors L x minimal ist. Im ungünstigsten Fall ist keiner dieser Werte gemäß Gleichung (5.10) minimal und der größte unter den Werten größer als eins. Daraufhin wird in jedem Schleifendurchlauf unter allen nicht minimalen Werten der größte Wert minimiert, wobei die in Gleichung (5.11b) angegebenen Bedingungen erfüllt sein müssen. Als Ergebnis ist mindestens ein Wert minimal, der vorher nicht 203 5 Lösungsschritt II: mathematische Optimierung minimal war, wie im Rahmen des Beweises der Korrektheit festgestellt wurde. Die Schleife wird immer nur dann wiederholt, wenn mindestens ein Wert verbleibt, der nicht minimal und größer als eins ist. Das heißt, die Schleife endet in jedem Fall, wenn alle Werte gemäß obiger Definition minimal sind, unabhängig von dem zuletzt genannten Vergleich. Folglich ist die Zahl der Schleifendurchläufe höchstens gleich der endlichen Zeilenzahl N(L x) des Vektors L x, welche der Zeilenzahl N(L) der Auslastungsmatrix L entspricht. Wie an der gleichen Stelle im vorigen Abschnitt wird vorausgesetzt, dass die Aufrufe zur Minimierung von Zielfunktionen in einer Laufzeit von O(1) erfolgen. Dieselbe Annahme wird im Hinblick auf die Ausführung mathematischer Operationen mit Vektoren und Matrizen getroffen. Sind diese Voraussetzungen erfüllt, gelten für die Zeilen im Rumpf der Funktionen folgende Laufzeiten (ohne aufgerufene Hilfsfunktionen): 02 . . . 04: 05 . . . 16: 17 . . . 24: 25 . . . 27: O(1) O(N(L)) O(N(L)2 ) O(N(L)) 28: O(1) 30 . . . 32: O(1) 34 . . . 39: O(N(L)2 ) Um die Gesamtlaufzeit zu bestimmen, werden wieder die Laufzeiten aller Zeilen addiert, ohne hierbei kleinere Summanden und konstante Faktoren zu berücksichtigen. Die resultierende obere Schranke entspricht dem zu zeigenden Ausdruck O(N(L)2 ). 5.4 Optimierung der Auslastung Nach der Minimierung der Investitionen ist zu entscheiden, welche Prozessschritte zur Herstellung der geplanten Produktstückzahlen yplan ausgeführt werden sollen. Da jedem Prozessschritt im Wertstrom eines gegebenen Produkts eine MAE zugeordnet ist, bestimmt diese Entscheidung die Auslastung der betreffenden Ressourcen. Gemäß der Beschreibung in Abschnitt 2.3 besteht das dritte Planungsziel darin, die resultierende Auslastung aller im Planungszeitraum zur Verfügung stehenden Ressourcen zu optimieren. Zu diesem Zweck legt der Anwender für alle Prozessschritte, die in den Wertströmen der Produkte alternativ miteinander verknüpft sind, jeweils eine Priorität fest. Auf der Grundlage dieser Priorisierung werden die Prozessstückzahlen xa , die diesen Prozessschritten zugeordnet sind, iterativ maximiert. Die Auslastung der Ressourcen wird dabei jeweils durch die minimale Überlastung begrenzt, die zur Herstellung der geplanten Produktstückzahlen yplan notwendig ist. Entsprechend ist das Ergebnis des vorigen Planungsziels, repräsentiert durch die minimalen Investitionen, eine Eingangsgröße für die folgende Optimierung. Zur eindeutigen Beschreibung des Algorithmus ist es wie zuvor notwendig, einige zusätzliche Symbole einzuführen. Diese werden neben den weiterhin geltenden Symbolen aus den vorherigen Abschnitten und dem entsprechenden Verzeichnis genutzt. a a′ A 204 Index zur Bezeichnung der aktuell zu maximierenden Prozessstückzahl xa , a ∈ {1, . . . , m} s. o., Index einer vorher maximierten Prozessstückzahl xa ′, a ′ ∈ {1, . . . , m} Matrix mit Koeffizienten gleich null oder eins, dient der Formulierung von Nebenbedingungen zur Beibehaltung der vorherigen Lösung x′, ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} A[i, a ] ∈ {0, 1} 5.4 Optimierung der Auslastung i j k′ M(X ) x′ xa′ natürliche Zahl, nicht näher bezeichnete Zeile des Vektors L x, i ∈ N s. o., zuletzt ergänzte Zeile der Matrix A, j ∈ N natürliche Zahl, angegeben zur Bezeichnung eines vorherigen Iterationsschritts, k ′ ∈ N0 Menge der Glieder einer Folge X = (x 1 , x 2 , . . . ), M(X ) = {x 1 , x 2 , . . . } ′ ⊤ Vektor [x 1′ . . . xm ] der Prozessstückzahlen xa′ , vorherige Lösung, x′ ∈ Rm0 vorherige Teillösung mit Index a ∈ {1, . . . , m}, xa′ ∈ R 0 Der Algorithmus zur Optimierung der Auslastung wird nach dem Muster der vorangegangenen Abschnitte wiedergegeben. Zunächst werden das Ziel und der Ablauf beschrieben, bevor die Korrektheit und die Zeitkomplexität nachgewiesen werden. 5.4.1 Ziel, Grundidee und Datenstrukturen Das Ziel des Algorithmus wird durch die informelle Beschreibung der Iterationsvorschrift in Abschnitt 2.3 vorweggenommen und durch die Anforderung A12 in Abschnitt 2.6 konkretisiert. Der Aspekt, dass der Anwender die Priorisierung bestimmen soll, wird durch die grafische Modellierung und die Transformation des grafischen Modells in ein mathematisches Modell erfüllt. Als Grundlage dienen die Prioritäten, welche der Anwender den ausgehenden Kanten alternativer Flusspunkte zuweist, wie in Abschnitt 4.2 beschrieben wurde. Im mathematischen Modell wird die Priorisierung durch die MaxFolge abgebildet, die in Abschnitt 4.4 eingeführt wurde und welche die Indizes a zu maximierender Prozessstückzahlen xa enthält. Abweichend von den zuvor betrachteten Planungszielen ist die optimale Lösung eindeutig bestimmt, und es ist aus diesem Grund nicht notwendig, eine Strategie zur Auswahl einer optimalen Lösung festzulegen. Da wesentliche Teile des Abschnitts wie die vorigen aufgebaut sind, werden diese kürzer gefasst. Vorabdiskussion zum gewählten Ansatz. In Abschnitt 2.3 wurde diskutiert, dass zur Optimierung der Auslastung der Gedanke nahe liegt, den allgemeinen Bedarf an bestimmten Betriebsmitteln zu minimieren. Da aber zum Zeitpunkt der Planung im Allgemeinen keine genauen Daten über den Verbrauch im laufenden Betrieb vorliegen, wird stattdessen der Ansatz gewählt, die Prozessschritte zu priorisieren. Als Folge werden Prozessschritte mit höherer Priorität und die jeweils zugeordneten Ressourcen gegenüber solchen mit niedrigerer Priorität bevorzugt. Durch die Vergabe von geeigneten Prioritäten ist es möglich, die Zielvorgaben umzusetzen, welche von der Unternehmensleitung festgelegt werden. Diese betreffen zumeist die Variabilität, Qualität, Geschwindigkeit und die Wirtschaftlichkeit der Produktionsprozesse, wie an genannter Stelle erläutert wurde. Eine solche Priorisierung lässt sich mit Hilfe einer Kostenfunktion, die in einem einzigen Schritt maximiert oder minimiert wird, nur begrenzt abbilden. Die Gründe hierfür wurden im Zuge der Bewertung von Software für Supply Chain Management in Abschnitt 3.4 ausgeführt und gelten für dieses Planungsziel wie für die vorigen gleichermaßen. Um die Priorisierung der Prozessstückzahlen umzusetzen, wird im Folgenden ein Algorithmus beschrieben, welcher auf einem iterativen Vorgehen basiert. Der Algorithmus wurde in der Software AURELIE implementiert und wird seither bei der Bosch Rexroth AG im Rahmen der strategischen Planung der TEK angewandt. 205 5 Lösungsschritt II: mathematische Optimierung Ziel und Vorbedingungen. Die Iterationsvorschrift, die in Abschnitt 2.3 und 2.6 in natürlicher Sprache beschrieben wurde, soll nun in formal eindeutiger Notation ausgedrückt werden. Wie zuvor sei ein mathematisches Modell (P, S, F, L, L Invest ) gegeben, wobei vorausgesetzt wird, dass dieses aus der Transformation eines grafischen Modells {G WS,b } resultiert. Zudem seien die minimalen oberen Schranken minMax[i ] für die Komponenten des Vektors L x gegeben, welche jeweils die zulässige Überlastung der Ressourcen widerspiegeln. Weiterhin sei die MaxFolge gegeben, welche die Priorisierung der Prozessstückzahlen xa abbildet und folglich die Basis für die Formulierung des Ziels darstellt. Anzumerken ist diesbezüglich, dass nicht alle Indizes a als Glieder in der MaxFolge enthalten sein müssen, sofern eine Teilmenge genügt, um die optimale Lösung eindeutig zu bestimmen. Betrachtet werden alle Lösungen x mit Prozessstückzahlen xa , welche den geplanten Produktstückzahlen yplan entsprechen und welche die nachfolgend angegebenen Nebenbedingungen erfüllen. In jedem Iterationsschritt wird die Prozessstückzahl xa mit dem jeweils nächsten Index a aus der MaxFolge maximiert, solange ein solcher Index existiert. Die Werte aller Prozessstückzahlen xa , die jeweils in einem vorhergehenden Iterationsschritt maximiert wurden, werden dabei als zusätzliche Nebenbedingung übernommen. Dadurch werden die gültigen Lösungen x im Verlauf der Iteration immer weiter beschränkt, sodass nach Maximierung der Prozessstückzahl xa mit dem letzten Index a der MaxFolge die optimale Lösung eindeutig bestimmt ist. Im Hinblick auf die Nebenbedingungen gilt, dass die Lösungen x aller Iterationsschritte, wie oben beschrieben, den geplanten Produktstückzahlen yplan entsprechen müssen. Vor Beginn der Iteration wird eine beliebige Startlösung x(0) ermittelt, welche diese Nebenbedingung und alle nachfolgend genannten erfüllt. Danach müssen die Produktstückzahlen y b im Zuge der Maximierung jeweils einer Prozessstückzahl xa in jedem Iterationsschritt unverändert beibehalten werden. Für jede Lösung x müssen darüber hinaus die Nebenbedingungen in Bezug auf den Flusserhalt und die Auslastung erfüllt sein, die bereits von den vorigen Planungszielen bekannt sind. Allerdings wird die Auslastung der Ressourcen, jeweils repräsentiert durch die Komponenten des Vektors L x, dabei nicht durch Wert eins beschränkt. Hintergrund ist, dass die geplanten Produktstückzahlen y plan,b die technischen Kapazitäten y max,b für die Produkte b übersteigen können. Da es entsprechend notwendig sein kann, Ressourcen zu überlasten, gelten für die Komponenten des Vektors L x die minimalen oberen Schranken minMax[i ], die jeweils größer als eins sein können. Zunächst ist ein logischer Ausdruck gesucht, um festzustellen, ob eine Prozessstückzahl xa im aktuellen Iterationsschritt maximal ist. Die Definition eines solchen Ausdrucks ist insbesondere nützlich, um im nachfolgenden Teil des Abschnitts die Korrektheit des Algorithmus nachzuweisen. Im Gegensatz zur Maximierung der Kapazitäten und zur Minimierung der Überlastung bestimmt die Abfolge der Iterationsschritte, welcher Wert maximiert bzw. minimiert werden muss. Ist im Iterationsschritt k eine Lösung x gegeben, dann ist zunächst zu prüfen, ob der Index a einem der ersten k Glieder der MaxFolge entspricht. Wenn dies zutrifft, müssen alle Prozessstückzahlen xa ′, deren Indizes a ′ als Glieder in der MaxFolge vor dem Index a enthalten sind, mit den Werten aus dem vorherigen Iterationsschritt übereinstimmen. Unter dieser Voraussetzung ist die betrachtete Prozessstückzahl xa genau dann maximal, wenn sie ihren maximalen Wert annimmt, der erreichbar ist, solange alle der zuvor genannten Nebenbedingungen gelten. In formaler Notation lässt sich diese Aussage 206 5.4 Optimierung der Auslastung durch die folgende Äquivalenz ausdrücken (der Iterationsschritt k wird wie in den vorigen Abschnitten als Exponent in Klammern angegeben): k ∈ N0 : xa(k) ist maximal ⇔ ∃k ′ ∈ {1, . . . , k } © a = MaxFolge[k ′ ] ∧ xa(k) = max xa : x 0∧ ′ ∀a ′ ∈ {MaxFolge[1], . . . , MaxFolge[k ′ − 1]} xa ′ = xa(k′ −1) ∧ ′ P x = P x(k −1) ∧ F x = 0 ∧∀i ∈ {1, . . . , N(L)} ª L[i ,∗] x minMax[i ] . (5.14) Mit Hilfe von Gleichung (5.14) ist es nun möglich, einen Ausdruck für die Lösung x im aktuellen Iterationsschritt anzugeben. Die Startlösung x(0) bezeichnet eine beliebige Lösung, welche den geplanten Produktstückzahlen yplan entspricht und analog zu Algorithmus A.2.1 im Anhang ermittelt wird. Das heißt, die Summe aller Produktstückzahlen y b wird maximiert, wobei die Stückzahl y b jedes Produkts b durch den geplanten Wert y plan,b nach oben beschränkt ist. Dabei gelten die Nebenbedingungen in Bezug auf den Flusserhalt und die Auslastung, die bereits aus der Beschreibung der vorherigen Algorithmen bekannt sind. Der einzige Unterschied besteht nun darin, dass die Komponenten des Vektors L x nicht durch den Wert eins, sondern durch die minimalen oberen Schranken minMax[i ] beschränkt sind. In den darauffolgenden Iterationsschritten k wird jeweils diejenige Prozessstückzahl xa maximiert, deren Index a dem nächsten Glied der MaxFolge entspricht. Einschränkend gelten alle Nebenbedingungen, die in Gleichung (5.14) aufgeführt sind. Zusammengefasst kann für die Lösung x folgender Ausdruck angegeben werden: k = 0: © x(0) = arg max 1⊤ P x : x Px k ∈ N: 0∧ yplan ∧ F x = 0 ∧∀i ∈ {1, . . . , N(L)} ª L[i ,∗] x minMax[i ] , © x(k) = arg max xa : x (5.15a) 0∧ ∀a ′ ∈ {MaxFolge[1], . . . , MaxFolge[k − 1]} xa ′ = xa(k′ −1) ∧ P x = P x(k −1) ∧ F x = 0 ∧∀i ∈ {1, . . . , N(L)} ª L[i ,∗] x minMax[i ] . (5.15b) Nachdem im aktuellen Iterationsschritt die Lösung x gemäß obiger Gleichung bestimmt wurde, steht fest, welche Prozessstückzahl xa ihren maximalen Wert erreicht hat. Da die Iterationsvorschrift die in Gleichung (5.14) formulierte Bedingung umsetzt, muss dies jeweils die Prozessstückzahl xa mit dem zuletzt betrachteten Index a aus der MaxFolge sein. Die Prüfung verbleibender noch nicht maximaler bzw. minimaler Werte, die jeweils im Fall der vorigen Algorithmen nötig war, entfällt entsprechend. Ebenso folgt aus den Gleichungen (5.14) und (5.15a, 5.15b), dass nach jedem Iterationsschritt mindestens ein weiterer Wert maximal ist. Die Iteration endet, sobald alle Prozessstückzahlen xa maximiert wurden, deren Indizes a in der MaxFolge enthalten sind. 207 5 Lösungsschritt II: mathematische Optimierung Bemerkung: In Abschnitt 2.3 und 2.6 wurde ausgesagt, dass die Iteration mit der vorletzten Priorität enden kann, um das Ergebnis eindeutig zu bestimmen. Die Grundannahme war, dass alle Prozessstückzahlen xa betrachtet werden und als Folge nach der Maximierung aller vorherigen der Wert der letzten Prozessstückzahl xa feststeht. Im Zuge der Transformation werden an alternativen Flusspunkten jeweils die Indizes a ′ aller erzeugten Prozessstückzahlen xa ′ außer der letzten in die MaxFolge aufgenommen. Das heißt, die getroffene Aussage wird umgesetzt, indem dieser Folge nicht notwendigerweise die Indizes a aller Prozessstückzahlen xa hinzugefügt werden. Daher muss auch die Prozessstückzahl xa , deren Index a als letztes Glied in der MaxFolge enthalten ist, maximiert werden. Es existieren drei Vorbedingungen, die erfüllt sein müssen, damit die angegebene Iterationsvorschrift zu einer sinnvoll zu interpretierenden, optimalen Lösung führt. Die ersten zwei Vorbedingungen sind von den vorhergehenden Algorithmen bekannt, wobei nun zusätzlich die MaxFolge aufgenommen wird: V1 Das mathematische Modell (P, S, F, L, L Invest ) muss aus der Transformation eines validierten grafischen Modells {G WS,b } folgen. Durch diese Vorbedingung ist sichergestellt, dass die Matrizen Werte innerhalb ihrer Definitionsbereiche annehmen. Zusätzlich wird gefordert, dass die MaxFolge die Indizes a zu maximierender Prozessstückzahlen xa in der notwendigen Sortierung enthält, um die Priorisierung des Anwenders umzusetzen. Wie an gleicher Stelle in den vorigen beiden Abschnitten werden die Vorbedingungen und die Korrektheit von Algorithmus 4.2 und 4.4 vorausgesetzt. V2 Die Stückzahlen y b aller Produkte b müssen durch die Bedingungen in Gleichung (5.5) und (5.6b) nach oben beschränkt sein. Die Vorbedingung wird aus den vorhergehenden Abschnitten übernommen und ist nur erfüllt, wenn für jedes Produkt b mindestens ein Prozessschritt definiert ist. Der Grund für die Vorbedingung ist wie im vorherigen Abschnitt, dass die Auslastungsmatrix L mindestens eine Zeile ungleich dem Nullvektor enthalten muss. Zwar könnte die Formulierung konkretisiert werden, jedoch wird wie zuvor die allgemeinere Fassung verwendet. V3 Die minimalen oberen Schranken minMax[i ], welche dem Algorithmus als Argument übergeben werden, müssen geeignet gewählt sein. Das heißt, die Werte des Vektors L x müssen gemäß der Definition im vorigen Abschnitt minimal sein, und es muss mindestens eine gültige Lösung x existieren. Die Vorbedingung ist erfüllt, wenn die Elemente des Feldes minMax aus der Minimierung der Überlastung, d. h. der Komponenten des Vektors L x größer als eins, folgen. Diesbezüglich wird vorausgesetzt, dass die Vorbedingungen von Algorithmus 5.2 gelten und dieser korrekt ist. Grundidee zum Ablauf. Der Ablauf zur Optimierung der Auslastung, d. h. der Komponenten des Vektors L x, folgt wie zuvor der iterativen Formulierung des Ziels. Im weiteren Verlauf des Abschnitts werden die einzelnen Schritte anhand von Algorithmus 5.3 erläutert, welcher eine Kurzfassung in natürlicher Sprache darstellt. Die Langfassung in formalem, kommentiertem Pseudocode ist analog zu den vorigen Abschnitten als Algorithmus A.2.4 im Anhang zu finden. An der gleichen Stelle sind im Anhang alle verwendeten Objekte und Variablen sowie Funktionen und Prozeduren aufgeführt. 208 5.4 Optimierung der Auslastung x2 L[1,∗] x minMax[1] P x = yplan x 2(0) x(0) ¡ ¢ x 2(1) = x 2(2) L[2,∗] x minMax[2] ¡ ¢ x(1) = x(2) = x∗ 0 x 1(0) ¡ ¢ x 1(1) = x 1(2) x1 Abbildung 5.2: Visualisierung der Suche optimaler Auslastung L x (Beispiel). Dargestellt ist die iterative Maximierung der Prozessstückzahlen x 1/2 , welche die vorgegebene Priorisierung umsetzt. Die gültigen Lösungen x liegen auf der Geraden der geplanten Produktstückzahlen yplan und werden durch die zulässige Auslastung der Ressourcen begrenzt, entsprechend den Schranken minMax[1/2] für die Komponenten des Vektors L x. Die gesuchte Lösung x∗ bezeichnet den Schnittpunkt mit der Geraden L[1,∗] x = minMax[1], der größten zulässigen Auslastung der ersten Ressource. Analog zur Maximierung der Kapazitäten soll der grundsätzliche Ablauf von Algorithmus 5.3 an einem einfachen Beispiel grafisch veranschaulicht werden. Wie in Abbildung 5.2 dargestellt, sind zwei Prozessstückzahlen x 1/2 gegeben, welche den Raum der möglichen Lösungen x aufspannen. Gleich dem Beispiel in Abschnitt 5.2 werden die Lösungen x durch die Auslastung zweier Ressourcen begrenzt, wobei die zugehörigen Werte jeweils den Komponenten des Vektors L x entsprechen. In diesem Fall werden die Komponenten des Vektors L x jedoch nicht durch den Wert eins, sondern durch die zuvor ermittelten, minimalen oberen Schranken minMax[i ] beschränkt. Die entsprechenden Bedingungen werden im allgemeinen, mehrdimensionalen Fall durch Hyperebenen und im vorliegenden, zweidimensionalen Fall durch Geraden repräsentiert. Die Geraden teilen den Raum der Prozessstückzahlen x 1/2 jeweils in einen abgeschlossenen, gültigen und einen offenen, ungültigen Halbraum. Die konvexe Schnittmenge der gültigen Halbräume, im allgemeinen Fall ein Polytop, wird im vorliegenden Fall als Polygon dargestellt. Neben dem Flusserhalt gilt die Bedingung, dass die Produktstückzahlen y, entsprechend dem Vektor P x, mit den geplanten Werten yplan übereinstimmen müssen. Indem man diese Bedingung wie in Abbildung 5.2 als Gerade darstellt, ist es möglich, die Menge der gültigen Lösungen x wie folgt zu beschreiben: Die Ortsvektoren der gültigen Lösungen x entsprechen den Punkten, die innerhalb der Schnittmenge der gültigen Halbräume auf der genannten Gerade liegen. 209 5 Lösungsschritt II: mathematische Optimierung Bevor die Iteration beginnt, wird eine beliebige Startlösung x(0) ermittelt, welche die genannten Bedingungen erfüllt. In dem gegebenen Beispiel ist dies diejenige Lösung x, welche zugleich die Prozessstückzahl x 2 maximiert, wobei auch jede andere gültige Lösung x möglich ist. Somit beschreibt die Startlösung x(0) den Schnittpunkt der zwei Geraden P x = yplan und L[2,∗] x = minMax[2], entsprechend der größten zulässigen Auslastung der zweiten Ressource. Die MaxFolge sei in dem Beispiel durch die Folge (1, 2) gegeben, woraus folgt, dass im ersten Iterationsschritt die Prozessstückzahl x 1 maximiert werden muss. Daraus resultiert die Lösung x(1), welche den Schnittpunkt der zwei Geraden P x = yplan und L[1,∗] x = minMax[1] bezeichnet, entsprechend der größten zulässigen Auslastung der ersten Ressource. Im zweiten Iterationsschritt ist die Prozessstückzahl x 2 zu maximieren, wobei der ermittelte Wert der Prozessstückzahl x 1 beibehalten werden muss. Da eine Steigerung der Prozessstückzahl x 2 aber nur erreicht werden kann, indem die Prozessstückzahl x 1 reduziert wird, ist die Lösung x(2) gleich der vorherigen Lösung x(1). Damit endet die Iteration, und die Lösung x(2) entspricht der letztlich gesuchten optimalen Lösung x∗. Datenstrukturen. Im Hinblick auf die verwendeten Datenstrukturen ist zuerst die MaxFolge zu nennen, welche dem Algorithmus als Argument übergeben wird. Die MaxFolge enthält die Indizes a zu maximierender Prozessstückzahlen xa und bildet durch deren Sortierung, wie in Abschnitt 4.4 beschrieben, die Priorisierung des Anwenders ab. Beginnend bei dem ersten Glied der Folge werden im Verlauf der Iteration nacheinander alle Glieder betrachtet. In der Implementierung, welche in dieser Arbeit durch Algorithmus 5.3 angegeben ist, wird das erreicht, indem fortlaufend das erste Glied der Folge entfernt wird. Es ist daher wichtig zu unterscheiden, zu welchem Zeitpunkt vor, während oder nach der Iteration die Max↵ Folge betrachtet wird. Zu diesem Zweck wird in der Notation, die auch zur Formulierung des Ziels verwendet wurde, der Iterationsschritt als Exponent in Klammern ergänzt. Das heißt, der Ausdruck MaxFolge (0) bezeichnet die Folge vor Beginn der Iteration, der Ausdruck MaxFolge (k) nach dem Iterationsschritt k. Ergänzend zu den bereits eingeführten Skalaren, Vektoren und Matrizen werden zudem die minimalen oberen Schranken minMax[i ] benötigt. Diese werden durch die Ausführung des zuvor beschriebenen Algorithmus 5.2 ermittelt und dem aktuellen Algorithmus 5.3 als Argument übergeben. Im Gegensatz zur MaxFolge wird das eindimensionale, reellwertige Feld minMax vor Beginn und im Verlauf der Iteration nicht verändert. Um die Beschreibung zu vereinfachen, wird in der Langfassung im Anhang darüber hinaus die Variable zeilenzahl verwendet, welche die gleiche Bedeutung wie im vorigen Abschnitt besitzt. Entsprechend gibt die Variable die größte Zeile der Auslastungsmatrix L an, welche nicht dem Nullvektor entspricht. Unter den genannten Vorbedingungen müssen diese Zeile und folglich die Zeilenzahl der Matrix größer als null sein. 5.4.2 Beschreibung des Algorithmus Im nächsten Schritt wird Algorithmus 5.3 beschrieben, mit dessen Hilfe das Ziel verfolgt wird, die Auslastung der Ressourcen zu optimieren (Langfassung siehe Algorithmus A.2.4). Wie im vorigen Abschnitt seien die geplanten Produktstückzahlen yplan und die Matrizen des 210 5.4 Optimierung der Auslastung Eingabe : Vektor geplanter Produktstückzahlen yplan , Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, minimale obere Schranken minMax, MaxFolge Ausgabe : Lösung x, welche unter den vorgegebenen Bedingungen die Prozessstückzahlen xa gemäß der Sortierung der MaxFolge maximiert 01: 02: ··· 07: 08: ··· 11: 12: 13: 14: 15: ··· 18: 19: Funktion OptAuslastung(yplan , P, F, L, minMax, MaxFolge) initialisiere Lösung x entsprechend InitOptAuslastung( . . . ), Matrix A als Nullmatrix und Index a der Prozessstückzahl xa als unbestimmt solange MaxFolge nicht leer ist tue wenn vorher eine Prozessstückzahl xa maximiert wurde dann ergänze fortlaufend in einer neuen Zeile der Matrix A an Spalte a einen Eintrag gleich eins entferne Index a der aktuellen Prozessstückzahl xa vom Beginn der MaxFolge speichere vorherige Lösung x als Lösung x′ bestimme eine Lösung x, welche die Prozessstückzahl xa wie folgt maximiert: © x ← arg max xa : x 0 ∧ A x = A x′ ∧ P x = P x′ ∧ F x = 0 ∧∀i ∈ {1, . . . , Zeilen der Matrix L} ª L[i,∗] x minMax[i ] liefere optimale Lösung x zurück Funktion InitOptAuslastung(yplan , P, F, L, minMax) initialisiere Lösung x als Nullvektor bestimme eine Lösung x, welche den geplanten Produktstückzahlen y plan,b wie folgt entspricht: © x ← arg max 1⊤ P x : x 0 ∧ P x yplan ∧ F x = 0 ∧∀i ∈ {1, . . . , Zeilen der Matrix L} ª L[i,∗] x minMax[i ] liefere initiale Lösung x zurück Algorithmus 5.3: Optimierung der Auslastung L x (alle Komponenten) (Kurzfassung). mathematischen Modells (P, S, F, L, L Invest ) gegeben. Hinzu kommen die zuvor ermittelten, minimalen oberen Schranken minMax[i ] und die MaxFolge, welche die sortierten Indizes a aller iterativ zu maximierenden Prozessstückzahlen xa enthält. Funktion OptAuslastung( . . . ) In Zeile 01 ist die Hauptfunktion deklariert, die dazu dient, die Auslastung zu optimieren, repräsentiert durch die Komponenten des Vektors L x. Wie im Fall von Algorithmus 5.2 im vorigen Abschnitt basiert die Funktion auf einer Schleife, welche die Iterationsvorschrift nach Gleichung (5.15a, 5.15b) umsetzt. Vor Beginn der Iteration wird eine Startlösung x ermittelt, wofür eine entsprechende, weiter unten erläuterte Hilfsfunktion aufgerufen wird. Darüber hinaus wird die Matrix A, die für diesen Algorithmus eine besondere Bedeutung besitzt, mit der Nullmatrix initialisiert. Im Iterationsverlauf wird nach der Maximierung einer Prozessstückzahl xa in einer neuen Zeile dieser Matrix die Komponente an Spalte a mit dem Wert eins festgelegt. Als Folge wächst die Matrix A mit der Zahl der Prozessstückzahlen xa , die in vorherigen Iterationsschritten maximiert wurden. Durch die Nebenbedingung, dass sich die Komponenten des Vektors A x nicht verändern dürfen, werden die vorher maximierten Prozessstückzahlen xa unverändert beibehalten. Um eine neue Zeile in der Matrix A zu ergänzen, wird die jeweils letzte Zeile mit dem Wert null initialisiert und nach jedem Iterationsschritt aktualisiert. Ebenso wird der Index a der zuletzt maximierten Prozessstückzahl xa als unbestimmt initialisiert und aktualisiert. 211 5 Lösungsschritt II: mathematische Optimierung Danach folgt in Zeile 07 die Schleife, in deren Verlauf die Prozessstückzahlen xa gemäß der Sortierung der Indizes a in der MaxFolge iterativ maximiert werden. Die Schleife wird betreten, wenn die MaxFolge mindestens einen Index a enthält und entsprechend mindestens eine solche Prozessstückzahl xa existiert. Wie beschrieben, werden die bisher maximierten Prozessstückzahlen xa unverändert beibehalten, indem fortlaufend entsprechende Zeilen in der Matrix A ergänzt werden. Ausgenommen ist die letzte Prozessstückzahl xa , da es nach deren Maximierung nicht notwendig ist, eine solche Zeile hinzuzufügen. In der angegebenen Implementierung wird dies umgesetzt, indem vor der Maximierung der aktuell zu betrachtenden Prozessstückzahl xa eine Zeile für die jeweils vorhergehende ergänzt wird. Da im ersten Durchlauf der Schleife der Index a der zuletzt maximierten Prozessstückzahl xa unbestimmt ist, wird dieser Schritt übersprungen. Anschließend wird der Index a der aktuell zu maximierenden Prozessstückzahl xa bestimmt, indem das erste Glied der MaxFolge entfernt und gespeichert wird. Zur Formulierung der Nebenbedingungen wird die Lösung x, die im vorhergehenden Iterationsschritt gefunden wurde, als Lösung x′ übernommen. Daraufhin wird eine neue Lösung x gesucht, welche die aktuelle Prozessstückzahl xa maximiert, wobei folgende Nebenbedingungen gelten: Die Komponenten des Vektors A x müssen im Vergleich zur Lösung x′ die gleichen Werte annehmen, wodurch die zuvor gefundenen, bereits maximierten Prozessstückzahlen xa beibehalten werden. Zudem müssen die Stückzahlen y b aller Produkte b, entsprechend dem Vektor P x, mit der vorherigen Lösung x′ übereinstimmen. Da die Startlösung, wie weiter unten erläutert wird, den geplanten Produktstückzahlen yplan entspricht, ist dadurch sichergestellt, dass dies auf alle Lösungen x zutrifft. Analog zu den vorhergehenden Algorithmen muss jede Lösung x den Flusserhalt erfüllen, wie durch Gleichung (4.13) im vorigen Kapitel definiert. In Bezug auf die Komponenten des Vektors L x gilt die Nebenbedingung, dass diese die minimalen oberen Schranken minMax[i ] nicht überschreiten dürfen. Nachdem alle Indizes a in der MaxFolge betrachtet wurden und letztere entsprechend keine Glieder enthält, wird die Schleife verlassen und die Lösung x zurückgegeben. Funktion InitOptAuslastung( . . . ) Ab Zeile 15 ist die Hilfsfunktion zur Bestimmung einer Startlösung definiert, die weiter oben erwähnt wurde. Ausgehend vom Nullvektor wird die Summe der Stückzahlen y b aller Produkte b maximiert, wobei diese jeweils den geplanten Wert y plan,b nicht überschreiten dürfen. Analog zu Algorithmus A.2.1, der in der Kurzeinführung zu Beginn des Kapitels erläutert wurde, entspricht dies der Maximierung jeder Produktstückzahl y b bis zum geplanten Wert y plan,b . Die gesuchte Lösung x muss die Bedingungen in Bezug auf den Flusserhalt und die Auslastung erfüllen, welche im vorigen Kapitel durch Gleichung (4.13) bzw. (4.14) definiert wurden. Abweichend von dieser Definition gelten für die Komponenten des Vektors L x anstelle des Wertes eins jeweils die zuvor ermittelten, minimalen oberen Schranken minMax[i ]. Anzumerken ist, dass unter diesen Bedingungen im Allgemeinen eine unendliche Menge gültiger Lösungen x existiert. Zum Abschluss wird eine dieser gültigen Lösungen x zurückgegeben und damit die Hilfsfunktion verlassen. 212 5.4 Optimierung der Auslastung 5.4.3 Beweis der Korrektheit und Zeitkomplexität Zum Abschluss folgt die Untersuchung von Algorithmus 5.3, wobei analog zu den vorigen Abschnitten zuerst dessen Korrektheit nachgewiesen werden muss. Danach wird die Komplexität des Algorithmus in Bezug auf die Laufzeit betrachtet. Der Speicherplatzbedarf ist abhängig von den Datenstrukturen, welche neben den Skalaren, Vektoren und Matrizen die minimalen oberen Schranken minMax[i ] und die MaxFolge einschließen. Die Größe des Feldes minMax ist durch die Zeilenzahl N(L) der Auslastungsmatrix L beschränkt, die MaxFolge durch die Zahl m der Prozessstückzahlen xa . Beweis der Korrektheit. Im Fall des vorliegenden Algorithmus 5.3 ist die Nachbedingung, die zum Beweis der Korrektheit erfüllt werden muss, durch Gleichung (5.14) gegeben. Das Ziel des Algorithmus lautet dementsprechend, dass alle Prozessstückzahlen xa iterativ maximiert werden müssen, deren Indizes a in der MaxFolge enthalten sind. Genauer formuliert muss jede dieser Prozessstückzahlen xa gemäß der Definition, die in der genannten Gleichung angegeben ist, ihren maximalen Wert annehmen. Im Hinblick auf die Nachbedingung des Algorithmus gilt es somit, die folgende Aussage zu beweisen: Theorem 5.5: Korrektheit von Algorithmus 5.3. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. Zudem seien die minimalen oberen Schranken minMax[i ] und die MaxFolge mit den Indizes a iterativ zu maximierender Prozessstückzahlen xa gegeben. Des Weiteren seien alle Vorbedingungen des Algorithmus erfüllt. Unter diesen Voraussetzungen ist der Algorithmus zur Optimierung der Auslastung, der Komponenten des Vektors L x, partiell und total korrekt. Korrekt heißt hierbei, dass nach Beendigung des Algorithmus die Prozessstückzahlen xa maximal sind, wie in Gleichung (5.14) definiert. Beweis. Um zunächst die partielle Korrektheit des Algorithmus nachzuweisen, wird eine geeignete Schleifeninvariante gewählt. Dieser logische Ausdruck muss stets wahr sein, sofern die Eingabe des Algorithmus den Vorbedingungen genügt, und dem obigen Ziel entsprechen, wenn die Schleifenbedingung verletzt wird. Im Fall des betrachteten Algorithmus ist die Schleifenbedingung dadurch gegeben, dass die MaxFolge (k) mindestens einen Index a einer Prozessstückzahl xa enthält. Mit Verweis auf Gleichung (5.14) wird die folgende Schleifeninvariante definiert, welche sich auf die MaxFolge vor dem Beginn und nach jedem Durchlauf der Schleife bezieht. Zur Formulierung des Ausdrucks wird die Funktion M(X ) eingeführt, welche die Menge aller Glieder einer Folge X zurückgibt: Schleifeninvariante: i ¡ ¢h ¡ ¢ ∀a ∈ M MaxFolge (0) a ∉ M MaxFolge (k) → xa(k) ist maximal . (5.16) Demnach sind alle zu maximierenden Prozessstückzahlen xa , deren Indizes a nach dem aktuellen Schleifendurchlauf nicht in der MaxFolge (k) enthalten sind, maximal. Ist die Schleifenbedingung nicht erfüllt, dann ist kein Index a, der zu Beginn in der MaxFolge enthalten 213 5 Lösungsschritt II: mathematische Optimierung war, ein Glied dieser Folge. Das heißt, ist die Schleifenbedingung entsprechend verletzt, dann ist der linke Teil der Implikation in Gleichung (5.16) für die Indizes a aller zu maximierenden Prozessstückzahlen xa wahr. Wenn dies der Fall ist und die Schleifeninvariante wie in Gleichung (5.16) angegeben gilt, sind alle zu maximierenden Prozessstückzahlen xa maximal. Folglich ist unter diesen Bedingungen das Ziel des Algorithmus erreicht, wie in dem oben stehenden Theorem definiert. Im nächsten Schritt ist zu zeigen, dass die Schleifeninvariante vor dem Beginn der Schleife und nach jedem Durchlauf gültig ist. Bevor die Schleife beginnt, sind alle Indizes a iterativ zu maximierender Prozessstückzahlen xa in der MaxFolge (0) enthalten. Entsprechend ist der linke Teil von Gleichung (5.16) für keinen dieser Indizes a erfüllt und die Implikation wahr (Induktionsanfang). Im Folgenden wird vorausgesetzt, dass die Schleifeninvariante für den vorhergehenden Schleifendurchlauf galt und der Ausdruck für die MaxFolge (k−1) wahr ist. Alle Indizes a iterativ zu maximierender Prozessstückzahlen xa , die vor dem aktuellen Schleifendurchlauf nicht in der MaxFolge (k−1) enthalten waren, sind danach auch weiterhin nicht in der MaxFolge (k) enthalten. Die betreffenden Prozessstückzahlen xa(k−1) wurden jeweils in einem vorherigen Durchlauf der Schleife maximiert und sind unter der genannten Voraussetzung der Definition entsprechend maximal. Da zuvor maximierte Werte durch eine Nebenbedingung beibehalten werden, müssen auch die entsprechenden Prozessstückzahlen xa(k) maximal sein. Die Schleifeninvariante gilt folglich für alle iterativ zu maximierenden Prozessstückzahlen xa , deren Indizes a bereits zuvor nicht mehr in der MaxFolge (k−1) enthalten waren. Danach verbleibt nur der Beweis für die Prozessstückzahl xa , deren Index a ein Glied der MaxFolge (k−1) war und welche im aktuellen Schleifendurchlauf maximiert wird. Der jeweilige Index a wird als erstes Glied aus der MaxFolge entfernt und ist entsprechend nicht mehr in der MaxFolge (k) enthalten. Da die Vorschrift zur Maximierung in Gleichung (5.15b) die Bedingung gemäß Gleichung (5.14) umsetzt, ist die Prozessstückzahl xa nach dem aktuellen Durchlauf der Schleife maximal. Unter der obigen Voraussetzung, dass die Schleifeninvariante nach dem vorhergehenden Schleifendurchlauf galt, ist diese folglich auch für den zuletzt entfernten Index a erfüllt. Als Zwischenergebnis lässt sich festhalten, dass die Schleifeninvariante nach jedem Durchlauf der Schleife wahr ist (Induktionsschritt). Nachdem folglich die partielle Korrektheit des Algorithmus bewiesen ist, muss im nächsten Schritt dessen totale Korrektheit nachgewiesen werden. Hierzu wird eine Schleifenvariante festgelegt, ein Ausdruck, welcher eine natürliche Zahl größer als null bezeichnen und mit jedem Durchlauf der Schleife reduziert werden muss. Erreicht die definierte Schleifenvariante einen Wert von null, muss die Schleifenbedingung verletzt sein. Ein geeigneter Ausdruck, welcher diese Anforderungen erfüllt, lautet wie folgt: Schleifenvariante: |M ¡ ¢ MaxFolge (k) | . (5.17) Der Ausdruck in der obigen Gleichung (5.17) bezeichnet die Zahl der Indizes a, die nach dem aktuellen Schleifendurchlauf in der MaxFolge (k) verbleiben. Vor Beginn der Schleife ist der Ausdruck nicht größer als die endliche Zahl m der erzeugten Prozessstückzahlen xa , in jedem Fall aber größer als oder gleich null. Falls der Ausdruck gleich null ist und die MaxFolge (0) entsprechend keine Glieder enthält, wird die Schleife nicht betreten. Da mit 214 5.4 Optimierung der Auslastung jedem Durchlauf der Schleife genau ein Index a, genauer das erste Glied, aus der MaxFolge entfernt wird, sinkt die Zahl der enthaltenen Indizes a jeweils um den Wert eins. Ist diese Zahl gleich null, dann ist kein Index a in der MaxFolge (k) enthalten, die Schleifenbedingung ist verletzt, und die Schleife wird verlassen. Fasst man dies zusammen, ist damit der Beweis erbracht, dass der Algorithmus sowohl partiell als auch total korrekt ist. Beweis der Zeitkomplexität. Im letzten, nun folgenden Teil dieses Abschnitts soll die Zeitkomplexität von Algorithmus 5.3 untersucht werden. Gesucht ist wie zuvor ein Ausdruck, welcher von den jeweiligen Eingaben des Algorithmus abhängig ist und eine obere Schranke für die asymptotisch wachsende Laufzeit beschreibt. Kennzeichnend für den Algorithmus ist, dass dieser auf einer Schleife basiert, deren wiederholter Durchlauf die iterative Formulierung des Ziels umsetzt. Für die Laufzeit gilt: Theorem 5.6: Zeitkomplexität von Algorithmus 5.3. Gegeben seien ein Vektor geplanter Produktstückzahlen yplan und ein mathematisches Modell (P, S, F, L, L Invest ) mit den genannten Matrizen. In Bezug auf das Modell wird vorausgesetzt, dass dieses aus der Transformation eines grafischen Modells {G WS,b } mit einer endlichen Zahl von Wertstromgraphen G WS,b folgt. Zudem seien die minimalen oberen Schranken minMax[i ] und die MaxFolge mit den Indizes a iterativ zu maximierender Prozessstückzahlen xa gegeben. Der Algorithmus zur Optimierung der Auslastung, repräsentiert durch die Komponenten des Vektors L x, besitzt in der angegebenen Implementierung eine Laufzeit von O(m). Beweis. In jedem Durchlauf wird genau ein Index a aus der MaxFolge entfernt, um die jeweilige Prozessstückzahl xa zu maximieren. Nach der Maximierung wird die Schleife immer nur dann wiederholt, wenn die verbleibende MaxFolge (k) mindestens einen Index a einer noch zu maximierenden Prozessstückzahl xa enthält. Als Folge entspricht die Zahl der Schleifendurchläufe gerade der Zahl der Indizes a, die vor Beginn der Schleife in der MaxFolge (0) enthalten waren. Da jeder Index a höchstens einmal in der MaxFolge (0) enthalten sein kann, ist diese Zahl nicht größer als die endliche Zahl m der Prozessstückzahlen xa . Bezüglich der Laufzeiten ist anzumerken, dass für die Aufrufe zur Maximierung von Zielfunktionen eine Laufzeit von O(1) vorausgesetzt wird. Wie in den vorherigen Abschnitten gilt außerdem die Annahme, dass gleichermaßen alle mathematischen Operationen mit Vektoren und Matrizen in einer Laufzeit von O(1) ausgeführt werden. Unter diesen Voraussetzungen können für die Zeilen im Rumpf der Funktionen folgende Laufzeiten angegeben werden (ohne aufgerufene Hilfsfunktionen): 02 . . . 06: 07 . . . 13: 14: 16 . . . 19: O(1) O(m) O(1) O(1) Die Gesamtlaufzeit lässt sich bestimmen, indem die Laufzeiten aller Zeilen addiert werden, wobei kleinere Summanden und konstante Faktoren zu vernachlässigen sind. Die daraus folgende obere Schranke entspricht dem zu zeigenden Ausdruck O(m). 215 5 Lösungsschritt II: mathematische Optimierung 5.5 Umsetzung in der Software AURELIE Nachdem in den vorigen Abschnitten die Algorithmen zur Optimierung des mathematischen Modells betrachtet wurden, folgen nun einige Anmerkungen zur praktischen Umsetzung. Wie in Abschnitt 4.5 angesprochen, existiert neben den Algorithmen eine Vielzahl weiterer technischer, prozessualer und organisatorischer Erfolgsfaktoren zur Einführung einer Software. Aus technischer Sicht repräsentieren die Algorithmen, die in dieser Arbeit vorgestellt werden, zudem nur ca. drei Prozent des Quelltextes von AURELIE. Darüber hinaus ist insbesondere die grafische Benutzeroberfläche von Bedeutung, da sie dem Anwender die Funktionen zur Optimierung des Modells zugänglich macht. Nach einer kurz gefassten Beschreibung der Benutzerführung soll bewertet werden, inwieweit die Software AURELIE die Anforderungen aus Abschnitt 2.6 in Bezug auf die Optimierung erfüllt. Abschließend sollen Erweiterungen genannt werden, die in der Software implementiert wurden, und das Vorgehen zur Validierung der Ergebnisse erläutert werden. 5.5.1 Funktionsübersicht und Benutzerführung Im Hinblick auf die Optimierung werden drei Planungsziele betrachtet: die Maximierung der Kapazitäten, die Minimierung der Investitionen und die Optimierung der Auslastung. Die Grundlage bildet das vom Anwender erstellte, grafische Modell, welches validiert und in ein mathematisches Modell transformiert wird. Zur Erfüllung der Anforderungen muss eine geeignete Software folglich neben dem Modell einen Optimierer einschließen, welcher mit dem Modell Eingaben und Ausgaben austauscht. Bei diesen Eingaben und Ausgaben handelt es sich um die Informationen, die zwischen dem abgebildeten System und seiner Umwelt ausgetauscht werden. Genauer sind dies die Stückzahlen für alle Produkte und deren Verteilung in den Wertströmen bzw. die daraus resultierende Auslastung der genutzten Ressourcen. Auf Basis dieser Informationen müssen Zielfunktionen und Nebenbedingungen formuliert werden, um die definierten Planungsziele umzusetzen. Im Anschluss müssen die Zielfunktionen durch Nutzung eines exakten, mathematischen Verfahrens der linearen Optimierung maximiert bzw. minimiert werden. In der Software AURELIE kommt die Bibliothek lp_solve zum Einsatz, die entsprechende Standardverfahren bereitstellt und in Programmiersprachen wie z. B. Java2 eingebunden werden kann. Für reellwertige lineare Probleme nutzt die Bibliothek ein verbessertes Simplex-Verfahren, wie in der Kurzeinführung beschrieben. Zu jedem Zeitpunkt während der Modellerstellung kann der Anwender die Funktion zur Optimierung des Modells aufrufen. Daraufhin wird das grafische Modell validiert, und wenn die Validierung erfolgreich ist, wird dieses automatisch in ein entsprechendes mathematisches Modell transformiert. Auf der Grundlage des mathematischen Modells ruft AURELIE wiederholt Funktionen von lp_solve auf, um Zielfunktionen mit Nebenbedingungen zu maximieren bzw. zu minimieren. Das Ergebnis wird an AURELIE zurückgegeben und in der grafischen Benutzeroberfläche angezeigt, sodass es dem Anwender möglich ist, die Lösung auszuwerten. 2 Die Implementierung der Software AURELIE erfolgte, wie in Kapitel 4 angemerkt, auf Basis der Java Platform Standard Edition 7. Weiterführende Informationen (abgerufen am 11. Februar 2018): http://www.oracle.com/technetwork/java/javase/overview/. 216 5.5 Umsetzung in der Software AURELIE Abbildung 5.3: Bildschirmaufnahme von AURELIE (tabellarische Ergebnisdarstellung). Die Ergebnisse für die Kapazität, die Auslastung und die Investitionen werden jeweils in einer Tabelle dargestellt. Zur weiteren Analyse ist es im Fall der Auslastung durch Auswahl einer Ressource möglich, die Produkte zu ermitteln, welche zur Auslastung der Ressource beitragen. Mit Hilfe einer Filterfunktion kann der Anwender in den Wertströmen nach überlasteten Ressourcen suchen. Tabellarische Darstellung der Ergebnisse. Um im Sinne einer umfassenden Planung ein möglichst detailliertes Bild zu zeichnen, werden alle numerischen Ergebnisse der Optimierung tabellarisch dargestellt. Für die Kapazität, die Auslastung und die Investitionen wird in eigenen Reitern jeweils eine Tabelle mit den zugehörigen Ergebnissen erzeugt, wie Abbildung 5.3 zeigt. Im ersten Reiter werden die technischen Kapazitäten, d. h. die maximalen Stückzahlen aller Produkte, mit dem Primärbedarf und dem gesamten Bedarf einschließlich des Sekundärbedarfs verglichen. Die optimale Auslastung der verfügbaren Ressourcen ist im zweiten Reiter nach Bereichen gruppiert und mit absteigender Auslastung sortiert angegeben. Zuletzt sind im dritten Reiter die minimalen Investitionen aufgeführt, wobei Ressourcen gleicher Ressourcentypen zusammengefasst werden. Um die gefundene Lösung untersuchen zu können, sind die drei Tabellen in Abbildung 5.3 durch verschiedene Ebenen strukturiert: Die Kapazitäten werden nach den Stücklisten der Produkte gegliedert, um aufzuzeigen, ob die Auslastung einer Ressource oder die Verfügbarkeit einer Komponente die Kapazität begrenzt. Die Werte der Auslastung werden zusammenfassend für alle Bereiche und Ressourcen sowie für all diejenigen Produkte angegeben, die jeweils zur Auslastung einer Ressource beitragen. In ähnlicher Weise werden die 217 5 Lösungsschritt II: mathematische Optimierung Abbildung 5.4: Bildschirmaufnahme von AURELIE (Visualisierung von Engpässen). Für Bereiche und Wertströme ist eine Übersicht verfügbar, welche die Auslastung der Ressourcen und ggf. deren Auslastung durch ein Produkt (in Klammern) wiedergibt. Hierbei werden überlastete Ressourcen hervorgehoben, um die Identifikation bestehender Engpässe zu beschleunigen. Die grafische Übersicht ergänzt die tabellarische Darstellung und unterstützt die Auswertung. Investitionen auf übergeordneter Ebene nach Ressourcentypen zusammengefasst und für jede einzelne Ressource angegeben. Um einen Wert auf einer Ebene zu analysieren, kann der Anwender die Werte auf untergeordneten Ebenen anzeigen, wie z. B. die Auslastung einer Ressource durch ein Produkt. Zudem ist eine Filterfunktion verfügbar, um die Werte in den Tabellen nach einem Begriff durchsuchen und z. B. Engpässe für ein Produkt ermitteln zu können. Ein Engpass bezeichnet eine Ressource, die überlastet ist und die Stückzahlen eines oder ggf. mehrerer Produkte beschränkt. Grafische Darstellung der Auslastung und der Engpässe. Der Kern des softwaregestützten Workflows ist die grafische Modellierung eines gegebenen Systems von Wertströmen. Wie in Abschnitt 2.6 dargelegt wurde, führt der grafische Ansatz insbesondere im Vergleich zu tabellenbasierten Ansätzen zu einer Steigerung der Effizienz, Transparenz und Flexibilität. Daher liegt es nahe, die Ergebnisse der Optimierung wie auch das Modell nicht nur in einer tabellarischen Übersicht, sondern auch grafisch wiederzugeben. Der Anwender kann hierzu einen Bereich oder Wertstrom auswählen, um die Auslastung der Ressourcen im grafischen Modell anzuzeigen, wie in Abbildung 5.4 dargestellt ist. Dies betrifft die Auslastung der Res- 218 5.5 Umsetzung in der Software AURELIE Abbildung 5.5: Bildschirmaufnahme von AURELIE (Export nach Microsoft Excel). Um die Ergebnisse der Optimierung weiterzuverarbeiten und zusätzliche Auswertungen durchzuführen, kann der Anwender alle numerischen Daten exportieren. Die Funktion gewährleistet eine nahtlose Verknüpfung mit den nachfolgenden Prozessen im Unternehmen. Zum Export der Daten wird eine Tabellenvorlage genutzt, welche eine grafische Auswertung der Kapazitätsentwicklung bietet. sourcen und ggf. deren Auslastung durch das jeweilige Produkt, welches dem ausgewählten Wertstrom zugeordnet ist. Ist eine Ressource überlastet, wird diese visuell von allen anderen unterschieden, um Engpässe in den Wertströmen der Produkte hervorzuheben. Weiterverarbeitung der Ergebnisse. Für einen effektiven und effizienten Einsatz im Unternehmen muss die Möglichkeit bestehen, die Ergebnisse der Optimierung in nachfolgenden Prozessen weiterzuverarbeiten. Da zur Verarbeitung numerischer Daten zumeist Tabellenkalkulationen verwendet werden, ist eine Integration mit Microsoft Excel notwendig, dem Standard zur Erstellung von Tabellenkalkulationen. Zu diesem Zweck kann der Anwender die Ergebnisse für ein ausgewähltes Jahr oder den gesamten Planungszeitraum nach Microsoft Excel exportieren. Durch die Funktion werden alle numerischen Daten, die in den genannten Tabellen dargestellt werden, in der gleichen Struktur in eine eigens definierte Tabellenvorlage übertragen. Die Tabellenvorlage stellt zusätzlich eine grafische Auswertung zur Entwicklung der Kapazität im Planungszeitraum bereit, wie Abbildung 5.5 beispielhaft zeigt. Unter Zuhilfenahme der Standardfunktionen von Microsoft Excel besteht zudem für den Anwender die Möglichkeit, eigene Auswertungen zu erstellen. 219 5 Lösungsschritt II: mathematische Optimierung Abbildung 5.6: Bildschirmaufnahme von AURELIE (Export nach Microsoft PowerPoint). Wie die tabellarische Ergebnisdarstellung kann auch die grafische Übersicht der Auslastung in den Bereichen und Wertströmen zur Weiterverarbeitung exportiert werden. Der Export enthält die Auslastung der Ressourcen und ggf. deren Auslastung durch das ausgewählte Produkt. Die Funktion ermöglicht es, die Erstellung von Entscheidungsvorlagen für Investitionen zu automatisieren. Im Prozess der Investitionsplanung muss zuerst der Bedarf an Investitionen ermittelt und auf dieser Basis eine Entscheidung durch die Unternehmensleitung herbeigeführt werden. Eine häufig wiederkehrende Aufgabe besteht darin, entsprechende Entscheidungsvorlagen zu erstellen, welche die Daten zur Auslastung der Ressourcen zusammenfassen. Hierfür bietet sich die grafische Darstellung eines Bereichs oder Wertstroms an, um zu verdeutlichen, an welcher Stelle und ggf. für welches Produkt zusätzliche Ressourcen benötigt werden. Um die Erstellung von Entscheidungsvorlagen zu automatisieren, ist es möglich, die grafische Darstellung nach Microsoft PowerPoint zu exportieren. Wie Abbildung 5.6 zeigt, schließt dies die Auslastung aller Ressourcen ein, wobei Engpässe hervorgehoben werden und ggf. die Auslastung durch das jeweilige Produkt angegeben wird. 5.5.2 Erfüllungsgrad der Anforderungen In Kapitel 3 wurde festgehalten, dass keine Software existiert, welche die definierten Anforderungen in Bezug auf die Optimierung erfüllt. An diese Feststellung anknüpfend soll im Folgenden belegt werden, dass die im Rahmen der Arbeit entwickelte Software AURELIE alle 220 5.5 Umsetzung in der Software AURELIE dieser Anforderungen umsetzt. Dies gilt für die Basisanforderungen A10–A13 im Hinblick auf die gegebenen Planungsziele und die Güte der Lösungen wie auch für die Leistungsanforderung A14+ bezüglich der Laufzeit der Optimierung. Erfüllungsgrad der Basisanforderung A10 Maximierung der Kapazitäten Die Herausforderung im Hinblick auf die Maximierung der Kapazitäten bestand darin, vor Beginn der Optimierung eine Strategie festzulegen, welche die optimale Lösung eindeutig bestimmt. Betrachtet man die TEK verschiedener Produkte, ist es oftmals möglich, die TEK eines Produkts durch die Reduktion der TEK eines oder mehrerer anderer Produkte zu steigern. Der vorgestellte Algorithmus löst dieses Problem, indem die Stückzahlen der Produkte entsprechend dem Verhältnis der vorläufig festgelegten, geplanten Werte maximiert werden. Um die Produktstückzahlen zu maximieren, werden die verfügbaren Ressourcen bestmöglich genutzt. Sobald die Stückzahl eines Produkts ihren maximalen Wert erreicht, wird dieser Wert beibehalten, und die Stückzahlen der verbleibenden Produkte werden weiter erhöht. Durch die Vorgabe der geplanten Werte kann der Anwender vor Beginn der Optimierung festlegen, welche Lösung in dem Fall, dass mehrere nicht dominierte Lösungen vorliegen, ausgewählt werden soll. Die Basisanforderung A10 ist damit erfüllt. Erfüllungsgrad der Basisanforderung A11 Minimierung der Investitionen Analog zur vorigen Anforderung führt die Suche nach der minimalen Überlastung, die zur Herstellung der geplanten Produktstückzahlen notwendig ist, oft zu mehreren Lösungen. In vielen Fällen ist es möglich, die Überlastung einer Ressource zu reduzieren, indem im Gegenzug die Überlastung einer oder mehrerer anderer Ressourcen erhöht wird. Der Algorithmus, der in diesem Kapitel vorgestellt und in der Software implementiert wurde, führt zu einem Ausgleich der Überlastung zwischen den Ressourcen. Hierbei wird berücksichtigt, dass nur ausgewählte Ressourcen überlastet werden dürfen, wie durch den Anwender im grafischen Modell festgelegt. Genauer dürfen nur solche Prozessschritte zur Überlastung von Ressourcen führen, die nach den ersten ausgehenden Kanten alternativer Flusspunkte folgen. Durch die Anwendung dieser Strategie wird in dem Fall, dass mehrere nicht dominierte Lösungen existieren, stets eine eindeutig bestimmte, optimale Lösung ausgewählt. Als Ergebnis ist die Basisanforderung A11 erfüllt. Erfüllungsgrad der Basisanforderung A12 Optimierung der Auslastung Um die Auslastung der Ressourcen zu optimieren, müssen die Prozessstückzahlen von alternativ verknüpften Prozessschritten gemäß der vorgegebenen Iterationsvorschrift maximiert werden. Grundlage ist wie zuvor die Priorisierung ausgehender Kanten von alternativen Flusspunkten, von welcher eine vollständige Ordnung der zugeordneten Prozessstückzahlen abgeleitet werden kann. Wird der Weg zu zwei Kanten mit je einer Prozessstückzahl betrachtet, ist der erste alternative Flusspunkt entscheidend, an welchem verschiedene ausgehende 221 5 Lösungsschritt II: mathematische Optimierung Standort* Standort 1 Standort 2 Standort 3/1 Standort 3/2 Standort 4 Standort 5 Standort 6/1 Standort 6/2 Standort 7 Standort 8 Standort 9/1 Standort 9/2 Region EMEA EMEA AMER AMER EMEA EMEA EMEA EMEA APAC AMER EMEA EMEA PS 391 520 253 182 490 212 299 730 505 84 1404 1795 Matrizen, Zeilen × Spalten Laufzeit**, in s P S F L PZ 1 PZ 2 PZ 3 36×446 57×617 31×347 27×212 62×480 42×224 55×227 47×578 38×521 33×108 152×1586 110×1390 36×36 57×57 31×31 27×27 62×62 43×43 55×55 53×53 38×38 33×33 152×152 119×119 137×445 138×618 142×356 76×211 199×486 83×222 98×226 239×597 156×529 31×111 584×1603 509×1372 266×446 394×617 151×355 35×212 137×486 162×224 72×227 54×597 148×529 33×111 60×1603 87×1390 8,76 23,18 4,28 0,86 15,32 7,20 2,83 2,91 4,38 0,59 91,80 23,51 1,55 0,46 0,59 0,06 0,02 0,16 0,01 0,25 2,28 0,03 6,26 0,83 1,88 4,72 1,45 0,32 1,31 0,51 0,15 1,69 3,59 0,11 55,91 17,67 P 12,18 28,36 6,32 1,24 16,66 7,88 2,99 4,85 10,24 0,73 153,98 42,01 P± PS 0,031 0,055 0,025 0,007 0,034 0,037 0,010 0,007 0,020 0,009 0,110 0,023 *anonymisiert **Testsystem: Microsoft Windows 8.1, 8 GB RAM, CPU Intel Core i5-4300M, vier Kerne mit 2,60 GHz Tabelle 5.1: Erfüllung der vorgegebenen linearen oberen Laufzeitschranke. Aufgeführt sind die Laufzeiten zur Optimierung der drei Planungsziele (PZ 1–3) mit der Software AURELIE. Die Grundlage bilden die repräsentativen Planungen aus Tabelle 2.2 (Mittelwert von je zehn Messungen). Die Zahl der Prozessschritte (PS) und die Größen der Matrizen erlauben einen Rückschluss auf die Komplexität der Modelle. In keinem Fall wird die lineare obere Laufzeitschranke von 0,15 Sekunden je Prozessschritt überschritten (siehe Leistungsanforderung A14+). Kanten verfolgt werden. Die Prioritäten, welche diesen ausgehenden Kanten zugeordnet sind, bestimmen die Ordnung zwischen den zwei Prozessstückzahlen. Dadurch ist es dem Anwender möglich, mit den Mitteln des grafischen Modells eine eindeutige Priorisierung zwischen allen Prozessstückzahlen zu definieren. Der Algorithmus setzt die Iterationsvorschrift um und berücksichtigt dabei die minimale Überlastung, welche gemäß der vorigen Anforderung ermittelt wird. Folglich ist auch die Basisanforderung A12 erfüllt. Erfüllungsgrad der Basisanforderung A13 Globales Optimum Für den Einsatz im Unternehmen ist es unerlässlich, dass im Fall aller drei Planungsziele nicht nur ein lokales Optimum, sondern stets das globale Optimum gefunden wird. Die vorgestellten Algorithmen basieren auf der wiederholten Maximierung oder Minimierung linearer Zielfunktionen, jeweils beschränkt durch lineare Nebenbedingungen. Hierzu wird ein exaktes, mathematisches Verfahren der linearen Optimierung eingesetzt, welches durch die Bibliothek lp_solve bereitgestellt wird. Somit ist sichergestellt, dass stets das globale Optimum ermittelt wird, und die Basisanforderung A13 ist erfüllt. Erfüllungsgrad der Leistungsanforderung A14+ Lineare obere Laufzeitschranke Um die Software effizient einsetzen zu können, darf zudem die Laufzeit der Optimierung im Verhältnis zur Zahl der Prozessschritte einen festgelegten Wert nicht überschreiten. Mit Blick auf die Komplexität typischer Modelle wird ein Schwellwert von 0,15 Sekunden je 222 5.5 Umsetzung in der Software AURELIE Prozessschritt angenommen, wie in Abschnitt 2.6 erläutert wurde. Um die Anforderung zu prüfen, wurden die Laufzeiten für die Modelle der repräsentativ ausgewählten Planungen gemessen, die in Tabelle 2.2 auf Seite 38 aufgeführt sind. Die Ergebnisse der Messungen, welche in Tabelle 5.1 dargestellt sind, bestätigen, dass die definierte lineare obere Schranke für die Laufzeit in keinem der geprüften Fälle verletzt wird. Dies gilt auch dann, wenn man berücksichtigt, dass zur Messung ein leistungsfähigeres Rechnersystem genutzt wurde als in der Anforderung angegeben. Damit ist die Effizienz der Algorithmen aus praktischer Sicht belegt, und die Leistungsanforderung A14+ ist entsprechend erfüllt. 5.5.3 Wesentliche Erweiterungen Bei der Entwicklung der Software AURELIE wurden zahlreiche zusätzliche Anforderungen der Anwender umgesetzt, die im Pseudocode der Algorithmen nicht wiedergegeben sind. Hintergrund ist, dass es den Rahmen der Arbeit sprengen würde, auf diese Erweiterungen detailliert einzugehen. Dennoch sollen in aller Kürze einige wichtige Erweiterungen genannt werden, da diese zum Erfolg der Software beitragen. (1) Einbindung in ein Produktionsnetzwerk: Im Fall weltweit tätiger Unternehmen ist ein Produktionsstandort zumeist in ein Netzwerk mit anderen Standorten desselben und anderer Unternehmen eingebunden. Mit der Software AURELIE können diese Standorte in der Planung der TEK als Kapazitäten und Bedarfe berücksichtigt werden. Hierzu ist es notwendig, die Optimierungsvariablen und die Nebenbedingungen gegenüber der Beschreibung in den vorigen Abschnitten zu erweitern. (2) Verkettung von Wertströmen: Mit der Einführung einer verbrauchsorientierten Steuerung in der Produktion wie z. B. dem Bosch Production System werden die Wertströme von Komponenten und Produkten miteinander verkettet. In einem solchen Fall gilt die Regel, dass die Stückzahlen der Teilefertigung gerade dem Bedarf an Komponenten in der Montage entsprechen müssen. Um Regeln dieser Art abzubilden, müssen zusätzliche Nebenbedingungen eingeführt werden. (3) Entscheidungsstand der Investitionsplanung: Ressourcen, die zum Zeitpunkt der Planung vorhanden oder zukünftig eingeplant sind, müssen von solchen unterschieden werden, deren Beschaffung noch zu genehmigen ist. Im Fall der letztgenannten Ressourcen werden Investitionen nicht erst durch deren Überlastung, sondern bereits durch deren Nutzung notwendig. Entsprechend muss die Bestimmung der Investitionen als eine Funktion der Auslastung angepasst werden. (4) Sicherstellung numerischer Stabilität: Die endliche Repräsentation unendlicher Gleitkommazahlen führt zu Ungenauigkeiten, die sich im Verlauf der Optimierung verstärken. Besonders in Fällen komplexer Modelle ist nicht sichergestellt, dass eine Lösung gefunden wird, selbst wenn diese aus mathematischer Sicht existieren müsste. Verschiedene Maßnahmen wie z. B. die Umformulierung der Optimierungsprobleme bewirken, dass entsprechende Fälle praktisch ausgeschlossen werden. 223 5 Lösungsschritt II: mathematische Optimierung (5) Optimierung der Algorithmen: Durch die Ausnutzung von Eigenschaften des grafischen Modells ist es möglich, die Algorithmen zu beschleunigen, wenn auch die angegebenen Komplexitätsklassen in Bezug auf die Laufzeit weiterhin gelten. Beispielsweise müssen Prozessstückzahlen nicht iterativ maximiert werden, wenn bereits feststeht, dass diese den jeweils größtmöglichen Wert annehmen. Der Einsatz solcher Techniken erlaubt es, die Zahl der Schleifendurchläufe um ca. 50 Prozent zu reduzieren. 5.5.4 Validierung der Optimierungsergebnisse Anknüpfend an die Validierung des erstellten grafischen Modells in Abschnitt 4.3 besteht die Aufgabe, die nachfolgenden Schritte im Ablauf des softwaregestützten Workflows zu validieren. Dies betrifft die Transformation des grafischen Modells in ein entsprechendes mathematisches Modell und die Optimierung des mathematischen Modells gemäß den Planungszielen. Ergänzend zum theoretischen Nachweis der Korrektheit, der im vorliegenden Kapitel erbracht wurde, muss die Implementierung in der Software AURELIE getestet werden. Eine vollständige Prüfung der Ergebnisse wird jedoch dadurch erschwert, dass keine Software mit entsprechenden Möglichkeiten existiert, wie in Kapitel 3 belegt wurde. Da es folglich nicht möglich ist, die Ergebnisse mit verfügbarer Software zu vergleichen, müssen diese manuell nachvollzogen werden. Dabei muss ein Weg gefunden werden, um einzelne Softwarekomponenten sowie deren Integration zu testen. Um dieses Problem zu lösen, wurde bei der Bosch Rexroth AG ein Vorgehen in drei Schritten angewandt, das sich über mehrere Monate erstreckte. Die Absolvierung eines Testschritts führte zum jeweils nächsten Schritt oder, im Fall des letzten Schritts, zur Erteilung der Freigabe für die Einführung der Software. Die Schritte waren dadurch gekennzeichnet, dass gegenüber den jeweils vorherigen der Umfang der Funktionen oder der Kreis der Teilnehmer erweitert wurde. Grundsätzlich entspricht dies den allgemeinen Vorgehensmodellen, die für die Einführung von Informationssystemen etabliert sind (siehe u. a. Liggesmeyer 2009, Ammann und Offutt 2016, Witte 2016). Diese Vorgehensmodelle basieren auf wiederholten Tests, die von einzelnen Komponenten einer Software zum Test übergreifender, integrierter Funktionen führen. Im Folgenden werden die einzelnen Testschritte, die im vorliegenden Fall ausgeführt wurden, näher erläutert: (1) Interner Test einzelner Softwarekomponenten: Im ersten Schritt wurden die Matrizen und Folgen des mathematischen Modells und die Ergebnisse jedes einzelnen Iterationsschritts der Optimierung geprüft. Diese Prüfung wurde parallel zur Entwicklung der Software vom Entwickler, dem Autor dieser Arbeit, auf der Grundlage eines noch nicht vollständig funktionsfähigen Prototyps durchgeführt. Hierfür wurden die Möglichkeiten der Entwicklungsumgebung, in diesem Fall der Eclipse3 Rich Client Platform (RCP), im Hinblick auf die Analyse des Programmcodes und das Debugging genutzt. Es wurden einfache Modelle erstellt, die analog zu den Beispielen in Kapitel 2 von ihrem Umfang abgesehen wesentliche Merkmale realer Modelle besitzen. Im Ergebnis konnte die Korrektheit der Kernalgorithmen auf der Ebene einzelner Iterationsschritte bestätigt werden. 3 Eclipse: Eclipse Indigo SR2 Packages. Abgerufen am 9. Dezember 2018. http://www.eclipse.org/downloads/packages/release/Indigo/SR2. 224 5.6 Fazit: Erreichen des vorgegebenen Entwicklungsziels (2) Interner Integrationstest ausgewählter Softwarekomponenten: Im zweiten Schritt folgte die Prüfung aller Schritte des softwaregestützten Workflows von der grafischen Modellierung bis zur Darstellung der Optimierungsergebnisse. Wie der vorherige Testschritt wurde auch dieser vom Entwickler der Software durchgeführt, jedoch auf Basis eines funktionsfähigen Prototyps. Zu diesem Zweck wurden die Bestandteile der Benutzeroberfläche genutzt, die zu diesem Zeitpunkt fertiggestellt waren, einschließlich des grafischen Konfigurators und der Ergebnisdarstellung. Wie zuvor wurden einfache Modelle erstellt, wobei allerdings nicht Zwischenergebnisse, sondern die Endergebnisse nach Durchlauf der Optimierung geprüft wurden. Damit war es möglich, die Korrektheit der Kernalgorithmen auf übergeordneter Ebene und der Benutzeroberfläche zu bestätigen. (3) Erweiterter Integrationstest aller Softwarekomponenten: Im dritten und letzten Schritt vor der Einführung wurde die Software unter realistischen Bedingungen geprüft, welche dem zukünftigen Einsatz entsprechen. Hierzu wurden Pilotstandorte im Produktionsnetzwerk der Bosch Rexroth AG definiert, die stellvertretend das Produktspektrum und die Organisationsformen der Produktion repräsentieren. An den Pilotstandorten wurden Workshops organisiert, in denen die zukünftigen Anwender die Software selbst testen und ihr Feedback an den Entwickler weitergeben konnten. Die Grundlage bildete eine vorläufige Version der Software, die zu diesem Zeitpunkt bereits den vollständigen Funktionsumfang abdeckte. Um die Ergebnisse bezüglich Plausibilität zu prüfen und mit bestehenden Kalkulationen zu vergleichen, wurden komplexe, realistische Modelle erstellt. Als Voraussetzung für die Einführung konnte die Korrektheit aller Algorithmen bestätigt werden. Nach der erfolgreichen Absolvierung des letzten Testschritts wurde die Software AURELIE an allen Standorten der Bosch Rexroth AG eingeführt. Die Anwender wurden im Rahmen von Workshops geschult, und ihnen wurde die Möglichkeit für Feedback gegeben, welches durch Anpassung und Erweiterung der Software umgesetzt wurde. In der Praxis wurde die Software fortdauernd getestet, teilweise mit Modellen, die bezüglich Komplexität und Umfang über den ursprünglichen Einsatzzweck hinausgingen. Beispielsweise bildeten manche Anwender neben Maschinen alle Werkzeuge ab, die in Verbindung mit Maschinen genutzt werden können. Zwar erhöhte sich die Laufzeit durch den deutlich gestiegenen Modellumfang, jedoch waren die Stabilität der Software und die Korrektheit der Ergebnisse weiter gewährleistet. Abschließend kann festgestellt werden, dass die Kernalgorithmen zur Modelltransformation und Optimierung erfolgreich in der Praxis validiert wurden. 5.6 Fazit: Erreichen des vorgegebenen Entwicklungsziels Die Bewertung des Stands der Technik führte zum Schluss, dass keine Software existiert, mit welcher die Planungsziele im gegebenen Kontext vollständig erreicht werden. Unter den evaluierten Softwaretypen bietet keiner die Möglichkeit, wie vorgegeben die Kapazitäten zu maximieren, die Investitionen zu minimieren und die Auslastung zu optimieren. Diesbezüglich wurde gefordert, dass die Lösung eindeutig bestimmt ist und stets die bestmögliche Lösung innerhalb einer definierten Laufzeit gefunden wird. Nachdem im vorigen Kapitel 225 5 Lösungsschritt II: mathematische Optimierung die Modellierung betrachtet wurde, sollten nun in einem zweiten Lösungsschritt die Anforderungen in Bezug auf die Optimierung erfüllt werden. Dabei galt es, die zuvor erreichten Ergebnisse und insbesondere die mathematische Repräsentation des Modells aufzugreifen und weiterzuverarbeiten. Mit Blick auf die gewonnenen Erkenntnisse ist festzustellen, dass das Entwicklungsziel durch die neue Software AURELIE erreicht wird. Zum Abschluss des Kapitels liegen folgende Ergebnisse vor: (1) Algorithmus zur Maximierung der Kapazitäten (technische Kapazitäten ymax ): Beschreibung von Ziel, Grundidee, Datenstrukturen und Ablauf sowie Beweis der Korrektheit und der Zeitkomplexität (siehe Abschnitt 5.2 sowie Abschnitt A.2.2 im Anhang); (2) Algorithmus zur Minimierung der Investitionen (Komponenten des Vektors L x größer als eins): detaillierte Beschreibung und formale Beweise analog zum ersten Algorithmus (siehe Abschnitt 5.3 sowie Abschnitt A.2.3 im Anhang); (3) Algorithmus zur Optimierung der Auslastung (alle Komponenten des Vektors L x): detaillierte Beschreibung und formale Beweise analog zum ersten Algorithmus (siehe Abschnitt 5.4 sowie Abschnitt A.2.4 im Anhang); (4) Beschreibung der Umsetzung in der Software AURELIE: Funktionsübersicht und Benutzerführung, Beleg der Erfüllung aller Anforderungen, wesentliche Erweiterungen und Validierung der Optimierungsergebnisse (siehe Abschnitt 5.5). Das zurückliegende Kapitel vervollständigt den Hauptteil dieser Arbeit. Mit dem zweiten Lösungsschritt wurde die noch fehlende Komponente einer geeigneten Software zur strategischen Planung der TEK vorgestellt: der Optimierer, welcher an das Modell gekoppelt wird. Nach der Optimierung des Modells folgen dessen Auswertung und Anpassung durch den Anwender, womit sich der softwaregestützte Workflow zur Planung schließt. Die Konzepte wurden in der Software AURELIE umgesetzt und finden seitdem an den Standorten der Bosch Rexroth AG weltweit im Unternehmensalltag Anwendung. 226 6 Schluss Der Verlauf der Arbeit führt von einem praktischen Problem über eine grundlegende Analyse und die Bewertung existierender Lösungen zur Entwicklung einer neuen Lösung. In Abschnitt 6.1 sollen wesentliche Ergebnisse der einzelnen Kapitel zusammengefasst und wichtige Punkte hervorgehoben werden. Darauf folgen in Abschnitt 6.2 einige Implikationen für Forschung und Praxis, entsprechend dem Charakter der Dissertation, welche diese beiden Perspektiven verbindet. Abschnitt 6.3 bildet den Schlusspunkt in Gestalt möglicher Weiterentwicklungen in Bezug auf das vorgestellte Grundkonzept. 6.1 Zusammenfassung der Ergebnisse Der Lösungsansatz, der zur strategischen Planung der technischen Kapazität in der Serienfertigung vorgeschlagen wurde, basiert auf einem zyklischen, softwaregestützten Workflow, der entsprechend der Abbildung 1.2 auf Seite 5 wie folgt abläuft: (1) grafische Modellierung eines Systems von Wertströmen, welches alle Prozessschritte zur Herstellung der Produkte an einem Standort zusammenfasst; (2) automatische Transformation des grafischen Modells in ein entsprechendes mathematisches Modell, welches sich zur Optimierung eignet; (3) automatische Optimierung des zuvor erzeugten mathematischen Models gemäß den definierten Planungszielen mit Hilfe von exakten Verfahren; (4) Auswertung der Ergebnisse durch den Planer, insbesondere der ggf. verbleibenden Engpässe, und Anpassung der Prämissen. In dieser Arbeit wurden die kalkulatorischen Grundlagen für ein System von Wertströmen dargelegt, aufbauend auf der Struktur und der Schnittstelle eines solchen Systems. Bezug nehmend darauf wurden die notwendigen Kernalgorithmen zur grafischen Modellierung, Modelltransformation und mathematischen Optimierung beschrieben. Die zu Beginn identifizierten Potenziale werden durch die weitgehende Automatisierung der oben genannten Schritte geschöpft, die in der Software AURELIE umgesetzt ist. Mit einer Systemanalyse wurde in Kapitel 2 die zu entwickelnde Lösung vorbereitet, beginnend mit einer Abgrenzung der Planung im gegebenen Kontext. Insbesondere wurde die Planung, wie sie in dieser Arbeit betrachtet wird, von der Planung der Personalkapazität, der operativen Planung und der Einzelfertigung unterschieden. Dabei werden drei Planungsziele verfolgt: die Maximierung der Kapazitäten, die Minimierung der Investitionen und die Optimierung der Auslastung. Darauf folgte die Definition der Systemstruktur, beruhend auf der rekursiven Verknüpfung von Prozessschritten eines Produkts zu Prozessen und Wertströmen. Zur eindeutigen Beschreibung des Produktionsablaufs wurden die 227 6 Schluss sequenziellen, alternativen und selektiven Verknüpfungstypen eingeführt. Auf dieser Basis wurde die Systemschnittstelle charakterisiert, welche dem Austausch von Eingaben und Ausgaben zwischen dem jeweiligen System und dessen Umwelt dient. Wie erläutert wurde, lassen sich die Planungsziele als Zielfunktionen und Nebenbedingungen der Eingaben und Ausgaben des Informationsflusses beschreiben. Im Anschluss daran wurden die Grundlagen der Kalkulation von Kapazität, Auslastung und Investitionen eingeführt, zunächst begrenzt auf den Fall eines einzigen Prozessschritts. Dem schloss sich folgerichtig die Erweiterung der Kalkulation für den allgemeinen Fall rekursiv verknüpfter Prozessschritte eines Produkts an. Die Systemanalyse mündete in der Formulierung essenzieller Anforderungen an eine Software, unterschieden nach Basisanforderungen und Leistungsanforderungen. Damit wurden die Voraussetzungen zur Bewertung des Stands der Technik und zur Entwicklung der Kernalgorithmen geschaffen. Gegenstand von Kapitel 3 war die Bewertung kommerzieller und frei verfügbarer Software in Bezug auf die Erfüllung der formulierten Anforderungen. Hierzu wurden Softwaretypen ausgewählt, welche die Abbildung eines Systems ermöglichen und in Unternehmen mit Blick auf die nötige Qualifikation der Mitarbeiter einsetzbar sind: Software zur Erstellung von Tabellenkalkulationen, zur Materialflusssimulation, für Supply Chain Management und zur Prozessmodellierung. Für die Bewertung wurde jeweils ein repräsentativer Vertreter dieser Softwaretypen herangezogen: Microsoft Excel, Siemens Plant Simulation, SAP APO SNP bzw. BPMN mit einem idealen Interpreter und Optimierer. Als Ergebnis ist festzustellen, dass zum Zeitpunkt der Betrachtung kein Softwaretyp existierte, welcher allen zuvor formulierten Anforderungen genügt. Zudem werden die Anforderungen zur grafischen Modellierung mit Hilfe einer minimalen Symbolmenge und zur Optimierung von keinem Softwaretyp vollständig erfüllt. Hiervon wurde der Bedarf abgeleitet, eine Software zur Modellierung und Optimierung eines Systems von Wertströmen zu entwickeln. Mit Kapitel 4 wurde der erste Lösungsschritt unternommen, die grafische Modellierung eines Systems von Wertströmen durch sogenannte Wertstromgraphen. Zu diesem Zweck wurde der bestehende Begriff eines gerichteten Graphen mit Mehrfachkanten erweitert und ein formal eindeutiges, grafisches Modell beschrieben. Begründet wurde die Weiterentwicklung durch die Ableitung der erforderlichen Eigenschaften von Knoten und Kanten eines geeigneten Graphen von den formulierten Anforderungen. Als Voraussetzung für die nachfolgende Verarbeitung wurde ein Algorithmus zur Validierung eines grafischen Modells entwickelt. Daran anknüpfend wurde ein mathematisches Modell eingeführt, welches auf Matrizen und Folgen basiert und sich zur Optimierung gemäß den Planungszielen eignet. Weiterhin wurde ein Algorithmus zur Transformation eines grafischen Modells in ein mathematisches Modell entwickelt. Die beiden Algorithmen wurden detailliert im Hinblick auf Ziel, Grundidee, Datenstrukturen und Ablauf beschrieben, und es wurde die Zeitkomplexität nachgewiesen. Zuletzt wurde die Umsetzung der entwickelten Algorithmen in der Praxis betrachtet und die Benutzerführung am Beispiel der Software AURELIE beschrieben. Als Ergebnis wurde festgehalten, dass erstmalig alle Anforderungen in Bezug auf die Modellierung eines Systems von Wertströmen erfüllt sind. In Kapitel 5 folgte der zweite Lösungsschritt, die Optimierung des zuvor erzeugten mathematischen Modells gemäß den definierten Planungszielen. Den Algorithmen wurde jeweils eine Diskussion und die Auswahl eines Ansatzes zur Erfüllung der Anforderungen 228 6.2 Implikationen für Forschung und planerische Praxis vorangestellt, insbesondere zur eindeutigen Bestimmung des Ergebnisses. Dieser Ansatz besteht im Fall der Maximierung der Kapazitäten darin, die Stückzahlen aller Produkte im Verhältnis der vorläufigen geplanten Stückzahlen zu steigern. Im Fall der Minimierung der Investitionen ist diese Eindeutigkeit durch den Ausgleich der Überlastung zwischen den jeweiligen Ressourcen erreichbar. Mit Blick auf die Optimierung der Auslastung ist festzustellen, dass das Ergebnis der Iterationsvorschrift gemäß der Anforderung bereits eindeutig bestimmt ist. Für jedes Planungsziel wurden Algorithmen zur iterativen Maximierung oder Minimierung geeignet definierter Zielfunktionen entwickelt. In diesem Zuge wurden Ziel, Grundidee, Datenstrukturen und Ablauf der Algorithmen beschrieben sowie die Korrektheit und Zeitkomplexität nachgewiesen. Danach richtete sich der Blick auf die Umsetzung am Beispiel der Software AURELIE, insbesondere in Bezug auf die Benutzerführung und einige hervorzuhebende Erweiterungen. Nach diesem Kapitel sind erstmals alle Anforderungen im Hinblick auf die Optimierung eines gegebenen Modells erfüllt. Zum Abschluss liegen die Kernalgorithmen für die zwei Komponenten einer Software vor, die dazu geeignet ist, den vorgeschlagenen Workflow zu unterstützen: ein Modellierer zur grafischen Erstellung und automatischen Umwandlung eines Modells und ein Optimierer zur automatischen Suche der Planungsziele. 6.2 Implikationen für Forschung und planerische Praxis Aus Sicht der Forschung leistet diese Arbeit Beiträge zur Weiterentwicklung von theoretischen Methoden, welche zur Lösung des gegebenen praktischen Problems angewandt werden. Zu Beginn wurde ein Formalismus entwickelt, um die Struktur und die Schnittstelle eines Systems von Wertströmen eindeutig zu beschreiben. Hierzu wurden zueinander schlüssige Definitionen der Begriffe des Prozessschritts, des Prozesses und des Wertstroms geprägt und in ein System eingeordnet. Mit Bezug auf die Planungsziele wurden die normativen Grundlagen zur Kalkulation zusammengefasst und zur Berücksichtigung der existierenden Komplexität erweitert. Anschließend wurden die Anforderungen an eine Software zur effizienten, transparenten und flexiblen Planung der technischen Kapazität formuliert. Mit Hilfe dieser Anforderungen konnte durch den Beleg, dass zum Zeitpunkt der Betrachtung keine geeignete Software existierte, die Forschungslücke aufgezeigt werden. Um diese Forschungslücke zu schließen, wurde der theoretische Begriff des Graphen zu einem Wertstromgraphen mit spezifischen Knoten und Kanten weiterentwickelt. Der Begriff bildete die Basis für die Formalisierung eines grafischen Modells und die Entwicklung von Algorithmen zur Validierung und Transformation in ein mathematisches Modell. Im Hinblick auf die Optimierung fand eine Bewertung möglicher Ansätze statt, mit denen sichergestellt werden kann, dass die gefundenen Lösungen eindeutig bestimmt sind. Darauf folgte eine entsprechende Formalisierung der Planungsziele und die Entwicklung von Algorithmen zur Optimierung eines solchen mathematischen Modells. Als Ergebnis konnte die identifizierte Forschungslücke geschlossen werden, wobei die Umsetzbarkeit der beschriebenen Lösung am Beispiel der Software AURELIE belegt wurde. Aus Sicht der Praxis wurde das Grundkonzept der Software AURELIE vorgestellt, deren Einsatz die Effizienz, Transparenz und Flexibilität im Planungsprozess steigert. Als Bestätigung 229 6 Schluss dient die Tatsache, dass nach ihrer Einführung bei der Bosch Rexroth AG die notwendige Zeit zur Planung bei erster Modellierung um 25 Prozent reduziert werden konnte. Bei wiederholter Modellierung zur Anpassung der Planung konnte eine noch größere Zeitreduktion um 50 bis 75 Prozent erzielt werden. Wie in der Arbeit erläutert, ist die strategische Planung technischer Kapazität typischerweise die Aufgabe eines oder mehrerer Planer an jedem Standort. Im Fall größerer Standorte beansprucht die Erstellung der Kalkulationen insgesamt die Arbeitszeit einer Person je Standort. Durch die geringere Bindung von wichtigen Ressourcen steigt die Effizienz, und durch die Visualisierung von Engpässen wird gleichzeitig die Transparenz erhöht. Die Flexibilität wächst durch die Nutzung eines allgemeinen, grafischen Modells, welches die Abbildung spezifischer Abläufe ermöglicht. Die Implikation daraus lautet jedoch nicht, dass durch den geringeren Ressourcenbedarf als Folge des Einsatzes einer neuen Software Personal reduziert werden soll. Vielmehr kann die Arbeitszeit der Planer effektiver genutzt werden, da ein größerer Zeitanteil zur Verfügung steht, um die Wertströme für die zukünftige Produktion zu gestalten. Dies eröffnet einem Unternehmen die Möglichkeit, abgeleitet von der strategischen Auswahl der Zielmärkte und dem erwartetem Absatz in jedem Markt die Produktion langfristig auszurichten. Anders formuliert ist dies die Chance, die Wettbewerbsfähigkeit des Unternehmens in einem zunehmend kompetitiven Umfeld nachhaltig zu steigern. Es sei an dieser Stelle angemerkt, dass die Entwicklung der Software AURELIE wesentlich mehr umfasste, als in dieser Arbeit beschrieben werden konnte. Beispielsweise wird der Anwender in der grafischen Modellierung unterstützt, indem Kanten zur Verbindung von Knoten automatisch erzeugt werden. Hierbei wird sichergestellt, dass die erzeugten Kanten keine anderen Knoten kreuzen, in der grafischen Darstellung die kürzestmögliche Länge besitzen und möglichst geradlinig verlaufen. Zahlreiche weitere Funktionen führten dazu, dass die Anwender nach einer ersten, eintägigen Schulung innerhalb weniger Tage alle existierenden Wertströme an ihrem Standort abbilden konnten. 6.3 Ausblick: mögliche Weiterentwicklungen Zusätzliche Potenziale existieren im Hinblick auf die Integration der strategischen Planung technischer Kapazität mit angrenzenden Planungen. Diesbezüglich sind die Planung der Personalkapazität und die operative Planung beider Produktionsfaktoren, der technischen und der Personalkapazität, hervorzuheben. In einer teilautomatisierten Produktion kann die Planung technischer Kapazität als Grundlage dienen, um von der Auslastung der Produktionsanlagen den Personalbedarf abzuleiten. Die strategische Planung kann durch Verkürzung des Zeithorizonts und Ergänzung detaillierter Informationen zur operativen Planung verdichtet werden. Theoretisch ist eine parallele Planung beider Produktionsfaktoren mit strategischem und operativem Zeithorizont durch die Integration in einer Software denkbar. Dies würde jedoch Modellerweiterungen erfordern und das Risiko bergen, die Komplexität zu erhöhen und die Effizienz zu reduzieren. Aus praktischer Sicht erscheint ein sequenzieller Ablauf der Planungen vorteilhafter, wofür Schnittstellen der Softwareanwendungen entwickelt werden müssten. Als Ergebnis könnte eine effektivere und effizientere Abstimmung der jeweiligen Planungsfunktionen erreicht werden. 230 6.3 Ausblick: mögliche Weiterentwicklungen Die angesprochene Integration schließt die Verarbeitung der erzielten Ergebnisse in nachfolgenden Prozessen ein. Beispielsweise ist aufgrund der Komplexität in vielen Fällen nicht bekannt, welche Ressourcen einen Engpass darstellen und die Stückzahlen der Produkte beschränken. Da Produktionsanlagen häufig für mehrere Produkte genutzt werden, führen Verschiebungen im Verhältnis der Stückzahlen dazu, dass die Engpässe zwischen verschiedenen Ressourcen wechseln. Im Zuge der Minimierung der Überlastung durch die Software AURELIE werden Engpässe in den Wertströmen identifiziert und visualisiert. An diesen Punkt anknüpfend könnte die Software dahingehend weiterentwickelt werden, ein vom Planer erstelltes Modell in Bezug auf Potenziale zur Prozessoptimierung zu prüfen. Als Ergebnis könnten automatisiert Maßnahmen zur Reduktion der Rüstzeiten und der Stillstandszeiten vorgeschlagen werden. Die Erkenntnisse aus der strategischen Planung könnten somit systematisch genutzt werden, um die operativen Prozesse in der Produktion zu optimieren. Voraussetzung wäre die Abbildung von Expertenwissen aus den operativen Bereichen wie z. B. der Arbeitsplanung und der Instandhaltung. Mit Blick auf den softwaregestützten Workflow ist es darüber hinaus denkbar, den Umfang der automatisierten Entscheidungen zu erweitern. Laut dem vorgestellten Konzept der Software AURELIE werden alle quantitativen Informationen durch den Planer in einem grafischen Modell abgebildet. Hierbei berücksichtigt der Planer qualitative Randbedingungen, wie z. B. den Ablauf von Fertigung und Montage, durch die Definition der Prozesse und Wertströme. Auf dieser Basis folgen die automatische Transformation und Optimierung des erstellten Modells zur Unterstützung quantitativer Entscheidungen. Diese Entscheidungen betreffen ausschließlich numerische Freiheitsgrade wie z. B. die Verteilung der Stückzahlen und die Zahl zusätzlicher Ressourcen an definierten Stellen in den Wertströmen. Qualitative Entscheidungen wie z. B. die Festlegung, an welcher Stelle Ressourcen beschafft werden sollen, liegen weiterhin in Verantwortung des Planers. Mit den Fortschritten der künstlichen Intelligenz ist es grundsätzlich vorstellbar, auch diese Entscheidungen zu automatisieren. Zur Erreichung dieses Ziels wäre zuallererst die Abbildung aller notwendigen quantitativen und qualitativen Informationen in einem Modell erforderlich. Eine solche Automatisierung hätte weitreichende Konsequenzen, wie an der Frage deutlich wird, in zusätzliche Produktionsanlagen zu investieren oder Schichtmodelle zu erweitern. Die Abbildung aller notwendigen qualitativen Informationen wäre jedoch schwierig, insbesondere im Fall personalrelevanter Fragen. Im genannten Beispiel ist u. a. der Faktor einzubeziehen, unter welchen Bedingungen eine Einigung mit der Personalvertretung zur Erweiterung der Arbeitszeit erzielbar ist. Gelänge dies aber, dann wäre der softwaregestützte Workflow zu hinterfragen, da der vollständige Ersatz des Planers durch Algorithmen möglich erschiene. Eine Voraussetzung für diese Automatisierung bestünde allerdings darin, dass Entscheidungen, die durch Algorithmen getroffen werden, im Unternehmen akzeptiert werden. Das gilt insbesondere in dem Fall, dass die getroffenen Entscheidungen maßgeblich die zukünftige Ausrichtung des Unternehmens bestimmen. Aus diesen Gründen erscheint eine Teilautomatisierung der Planung mittelfristig aussichtsreicher, weshalb der Workflow, wie in dieser Arbeit vorgeschlagen, weiterhin Relevanz besitzt. Fest steht jedoch, dass die Fortschritte künstlicher Intelligenz beobachtet und, wann immer sinnvoll, zur Verbesserung der Planung in Unternehmen genutzt werden sollten. 231 Anhang A Technische Dokumentation Die Kernalgorithmen zur Modellierung und Optimierung stellen einen wesentlichen wissenschaftlichen Beitrag der vorliegenden Arbeit dar. Implementiert wurden sie in der Software AURELIE, welche mehr als 60 000 Zeilen Programmcode umfasst. Selbst wenn man die Betrachtung auf die Kernalgorithmen beschränkt, entspricht dies noch mehr als 2000 Zeilen. Daher scheidet eine ungekürzte Wiedergabe der Algorithmen im Rahmen dieser Arbeit aus. Um eine verständliche und umfassende Beschreibung zu erreichen, werden sie stattdessen auf zwei Abstraktionsebenen wiedergegeben. Im Hauptteil wurden die Algorithmen zum Zweck der Einführung in natürlicher Sprache zusammengefasst. Darauf folgt nun jeweils eine ausführlichere Fassung in formalem, kommentiertem Pseudocode. Die hierzu verwendete Form des Pseudocodes ist unabhängig von der Implementierung in einer Programmiersprache. Im Unterschied zu den Kurzfassungen im Hauptteil wird eine mathematische Beschreibung mit Kommentaren gewählt, um den Ablauf eindeutig und verständlich wiederzugeben. Dabei wird auf Datenstrukturen verzichtet, die nur in bestimmten Programmiersprachen zur Verfügung stehen. Die jeweils genutzten Objekte und Variablen sowie Funktionen und Prozeduren werden jedem Algorithmus vorangestellt. Mit diesen Informationen ist es möglich, die Algorithmen in jeder geeigneten Programmiersprache wie z. B. C++, Python oder Java1 nachzuimplementieren. Bemerkung: Werden in den folgenden Funktionen und Prozeduren Objekte oder Matrizen als Argumente definiert, dann wird vorausgesetzt, dass nicht Werte, sondern Referenzen auf die Objekte bzw. Matrizen übergeben werden. Als Folge wirken sich Änderungen der Werte auch außerhalb der aufgerufenen Funktion bzw. Prozedur aus. A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Der erste Teil umfasst die Algorithmen zur Traversierung, Validierung und Transformation von Graphen und grafischen Modellen. Zur Einführung werden die Standardverfahren der Breitensuche und Tiefensuche wiedergegeben. Danach wird die nichtrekursive Implementierung der Tiefensuche für den vorliegenden Anwendungsfall weiterentwickelt. 1 Die Implementierung der Algorithmen in der Software AURELIE erfolgte auf Basis der Java Platform Standard Edition 7. Für Informationen siehe folgende Adresse (abgerufen am 11. Februar 2018): http://www.oracle.com/technetwork/java/javase/overview/. A1 Anhang A Technische Dokumentation A.1.1 Nichtrekursive Breitensuche von Knoten in einem Graphen G Die Breitensuche ist ein Standardverfahren zur Traversierung der Knoten V eines allgemeinen, in diesem Fall endlichen und gerichteten Graphen G. Ausgehend von einem gegebenen Knoten σ werden alle Knoten des Graphen besucht, die erreicht werden können, indem die jeweils anliegenden Kanten zu benachbarten Knoten weiterverfolgt werden. Charakteristisch für die Breitensuche ist, dass immer erst alle Knoten besucht werden, die vom jeweils betrachteten Knoten unmittelbar erreichbar sind. Wurden all diese Knoten besucht, setzt die Suche mit deren Nachfolgern fort. In der Implementierung wird hierzu eine nach FIFO verwaltete Warteschlange verwendet (siehe Abschnitt 4.1). Objekte und Variablen Objekt Warteschlange : {(v 1 , v 2 , . . . ) : v ∈ V } Zeilennummer 04 Linear verkettete Liste variabler Länge, welche nach FIFO verwaltet wird. Das heißt, zuerst hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element der Warteschlange ist ein Knoten v aus der Menge V des zu traversierenden Graphen G. Funktionen und Prozeduren Funktion ErmittleFarbe(v) : { weiß, schwarz } Zeilennummer 10 Liefert die Farbe des Knotens v aus der Menge V des zu traversierenden Graphen G zurück. Genau dann, wenn der Knoten v bereits entdeckt wurde, ist dessen Farbe schwarz, sonst weiß. Funktion ErmittleNächsteKnoten(G, v) : {{v 1 , v 2 , . . . } : v ∈ V } 09 Liefert die Menge aller Knoten v ′ zurück, welche unmittelbar erreicht werden, indem die ausgehenden Kanten des Knotens v im Graphen G weiterverfolgt werden. Prozedur LegeFarbeFest(v, weiß oder schwarz ) 03 Legt die Farbe des Knotens v aus der Menge V des zu traversierenden Graphen G fest, wodurch dieser als noch nicht entdeckt bzw. entdeckt markiert wird. Siehe Funktion ErmittleFarbe(v). Prozedur NichtrekursiveBreitensuche(G, σ) 01 Traversiert all jene Knoten V eines Graphen G, die ausgehend vom Knoten σ erreichbar sind, indem alle aufeinanderfolgenden Kanten beschritten werden. Die Suche wird fortgesetzt, solange Kanten zu Knoten v führen, die noch nicht entdeckt wurden. Unmittelbar erreichbare Knoten v werden dabei zuerst besucht. Als Ergebnis werden die besuchten Knoten v schwarz gefärbt. Funktion Warteschlange.EntferneErstes() : V 08 Entfernt das zuerst hinzugefügte Element der Warteschlange und liefert dieses zurück, wie definiert ein Knoten v des zu traversierenden Graphen G. Siehe Erläuterung zum Objekt Warteschlange. Prozedur Warteschlange.ErgänzeAlsLetztes(v) 06 Fügt den jeweils übergebenen Knoten v aus der Menge V des zu traversierenden Graphen G an das Ende der Warteschlange. Siehe Erläuterung zum Objekt Warteschlange. Funktion Warteschlange.IstLeer() : { falsch, wahr } 13 Liefert genau dann wahr zurück, wenn die Länge der Warteschlange gleich null ist, d. h., wenn diese einem leeren Tupel entspricht, sonst falsch. Siehe Erläuterung zum Objekt Warteschlange. Für mathematische Symbole siehe Abschnitt 4.1 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A4 dargestellt. A2 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation A.1.2 Rekursive Breitensuche von Knoten in einem Graphen G Die rekursive Implementierung der Breitensuche entspricht in Bezug auf Ablauf und Ergebnis der nichtrekursiven Variante (siehe Abschnitt A.1.1). Beide verwenden zur Verwaltung zu besuchender Knoten V eine Warteschlange, welche nach FIFO verwaltet wird. Der Grund ist, dass nur mit einer solchen Datenstruktur die charakteristische Eigenschaft der Breitensuche umsetzbar ist, immer erst alle unmittelbar erreichbaren Knoten zu besuchen. Folglich beschränkt sich der rekursive Ansatz darauf, die Warteschlange nicht in einer Schleife, sondern durch verschachtelten Aufruf einer Hilfsprozedur zu bearbeiten. Objekte und Variablen Objekt Warteschlange : {(v 1 , v 2 , . . . ) : v ∈ V } Zeilennummer 04 Siehe Abschnitt A.1.1. Funktionen und Prozeduren Funktion ErmittleFarbe(v) : { weiß, schwarz } Zeilennummer 11 Siehe Abschnitt A.1.1. Funktion ErmittleNächsteKnoten(G, v) : {{v 1 , v 2 , . . . } : v ∈ V } 10 Siehe Abschnitt A.1.1. Prozedur InnereRekursiveBreitensuche(G, Warteschlange) 07 Die Hilfsprozedur wird wiederholt aufgerufen, um den rekursiven Gedanken umzusetzen, wobei analog zur nichtrekursiven Implementierung eine Warteschlange verwendet wird. Prozedur LegeFarbeFest(v, weiß oder schwarz ) 03 Siehe Abschnitt A.1.1. Prozedur RekursiveBreitensuche(G, σ) 01 Der Ablauf und das Ergebnis der Hauptprozedur entsprechen der nichtrekursiven Implementierung. Siehe Prozedur NichtrekursiveBreitensuche(G, σ) in Abschnitt A.1.1. Funktion Warteschlange.EntferneErstes() : V 09 Siehe Abschnitt A.1.1. Prozedur Warteschlange.ErgänzeAlsLetztes(v) 06 Siehe Abschnitt A.1.1. Funktion Warteschlange.IstLeer() : { falsch, wahr } 14 Siehe Abschnitt A.1.1. Für mathematische Symbole siehe Abschnitt 4.1 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A4 dargestellt. A3 Anhang A Technische Dokumentation Eingabe : Graph G mit Knoten V und Kanten E, zuerst zu besuchender Knoten σ ∈ V Ausgabe : gefärbte Knoten V 01: 02: 03: Prozedur NichtrekursiveBreitensuche(G, σ) für alle v ∈ V tue LegeFarbeFest(v, weiß) /* initialisiere die Knoten V als nicht entdeckt */ 04: 05: 06: 07: 08: 09: 10: 11: 12: Warteschlange ← () /* initialisiere die Warteschlange, eine Folge von Knoten v LegeFarbeFest(σ, schwarz) /* markiere Knoten σ als entdeckt und . . . Warteschlange.ErgänzeAlsLetztes(σ) /* . . . besuche diesen zuallererst wiederhole v ← Warteschlange.EntferneErstes() /* betrachte alle nachfolgenden Knoten v ′ . . . für alle v ′ ∈ ErmittleNächsteKnoten(G, v) tue /* . . . des aktuellen Knotens v wenn ErmittleFarbe(v ′ ) = weiß dann /* wurde Knoten v ′ noch nicht entdeckt, . . . LegeFarbeFest(v ′, schwarz) /* . . . markiere diesen entsprechend und . . . Warteschlange.ErgänzeAlsLetztes(v ′ ) /* . . . besuche ihn im Anschluss */ */ */ */ */ 13: solange ¬Warteschlange.IstLeer() /* wiederhole, solange noch Knoten zu besuchen sind */ */ */ */ Algorithmus A.1.1: Nichtrekursive Breitensuche von Knoten in einem Graphen G. Eingabe : Graph G mit Knoten V und Kanten E, zuerst zu besuchender Knoten σ ∈ V Ausgabe : gefärbte Knoten V 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: Prozedur RekursiveBreitensuche(G, σ) für alle v ∈ V tue LegeFarbeFest(v, weiß) /* initialisiere die Knoten V als nicht entdeckt Warteschlange ← () /* initialisiere die Warteschlange, eine Folge von Knoten v LegeFarbeFest(σ, schwarz) /* markiere Knoten σ als entdeckt und . . . Warteschlange.ErgänzeAlsLetztes(σ) /* . . . besuche diesen zuallererst InnereRekursiveBreitensuche(G, Warteschlange) Prozedur InnereRekursiveBreitensuche(G, Warteschlange) v ← Warteschlange.EntferneErstes() /* betrachte alle nachfolgenden Knoten v ′ . . . für alle v ′ ∈ ErmittleNächsteKnoten(G, v) tue /* . . . des aktuellen Knotens v wenn ErmittleFarbe(v ′ ) = weiß dann /* wurde Knoten v ′ noch nicht entdeckt, . . . LegeFarbeFest(v ′, schwarz) /* . . . markiere diesen entsprechend und . . . Warteschlange.ErgänzeAlsLetztes(v ′ ) /* . . . besuche ihn im Anschluss wenn ¬Warteschlange.IstLeer() dann /* solange noch Knoten zu besuchen sind, . . . InnereRekursiveBreitensuche(G, Warteschlange) /* . . . wiederhole Algorithmus A.1.2: Rekursive Breitensuche von Knoten in einem Graphen G. A4 */ */ */ */ */ */ */ */ */ */ */ A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation A.1.3 Nichtrekursive Tiefensuche von Knoten in einem Graphen G Die Tiefensuche ist wie die Breitensuche ein Standardverfahren der Informatik, welches dazu dient, die Knoten V eines allgemeinen Graphen G zu traversieren (vgl. Abschnitt A.1.1). Deren Gemeinsamkeit ist, dass sie ausgehend von einem Knoten σ die Kanten miteinander verbundener Knoten verfolgen. Nachdem jedoch ein Knoten besucht wurde, der vom jeweils betrachteten Knoten unmittelbar erreichbar ist, werden im Gegensatz zur Breitensuche immer erst all dessen Nachfolger besucht. Danach wird mit den verbleibenden unmittelbar erreichbaren Knoten fortgesetzt. Die nichtrekursive Implementierung basiert auf einem Stapel, einer nach LIFO verwalteten Liste (siehe Abschnitt 4.1). Objekte und Variablen Objekt Stapel : {(v 1 , v 2 , . . . ) : v ∈ V } Zeilennummer 04 Linear verkettete Liste variabler Länge, welche nach LIFO verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element des Stapels ist ein Knoten v aus der Menge V des zu traversierenden Graphen G. Funktionen und Prozeduren Funktion ErmittleFarbe(v) : { weiß, schwarz } Zeilennummer 08 Siehe Abschnitt A.1.1. Funktion ErmittleNächsteKnoten(G, v) : {{v 1 , v 2 , . . . } : v ∈ V } 10 Siehe Abschnitt A.1.1. Prozedur LegeFarbeFest(v, weiß oder schwarz ) 03 Siehe Abschnitt A.1.1. Prozedur NichtrekursiveTiefensuche(G, σ) 01 Analog zur Breitensuche in Abschnitt A.1.1 und A.1.2 traversiert die Prozedur all jene Knoten V eines Graphen G, die ausgehend vom Knoten σ erreichbar sind, indem alle aufeinanderfolgenden Kanten beschritten werden. Solange Kanten zu Knoten v führen, die noch nicht entdeckt wurden, wird die Suche fortgesetzt. Im Unterschied zur Breitensuche werden immer erst alle nachfolgenden Knoten v besucht. Wie zuvor werden die besuchten Knoten v schwarz gefärbt. Funktion Stapel.EntferneLetztes() : V 07 Entfernt das zuletzt hinzugefügte Element des Stapels und liefert dieses zurück, wie definiert ein Knoten v des zu traversierenden Graphen G. Siehe Erläuterung zum Objekt Stapel. Prozedur Stapel.ErgänzeAlsLetztes(v) 05 Fügt den jeweils übergebenen Knoten v aus der Menge V des zu traversierenden Graphen G an das Ende des Stapels. Siehe Erläuterung zum Objekt Stapel. Funktion Stapel.IstLeer() : { falsch, wahr } 12 Liefert genau dann wahr zurück, wenn die Länge des Stapels gleich null ist, d. h., wenn dieser einem leeren Tupel entspricht, sonst falsch. Siehe Erläuterung zum Objekt Stapel. Für mathematische Symbole siehe Abschnitt 4.1 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A7 dargestellt. A5 Anhang A Technische Dokumentation A.1.4 Rekursive Tiefensuche von Knoten in einem Graphen G Die rekursive Implementierung der Tiefensuche entspricht der nichtrekursiven Variante dahingehend, dass ausgehend von einem Knoten σ eines Graphen G immer erst alle Nachfolger besucht werden. Jedoch werden die Nachfolger eines Knotens in der umgekehrten Reihenfolge besucht. Durch verschachtelten Aufruf einer Hilfsprozedur kann auf die Verwendung eines Stapels verzichtet werden, indem der nächste Knoten als Argument übergeben wird (vgl. Abschnitt A.1.3). Der Ablauf unterscheidet sich außerdem darin, dass in der nichtrekursiven Implementierung erst nach Entfernen eines Knotens vom Stapel geprüft wird, ob dieser bereits entdeckt wurde. In der rekursiven Implementierung erfolgt die Prüfung noch vor dem Aufruf der Hilfsprozedur und der Übergabe als Argument. Funktionen und Prozeduren Funktion ErmittleFarbe(v) : { weiß, schwarz } Zeilennummer 8 Siehe Abschnitt A.1.1. Funktion ErmittleNächsteKnoten(G, v) : {{v 1 , v 2 , . . . } : v ∈ V } 7 Siehe Abschnitt A.1.1. Prozedur InnereRekursiveTiefensuche(G, v) 4 Die Hilfsprozedur wird wiederholt aufgerufen, um den rekursiven Gedanken umzusetzen. Im Unterschied zur nichtrekursiven Implementierung ist die Verwendung eines Stapels nicht nötig. Wird nur dann aufgerufen, wenn der Knoten v noch nicht entdeckt wurde, wogegen die Prüfung in der nichtrekursiven Implementierung erst nach dem Entfernen vom Stapel erfolgt. Prozedur LegeFarbeFest(v, weiß oder schwarz ) 3 Siehe Abschnitt A.1.1. Prozedur RekursiveTiefensuche(G, σ) 1 Der grundsätzliche Ablauf und das Ergebnis der Hauptprozedur entsprechen der nichtrekursiven Implementierung, wobei die genannten Unterschiede bezüglich der Reihenfolge und der Prüfung von Knoten gelten. Siehe Prozedur NichtrekursiveTiefensuche(G, σ) in Abschnitt A.1.3. Für mathematische Symbole siehe Abschnitt 4.1 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A7 dargestellt. A6 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Eingabe : Graph G mit Knoten V und Kanten E, zuerst zu besuchender Knoten σ ∈ V Ausgabe : gefärbte Knoten V 01: 02: 03: Prozedur NichtrekursiveTiefensuche(G, σ) für alle v ∈ V tue LegeFarbeFest(v, weiß) /* initialisiere die Knoten V als nicht entdeckt */ 04: 05: 06: 07: 08: 09: 10: 11: Stapel ← () /* initialisiere den Stapel, in diesem Fall eine Folge von Knoten v Stapel.ErgänzeAlsLetztes(σ) /* besuche zuallererst Knoten σ wiederhole v ← Stapel.EntferneLetztes() /* betrachte den aktuellen Knoten v wenn ErmittleFarbe(v) = weiß dann /* wurde Knoten v noch nicht entdeckt, . . . LegeFarbeFest(v, schwarz) /* . . . markiere diesen entsprechend und . . . für alle v ′ ∈ ErmittleNächsteKnoten(G, v) tue /* . . . besuche als Nächstes . . . Stapel.ErgänzeAlsLetztes(v ′ ) /* . . . alle nachfolgenden Knoten v ′ */ */ */ */ */ 12: solange ¬Stapel.IstLeer() /* wiederhole, solange noch Knoten zu besuchen sind */ */ */ Algorithmus A.1.3: Nichtrekursive Tiefensuche von Knoten in einem Graphen G. Eingabe : Graph G mit Knoten V und Kanten E, zuerst zu besuchender Knoten σ ∈ V Ausgabe : gefärbte Knoten V 1: 2: 3: 4: 5: 6: 7: 8: 9: Prozedur RekursiveTiefensuche(G, σ) für alle v ∈ V tue LegeFarbeFest(v, weiß) /* initialisiere die Knoten V als nicht entdeckt InnereRekursiveTiefensuche(G, σ) /* besuche zuallererst Knoten σ Prozedur InnereRekursiveTiefensuche(G, v) LegeFarbeFest(v, schwarz) /* markiere den aktuellen Knoten v als entdeckt für alle v ′ ∈ ErmittleNächsteKnoten(G, v) tue /* betrachte alle nachfolgenden Knoten v ′ wenn ErmittleFarbe(v ′ ) = weiß dann /* wurde Knoten v ′ noch nicht entdeckt, . . . InnereRekursiveTiefensuche(G, v ′ ) /* . . . besuche diesen als Nächstes */ */ */ */ */ */ Algorithmus A.1.4: Rekursive Tiefensuche von Knoten in einem Graphen G. A7 Anhang A Technische Dokumentation A.1.5 Traversierung der Kanten eines grafischen Modells {G WS,b } Der Algorithmus wendet das Konzept der nichtrekursiven Tiefensuche auf ein grafisches Modell {G WS,b } an, das aus einer endlichen Zahl von Wertstromgraphen G WS,b zusammengesetzt ist (vgl. Abschnitt A.1.3). Beginnend bei der Quelle σb jedes Wertstromgraphen G WS,b werden nacheinander alle Kanten E WS,b beschritten, die jeweils erreicht werden können, wenn ein Knoten v der Menge V WS,b an einem Eingang i besucht wird. Wie in der entsprechenden Implementierung des Standardverfahrens wird hierzu ein Stapel verwendet. Als Variation handelt es sich bei den Elementen des Stapels jedoch nicht um Knoten, sondern um die als Nächstes zu besuchenden Kanten e (siehe Abschnitt 4.3). Objekte und Variablen Zeilennummer Objekt Stapel : {(e 1 , e 2 , . . . ) : e ∈ E WS,b } 07 Linear verkettete Liste variabler Länge, welche nach LIFO verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element des Stapels ist eine Kante e aus der Menge E WS,b des aktuell zu traversierenden Wertstromgraphen G WS,b . Funktionen und Prozeduren Zeilennummer Funktion ErmittleAusgangszahl(G WS,b , v) : N0 08 Liefert die Zahl der Ausgänge des Knotens v im Wertstromgraphen G WS,b zurück, insbesondere genutzt für alternative und selektive Flusspunkte der Mengen DAL,b bzw D SL,b . 15 Funktion ErmittleFarbe(b, e ) : { weiß, schwarz } Liefert die Farbe der Kante e aus der Menge E WS,b des aktuellen Wertstromgraphen G WS,b zurück. Genau dann, wenn die Kante e bereits entdeckt wurde, ist deren Farbe schwarz, sonst weiß. Funktion ErmittleNächstenEingangsindex(G WS,b , v, j ) : N ′ 10 ′ Liefert den Eingang i des nachfolgenden Knotens v zurück, welcher unmittelbar erreicht wird, indem die Kante am Ausgang j des Knotens v im Wertstromgraphen G WS,b weiterverfolgt wird. Funktion ErmittleNächstenKnoten(G WS,b , v, j ) : V WS,b 09 Liefert den nachfolgenden Knoten v ′ zurück, welcher unmittelbar erreicht wird, indem die Kante am Ausgang j des Knotens v im Wertstromgraphen G WS,b weiterverfolgt wird. Prozedur LegeFarbeFest(b, e, weiß oder schwarz ) 04 Legt die Farbe der Kante e aus der Menge E WS,b des aktuellen Wertstromgraphen G WS,b fest, wodurch diese als noch nicht entdeckt bzw. entdeckt markiert wird. Siehe Funktion ErmittleFarbe(b, e ). Funktion Stapel.EntferneLetztes() : E WS,b 14 Entfernt das zuletzt hinzugefügte Element des Stapels und liefert dieses zurück, wie definiert eine Kante e des aktuell zu traversierenden Wertstromgraphen G WS,b . Siehe Erläuterung zum Objekt Stapel. Prozedur Stapel.ErgänzeAlsLetztes(e) 12 Fügt die übergebene Kante e aus der Menge E WS,b des aktuell zu traversierenden Wertstromgraphen G WS,b an das Ende des Stapels. Siehe Erläuterung zum Objekt Stapel. Funktion Stapel.IstLeer() : { falsch, wahr } 13 Siehe Abschnitt A.1.3. Prozedur TraversiereKantenAusFlusspunkt(G WS,b , Stapel, v) 21 Besucht den Eingang des Knotens v, eines alternativen oder selektiven Flusspunkts aus der Menge DAL,b bzw. D SL,b im Wertstromgraphen G WS,b des Produkts b. Fügt dem Stapel alle Kanten e ′ hinzu, die jeweils an den Ausgängen j des Flusspunkts anliegen, um diese als Nächstes zu besuchen. A8 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Prozedur TraversiereKantenAusRessource(G WS,b , Stapel, v, i ) 19 Besucht den Eingang i des Knotens v, einer Ressource aus der Menge R im Wertstromgraphen G WS,b des Produkts b. Liegt am gegenüberliegenden Ausgang j der Ressource eine Kante e ′ an, dann wird diese dem Stapel hinzugefügt, um sie als Nächstes zu besuchen. Prozedur TraversiereKantenVonGrafischemModell({G WS,b }) 01 Die übergeordnete Prozedur traversiert alle Kanten E WS,b eines gegebenen grafischen Modells {G WS,b } und legt deren Farbe fest. Die Suche beginnt jeweils in den Wertstromgraphen G WS,b der Produkte b an der Quelle σb . Siehe Prozedur TraversiereKantenVonWSGraphen(G WS,b , b ). Prozedur TraversiereKantenVonWSGraphen(G WS,b , b ) 05 Traversiert all jene Kanten E WS,b im Wertstromgraphen G WS,b des Produkts b, die ausgehend von der Quelle σb erreichbar sind, indem alle aufeinanderfolgenden Kanten bis zur Senke τb beschritten werden. Als Ergebnis werden die Kanten e, die in dem Zuge besucht wurden, schwarz gefärbt. Für mathematische Symbole siehe Abschnitt 4.3 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A10 dargestellt. A9 Anhang A Technische Dokumentation Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b mit Knoten V WS,b und Kanten E WS,b für alle Produkte b ∈ {1, . . . , n} Ausgabe : gefärbte Kanten E WS,b 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: Prozedur TraversiereKantenVonGrafischemModell({G WS,b }) für b ← 1 bis n tue /* initialisiere die Kanten E WS,b . . . für alle e ∈ E WS,b tue /* . . . in den Wertstromgraphen G WS,b aller Produkte b . . . LegeFarbeFest(b, e, weiß) /* . . . als nicht entdeckt */ */ */ TraversiereKantenVonWSGraphen(G WS,b , b ) Prozedur TraversiereKantenVonWSGraphen(G WS,b , b ) Stapel ← () /* initialisiere den Stapel, in diesem Fall eine Folge von Kanten e wenn ErmittleAusgangszahl(G WS,b , σb ) 0 dann /* wenn an der Quelle σb eine Kante anliegt, . . . v ′ ← ErmittleNächstenKnoten(G WS,b , σb , 1) /* . . . folge der Kante zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , σb , 1) /* . . . und Eingang i ′ e ′ ← (σb , 1, v ′, i ′ ) /* besuche zuallererst . . . Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . diese Kante e ′ solange ¬Stapel.IstLeer() tue /* solange noch Kanten zu besuchen sind, . . . e ← Stapel.EntferneLetztes() /* . . . betrachte die aktuelle Kante e wenn ErmittleFarbe(b, e ) = weiß dann /* wurde Kante e noch nicht entdeckt, . . . LegeFarbeFest(b, e, schwarz) /* . . . markiere diese entsprechend (v, j, v ′, i ′ ) ← e /* um nachfolgende Kanten zu besuchen, unterscheide, . . . wenn v ′ ∈ R dann /* . . . ob Kante e zu einer Ressource oder . . . TraversiereKantenAusRessource(G WS,b , Stapel, v ′, i ′ ) sonst wenn v ′ ∈ DAL,b ∨ v ′ ∈ D SL,b dann /* . . . zu einem Flusspunkt führt TraversiereKantenAusFlusspunkt(G WS,b , Stapel, v ′ ) */ */ */ */ */ */ */ */ */ */ */ */ */ 22: 23: 24: 25: 26: 27: 28: Prozedur TraversiereKantenAusRessource(G WS,b , Stapel, v, i ) j ← i /* betrachte nur den Ausgang j, welcher dem Eingang i gegenüberliegt wenn j ErmittleAusgangszahl(G WS,b , v) dann /* wenn an Ausgang j eine Kante anliegt, . . . v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* . . . folge der Kante zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . und Eingang i ′ e ′ ← (v, j, v ′, i ′ ) /* besuche als Nächstes . . . Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . diese Kante e ′ 29: 30: 31: 32: 33: 34: Prozedur TraversiereKantenAusFlusspunkt(G WS,b , Stapel, v) für j ← 1 bis ErmittleAusgangszahl(G WS,b , v) tue /* folge den Kanten an allen Ausgängen j . . . */ v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* . . . jeweils zu den Knoten v ′ und . . . */ */ i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . den Eingängen i ′ e ′ ← (v, j, v ′, i ′ ) /* besuche als Nächstes . . . */ Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . all diese Kanten e ′ */ Algorithmus A.1.5: Traversierung der Kanten eines grafischen Modells {G WS,b }. A10 */ */ */ */ */ */ A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation A.1.6 Validierung eines grafischen Modells {G WS,b } Nachdem der Anwender ein grafisches Modell {G WS,b } erstellt hat, muss geprüft werden, ob dieses gültig ist und weiterverarbeitet werden kann. Diesbezüglich gelten folgende vier Bedingungen (siehe Abschnitt 4.3): (1) An der Quelle σb eines Wertstromgraphen G WS,b muss eine Kante anliegen; (2) die Kanten dürfen keinen unendlichen Zyklus bilden; (3) jede Kante muss zur Senke τb weiterverfolgt werden können; (4) jede Kante muss von der Quelle σb erreichbar sein. Im Ablauf des Algorithmus werden beginnend bei den Quellen σb die Kanten des grafischen Modells {G WS,b } traversiert. Analog zum zuvor eingeführten Algorithmus wird zu diesem Zweck ein Stapel verwendet (vgl. Abschnitt A.1.5). Darüber hinaus wird der Weg von der Quelle σb zur aktuellen Kante in einem Kantenzug erfasst. Hinweis: Der folgende Algorithmus ist gegenüber der Implementierung in der Version 1.2 von AURELIE, welche bei der Bosch Rexroth AG eingesetzt wird, optimiert. Objekte und Variablen Variable ausgangszahl : N0 Zeilennummer 51 Natürliche Zahl größer als oder gleich null, welche die Zahl der Ausgänge eines alternativen oder selektiven Flusspunkts v aus der Menge DAL,b bzw. D SL,b im Wertstromgraphen G WS,b angibt. Objekt Kantenzug : {(e 1 , e 2 , . . . ) : e ∈ E WS,b } 08 Linear verkettete Liste variabler Länge, welche nach LIFO verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element des Kantenzugs ist eine Kante e aus der Menge E WS,b des aktuell zu validierenden Wertstromgraphen G WS,b . Die Folge der Kanten entspricht dem Weg von der Quelle σb zur Kante vom Ende des Stapels. Objekt MengeUnbesuchterKanten : {{e 1 , e 2 , . . . } : e ∈ E WS,b } 09 Menge, d. h. unsortierte Datenstruktur, mit variabler Zahl von Elementen. Jedes dieser Elemente ist eine Kante e aus der Menge E WS,b des aktuell zu validierenden Wertstromgraphen G WS,b . Eine solche Kante e ist genau dann in der Menge enthalten, wenn sie zu diesem Zeitpunkt noch nicht besucht wurde (vgl. Färbung von Kanten im vorherigen Algorithmus in Abschnitt A.1.5). Objekt Stapel : {(e 1 , e 2 , . . . ) : e ∈ E WS,b } 07 Siehe Abschnitt A.1.5. Funktionen und Prozeduren Funktion ErmittleAusgangszahl(G WS,b , v) : N0 Zeilennummer 10 Siehe Abschnitt A.1.5. Funktion ErmittleNächstenEingangsindex(G WS,b , v, j ) : N 13 Siehe Abschnitt A.1.5. Funktion ErmittleNächstenKnoten(G WS,b , v, j ) : V WS,b 12 Siehe Abschnitt A.1.5. Funktion Kantenzug.EntferneLetztes() : E WS,b 23 Entfernt das zuletzt hinzugefügte Element des Kantenzugs und liefert dieses zurück, wie definiert eine Kante e des aktuellen Wertstromgraphen G WS,b . Siehe Erläuterung zum Objekt Kantenzug. Prozedur Kantenzug.ErgänzeAlsLetztes(e) 30 Fügt die übergebene Kante e aus der Menge E WS,b des aktuell zu validierenden Wertstromgraphen G WS,b an das Ende des Kantenzugs. Siehe Erläuterung zum Objekt Kantenzug. A11 Anhang A Technische Dokumentation Funktion Kantenzug.ErmittleLetztes() : E WS,b 20 Liefert das zuletzt hinzugefügte Element des Kantenzugs zurück, wie definiert eine Kante e des aktuellen Wertstromgraphen G WS,b , ohne dieses zu entfernen. Siehe Erläuterung zum Objekt Kantenzug. Funktion Kantenzug.IstLeer() : { falsch, wahr } 19 Liefert genau dann wahr zurück, wenn die Länge des Kantenzugs gleich null ist, d. h., wenn dieser einem leeren Tupel entspricht, sonst falsch. Siehe Erläuterung zum Objekt Kantenzug. Funktion MengeUnbesuchterKanten.IstLeer() : { falsch, wahr } 38 Liefert genau dann wahr zurück, wenn die Kardinalität der obigen Menge gleich null ist, d. h., wenn diese der leeren Menge entspricht, sonst falsch. Siehe Erläuterung zum entsprechenden Objekt. Funktion Stapel.EntferneLetztes() : E WS,b 17 Siehe Abschnitt A.1.5. Prozedur Stapel.ErgänzeAlsLetztes(e) 15 Siehe Abschnitt A.1.5. Funktion Stapel.IstLeer() : { falsch, wahr } 37 Siehe Abschnitt A.1.3. Funktion ValidiereGrafischesModell({G WS,b }) : { falsch, wahr } 01 Die übergeordnete Funktion validiert ein gegebenes grafisches Modell {G WS,b }, indem sie prüft, ob die Wertstromgraphen G WS,b aller Produkte b die definierten Bedingungen erfüllen. Liefert genau dann wahr zurück, wenn dies auf jeden einzelnen Wertstromgraphen G WS,b zutrifft, sonst falsch. Funktion ValidiereKantenAusFlusspunkt(G WS,b , Stapel, v) : { falsch, wahr } 35 Besucht den Eingang des Knotens v, eines alternativen oder selektiven Flusspunkts aus der Menge DAL,b bzw. D SL,b im Wertstromgraphen G WS,b des Produkts b. Fügt dem Stapel alle Kanten e ′ hinzu, die jeweils an den Ausgängen j des Flusspunkts anliegen, um mit diesen die Validierung fortzusetzen. Liefert genau dann wahr zurück, wenn mindestens eine solche Kante e ′ existiert, sonst falsch. Funktion ValidiereKantenAusRessource(G WS,b , Stapel, v, i ) : { falsch, wahr } 32 Besucht den Eingang i des Knotens v, einer Ressource aus der Menge R im Wertstromgraphen G WS,b des Produkts b. Wenn am gegenüberliegenden Ausgang j der Ressource eine Kante e ′ anliegt, wird diese dem Stapel hinzugefügt, um mit ihr die Validierung fortzusetzen. Liefert genau dann wahr zurück, wenn eine solche Kante e ′ an Ausgang j existiert, sonst falsch. Funktion ValidiereWSGraphen(G WS,b , b ) : { falsch, wahr } 03 Traversiert den Wertstromgraphen G WS,b des Produkts b und prüft, ob dieser die definierten Bedingungen erfüllt. Die Suche beginnt jeweils an der Quelle σb und endet, wenn alle aufeinanderfolgenden Kanten besucht wurden oder in nur einem einzigen Fall eine der Bedingungen nicht erfüllt ist. Liefert genau dann wahr zurück, wenn kein solcher Fall existiert, sonst falsch. Für mathematische Symbole siehe Abschnitt 4.3 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A13–A14 dargestellt. A12 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b mit Knoten V WS,b und Kanten E WS,b für alle Produkte b ∈ {1, . . . , n} Ausgabe : wahr, wenn das grafische Modell {G WS,b } gültig ist, sonst falsch 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: Funktion ValidiereGrafischesModell({G WS,b }) für b ← 1 bis n tue /* wenn mindestens ein Wertstromgraph G WS,b . . . wenn ¬ValidiereWSGraphen(G WS,b , b ) dann /* . . . eines Produkts b ungültig ist, . . . liefere falsch zurück /* . . . ist das grafische Modell {G WS,b } ungültig */ */ */ liefere wahr zurück Funktion ValidiereWSGraphen(G WS,b , b ) Stapel ← () /* initialisiere den Stapel, in diesem Fall eine Folge von Kanten e, und . . . Kantenzug ← () /* . . . den Kantenzug, eine ebensolche Folge MengeUnbesuchterKanten ← E WS,b /* initialisiere die Kanten E WS,b als nicht besucht wenn ErmittleAusgangszahl(G WS,b , σb ) = 0 dann /* liegt an der Quelle σb keine Kante an, . . . liefere falsch zurück /* . . . ist der Wertstromgraph G WS,b ungültig */ */ */ */ */ v ′ ← ErmittleNächstenKnoten(G WS,b , σb , 1) /* folge der Kante an der Quelle σb zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , σb , 1) /* . . . und Eingang i ′ e ′ ← (σb , 1, v ′, i ′ ) /* besuche zuallererst . . . Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . diese Kante e ′ wiederhole e 2 ← Stapel.EntferneLetztes() /* betrachte die aktuelle Kante e 2 , . . . (v 2 , j 2 , v 2′ , i 2′ ) ← e 2 /* . . . welche von einem Knoten v 2 ausgeht wenn ¬Kantenzug.IstLeer() dann /* wenn der Kantenzug nicht leer ist, . . . e 1 ← Kantenzug.ErmittleLetztes() /* . . . betrachte dessen letzte Kante e 1 , . . . (v 1 , j 1 , v 1′ , i 1′ ) ← e 1 /* . . . welche zu einem Knoten v 1′ führt solange v 1′ v 2 tue /* solange Kante e 2 nicht unmittelbar an Kante e 1 anknüpft, . . . Kantenzug.EntferneLetztes() /* . . . reduziere den Kantenzug und . . . e 1 ← Kantenzug.ErmittleLetztes() /* . . . betrachte wieder die letzte Kante e 1 . . . (v 1 , j 1 , v 1′ , i 1′ ) ← e 1 /* . . . zu einem Knoten v 1′ */ */ */ */ */ */ */ */ */ */ */ */ */ 26: 27: wenn e 2 ∈ Kantenzug dann /* wenn Kante e 2 bereits im Kantenzug enthalten ist, . . . liefere falsch zurück /* . . . ist der Wertstromgraph G WS,b ungültig */ */ 28: 29: 30: 31: 32: 33: wenn e 2 ∈ MengeUnbesuchterKanten dann /* wurde Kante e 2 noch nicht besucht, . . . MengeUnbesuchterKanten ← MengeUnbesuchterKanten \ {e 2 } /* . . . markiere diese . . . Kantenzug.ErgänzeAlsLetztes(e 2 ) /* . . . und füge sie ans Ende des Kantenzugs wenn v 2′ ∈ R dann /* unterscheide danach, ob Kante e 2 zu einer Ressource oder . . . wenn ¬ValidiereKantenAusRessource(G WS,b , Stapel, v 2′ , i 2′ ) dann liefere falsch zurück */ */ */ */ 34: 35: 36: sonst wenn v 2′ ∈ DAL,b ∨ v 2′ ∈ D SL,b dann /* . . . zu einem Flusspunkt führt wenn ¬ValidiereKantenAusFlusspunkt(G WS,b , Stapel, v 2′ ) dann liefere falsch zurück */ 37: 38: 39: solange ¬Stapel.IstLeer() /* wiederhole, solange noch Kanten zu besuchen sind */ wenn ¬MengeUnbesuchterKanten.IstLeer() dann /* wenn nicht alle Kanten besucht wurden, . . . */ liefere falsch zurück /* . . . ist der Wertstromgraph G WS,b ungültig */ 40: liefere wahr zurück (nächster Teil auf Seite A14) Algorithmus A.1.6(a): Validierung eines grafischen Modells {G WS,b } (Teil 1 von 2). A13 Anhang A Technische Dokumentation (vorheriger Teil auf Seite A13) 41: 42: 43: 44: Funktion ValidiereKantenAusRessource(G WS,b , Stapel, v, i ) j ← i /* betrachte nur den Ausgang j, welcher dem Eingang i gegenüberliegt wenn j ErmittleAusgangszahl(G WS,b , v) dann /* wenn an Ausgang j keine Kante anliegt, . . . liefere falsch zurück /* . . . ist der Wertstromgraph G WS,b ungültig 45: 46: 47: 48: 49: v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* folge der Kante an Ausgang j zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . und Eingang i ′ e ′ ← (v, j, v ′, i ′ ) /* besuche als Nächstes . . . Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . diese Kante e ′ liefere wahr zurück 50: 51: 52: 53: Funktion ValidiereKantenAusFlusspunkt(G WS,b , Stapel, v) ausgangszahl ← ErmittleAusgangszahl(G WS,b , v) wenn ausgangszahl = 0 dann /* wenn an keinem Ausgang eine Kante anliegt, . . . liefere falsch zurück /* . . . ist der Wertstromgraph G WS,b ungültig 54: 55: 56: 57: 58: für j ← 1 bis ausgangszahl tue /* folge den Kanten an allen Ausgängen j . . . v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* . . . jeweils zu den Knoten v ′ und . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . den Eingängen i ′ e ′ ← (v, j, v ′, i ′ ) /* besuche als Nächstes . . . Stapel.ErgänzeAlsLetztes(e ′ ) /* . . . all diese Kanten e ′ 59: liefere wahr zurück Algorithmus A.1.6(b): Validierung eines grafischen Modells {G WS,b } (Teil 2 von 2). A14 */ */ */ */ */ */ */ */ */ */ */ */ */ */ A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation A.1.7 Traversierung der Knoten eines grafischen Modells {G WS,b } Der nachfolgende Algorithmus entspricht bezüglich Ablauf und Ergebnis dem vorangegangenen Algorithmus zur Traversierung der Kanten eines grafischen Modells {G WS,b } (vgl. Abschnitt A.1.5). In beiden Fällen wird eine nichtrekursive Tiefensuche angewandt, um ausgehend von den Quellen σb alle erreichbaren Kanten E WS,b zu beschreiten. Im vorliegenden Fall wird der Stapel jedoch nicht genutzt, um die nächsten Kanten zu verwalten, sondern die als Nächstes zu besuchenden Knoten V WS,b . Da für die Traversierung entscheidend ist, an welchem Eingang ein Knoten besucht wird, sind die Elemente des Stapels Paare aus je einem Knoten v und einem Eingang i (siehe Abschnitt 4.4). Objekte und Variablen Objekt Stapel : {((v 1 , i 1 ), (v 2 , i 2 ), . . . ) : v ∈ V WS,b , i ∈ N } Zeilennummer 08 Linear verkettete Liste variabler Länge, welche nach LIFO verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element des Stapels ist ein Paar (v, i ) aus einem Knoten v der Menge V WS,b und einem Eingang i zur Unterscheidung jeweils eingehender Kanten im aktuell zu traversierenden Wertstromgraphen G WS,b . Funktionen und Prozeduren Funktion ErmittleAusgangszahl(G WS,b , v) : N0 Zeilennummer 09 Siehe Abschnitt A.1.5. Funktion ErmittleEingangszahl(G WS,b , v) : N0 04 Liefert die Zahl der Eingänge i des Knotens v im Wertstromgraphen G WS,b zurück, insbesondere genutzt zur Initialisierung der Farben aller Eingänge i vor Beginn der Traversierung. Funktion ErmittleFarbe(b, v, i ) : { weiß, schwarz } 15 Liefert die Farbe des Eingangs i von Knoten v im aktuellen Wertstromgraphen G WS,b zurück. Genau dann, wenn der Eingang i bereits entdeckt wurde, ist dessen Farbe schwarz, sonst weiß. Funktion ErmittleNächstenEingangsindex(G WS,b , v, j ) : N 11 Siehe Abschnitt A.1.5. Funktion ErmittleNächstenKnoten(G WS,b , v, j ) : V WS,b 10 Siehe Abschnitt A.1.5. Prozedur LegeFarbeFest(b, v, i, weiß oder schwarz ) 05 Legt die Farbe des Eingangs i von Knoten v im aktuellen Wertstromgraphen G WS,b fest, wodurch dieser als noch nicht entdeckt bzw. entdeckt markiert wird. Siehe Funktion ErmittleFarbe(b, v, i ). Funktion Stapel.EntferneLetztes() : {(v, i ) : v ∈ V WS,b , i ∈ N } 14 Entfernt das zuletzt hinzugefügte Element des Stapels und liefert dieses zurück, wie definiert ein Paar (v, i ) aus einem Knoten v und einem Eingang i. Siehe Erläuterung zum Objekt Stapel. Prozedur Stapel.ErgänzeAlsLetztes((v, i )) 12 Fügt das jeweils übergebene Paar (v, i ) aus dem Knoten v und dem Eingang i im aktuell zu traversierenden Wertstromgraphen G WS,b an das Ende des Stapels. Siehe Erläuterung zum Objekt Stapel. Funktion Stapel.IstLeer() : { falsch, wahr } 13 Siehe Abschnitt A.1.3. A15 Anhang A Technische Dokumentation Prozedur TraversiereFlusspunkt(G WS,b , Stapel, v) 20 Besucht den Eingang des Knotens v, eines alternativen oder selektiven Flusspunkts aus der Menge DAL,b bzw. D SL,b im Wertstromgraphen G WS,b des Produkts b. Fügt dem Stapel alle Eingänge i ′ von Knoten v ′ hinzu, die nach den Ausgängen j folgen, um diese als Nächstes zu besuchen. Prozedur TraversiereKnotenVonGrafischemModell({G WS,b }) 01 Die übergeordnete Prozedur traversiert alle Eingänge i von Knoten V WS,b eines gegebenen grafischen Modells {G WS,b } und legt deren Farbe fest, jeweils beginnend in den Wertstromgraphen G WS,b der Produkte b an der Quelle σb . Siehe Prozedur TraversiereKnotenVonWSGraphen(G WS,b , b ). Prozedur TraversiereKnotenVonWSGraphen(G WS,b , b ) 06 Traversiert all jene Eingänge i von Knoten V WS,b im Wertstromgraphen G WS,b des Produkts b, die ausgehend von der Quelle σb erreichbar sind, indem alle aufeinanderfolgenden Kanten bis zur Senke τb beschritten werden. Als Ergebnis werden die besuchten Eingänge i schwarz gefärbt. Prozedur TraversiereRessource(G WS,b , Stapel, v, i ) 18 Besucht den Eingang i des Knotens v, einer Ressource aus der Menge R im Wertstromgraphen G WS,b des Produkts b. Liegt am gegenüberliegenden Ausgang j eine Kante an, dann wird dem Stapel der Eingang i ′ des folgenden Knotens v ′ hinzugefügt, um diesen als Nächstes zu besuchen. Für mathematische Symbole siehe Abschnitt 4.4 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A17 dargestellt. A16 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Eingabe : grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b mit Knoten V WS,b und Kanten E WS,b für alle Produkte b ∈ {1, . . . , n} Ausgabe : gefärbte Eingänge i aller Knoten V WS,b außer den Quellen σb 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: Prozedur TraversiereKnotenVonGrafischemModell({G WS,b }) für b ← 1 bis n tue /* initialisiere die Eingänge i . . . für alle v ∈ V WS,b tue /* . . . der Knoten V WS,b in den Wertstromgraphen G WS,b . . . für i ← 1 bis ErmittleEingangszahl(G WS,b , v) tue /* . . . aller Produkte b . . . LegeFarbeFest(b, v, i, weiß) /* . . . als nicht entdeckt */ */ */ */ TraversiereKnotenVonWSGraphen(G WS,b , b ) Prozedur TraversiereKnotenVonWSGraphen(G WS,b , b ) Stapel ← () /* initialisiere den Stapel, in diesem Fall eine Folge von Paaren (v, i ) wenn ErmittleAusgangszahl(G WS,b , σb ) 0 dann /* wenn an der Quelle σb eine Kante anliegt, . . . v ′ ← ErmittleNächstenKnoten(G WS,b , σb , 1) /* . . . folge der Kante zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , σb , 1) /* . . . und dem zugehörigen Eingang i ′ Stapel.ErgänzeAlsLetztes((v ′, i ′ )) /* besuche zuallererst diesen Eingang i ′ solange ¬Stapel.IstLeer() tue /* solange Eingänge zu besuchen sind, . . . (v, i ) ← Stapel.EntferneLetztes() /* . . . betrachte den aktuellen Knoten v und Eingang i wenn ErmittleFarbe(b, v, i ) = weiß dann /* wurde Eingang i noch nicht entdeckt, . . . LegeFarbeFest(b, v, i, schwarz) /* . . . markiere diesen entsprechend wenn v ∈ R dann /* unterscheide, ob es sich bei Knoten v um eine Ressource oder . . . TraversiereRessource(G WS,b , Stapel, v, i ) sonst wenn v ∈ DAL,b ∨ v ∈ D SL,b dann /* . . . um einen Flusspunkt handelt TraversiereFlusspunkt(G WS,b , Stapel, v) */ */ */ */ */ */ */ */ */ */ */ 21: 22: 23: 24: 25: 26: Prozedur TraversiereRessource(G WS,b , Stapel, v, i ) j ← i /* betrachte nur den Ausgang j, welcher dem Eingang i gegenüberliegt wenn j ErmittleAusgangszahl(G WS,b , v) dann /* wenn an Ausgang j eine Kante anliegt, . . . v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* . . . folge der Kante zu Knoten v ′ . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . und Eingang i ′ Stapel.ErgänzeAlsLetztes((v ′, i ′ )) /* besuche als Nächstes diesen Eingang i ′ 27: 28: 29: 30: 31: Prozedur TraversiereFlusspunkt(G WS,b , Stapel, v) für j ← 1 bis ErmittleAusgangszahl(G WS,b , v) tue /* folge den Kanten an allen Ausgängen j . . . */ v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* . . . jeweils zu den Knoten v ′ und . . . */ i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . den Eingängen i ′ */ Stapel.ErgänzeAlsLetztes((v ′, i ′ )) /* besuche als Nächstes all diese Eingänge i ′ */ */ */ */ */ */ Algorithmus A.1.7: Traversierung der Knoten eines grafischen Modells {G WS,b }. A17 Anhang A Technische Dokumentation A.1.8 Transformation eines grafischen Modells {G WS,b } Der Algorithmus verbindet die Modellierung mit der Optimierung, indem er ein gegebenes grafisches Modell {G WS,b } in ein mathematisches Modell (P, S, F, L, L Invest ) umwandelt, das sich zur Optimierung eignet. Das Ergebnis sind die genannten Matrizen, wobei die Produktstrukturmatrix S ausgenommen ist, da diese als gegeben vorausgesetzt wird. Ein weiteres Ergebnis ist die MaxFolge, welche eine Teilmenge der Indizes a aller Prozessstückzahlen xa enthält. Die Sortierung der Indizes entspricht der Reihenfolge, in welcher die Prozessstückzahlen xa iterativ maximiert werden müssen, um die Auslastung zu optimieren. Bestimmt wird diese Reihenfolge durch die Priorisierung, welche der Anwender durch die Verknüpfung der Ausgänge alternativer Flusspunkte definiert (siehe Abschnitt 4.4). In seinem Ablauf basiert der Algorithmus auf der zuvor beschriebenen Traversierung der Knoten eines grafischen Modells {G WS,b } (vgl. Abschnitt A.1.7). Gegenüber diesem Algorithmus wird der Stapel nicht nur genutzt, um die zu besuchenden Knoten v und Eingänge i zu verwalten. Zusätzlich sind jedem Knoten und Eingang der Index a und der Koeffizient q der Prozessstückzahl xa zugeordnet, die jeweils an diesem Eingang anliegt. Die Wertstromgraphen G WS,b werden in zwei Modi traversiert, um die Eingänge zu erfassen, die nach den ersten Ausgängen alternativer Flusspunkte DAL,b folgen. Diese entsprechen Prozessschritten, die nach Vorgabe des Anwenders zu einer Überlastung von Ressourcen führen dürfen und zur Ermittlung der minimalen Investitionen dienen. Objekte und Variablen Variable ausgangszahl : N Zeilennummer 074 Natürliche Zahl, welche jeweils die Zahl der Ausgänge eines alternativen oder selektiven Flusspunkts v aus der Menge DAL,b bzw. D SL,b im Wertstromgraphen G WS,b angibt. Da das grafische Modell {G WS,b } als Vorbedingung für die Ausführung des Algorithmus validiert sein muss, ist die Zahl der Ausgänge für alle besuchten Knoten v außer den Senken τb größer als null. Objekt InvestMenge : {{(b 1 , v 1 , i 1 ), (b 2 , v 2 , i 2 ), . . . } : b ∈ {1, . . . , n}, v ∈ V WS,b , i ∈ N } 009 Menge mit einer variablen Zahl an Elementen. Jedes Element ist ein Tupel (b, v, i ) aus einem Produkt b sowie einem Knoten v und einem Eingang i im Wertstromgraphen G WS,b . Ein Eingang i ist der Menge genau dann zugehörig, wenn dieser ausgehend von der Quelle σb erreicht werden kann, indem an jedem alternativen Flusspunkt aus der Menge DAL,b stets der erste Ausgang verfolgt wird. Variable istEingangVereinigung : { falsch, wahr } 027 Boolesche Variable, welche angibt, ob am Eingang i des aktuell betrachteten Knotens v im Wertstromgraphen G WS,b mehrere Kanten zusammengeführt werden. Das heißt, der Wert der Variable ist genau dann wahr, wenn verschiedene Knoten oder Ausgänge eines Knotens existieren, von denen der Eingang i des Knotens v unmittelbar erreicht werden kann, sonst falsch. Objekt MaxFolge : {(a 1 , a 2 , . . . ) : a ∈ {1, . . . , m}} 010 Linear verkettete Liste variabler Länge, welche nach FIFO verwaltet wird. Das heißt, zuerst hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element der MaxFolge bezeichnet den Index a einer Prozessstückzahl xa . Die Sortierung entspricht der Reihenfolge, in welcher die Prozessstückzahlen xa nach Vorgabe des Anwenders zu maximieren sind. A18 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Objekt Stapel : {((v 1 , i 1 , a 1 , q 1 ), (v 2 , i 2 , a 2 , q 2 ), . . . ) : v ∈ V WS,b , i ∈ N, a ∈ {0, . . . , m}, q ∈ [0, 1]} 016 Linear verkettete Liste variabler Länge, welche nach LIFO verwaltet wird. Das heißt, zuletzt hinzugefügte Elemente werden zuerst entfernt und zurückgegeben (siehe Abschnitt 4.1). Jedes Element des Stapels ist ein Tupel (v, i, a, q) aus einem Knoten v, einem Eingang i sowie dem Index a und dem Koeffizienten q der Prozessstückzahl xa , welche an Eingang i anliegt. Variable zeile : N0 110 Natürliche Zahl größer als oder gleich null, welche einer allgemeinen, nicht näher bezeichneten Zeile der Flussmatrix F oder, je nach Anwendungsfall, der Auslastungsmatrix L entspricht. Funktionen und Prozeduren Zeilennummer Funktion ErmittleAusgangszahl(G WS,b , v) : N0 074 Siehe Abschnitt A.1.5. Funktion ErmittleBetriebsmittelzeit(v) : R 122 0 Liefert die Betriebsmittelzeit TBM der Ressource v zurück, in welcher die jeweilige MAE nach Vorgabe des Anwenders im Planungsintervall zur Verfügung steht. Funktion ErmittleEffektiveTaktzeit(G WS,b , v, i ) : R 0 126 Liefert die vom Anwender vorgegebene, effektive Taktzeit t eff des Prozessschritts zurück, welcher durch den Eingang i der Ressource v im Wertstromgraphen G WS,b repräsentiert wird. Funktion ErmittleEingangszahl(G WS,b , v) : N0 125 Liefert die Zahl der Eingänge des Knotens v im Wertstromgraphen G WS,b zurück, insbesondere genutzt zur Zusammenfassung aller Prozessschritte von Ressourcen der Menge R. Funktion ErmittleNächstenEingangsindex(G WS,b , v, j ) : N 022 Siehe Abschnitt A.1.5. Funktion ErmittleNächstenKnoten(G WS,b , v, j ) : V WS,b 020 Siehe Abschnitt A.1.5. Funktion ErmittleQuote(G WS,b , v, j ) : (0, 1] 103 Liefert die Quote am Ausgang j des selektiven Flusspunkts v aus der Menge D SL,b im Wertstromgraphen G WS,b zurück. Bezug nehmend auf die Stückzahl, die am Eingang des Flusspunkts anliegt, bezeichnet die Quote den fixen, relativen Anteil, welcher durch den Ausgang j verläuft. Prozedur FülleAuslastungsmatrix({G WS,b }, L, L Invest , {Qein,bv }, InvestMenge) 014 Legt die Komponenten der Auslastungsmatrix L und Investitionsmatrix L Invest nach Traversierung des grafischen Modells {G WS,b } fest. Die Werte resultieren aus den Betriebsmittelzeiten TBM , den effektiven Taktzeiten t eff und der Struktur des Modells. Diese wird der Prozedur mit der Menge der Eingangsmatrizen Qein,bv als Argument übergeben. Siehe Funktion TransformiereWSGraphen( . . . ). Prozedur FülleFlussmatrix({G WS,b }, m, F, {Qein,bv }, {Qaus,bv }, U) 013 Legt die Komponenten der Flussmatrix F nach Traversierung des grafischen Modells {G WS,b } fest. Die Werte folgen ausschließlich aus der Struktur des Modells. Die Struktur wird analog zur Prozedur Fülle↵ Auslastungsmatrix( . . . ) mit den Eingangsmatrizen Qein,bv , den Ausgangsmatrizen Qaus,bv und der Vereinigungsmatrix U übergeben. Siehe Funktion TransformiereWSGraphen( . . . ). Prozedur MaxFolge.ErgänzeAlsLetztes(a) 083 Fügt den jeweils übergebenen Index a einer Prozessstückzahl xa am Ausgang eines alternativen Flusspunkts aus der Menge DAL,b an das Ende der MaxFolge. Siehe Erläuterung zum Objekt MaxFolge. Funktion Stapel.EntferneLetztes() : {(v, i, a, q) : v ∈ V WS,b , i ∈ N, a ∈ {0, . . . , m}, q ∈ [0, 1]} 026 Entfernt das zuletzt hinzugefügte Element des Stapels und liefert dieses zurück, wie definiert ein Tupel (v, i, a, q) aus einem Knoten v, einem Eingang i, dem Index a der Prozessstückzahl xa an diesem Eingang und dem Koeffizienten q. Siehe Erläuterung zum Objekt Stapel. A19 Anhang A Technische Dokumentation Prozedur Stapel.ErgänzeAlsLetztes((v, i, a, q)) 024 Fügt das übergebene Tupel (v, i, a, q) aus dem Knoten v, dem Eingang i, dem Index a der Prozessstückzahl xa und dem Koeffizienten q an das Ende des Stapels. Siehe Erläuterung zum Objekt Stapel. Funktion Stapel.IstLeer() : { falsch, wahr } 025 Siehe Abschnitt A.1.3. Funktion TransformiereALFlusspunkt(G WS,b , b, m, Qaus,bv , InvestMenge, MaxFolge, Stapel, v, a, q) : N 048 Besucht den Eingang des Knotens v, eines alternativen Flusspunkts aus der Menge DAL,b im Wertstromgraphen G WS,b des Produkts b, und aktualisiert die InvestMenge sowie die MaxFolge. Die Prozessstückzahl xa und der Koeffizient q, welche am Eingang des Flusspunkts v anliegen, werden als Argumente übergeben. Fügt dem Stapel alle Eingänge i ′ von Knoten v ′ hinzu, die nach den Ausgängen j folgen. Den nächsten Eingängen i ′ ist jeweils eine neu erzeugte Prozessstückzahl xa′ und ein Koeffizient q ′ gleich eins zugeordnet. Liefert die neue Zahl m der Prozessstückzahlen xa zurück. Prozedur TransformiereGrafischesModell({G WS,b }, P, F, L, L Invest , MaxFolge) 001 Die übergeordnete Prozedur legt auf Grundlage eines gegebenen grafischen Modells {G WS,b } die Komponenten der Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L und Investitionsmatrix L Invest fest. Entsprechend der Reihenfolge, in welcher die Prozessstückzahlen xa nach Vorgabe des Anwenders zu maximieren sind, werden zudem die zugehörigen Indizes a in die MaxFolge eingefügt. Prozedur TransformiereRessource(G WS,b , b, InvestMenge, Stapel, v, i, a, q) 046 Besucht den Eingang i des Knotens v, einer Ressource aus der Menge R im Wertstromgraphen G WS,b des Produkts b, und aktualisiert die InvestMenge. Die Prozessstückzahl xa und der Koeffizient q, welche an Eingang i anliegen, werden als Argumente übergeben. Fügt dem Stapel den Eingang i ′ des Knotens v ′ hinzu, der nach dem jeweils gegenüberliegenden Ausgang j folgt. Dem nächsten Eingang i ′ ist wieder die Prozessstückzahl xa und der Koeffizient q zugeordnet. Prozedur TransformiereSLFlusspunkt(G WS,b , b, InvestMenge, Stapel, v, a, q) 050 Besucht den Eingang des Knotens v, eines selektiven Flusspunkts aus der Menge D SL,b im Wertstromgraphen G WS,b des Produkts b, und aktualisiert die InvestMenge. Die Prozessstückzahl xa und der Koeffizient q, welche am Eingang des Flusspunkts v anliegen, werden als Argumente übergeben. Fügt dem Stapel alle Eingänge i ′ von Knoten v ′ hinzu, die nach den Ausgängen j folgen. Den nächsten Eingängen i ′ sind wieder die Prozessstückzahl xa und jeweils ein Koeffizient q ′ zugeordnet, welcher aus der Multiplikation des Koeffizienten q vom Eingang mit der Quote an Ausgang j resultiert. Funktion TransformiereWSGraphen(G WS,b , b, m, P, {Qein,bv }, {Qaus,bv }, U, InvestMenge, MaxFolge) : N 012 Traversiert den Wertstromgraphen G WS,b des Produkts b und legt basierend auf der aktuellen Zahl m der Prozessstückzahlen xa die Komponenten der Prozessmatrix P fest. Als Zwischenergebnis werden die Eingangsmatrizen Qein,bv , Ausgangsmatrizen Qaus,bv und die Vereinigungsmatrix U bestimmt. Indem die Funktion für alle Produkte b aufgerufen wird, werden die InvestMenge und die MaxFolge fortlaufend ergänzt. Um auch bereits besuchte Eingänge i zu erfassen, die jeweils nach dem ersten Ausgang alternativer Flusspunkte DAL,b folgen, wird der Wertstromgraph G WS,b in zwei Modi traversiert. Liefert die neue Zahl m der Prozessstückzahlen xa zurück. Für mathematische Symbole siehe Abschnitt 4.4 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A21–A24 dargestellt. A20 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation Eingabe : (validiertes) grafisches Modell {G WS,b } aus Wertstromgraphen G WS,b mit Knoten V WS,b und Kanten E WS,b für alle Produkte b ∈ {1, . . . , n} Ausgabe : Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, Investitionsmatrix L Invest , MaxFolge mit Indizes a iterativ zu maximierender Prozessstückzahlen xa 001: 002: 003: 004: 005: 006: 007: 008: 009: 010: 011: Prozedur TransformiereGrafischesModell({G WS,b }, P, F, L, L Invest , MaxFolge) für b ← 1 bis n tue /* betrachte alle Produkte b und initialisiere . . . */ für alle v ∈ V WS,b \ {σb , τb } tue /* . . . für alle Knoten V WS,b außer Quelle σb und Senke τb . . . */ Qein,bv ← 0 /* . . . die Eingangsmatrix Qein,bv und . . . */ für alle v ∈ DAL,b tue /* . . . für alle alternativen Flusspunkte DAL,b . . . Qaus,bv ← 0 /* . . . die Ausgangsmatrix Qaus,bv */ */ 012: */ m ← 0 /* initialisiere die Zahl m der Prozessstückzahlen xa , . . . U ← 0 /* . . . die Vereinigungsmatrix U, . . . */ InvestMenge ← {} /* . . . die InvestMenge, eine Menge von Tupeln (b, v, i ), und . . . */ MaxFolge ← () /* . . . die MaxFolge, eine Folge von Indizes a der Prozessstückzahlen xa */ */ für b ← 1 bis n tue /* betrachte alle Produkte b und bestimme . . . /* . . . die Prozessmatrix P und die initialisierten Matrizen, Mengen und Folgen */ m ← TransformiereWSGraphen(G WS,b , b, m, P, {Qein,bv }, {Qaus,bv }, U, InvestMenge, MaxFolge) 013: 014: /* bestimme die Flussmatrix F, die Auslastungsmatrix L und die Investitionsmatrix L Invest FülleFlussmatrix({G WS,b }, m, F, {Qein,bv }, {Qaus,bv }, U) FülleAuslastungsmatrix({G WS,b }, L, L Invest , {Qein,bv }, InvestMenge) */ (nächster Teil auf Seite A22) Algorithmus A.1.8(a): Transformation eines grafischen Modells {G WS,b } (Teil 1 von 4). A21 Anhang A Technische Dokumentation (vorheriger Teil auf Seite A21) 015: 016: 017: 018: 019: 020: 021: 022: 023: 024: 025: 026: 027: 028: 029: 030: 031: 032: 033: 034: 035: 036: 037: 038: 039: 040: 041: Funktion TransformiereWSGraphen(G WS,b , b, m, P, {Qein,bv }, {Qaus,bv }, U, InvestMenge, MaxFolge) Stapel ← () /* initialisiere den Stapel, in diesem Fall eine Folge von Tupeln (v, i, a, q) m ← m + 1 /* erhöhe die Zahl m der Prozessstückzahlen xa , . . . a ′ ← m /* . . . um am Ausgang der Quelle σb eine neue Prozessstückzahl xa ′ zu erzeugen . . . P[b, a ′ ] ← 1 /* . . . und diese der Produktstückzahl y b zuzuordnen v ′ ← ErmittleNächstenKnoten(G WS,b , σb , 1) /* wenn die Kante an der Quelle σb . . . wenn v ′ τb dann /* . . . noch nicht zur Senke τb führt, folge dieser . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , σb , 1) /* . . . zu Eingang i ′ InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* füge Eingang i ′ der InvestMenge hinzu . . . Stapel.ErgänzeAlsLetztes((v ′, i ′, a ′, 1)) /* . . . und besuche diesen zuallererst solange ¬Stapel.IstLeer() tue /* solange Eingänge zu besuchen sind, . . . */ (v, i, a, q ) ← Stapel.EntferneLetztes() /* . . . betrachte den aktuellen Knoten v und Eingang i mit der Prozessstückzahl */ £ xa und dem Koeffizienten q istEingangVereinigung ← ∃e 1 = (v 1 , j 1 , v 1′ , i 1′ ), e¤2 = (v 2 , j 2 , v 2′ , i 2′ ) ∈ E WS,b v2 ∨ j1 j2) v 1′ = v 2′ ∧ i 1′ = i 2′ ∧ (v 1 */ wenn istEingangVereinigung dann /* vereinigen sich Kanten vor Eingang i und . . . wenn Qein,bv [i,∗] = 0⊤ dann /* . . . wurde dieser noch nicht besucht, . . . */ m ← m + 1 /* . . . erhöhe die Zahl m der Prozessstückzahlen xa , um an Eingang i . . . */ a ′ ← m /* . . . eine neue Prozessstückzahl xa ′ zu erzeugen */ U[a ′, a ] ← q /* ergänze jeweils einen Eintrag in der Vereinigungsmatrix U mit dem Koeffizienten q für Prozessstückzahl xa und . . . */ */ U[a ′, a ′ ] ← −1 /* . . . dem Wert minus eins für Prozessstückzahl xa ′ a ← a ′ /* setze im Entdeckungsmodus fort, d. h. mit der Prozessstückzahl xa ′ . . . */ */ q ← 1 /* . . . und einem Koeffizienten q gleich eins sonst /* vereinigen sich Kanten an einem bereits besuchten Eingang i und . . . */ wenn a 0 dann /* . . . wurde der vorhergehende Eingang erstmalig besucht, . . . */ a ′ ← {a ′ : a ′ ∈ {1, . . . , m} ∧ Qein,bv [i, a ′ ] = 1} /* . . . bestimme den Index a ′ */ der Prozessstückzahl xa ′ nach der Vereinigung der Kanten an Eingang i U[a ′, a ] ← U[a ′, a ] + q /* aktualisiere die Vereinigungsmatrix U */ a ← 0 /* setze im Investitionsmodus fort, d. h. ohne die Prozessstückzahl xa . . . */ */ q ← 0 /* . . . oder den Koeffizienten q zu spezifizieren 042: 043: wenn a 0 dann /* wird Eingang i erstmalig besucht (Entdeckungsmodus), . . . Qein,bv [i, a ] ← q /* . . . aktualisiere die Eingangsmatrix Qein,bv 044: wenn a 0 ∨ (b, v, i ) ∈ InvestMenge dann /* wenn Eingang i erstmalig besucht wird oder in der InvestMenge enthalten ist (Investitionsmodus), . . . wenn v ∈ R dann /* . . . unterscheide, ob es sich bei Knoten v um eine Ressource, . . . TransformiereRessource(G WS,b , b, InvestMenge, Stapel, v, i, a, q) sonst wenn v ∈ DAL,b dann /* . . . einen alternativen Flusspunkt oder . . . m ← TransformiereALFlusspunkt(G WS,b , b, m, Qaus,bv , InvestMenge, MaxFolge, . . . ) sonst /* . . . einen selektiven Flusspunkt handelt TransformiereSLFlusspunkt(G WS,b , b, InvestMenge, Stapel, v, a, q) 045: 046: 047: 048: 049: 050: 051: */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ liefere m zurück (nächster Teil auf Seite A23) Algorithmus A.1.8(b): Transformation eines grafischen Modells {G WS,b } (Teil 2 von 4). A22 A.1 Algorithmen, Teil I: grafische Modellierung und Modelltransformation (vorheriger Teil auf Seite A22) 052: 053: 054: 055: 056: 057: 058: 059: 060: 061: 062: 063: 064: 065: 066: 067: 068: 069: 070: 071: 072: 073: Prozedur TransformiereRessource(G WS,b , b, InvestMenge, Stapel, v, i, a, q) j ← i /* betrachte nur den Ausgang j, welcher dem Eingang i gegenüberliegt v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* wenn die jeweilige Kante an Ausgang j . . . wenn v ′ τb dann /* . . . noch nicht zur Senke τb führt, folge dieser . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . zu Eingang i ′ wenn a 0 dann /* Eingang i erstmalig besucht (Entdeckungsmodus) wenn (b, v, i ) ∈ InvestMenge dann /* ist Eingang i in der InvestMenge enthalten, . . . InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* . . . füge Eingang i ′ hinzu */ */ */ */ */ */ */ a ′ ← a /* übernimm die Prozessstückzahl xa und . . . q ′ ← q /* . . . den Koeffizienten q von Eingang i Stapel.ErgänzeAlsLetztes((v ′, i ′, a ′, q ′ )) /* besuche als Nächstes Eingang i ′ sonst /* Eingang i wiederholt besucht (Investitionsmodus) wenn ¬(b, v ′, i ′ ) ∈ InvestMenge dann /* ist Eingang i ′ nicht in der InvestMenge, . . . InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* . . . füge ihn hinzu und . . . Stapel.ErgänzeAlsLetztes((v ′, i ′, 0, 0)) /* . . . besuche diesen als Nächstes */ */ */ */ */ */ */ Funktion TransformiereALFlusspunkt(G WS,b , b, m, Qaus,bv , InvestMenge, MaxFolge, Stapel, v, a, q) */ wenn a 0 dann /* Eingang des Knotens v erstmalig besucht (Entdeckungsmodus) */ wenn (b, v, 1) ∈ InvestMenge dann /* ist der Eingang in der InvestMenge und . . . v ′ ← ErmittleNächstenKnoten(G WS,b , v, 1) /* . . . führt die Kante am ersten Ausgang . . . */ wenn v ′ τb dann /* . . . noch nicht zur Senke τb , folge dieser . . . */ i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, 1) /* . . . zu Eingang i ′ */ InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* füge Eingang i ′ der InvestMenge hinzu */ 074: 075: 076: 077: 078: 079: 080: 081: ausgangszahl ← ErmittleAusgangszahl(G WS,b , v) /* folge in umgekehrter Reihenfolge . . . für j ← ausgangszahl absteigend bis 1 tue /* . . . den Kanten an allen Ausgängen j a ′ ← m + j /* erzeuge eine neue Prozessstückzahl xa ′ an Ausgang j des Knotens v . . . Qaus,bv [ j, a ′ ] ← 1 /* . . . und aktualisiere die Ausgangsmatrix Qaus,bv v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* wenn die Kante an Ausgang j . . . wenn v ′ τb dann /* . . . noch nicht zur Senke τb führt, folge dieser . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . zu Eingang i ′ Stapel.ErgänzeAlsLetztes((v ′, i ′, a ′, 1)) /* besuche als Nächstes diesen Eingang i ′ */ */ */ */ */ */ */ */ 082: 083: für j ← 1 bis ausgangszahl − 1 tue /* nimm alle neuen Prozessstückzahlen xa ′ . . . MaxFolge.ErgänzeAlsLetztes(m + j ) /* . . . außer der letzten in die MaxFolge auf */ */ 084: 085: 086: 087: 088: 089: 090: 091: m ← m + ausgangszahl /* erhöhe die Zahl m der Prozessstückzahlen xa sonst /* Eingang des Knotens v wiederholt besucht (Investitionsmodus) v ′ ← ErmittleNächstenKnoten(G WS,b , v, 1) /* wenn die Kante am ersten Ausgang . . . wenn v ′ τb dann /* . . . noch nicht zur Senke τb führt, folge dieser . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, 1) /* . . . zu Eingang i ′ wenn ¬(b, v ′, i ′ ) ∈ InvestMenge dann /* ist Eingang i ′ nicht in der InvestMenge, . . . InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* . . . füge ihn hinzu und . . . Stapel.ErgänzeAlsLetztes((v ′, i ′, 0, 0)) /* . . . besuche diesen als Nächstes 092: liefere m zurück */ */ */ */ */ */ */ */ (nächster Teil auf Seite A24) Algorithmus A.1.8(c): Transformation eines grafischen Modells {G WS,b } (Teil 3 von 4). A23 Anhang A Technische Dokumentation (vorheriger Teil auf Seite A23) 093: 094: 095: 096: 097: 098: 099: 100: 101: 102: 103: 104: 105: 106: 107: 108: Prozedur TransformiereSLFlusspunkt(G WS,b , b, InvestMenge, Stapel, v, a, q) ausgangszahl ← ErmittleAusgangszahl(G WS,b , v) /* folge in umgekehrter Reihenfolge . . . für j ← ausgangszahl absteigend bis 1 tue /* . . . den Kanten an allen Ausgängen j v ′ ← ErmittleNächstenKnoten(G WS,b , v, j ) /* wenn die Kanten an diesen Ausgängen j . . . wenn v ′ τb dann /* . . . noch nicht zur Senke τb führen, folge ihnen jeweils . . . i ′ ← ErmittleNächstenEingangsindex(G WS,b , v, j ) /* . . . zu Eingang i ′ wenn a 0 dann /* Eingang des Knotens v erstmalig besucht (Entdeckungsmodus) wenn (b, v, 1) ∈ InvestMenge dann /* ist der Eingang des Knotens v in der InvestMenge enthalten, füge entsprechend Eingang i ′ . . . InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* . . . des Knotens v ′ hinzu a ′ ← a /* übernimm die Prozessstückzahl xa vom Eingang . . . q ′ ← q ErmittleQuote(G WS,b , v, j ) /* . . . und multipliziere den Koeffizienten q mit der Quote, welche für Ausgang j definiert ist Stapel.ErgänzeAlsLetztes((v ′, i ′, a ′, q ′ )) /* besuche als Nächstes Eingang i ′ sonst /* Eingang des Knotens v wiederholt besucht (Investitionsmodus) wenn ¬(b, v ′, i ′ ) ∈ InvestMenge dann /* ist Eingang i ′ nicht in der InvestMenge, . . . InvestMenge ← InvestMenge ∪ {(b, v ′, i ′ )} /* . . . füge ihn hinzu und . . . Stapel.ErgänzeAlsLetztes((v ′, i ′, 0, 0)) /* . . . besuche diesen als Nächstes */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ 109: 110: 111: 112: 113: 114: Prozedur FülleFlussmatrix({G WS,b }, m, F, {Qein,bv }, {Qaus,bv }, U) zeile ← 0 für a ′ ← 1 bis m tue /* für Vereinigungen von Kanten an Eingängen von Knoten V WS,b gilt, . . . 0⊤ dann /* . . . dass die Summe aller Stückzahlen q xa . . . wenn U[a ′,∗] zeile ← zeile + 1 /* . . . vor der Vereinigung gleich der Prozessstückzahl xa ′ . . . F[zeile,∗] ← U[a ′,∗] /* . . . nach der Vereinigung sein muss */ */ */ */ 115: 116: 117: 118: für b ← 1 bis n tue /* für alternative Flusspunkte DAL,b gilt, . . . für alle v ∈ DAL,b tue /* . . . dass die Stückzahl q xa am Eingang des Knotens gleich . . . zeile ← zeile + 1 /* . . . der Summe der Prozessstückzahlen xa ′ . . . F[zeile,∗] ← Qein,bv − 1⊤ Qaus,bv /* . . . an allen Ausgängen sein muss */ */ */ */ 119: 120: 121: 122: 123: 124: 125: Prozedur FülleAuslastungsmatrix({G WS,b }, L, L Invest , {Qein,bv }, InvestMenge) zeile ← 0 für alle v ∈ R tue /* ermittle für alle Ressourcen R . . . TBM ← ErmittleBetriebsmittelzeit(v) /* . . . die Betriebsmittelzeit TBM zeile ← zeile + 1 /* erzeuge eine neue Zeile für jede Ressource für b ← 1 bis n tue /* ermittle in jedem Wertstromgraphen G WS,b . . . für i ← 1 bis ErmittleEingangszahl(G WS,b , v) tue /* . . . für alle Eingänge i von Ressourcen, d. h. für alle Prozessschritte des Produkts, . . . t eff ← ErmittleEffektiveTaktzeit(G WS,b , v, i ) /* . . . die effektive Taktzeit t eff ± L[zeile,∗] ← L[zeile,∗] + t eff TBM Qein,bv [i,∗] /* erweitere die Matrix L wenn ¬(b, v, i ) ∈ InvestMenge dann /* wenn Eingang i nicht in der InvestMenge enthalten ist, erweitere entsprechend ± die Matrix L Invest L Invest [zeile,∗] ← L Invest [zeile,∗] + t eff TBM Qein,bv [i,∗] 126: 127: 128: 129: Algorithmus A.1.8(d): Transformation eines grafischen Modells {G WS,b } (Teil 4 von 4). A24 */ */ */ */ */ */ */ */ A.2 Algorithmen, Teil II: mathematische Optimierung A.2 Algorithmen, Teil II: mathematische Optimierung Im zweiten Teil werden die Algorithmen beschrieben, die dazu dienen, ein mathematisches Modell zu optimieren. Den Anfang bildet dabei die Minimierung einer linearen Zielfunktion, bevor darauf aufbauend die drei definierten Planungsziele folgen. A.2.1 Minimierung einer allgemeinen linearen Zielfunktion f (x) Der einführende Algorithmus verdeutlicht beispielhaft zwei Schritte, die nachfolgend zur Optimierung der Planungsziele aufgegriffen und fallweise abgewandelt werden. Im ersten Schritt wird ausgehend vom Nullvektor eine beliebige Startlösung x ermittelt, welche bestimmte Bedingungen erfüllt. In diesem Fall muss die Lösung neben dem Flusserhalt und den Schranken bezüglich der Auslastung den geplanten Produktstückzahlen yplan entsprechen. Im zweiten Schritt wird eine gegebene Zielfunktion f (x) minimiert, wobei die zuvor genannten Bedingungen weiterhin gelten müssen (siehe Abschnitt 5.1). Funktionen und Prozeduren Zeilennummer Funktion MinLineareZielfunktion(c, yplan , P, F, L) : R 1 Bestimmt den minimalen Wert der linearen Zielfunktion f (x), welche durch den Ausdruck c⊤ x definiert ist, und liefert diesen zurück. Für die gesuchte Lösung x gilt, dass die resultierenden Stückzahlen y b aller Produkte b den geplanten Produktstückzahlen yplan entsprechen müssen. Zudem gelten die Bedingungen in Bezug auf Flusserhalt und Auslastung, repräsentiert durch die Matrizen F bzw. L. Voraussetzung ist, dass unter den vorgegebenen Bedingungen eine Lösung x existiert. Für mathematische Symbole siehe Abschnitt 5.1 und Symbolverzeichnis. Eingabe : Vektoren der Koeffizienten c und geplanter Produktstückzahlen yplan , Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L Ausgabe : minimaler Wert der Zielfunktion f (x) = c⊤ x unter den vorgegebenen Bedingungen (vorausgesetzt, dass eine entsprechende Lösung x existiert) 1: 2: 3: 4: 5: Funktion MinLineareZielfunktion(c, yplan , P, F, L) x ← 0 /* verwende den Nullvektor als Startlösung */ /* bestimme eine beliebige Lösung x, welche den geplanten Produktstückzahlen y plan,b entspricht und die vorgegebenen Bedingungen erfüllt */ © P */ x ← arg max 1⊤ P x : x 0 ∧ /* 1⊤ P x = nb =1 y b P x yplan ∧ /* Maximierung jeder Produktstückzahl y b bis zum Wert y plan,b */ ª F x = 0 ∧ L x 1 /* Flusserhalt bzw. Auslastung */ /* bestimme eine Lösung x, welche die Zielfunktion f (x) minimiert, wobei die Stückzahlen y b unverändert den geplanten Stückzahlen y plan,b entsprechen müssen */ © x ← arg min c⊤ x : x 0 ∧ /* c⊤ x = f (x) */ P x = yplan ∧ /* Beibehaltung der geplanten Stückzahlen y plan,b aller Produkte b */ ª F x = 0 ∧ L x 1 /* Flusserhalt bzw. Auslastung */ liefere c⊤ x zurück Algorithmus A.2.1: Minimierung einer allgemeinen linearen Zielfunktion f (x). A25 Anhang A Technische Dokumentation A.2.2 Maximierung der technischen Kapazitäten ymax Der Algorithmus bestimmt die technischen Kapazitäten ymax , welche das Ergebnis des Planungsziels der maximalen Kapazitäten repräsentieren. Beginnend mit dem Nullvektor werden in aufeinanderfolgenden Iterationsschritten die Stückzahlen y b all derjenigen Produkte b maximiert, die noch nicht maximal sind. Eine Stückzahl y b gilt genau dann als noch nicht maximal, wenn sie unter den gegebenen Bedingungen erhöht werden kann, ohne die Stückzahlen anderer Produkte zu reduzieren. In jedem Iterationsschritt erreicht mindestens eine Produktstückzahl y b ihren maximalen Wert, worauf dieser beibehalten wird. Bei der Maximierung zweier Stückzahlen y b muss deren Verhältnis jenem der geplanten Produktstückzahlen y plan,b entsprechen. Die Iteration wird fortgeführt, solange die Stückzahl y b mindestens eines Produkts b nicht maximal ist (siehe Abschnitt 5.2). Objekte und Variablen Variable istMax[b ] : { falsch, wahr } Zeilennummer 04 Eindimensionales Feld boolescher Werte mit Index b. Ist genau dann wahr, wenn die Produktstückzahl y b maximal ist, sonst falsch. Siehe Funktion IstMaxKapazität( . . . ). Funktionen und Prozeduren Funktion IstMaxKapazität(x, b, P, S, F, L) : { falsch, wahr } Zeilennummer 12 Prüft, ob die Stückzahl y b des Produkts b erhöht werden kann, ohne die Stückzahlen anderer Produkte zu reduzieren. Es gelten die Bedingungen in Bezug auf Produktstruktur, Flusserhalt und Auslastung, repräsentiert durch die Matrizen S, F bzw. L. Um eine Lösung zu suchen, welche den genannten Bedingungen entspricht, wird der übergebene Vektor x als Startlösung verwendet. Liefert genau dann wahr zurück, wenn die Produktstückzahl y b unter diesen Bedingungen maximal ist, sonst falsch. Funktion MaxKapazitäten(yplan , P, S, F, L) : Rn 0 01 Bestimmt die technischen Kapazitäten ymax , d. h. die maximalen Stückzahlen y b aller Produkte b, und liefert diese zurück. Solange zwei Produktstückzahlen y b nicht maximal sind, muss deren Verhältnis jenem der geplanten Produktstückzahlen y plan,b entsprechen. Erreicht die Stückzahl y b eines Produkts b ihren maximalen Wert, wird dieser Wert nicht verändert. Zusätzlich gelten die Bedingungen in Bezug auf Produktstruktur, Flusserhalt und Auslastung, repräsentiert durch die Matrizen S, F bzw. L. Voraussetzung ist, dass alle Produktstückzahlen y b nach oben beschränkt sind. Für mathematische Symbole siehe Abschnitt 5.2 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A27 dargestellt. A26 A.2 Algorithmen, Teil II: mathematische Optimierung Eingabe : Vektor (vorläufiger) geplanter Produktstückzahlen yplan , Prozessmatrix P, Produktstrukturmatrix S, Flussmatrix F, Auslastungsmatrix L Ausgabe : Vektor maximaler Produktstückzahlen ymax unter den vorgegebenen Bedingungen (vorausgesetzt, dass die Produktstückzahlen y b nach oben beschränkt sind) 01: 02: 03: 04: 05: 06: 07: Funktion MaxKapazitäten(yplan , P, S, F, L) x ← 0 /* verwende den Nullvektor als Startlösung für b ← 1 bis n tue /* initialisiere alle Produktstückzahlen y b . . . istMax[b ] ← falsch /* . . . als nicht maximal */ */ */ 09: 10: 11: 12: 13: 14: 15: p ← 1 /* wähle das erste Produkt als Referenzprodukt p wiederhole x′ ← x /* speichere die vorherige Lösung x /* bestimme eine Lösung x, welche die Produktstückzahl yp in einem fixen Verhältnis zu allen anderen noch nicht maximalen Produktstückzahlen y b maximiert © x ← arg max P[p,∗] x : x 0 ∧ /* P[p,∗] x = yp ∀b ∈ {1, . . . , n} \ {p } /* für alle anderen Produktstückzahlen y b gilt . . . ¬istMax[b ] → ( y plan,p P[b,∗] − y plan,b P[p,∗]) x = 0 ∧ /* . . . dieses Verhältnis . . . istMax[b ] → P[b,∗] x = P[b,∗] x′ ∧ /* . . . bzw. der jeweils vorherige Wert ª (I − S) P x 0 ∧ F x = 0 ∧ L x 1 /* Produktstruktur, Flusserhalt bzw. Auslastung /* prüfe alle zuvor nicht maximalen Produktstückzahlen y b , ob diese nun maximal sind, und bestimme ein Referenzprodukt p, dessen Stückzahl yp nicht maximal ist p ← 0 /* setze den Index p des Referenzprodukts p zurück, um ein neues zu suchen für b ← 1 bis n tue /* betrachte alle Produktstückzahlen y b , . . . wenn ¬istMax[b ] dann /* . . . die zuvor nicht maximal waren, und . . . wenn IstMaxKapazität(x, b, P, S, F, L) dann /* . . . ist das nun der Fall, . . . istMax[b ] ← wahr /* . . . markiere diese entsprechend sonst wenn p = 0 dann /* wähle das erste Produkt b, dessen Stückzahl y b . . . p ← b /* . . . nicht maximal ist, als neues Referenzprodukt p 16: 17: 18: solange p 0 /* wiederhole, solange mindestens eine Produktstückzahl y b nicht maximal ist ymax ← P x /* bestimme die technischen Kapazitäten ymax gemäß der Lösung x liefere ymax zurück 19: 20: 21: Funktion IstMaxKapazität(x, b, P, S, F, L) y b ← P[b,∗] x /* speichere zum Vergleich den aktuellen Wert der Produktstückzahl y b */ x′ ← x /* verwende die zuvor ermittelte Lösung x als Startlösung */ /* maximiere die Produktstückzahl y b′ unabhängig von den Stückzahlen aller anderen Produkte, wobei deren Werte jedoch nicht reduziert werden dürfen */ © y b′ ← max P[b,∗] x′ : x′ 0 ∧ /* P[b,∗] x′ = y b′ */ P x′ P x ∧ /* mindestens Beibehaltung aller Produktstückzahlen y b */ ′ P[b,∗] x y b + ε ∧ /* höchstens Steigerung um einen gegebenen Wert größer als null */ ª (I − S) P x′ 0 ∧ F x′ = 0 ∧ L x′ 1 /* Produktstruktur, Flusserhalt bzw. Auslastung */ wenn y b′ y b dann /* ist der neue Wert nicht größer als die zu prüfende Produktstückzahl y b , . . . */ liefere wahr zurück /* . . . muss diese maximal sein */ 08: 22: 23: 24: 25: */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ liefere falsch zurück Algorithmus A.2.2: Maximierung der technischen Kapazitäten ymax . A27 Anhang A Technische Dokumentation A.2.3 Minimierung der Überlastung L x (Komponenten größer als eins) Gemäß dem Planungsziel der minimalen Investitionen bestimmt der Algorithmus die Überlastung, die notwendig ist, um die geplanten Produktstückzahlen yplan herzustellen. Die Auslastung der Ressourcen wird durch die Werte des Vektors L x wiedergegeben, wobei jede Komponente des Vektors einer Ressource entspricht. Gesucht sind die minimalen oberen Schranken größer als oder gleich eins für die Komponenten des Vektors L x, für welche unter den gegebenen Bedingungen eine Lösung x existiert. Der Algorithmus bewirkt einen Ausgleich der Überlastung zwischen den Ressourcen (siehe Abschnitt 5.3). Für alle Werte des Vektors L x, von denen vor Beginn der Iteration bekannt ist, dass diese höchstens gleich eins sein können, gilt eine obere Schranke von eins. In jedem Iterationsschritt wird unter allen Werten des Vektors L x, die noch nicht minimal sind, der größte Wert minimiert, wobei alle anderen diesen nicht überschreiten dürfen. Ein Wert wird genau dann als minimal bezeichnet, wenn seine minimale obere Schranke feststeht. Das heißt, die obere Schranke ist gleich eins, oder der Wert kann gegenüber seiner oberen Schranke nicht reduziert werden, ohne andere Werte über deren obere Schranken zu steigern. Nach jedem Iterationsschritt wird für alle noch nicht minimalen Werte der größte unter all diesen Werten als obere Schranke festgelegt. Als Folge ist nach jedem Iterationsschritt mindestens ein weiterer Wert minimal. Die Iteration wird fortgesetzt, solange mindestens ein Wert des Vektors L x noch nicht minimal und größer als eins ist. Objekte und Variablen Variable istMin[i ] : { falsch, wahr } Zeilennummer 07 Eindimensionales Feld boolescher Werte mit Index i. Ist genau dann wahr, wenn der Wert des Vektors L x an Zeile i minimal ist, sonst falsch. Siehe Funktion IstMinÜberlastung( . . . ). Variable minMax[i ] : R 0 12 Eindimensionales Feld positiver reeller Werte mit Index i. Bezeichnet die minimale obere Schranke größer als oder gleich eins, welche für die Komponente des Vektors L x an Zeile i festgelegt ist. Variable zeilenzahl : N 03 Natürliche Zahl, unter den gegebenen Voraussetzungen größer als null. Gibt die größte Zeile der Matrix L ungleich dem Nullvektor an. Siehe Funktion ErmittleZeilenzahl(L). Funktionen und Prozeduren Zeilennummer Funktion ErmittleZeilenzahl(L) : N 03 Liefert die größte Zeile der Matrix L ungleich dem Nullvektor zurück. Da vorausgesetzt wird, dass alle Produktstückzahlen y b nach oben beschränkt sind, existiert mindestens eine solche Zeile. Funktion InitMinÜberlastung(yplan , P, F, L Invest ) : Rm0 02 Bestimmt eine initiale Lösung x, welche den geplanten Produktstückzahlen yplan entspricht, und liefert diese zurück. Einschränkend gilt hierbei, dass nur bestimmte Prozessstückzahlen xa größer als null sein dürfen, wie durch die Matrix L Invest festgelegt. Darüber hinaus muss die Lösung x die Bedingung in Bezug auf den Flusserhalt erfüllen, repräsentiert durch die Matrix F. Funktion IstMinÜberlastung(x, P, F, L, i, minMax) : { falsch, wahr } 21 Prüft, ob der Wert des Vektors L x an Zeile i reduziert werden kann, ohne andere Werte über ihre oberen Schranken zu steigern. Diesbezüglich gilt einschränkend, dass die Stückzahlen y b aller Produkte b beibehalten werden müssen. Des Weiteren muss jede Lösung die Bedingung in Bezug auf den Flusserhalt A28 A.2 Algorithmen, Teil II: mathematische Optimierung erfüllen, repräsentiert durch die Matrix F. Um eine entsprechende Lösung zu suchen, wird der übergebene Vektor x als Startlösung verwendet. Die Funktion wird nur dann aufgerufen, wenn der Wert des Vektors L x an Zeile i größer als eins ist und seiner oberen Schranke entspricht. Liefert genau dann wahr zurück, wenn der Wert an Zeile i unter diesen Bedingungen minimal ist, sonst falsch. Funktion MinÜberlastung(yplan , P, F, L, L Invest ) : R 0 [] 01 Bestimmt die minimale Überlastung, d. h. die minimalen oberen Schranken größer als oder gleich eins für die Komponenten des Vektors L x, und liefert diese zurück. Die Werte des Vektors L x geben die Auslastung der Ressourcen an, wobei nur ausgewählte zu überlasten sind, wie durch die Matrix L Invest festgelegt. Es wird jeweils der größte nicht minimale Wert größer als eins minimiert, während andere Werte, die nicht minimal sind, diesen nicht überschreiten dürfen. Für jede Lösung x gilt, dass die Stückzahlen y b aller Produkte b den geplanten Produktstückzahlen y plan,b entsprechen müssen. Weiterhin gilt die Bedingung in Bezug auf den Flusserhalt, repräsentiert durch die Matrix F. Für mathematische Symbole siehe Abschnitt 5.3 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A30–A31 dargestellt. A29 Anhang A Technische Dokumentation Eingabe : Vektor geplanter Produktstückzahlen yplan , Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, Investitionsmatrix L Invest Ausgabe : minimale obere Schranken größer als oder gleich eins für die Komponenten des Vektors L x, für welche unter den vorgegebenen Bedingungen eine Lösung x existiert 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: Funktion MinÜberlastung(yplan , P, F, L, L Invest ) x ← InitMinÜberlastung(yplan , P, F, L Invest ) /* bestimme die Startlösung zeilenzahl ← ErmittleZeilenzahl(L) /* da oft verwendet, speichere die Zeilenzahl der Matrix L j ← 0 /* initialisiere Zeile j mit dem größten nicht minimalen Wert des Vektors L x größer als eins für i ← 1 bis zeilenzahl tue /* betrachte die Werte des Vektors L x an allen Zeilen i wenn L[i,∗] x 0 dann /* ist der Wert größer als null, . . . istMin[i ] ← falsch /* . . . initialisiere diesen als nicht minimal wenn ( j = 0 ∧ L[i,∗] x 1) ∨ /* ist dieser größer als eins und . . . ( j 0 ∧ L[ j,∗] x L[i,∗] x) dann /* . . . größer als jener an Zeile j, . . . j ← i /* . . . aktualisiere entsprechend Zeile j sonst /* ist der Wert des Vektors L x an Zeile i gleich null, . . . istMin[i ] ← wahr /* . . . initialisiere diesen als minimal und . . . minMax[i ] ← 1 /* . . . lege den Wert eins als Schranke fest */ */ */ */ */ */ */ */ */ */ */ */ solange j 0 tue /* solange mindestens ein Wert nicht minimal und größer als eins ist, . . . */ /* . . . bestimme eine entsprechende Lösung x, welche den Wert des Vektors L x an Zeile j minimiert, wobei alle anderen Werte nach oben beschränkt sind */ © */ x ← arg min L[ j,∗] x : x 0 ∧ /* Wert des Vektors L x an Zeile j P x = yplan ∧ F x = 0 ∧ /* Beibehaltung der Stückzahlen y plan,b bzw. Flusserhalt */ ∀i ∈ {1, . . . , zeilenzahl } \ { j } /* begrenze die Werte an anderen Zeilen i durch . . . */ ¬istMin[i ] → (L[i,∗] − L[ j,∗]) x 0 ∧ /* . . . den Wert an Zeile j bzw. . . . */ ª istMin[i ] → L[i,∗] x minMax[i ] /* . . . die jeweils festgelegte Schranke */ ′ ′ j ← 0 /* initialisiere nächste Zeile j mit dem größten nicht minimalen Wert größer als eins */ */ wenn L[ j,∗] x 1 dann /* ist der Wert an Zeile j weiterhin größer als eins, . . . für i ← 1 bis zeilenzahl tue /* . . . lege als Schranke für alle nicht minimalen Werte . . . */ */ wenn ¬istMin[i ] dann minMax[i ] ← L[ j,∗] x /* . . . den Wert an Zeile j fest für i ← 1 bis zeilenzahl tue /* betrachte die Werte des Vektors L x an allen Zeilen i, . . . wenn ¬istMin[i ] dann /* . . . die zuvor nicht minimal waren wenn L[i,∗] x = L[ j,∗] x ∧ /* ist der Wert gleich jenem an Zeile j und . . . IstMinÜberlastung(x, P, F, L, i, minMax) dann /* . . . nun minimal, . . . istMin[i ] ← wahr /* . . . markiere diesen entsprechend sonst wenn ( j ′ = 0 ∧ L[i,∗] x 1) ∨ /* bestimme die nächste Zeile j ′, . . . ( j ′ 0 ∧ L[ j ′,∗] x L[i,∗] x) dann /* . . . an welcher sich der größte . . . ′ j ← i /* . . . nicht minimale Wert größer als eins befindet, . . . j ← j ′ /* . . . und übernimm diese als aktuelle Zeile j */ */ */ */ */ */ */ */ */ 26: 27: für i ← 1 bis zeilenzahl tue /* da alle verbleibenden Werte nicht größer als eins sein können, . . . */ wenn ¬istMin[i ] dann minMax[i ] ← 1 /* . . . lege den Wert eins als Schranke fest */ 28: liefere minMax zurück (nächster Teil auf Seite A31) Algorithmus A.2.3(a): Minimierung der Überlastung L x (Komponenten größer als eins) (Teil 1 von 2). A30 A.2 Algorithmen, Teil II: mathematische Optimierung (vorheriger Teil auf Seite A30) 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: Funktion InitMinÜberlastung(yplan , P, F, L Invest ) x ← 0 /* verwende den Nullvektor als Startlösung /* bestimme eine Lösung x, welche den geplanten Produktstückzahlen y plan,b entspricht, wobei nur definierte Prozessstückzahlen xa größer als null sein dürfen © P x ← arg max 1⊤ P x : x 0 ∧ /* 1⊤ P x = nb =1 y b P x yplan ∧ /* Maximierung jeder Produktstückzahl y b bis zum Wert y plan,b ª F x = 0 ∧ L Invest x = 0 /* Flusserhalt bzw. Beschränkung aller Prozessstückzahlen xa auf den Wert null, für welche die Matrix L Invest an Spalte a Einträge enthält liefere x zurück */ */ */ */ */ Funktion IstMinÜberlastung(x, P, F, L, i, minMax) zeilenzahl ← ErmittleZeilenzahl(L) /* speichere die Zeilenzahl der Matrix L x′ ← x /* verwende die aktuelle Lösung x als Startlösung /* bestimme eine Lösung x′, welche den Wert des Vektors L x′ an Zeile i minimiert und für alle anderen Zeilen die jeweils festgelegten Schranken berücksichtigt © x′ ← arg min L[i,∗] x′ : x′ 0 ∧ /* Wert des Vektors L x′ an Zeile i P x′ = P x ∧ F x′ = 0 ∧ /* Beibehaltung aller Produktstückzahlen y b bzw. Flusserhalt L[i,∗] x′ L[i,∗] x − ε ∧ /* höchstens Reduktion um einen Wert größer als null ∀i ′ ∈ {1, . . . , zeilenzahl } \ {i } /* für alle anderen Zeilen i ′ gilt . . . ª L[i ′,∗] x′ minMax[i ′ ] /* . . . die jeweils festgelegte Schranke wenn L[i,∗] x′ L[i,∗] x dann /* ist der neue Wert an Zeile i nicht kleiner als der zu prüfende, . . . liefere wahr zurück /* . . . muss letzterer minimal sein */ */ */ */ */ */ */ */ */ */ liefere falsch zurück Algorithmus A.2.3(b): Minimierung der Überlastung L x (Komponenten größer als eins) (Teil 2 von 2). A31 Anhang A Technische Dokumentation A.2.4 Optimierung der Auslastung L x (alle Komponenten) Der Algorithmus setzt das Planungsziel der optimalen Auslastung um, welches auf der iterativen Maximierung definierter Prozessstückzahlen xa basiert. Die Reihenfolge, nach welcher die Prozessstückzahlen xa maximiert werden, entspricht der vorgegebenen Priorisierung des Anwenders und wird durch die MaxFolge abgebildet. Die Folge enthält, wie in Abschnitt A.1.8 erläutert wurde, die Indizes a der entsprechend zu maximierenden Prozessstückzahlen xa . Im Verlauf der Iteration werden die Lösungen, die in vorherigen Iterationsschritten gefunden wurden, als Nebenbedingungen übernommen. Für die Lösungen x aller Iterationsschritte gilt, dass diese den geplanten Produktstückzahlen yplan entsprechen müssen. Weiterhin müssen die Lösungen x die zuvor ermittelten, minimalen oberen Schranken minMax[i ] für die Komponenten des Vektors L x berücksichtigen (siehe Abschnitt 5.4). Objekte und Variablen Objekt MaxFolge : {(a 1 , a 2 , . . . ) : a ∈ {1, . . . , m}} Zeilennummer 01 Siehe Abschnitt A.1.8. Variable minMax[i ] : R 0 01 Siehe Abschnitt A.2.3. Variable zeilenzahl : N 03 Siehe Abschnitt A.2.3. Funktionen und Prozeduren Zeilennummer Funktion ErmittleZeilenzahl(L) : N 03 Siehe Abschnitt A.2.3. Funktion InitOptAuslastung(yplan , P, F, L, minMax) : Rm0 02 Bestimmt eine initiale Lösung x, welche den geplanten Produktstückzahlen yplan entspricht, und liefert diese zurück. Die gesuchte Lösung x muss die Bedingung in Bezug auf den Flusserhalt erfüllen, welche durch die Matrix F repräsentiert wird. Zudem dürfen die Komponenten des Vektors L x die übergebenen minimalen oberen Schranken minMax[i ] nicht überschreiten. Funktion MaxFolge.EntferneErstes() : {1, . . . , m} 11 Entfernt das zuerst hinzugefügte Element der MaxFolge und liefert dieses zurück, welches wie definiert den Index a einer Prozessstückzahl xa bezeichnet. Siehe Erläuterung zum Objekt MaxFolge. Funktion MaxFolge.IstLeer() : { falsch, wahr } 07 Liefert genau dann wahr zurück, wenn die Länge der MaxFolge gleich null ist, d. h., wenn diese einem leeren Tupel entspricht, sonst falsch. Siehe Erläuterung zum Objekt MaxFolge. Funktion OptAuslastung(yplan , P, F, L, minMax, MaxFolge) : Rm0 01 Bestimmt die optimale Auslastung, d. h. die optimalen Werte aller Prozessstückzahlen xa gemäß den definierten Prioritäten, und liefert diese zurück. Die Prozessstückzahlen xa werden iterativ maximiert, wie durch die MaxFolge vorgegeben, wobei die Lösungen vorheriger Iterationsschritte Nebenbedingungen darstellen. Für die Lösungen x aller Iterationsschritte gilt, dass die Stückzahlen y b der Produkte b den geplanten Produktstückzahlen y plan,b entsprechen müssen. Des Weiteren muss die Bedingung in Bezug auf den Flusserhalt erfüllt sein, repräsentiert durch die Matrix F. Die Komponenten des Vektors L x dürfen die minimalen oberen Schranken minMax[i ] nicht überschreiten. Für mathematische Symbole siehe Abschnitt 5.4 und Symbolverzeichnis. Der Pseudocode des Algorithmus ist auf Seite A33 dargestellt. A32 A.2 Algorithmen, Teil II: mathematische Optimierung Eingabe : Vektor geplanter Produktstückzahlen yplan , Prozessmatrix P, Flussmatrix F, Auslastungsmatrix L, minimale obere Schranken minMax, MaxFolge Ausgabe : Lösung x, welche unter den vorgegebenen Bedingungen die Prozessstückzahlen xa gemäß der Sortierung der MaxFolge maximiert 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: Funktion OptAuslastung(yplan , P, F, L, minMax, MaxFolge) x ← InitOptAuslastung(yplan , P, F, L, minMax) /* bestimme die Startlösung zeilenzahl ← ErmittleZeilenzahl(L) /* da oft verwendet, speichere die Zeilenzahl der Matrix L A ← 0 /* initialisiere die Matrix A zur Beibehaltung maximierter Prozessstückzahlen xa , . . . j ← 0 /* . . . die im vorherigen Iterationsschritt ergänzte Zeile j und . . . a ← 0 /* . . . den Index a der jeweils zu maximierenden Prozessstückzahl xa solange ¬MaxFolge.IstLeer() tue /* wiederhole, solange mindestens eine Prozessstückzahl xa entsprechend der MaxFolge zu maximieren ist wenn a 0 dann /* wurde vorher eine Prozessstückzahl xa maximiert, . . . j ← j + 1 /* . . . ergänze fortlaufend in einer neuen Zeile j . . . A[ j, a ] ← 1 /* . . . der Matrix A an Spalte a einen Eintrag gleich eins a ← MaxFolge.EntferneErstes() /* betrachte die aktuelle Prozessstückzahl xa x′ ← x /* speichere die vorherige Lösung x /* bestimme eine Lösung x, welche die Prozessstückzahl xa maximiert, wobei die Werte aller vorherigen Iterationsschritte beibehalten werden müssen © x ← arg max xa : x 0 ∧ /* aktuelle Prozessstückzahl xa A x = A x′ ∧ /* Beibehaltung aller vorher maximierten Prozessstückzahlen xa P x = P x′ ∧ F x = 0 ∧ /* Beibehaltung aller Produktstückzahlen y b bzw. Flusserhalt ∀i ∈ {1, . . . , zeilenzahl } /* für alle Zeilen i des Vektors L x gilt . . . ª L[i,∗] x minMax[i ] /* . . . jeweils die minimale obere Schranke */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ liefere x zurück Funktion InitOptAuslastung(yplan , P, F, L, minMax) zeilenzahl ← ErmittleZeilenzahl(L) /* speichere die Zeilenzahl der Matrix L x ← 0 /* verwende den Nullvektor als Startlösung /* bestimme eine Lösung x, welche den geplanten Produktstückzahlen y plan,b entspricht und die minimalen oberen Schranken des Vektors L x berücksichtigt © P x ← arg max 1⊤ P x : x 0 ∧ /* 1⊤ P x = nb =1 y b P x yplan ∧ /* Maximierung jeder Produktstückzahl y b bis zum Wert y plan,b F x = 0 ∧ /* Bedingung in Bezug auf den Flusserhalt ∀i ∈ {1, . . . , zeilenzahl } /* für alle Zeilen i des Vektors L x gilt . . . ª L[i,∗] x minMax[i ] /* . . . jeweils die minimale obere Schranke liefere x zurück */ */ */ */ */ */ */ */ Algorithmus A.2.4: Optimierung der Auslastung L x (alle Komponenten). A33 Abkürzungsverzeichnis AIMMS AMER AML AMPL APAC APMonitor APO ASCEND AURELIE BAZ BE BPM BPMN BPR CPU CSCMP DES DIN EMEA EPC ERP FIFO GA GAMS GNU HANA IBP IBM IEC IEEE ISO LIFO LINDO LINGO LP LPL Advanced Interactive Multidimensional Modeling System Nord- und Südamerika (Wirtschaftsraum) Algebraic Modeling Language A Mathematical Programming Language Asien-Pazifik (Wirtschaftsraum) Advanced Process Monitor Advanced Planning and Optimization Advanced System for Computations in Engineering Design Advanced Utilization of Resources and Locations for Industrial Engineering Bearbeitungszentrum bewegliches Element Business Process Modeling Business Process Model and Notation Business Process Reengineering Central Processing Unit Council of Supply Chain Management Professionals diskrete ereignisorientierte Simulation Deutsches Institut für Normung e. V. Europa, Naher Osten (engl. Middle East) und Afrika (Wirtschaftsraum) Event-Driven Process Chain Enterprise Resource Planning First In, First Out genetischer Algorithmus General Algebraic Modeling System GNU’s Not Unix, Betriebssystem und freie Software Entwicklungsplattform von SAP auf Basis einer In-Memory-Datenbank (ehemals High Performance Analytic Appliance) Integrated Business Planning International Business Machines International Electrotechnical Commission Institute of Electrical and Electronics Engineers International Organization for Standardization Last In, First Out Linear, Interactive, and Discrete Optimizer AML zur Nutzung mit LINDO lineare Programmierung Linear Programming Language xxi Abkürzungsverzeichnis MILP MAE MATLAB MINOPT MPL MPSX/370 NOP OASIS OMG OMNI OPL OSL PCOMP PDS PEK PG PP/DS PPM PRD PS PSO PZ Pyomo RAM RCP REFA SAMPL SAP SCM SNP SO TEK TOMLAB TP/VS UML AD VBA VDI VSM WS-BPEL XML YAWL xxii Mixed-Integer Linear Programming Maschine, Anlage oder Einrichtung Matrix Laboratory, Software zur Lösung mathematischer Probleme Mixed-Integer Nonlinear Optimizer Mathematical Programming Language Mathematical Programming System Extended/370 Eingabeformat für nichtlineare Optimierungsprobleme Organization for the Advancement of Structured Information Standards Object Management Group AML mit Funktionen zur Verwaltung von Modellen Optimization Programming Language Optimization Subroutine Library AML für nichtlineare Programme mit automatischer Differenzierung Production Data Structure Personalkapazität Produktgruppe Production Planning and Detailed Scheduling Production Process Model Produkt Prozessschritt Partikelschwarmoptimierung Planungsziel Python-Softwarepakete zur Erstellung von Optimierungsmodellen Random Access Memory Rich Client Platform Verband für Arbeitsgestaltung, Betriebsorganisation und Unternehmensentwicklung Stochastic AMPL Anbieter betriebswirtschaftlicher Standardsoftware Supply Chain Management Supply Network Planning simulationsbasierte Optimierung technische Kapazität AML zur Optimierung in MATLAB Transportation Planning and Vehicle Scheduling Unified Modeling Language Activity Diagram Visual Basic for Applications Verein Deutscher Ingenieure e. V. Value Stream Mapping Web Services Business Process Execution Language Extensible Markup Language Yet Another Workflow Language Symbolverzeichnis Symbolklassen und Operatoren t, T x X X [i ] |X | x∈X x∉X ⌈x⌉ x′ x∗ x (i ) X P x Qi ∈I i i ∈I xi f (x, . . . , z) f : X →Y, x 7→ y FN(x, . . . , z) A (x, . . . , z) {x ∈ X : A (x)} ∀x ∈ X A (x) ∃x ∈ X A (x) x←y x y ¬A A ∧B A ∨B A →B A ↔B A ⇔B X =Y X 6= Y X ⊆Y X ⊂Y X ∩Y X ∪Y fix vorgegebene Zeitgröße (Konstante im Kontext dieser Arbeit) Skalar oder Element einer Menge Menge {x 1 , x 2 , . . . }, Tupel (x 1 , x 2 , . . . ) oder (logische) Aussage Glied einer Folge X mit Index i ∈ N (auch Komponente genannt) Kardinalität der Menge X (auch Mächtigkeit genannt) x ist Element der Menge X x ist kein Element der Menge X kleinste natürliche Zahl größer als oder gleich x Vergleichswert oder weiterer Wert neben x (aus derselben Menge) optimaler Wert von x (gemäß gegebener Zielfunktion) Wert von x im Rekursionsschritt bzw. Iterationsschritt i ∈ N0 Zahlenkörper (Menge) Summe (Addition) der Zahlen xi mit Index i ∈ I Produkt (Multiplikation) der Zahlen xi mit Index i ∈ I Funktion f mit den Argumenten x, . . . , z Funktion f als Abbildung von x ∈ X auf y ∈ Y (insbesondere algorithmische) Funktion FN, siehe f (x, . . . , z) (logische) Aussageform A mit den Variablen x, . . . , z Menge aller x ∈ X , für welche A (x) wahr ist (X entfällt, falls eindeutig) Allquantor (für alle x ∈ X ist A (x) wahr) Existenzquantor (für mindestens ein x ∈ X ist A (x) wahr) (algorithmische) Zuweisung des Wertes von y zu x Ungleichheit der Werte von x und y (verwendet in Algorithmen) Negation (A ist nicht wahr) Konjunktion (sowohl A als auch B sind wahr) Disjunktion (A oder B ist wahr) Konditional (wenn A wahr ist, dann ist B wahr) Bikonditional (genau dann, wenn A wahr ist, ist B wahr) Äquivalenz der Aussagen A und B Gleichheit der Mengen X und Y, ∀x (x ∈ X ↔ x ∈ Y ) Ungleichheit der Mengen X und Y, ∃x (x ∈ X ∧ x ∉ Y ) ∨ (x ∉ X ∧ x ∈ Y ) X ist eine Teilmenge von Y, ∀x ∈ X (x ∈ Y ) X ist eine echte Teilmenge von Y, X ⊆ Y ∧ X 6= Y Schnittmenge von X und Y, {x : x ∈ X ∧ x ∈ Y } Vereinigung der Mengen X und Y, {x : x ∈ X ∨ x ∈ Y } xxiii Symbolverzeichnis . X ∪Y X \Y X ×Y P (X ) Vereinigung disjunkter Mengen X und Y, X ∪Y mit ¬∃x (x ∈ X ∧ x ∈ Y ) Differenz der Mengen X und Y, {x : x ∈ X ∧ x ∉ Y } kartesisches Produkt der Mengen X und Y, {(x, y) : x ∈ X ∧ y ∈ Y } Potenzmenge der Menge X , {Y : Y ⊆ X } max X , min X größtes bzw. kleinstes Element (Maximum bzw. Minimum) der Menge X max{ f (x) : . . .}, Maximum bzw. Minimum der Funktion f (x) für alle x einer gegebenen, min { f (x) : . . .} durch Bedingungen beschränkten Menge (entfällt, falls eindeutig) arg max{. . .}, arg min {. . .} x Stelle, an welcher eine Funktion gemäß jeweils vorgegebenen Bedingungen ihr Maximum bzw. Minimum annimmt, siehe max bzw. min{ f (x) : . . .}   x1  ..  Spaltenvektor  . , x ∈ Rm xm x x y y X Ungleichheit der Komponenten von x, y ∈ Rm , ∀i ∈ {1, . . . , m} xi s. o., ∀i ∈ {1, . . . , m} xi y i   x 11 · · · x 1n  . ..  m×n .. Matrix  .. . . , X ∈ R yi xm1 · · · xmn X⊤  · · · xm1 ..  ⊤ n×m .. , insbesondere . . , X ∈ R x 1n · · · xmn  ⊤   x1 x1  ..   ..  Zeilenvektor [x 1 . . . xn ] =  .  und Spaltenvektor  .  = [x 1 . . . xm ]⊤  x 11  .. transponierte Matrix  . xn X[i , j ] X[i ,∗] X[∗, j ] Komponente der Matrix X an Zeile i ∈ N und Spalte j ∈ N, X[i, j ] ∈ R Vektor aller Komponenten der Matrix X an Zeile i ∈ N, X[i,∗] ∈ R1×n Vektor aller Komponenten der Matrix X an Spalte j ∈ N, X[∗, j ] ∈ Rm×1 Standardsymbole () ∅ ∆ 0 0 1 xxiv xm leeres Tupel leere Menge, äquivalent zu {} Differenzoperator Schluss eines Beweises Nullvektor [0 . . . 0]⊤   0 ··· 0 . . . Nullmatrix  .. . . ..  0 ··· 0 Einsvektor [1 . . . 1]⊤ Symbolverzeichnis I N N0 R R 0 R 0 Rm Rm0 Rm×n [a, b ] [a, b) (a, b ] (a, b)   1 0 ··· 0 . . ..   . . 0 1 Einheitsmatrix  .. . . . .  . . 0 . 0 ··· 0 1 Menge der natürlichen Zahlen größer als 0, {1, 2, . . .} Menge der natürlichen Zahlen größer als oder gleich 0, {0, 1, . . .} Menge der reellen Zahlen Menge der nichtnegativen reellen Zahlen, {x ∈ R : x 0} Menge der positiven reellen Zahlen, {x ∈ R : x 0} Menge der Vektoren im reellen Koordinatenraum mit m Dimensionen Menge der Vektoren im nichtnegativen reellen Koordinatenraum mit m Dimensionen, {x ∈ Rm : x 0} Menge der Matrizen mit reellen Komponenten (auch Einträge oder Elemente genannt), angeordnet in m Zeilen und n Spalten reelles Intervall {x ∈ R : a x b } s. o., {x ∈ R : a x b } s. o., {x ∈ R : a x b } s. o., {x ∈ R : a x b } Eigene Symbole (lateinisch) Hinweis: Vektoren und Matrizen werden in den Algorithmen in dieser Arbeit als zweidimensionale Felder mit dynamischer Größe, d. h. mit einer theoretisch unbegrenzten Zahl an Zeilen und Spalten, verwendet. Das heißt, grundsätzlich ist jeder Komponente an einer Zeile und einer Spalte größer als oder gleich eins ein Wert zugeordnet. Wenn im Verlauf eines Algorithmus einer Komponente an einer gegebenen Zeile und Spalte kein Wert ungleich null zugewiesen wurde, wird ein Wert von null vorausgesetzt. a, a ′ A AL(c 1 , c 2 ) b, b ′ b B max c c∗ Index zur Bezeichnung der aktuellen bzw. nächsten Prozessstückzahl xa bzw. xa ′ , je nach vorliegendem Anwendungsfall konkretisiert, a, a ′ ∈ {1, . . . , m}, ggf. mit Index 1, 2 usw., S. 138 Matrix reeller Koeffizienten eines Vektors x, je nach vorliegendem Anwendungsfall konkretisiert, ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} A[i, a ] ∈ R, S. 173 alternative Verknüpfung zweier Operanden c 1/2 ∈ VMg(P ), AL(c 1 , c 2 ) ∈ VMg(P ), siehe Gleichung (2.1), S. 16 Index zur Bezeichnung eines gegebenen bzw. übergeordneten Produkts, b, b ′ ∈ {1, . . . , n}, ggf. mit Index 1, 2 usw., S. 117 Vektor reeller oberer Schranken, A x b, ∀i ∈ {1, 2, . . .} b[i, 1] ∈ R, S. 173 Menge der Indizes aller Produkte b, deren Stückzahl y b im aktuellen Iterationsschritt maximal ist, B max ⊆ {1, . . . , n}, S. 179 kontextabhängig Operand und/oder Ergebnis einer Verknüpfung, c ∈ VMg(P ), oder konstanter, nichtnegativer reeller Faktor, c ∈ R 0 , ggf. mit Index 1, 2 usw., siehe Gleichung (2.1), S. 16 Element maximaler Ordnung einer Teilmenge C, c∗ ∈ C, S. 18 xxv Symbolverzeichnis C c DAL,b , D SL,b dG− (v), dG+ (v) d+ max e, e ′ E E WS,b F f (n) f (x) G g (n) G WS,b {G WS,b } i, i ′, j, j ′, k I min L, L Invest m, n M(X ) N N(X) o ( f (n)) O( f (n)) p P P xxvi Teilmenge einer Verknüpfungsmenge, beschreibt einen geplanten Ablauf zur Fertigung und Montage, C ⊂ VMg(P ), z. B. {PS 1, PS 2, PS 3, AL(PS 1, PS 2), SQ(AL(PS 1, PS 2), PS 3)}, S. 18 Vektor reeller Koeffizienten eines Vektors x zur Definition einer linearen Zielfunktion f (x), ∀a ∈ {1, . . . , m} c[a, 1] ∈ R, S. 173 Menge aller alternativen bzw. selektiven Flusspunkte von G WS,b , DAL,b bzw. D SL,b ⊂ V WS,b , S. 117 Eingangsgrad bzw. Ausgangsgrad des Knotens v, dG− (v), dG+ (v) ∈ N0 , S. 112 maximaler Ausgangsgrad aller Flusspunkte DAL,b und D SL,b , S. 135 aktuelle bzw. nächste Kante, e, e ′ ∈ E WS,b , ggf. mit Index 1, 2 usw., S. 119 Menge der Kanten (engl. edge, Plural edges) von G, S. 110 Kantenmenge von G WS,b , E WS,b ⊂ {(v, j, v ′, i ′ ) : v, v ′ ∈ V WS,b ∧ j, i ′ ∈ N}, S. 117 Flussmatrix, Matrix eines mathematischen Modells (P, S, F, L, L Invest ), ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} F[i, a ] ∈ [−1, 1], S. 138 asymptotische, obere oder untere Schranke für Laufzeit oder Speicherplatzbedarf, abhängig von den Eingabedaten n, f (n) ∈ R 0 , S. 114 lineare Zielfunktion für einen Vektor x, f (x) = c⊤ x, f (x) ∈ R, S. 172 endlicher Graph mit Knoten V und Kanten E, G = (V, E ), S. 110 Funktion zur Beschreibung von Laufzeit oder Speicherplatzbedarf, abhängig von den Eingabedaten n, g (n) ∈ R 0 , S. 114 Wertstromgraph des Produkts b, G WS,b = (V WS,b , E WS,b ), S. 117 grafisches Modell eines Systems von Wertströmen, bezeichnet die Menge aller Wertstromgraphen G WS,b , Abkürzung für {G WS,b : b ∈ {1, . . . , n}}, S. 117 natürliche Zahl, jeweils verwendet mit kontextabhängiger Bedeutung, insbesondere als Index, i, i ′, j, j ′, k ∈ N oder N0 , ggf. mit Index 1, 2 usw., S. 17 Menge der Zeilen i, an denen der Wert des Vektors L x im aktuellen Iterationsschritt minimal ist, I min ⊆ {1, . . . , N(L)}, S. 192 Auslastungsmatrix bzw. Investitionsmatrix, jeweils Matrizen eines mathematischen Modells (P, S, F, L, L Invest ), ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} L[i, a ], L Invest [i, a ] ∈ R 0 , S. 138 obere Schranke eines Intervalls natürlicher Zahlen, je nach vorliegendem Anwendungsfall mit kontextabhängiger Bedeutung, m, n ∈ N, S. 20 Menge der Glieder einer Folge X = (x 1 , x 2 , . . . ), M(X ) = {x 1 , x 2 , . . . }, S. 213 Stufe in der Strukturstückliste eines Produkts b, N ∈ {1, . . . , n}, S. 140 größte Zeile einer Matrix X ungleich dem Nullvektor, N(X) ∈ N0 , S. 192 Komplexitätsklasse, {g (n) : ∀c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) c f (n)}, S. 115 s. o., {g (n) : ∃c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) c f (n)}, S. 114 Index zur Bezeichnung des Referenzprodukts im aktuellen Iterationsschritt, beliebig ausgewählt unter allen Produkten b, deren Stückzahl y b nicht maximal ist, p ∈ {1, . . . , n}, S. 180 Menge der Prozessschritte eines Produkts, z. B. {PS 1, PS 2, . . .}, S. 16 Prozessmatrix, Matrix eines mathematischen Modells (P, S, F, L, L Invest ), ∀b ∈ {1, . . . , n}, a ∈ {1, . . . , m} P[b, a ] ∈ {0, 1}, S. 138 Symbolverzeichnis q q′ Qaus,bv {Qaus,bv } Qein,bv {Qein,bv } r R S SL(c 1 , c 2 , q) SQ(c 1 , c 2 ) TBM t eff t eff,i t eff,iα t opt U u r (x) u r (y) kontextabhängig fixe Quote einer selektiven Verknüpfung, q ∈ (0, 1), oder Koeffizient einer Prozessstückzahl xa , q ∈ [0, 1], ggf. mit Index 1, 2 usw., siehe Gleichung (2.2), S. 16 kontextabhängig resultierende Quote verketteter selektiver Verknüpfungen, q ′ ∈ (0, 1), oder Koeffizient einer Prozessstückzahl xa ′ , q ′ ∈ [0, 1], ggf. mit Index 1, 2 usw., siehe Gleichung (2.8), S. 22 Ausgangsmatrix des Knotens v im Wertstromgraphen G WS,b des Produkts b, Hilfsmatrix zur Transformation eines grafischen Modells {G WS,b }, ∀ j ∈ {1, 2, . . .}, a ∈ {1, . . . , m} Qaus,bv [ j, a ] ∈ [0, 1], S. 142 Menge der Ausgangsmatrizen Qaus,bv für alle Produkte b und alle alternativen Flusspunkte DAL,b in Wertstromgraphen G WS,b , Abkürzung für {Qaus,bv : b ∈ {1, . . . , n} ∧ v ∈ DAL,b }, S. 143 Eingangsmatrix des Knotens v im Wertstromgraphen G WS,b des Produkts b, Hilfsmatrix zur Transformation eines grafischen Modells {G WS,b }, ∀i ∈ {1, 2, . . .}, a ∈ {1, . . . , m} Qein,bv [i, a ] ∈ [0, 1], S. 142 Menge der Eingangsmatrizen Qein,bv für alle Produkte b und alle Knoten V WS,b in Wertstromgraphen G WS,b außer Quellen σb und Senken τb , Abkürzung für {Qein,bv : b ∈ {1, . . . , n} ∧ v ∈ V WS,b \ {σb , τb }}, S. 143 Maschine, Anlage oder Einrichtung, z. B. Bearbeitungszentrum, r ∈ R, ggf. mit Index 1, 2 usw., S. 35 Menge aller verfügbaren Maschinen, Anlagen und Einrichtungen, z. B. {‘Bearbeitungszentrum’, ‘Drehmaschine’, . . .}, S. 35 Produktstrukturmatrix, Matrix eines mathematischen Modells (P, S, F, L, L Invest ), ∀b, b ′ ∈ {1, . . . , n} S[b, b ′ ] ∈ R 0 , S. 138 selektive Verknüpfung zweier Operanden c 1/2 ∈ VMg(P ) mit einer fixen Quote q ∈ (0, 1), SL(c 1 , c 2 , q) ∈ VMg(P ), siehe Gleichung (2.2), S. 16 sequenzielle Verknüpfung zweier Operanden c 1/2 ∈ VMg(P ), SQ(c 1 , c 2 ) ∈ VMg(P ), siehe Gleichung (2.1), S. 16 Betriebsmittelzeit, TBM ∈ R 0 , ggf. mit Index 1, 2 usw., S. 35 effektive, d. h. im langfristigen Mittel erreichbare Taktzeit, t eff ∈ R 0 , siehe Gleichung (2.17), S. 35 effektive Taktzeit, kontextabhängig mit Index i ∈ N eines sequenziell verknüpften oder fortlaufend indizierten Prozessschritts, t eff,i ∈ R 0 , S. 42 effektive Taktzeit mit zweiteiligem Index i /α, i ∈ N, α ∈ {‘A’, ‘B’, . . .}, bezeichnet einen sequenziell, alternativ und/oder selektiv verknüpften Prozessschritt, t eff,iα ∈ R 0 , S. 45 optimale, d. h. im besten Fall erreichbare Taktzeit, t opt ∈ R 0 , S. 33 Vereinigungsmatrix, Hilfsmatrix zur Transformation eines grafischen Modells {G WS,b }, ∀a ′, a ∈ {1, . . . , m} U[a ′, a ] ∈ [−1, 1], S. 141 Auslastung der Maschine, Anlage oder Einrichtung r für einen gegebenen Vektor x von Prozessstückzahlen, u r (x) ∈ R 0 , S. 40 Auslastung der Maschine, Anlage oder Einrichtung r für eine gegebene Produktstückzahl y, u r (y) ∈ R 0 , siehe Gleichung (2.20), S. 37 xxvii Symbolverzeichnis v, v ′ V VMg(P ) VMg(P, i ) V WS,b x, x′ x∗ xα, xα′ , xa , xa′ x∗α y, y ′, y b , y b′ y, y ′ y max , y max,b ymax yplan y plan,b aktueller bzw. nächster Knoten, kontextabhängig v, v ′ ∈ V oder V WS,b , ggf. mit Index 1, 2 usw., S. 111 Menge der Knoten (engl. vertex, Plural vertices) von G, S. 110 Verknüpfungsmenge von P, z. B. {PS 1, PS 2, PS 3, . . . , ∅, SQ(PS 1, PS 2), AL(PS 1, PS 2), SL(PS 1, PS 2, q), . . . , SQ(SQ(PS 1, PS 2), PS 3), . . . : q ∈ (0, 1)}, siehe Gleichung (2.4), S. 18 Verknüpfungsmenge von P einer Ordnung i ∈ N0 , z. B. VMg(P, 0) = {PS 1, PS 2, . . . , ∅}, VMg(P, 1) = {SQ(PS 1, PS 2), AL(PS 1, PS 2), SL(PS 1, PS 2, q), . . . : q ∈ (0, 1)} usw., siehe Gleichung (2.3a), S. 17 Knotenmenge von G WS,b , V WS,b = R ∪ DAL,b ∪ D SL,b ∪ {σb , τb }, S. 117 Vektor [xα1 . . . xαm ]⊤ oder [x 1 . . . xm ]⊤ der Prozessstückzahlen xα bzw. xa mit kontextabhängigem Index, ggf. mit Akzent, x, x′ ∈ Rm0 , S. 40 ∗ ⊤ Vektor [x∗α1 . . . x∗αm ]⊤ oder [x∗1 . . . xm ] mit kontextabhängigem Index, optimale Lösung gemäß gegebenem Planungsziel, x∗ ∈ Rm0 , S. 49 Prozessstückzahl mit Index α ∈ {‘A’, ‘B’, . . .} einer alternativen Verknüpfung bzw. fortlaufendem Index a ∈ {1, . . . , m}, xα, xα′ , xa , xa′ ∈ R 0 , S. 44 optimale Teillösung gemäß gegebenem Planungsziel, x∗α ∈ R 0 , S. 46 Produktstückzahl, y, y ′, y b , y b′ ∈ R 0 , ggf. näher bezeichnet durch Index eines Produkts b ∈ {1, . . . , n}, S. 37 Vektor [y 1 . . . yn ]⊤ der Stückzahlen y b aller gegebenen Produkte b, ggf. mit Akzent, y, y ′ ∈ Rn 0 , S. 139 maximale Produktstückzahl (technische Kapazität), y max ∈ R 0 , ggf. mit Index eines Produkts b ∈ {1, . . . , n}, siehe Gleichung (2.18), S. 36 Vektor [y max,1 . . . y max,n ]⊤ der maximalen Produktstückzahlen y max,b (technische Kapazitäten), ymax ∈ Rn 0 , S. 176 Vektor [y plan,1 . . . y plan,n ]⊤ der geplanten Produktstückzahlen y plan,b , je nach Planungsziel ggf. vorläufig festgelegt, yplan ∈ Rn 0 , S. 175 geplante Stückzahl des Produkts b ∈ {1, . . . , n}, y plan,b ∈ R 0 , S. 175 Eigene Symbole (griechisch) α ε ηplan Θ( f (n)) σ σb , τb ω( f (n)) Ω( f (n)) xxviii Index zur Bezeichnung der Operanden von ggf. verketteten alternativen und/oder selektiven Verknüpfungen, α ∈ {‘A’, ‘B’, . . .}, S. 44 beliebig kleine Zahl größer als null, verwendet als Schranke, ε ∈ R 0 , S. 186 Plan-Nutzungsgrad, festgelegt als Zielvorgabe, ηplan ∈ (0, 1], S. 34 Komplexitätsklasse, O( f (n)) ∩ Ω( f (n)), S. 115 allgemeiner, zuerst zu besuchender Knoten, σ ∈ V, S. 113 Quelle bzw. Senke, kennzeichnen jeweils als spezifische Knoten Beginn bzw. Ende eines Wertstroms, σb , τb ∈ V WS,b , S. 117 Komplexitätsklasse, {g (n) : ∀c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) c f (n)}, S. 115 s. o., {g (n) : ∃c 0 ∃n 0 ∈ N0 ∀n n 0 g (n) c f (n)}, S. 115 Index Ablauf Ablaufabschnitt, 15, 125 geplanter, 14, 15 Adjazenzliste, 112 Adjazenzmatrix, 112 agile Softwareentwicklung, 64 algebraische Modellierungssprache, 79 alternative Verknüpfung, 14–16, 19–20, 67–68 Beispiele, 44–55 alternativer Flusspunkt, 116, 121–125 AML, siehe algebraische Modellierungssprache analytisches Modell, 79, 84, 93 Anforderungen, 64–73 Basisanforderungen, 65 essenzielle, 64 Formulierung, 66–73 Kategorisierung möglicher, 64–65 Leistungsanforderungen, 65 optionale, 64 wünschenswerte, 64 Anwender, 67, 76, 225 APO, siehe SAP Advanced Planning and Optimization Arbeitsgang, Arbeitsvorgang, siehe Vorgang Arbeitsmittel, 14 Arbeitsperson, 14, 15, 33 Arbeitsplanung, 4, 231 Arbeitsteilung, 76 Artifacts, Kategorie von Elementen, 102 AspenTech aspenONE Supply Chain Management, 90 Aufbau der Arbeit, 6–8 AURELIE, 2, 4, 6–8, 162–170, 216–226 Erfüllungsgrad der Anforderungen, 167–169, 220–223 Erreichen der vorgegebenen Entwicklungsziele, 170, 225–226 Funktionsübersicht und Benutzerführung, 162–166, 216–220 Modellparameter des Bereichs, 164–165 des Plans, 164 des Werks, 163–164 des Wertstroms, 165–166 Optimierung, Ergebnisse grafische Darstellung, 218–219 tabellarische Darstellung, 217–218 Weiterverarbeitung, 219–220 Optimierung, wesentliche Erweiterungen, 223–224 Ausblick, 230–231 Ausdrucksbaum, 24 Ausführungsstandards, 101 Ausgaben des Informationsflusses, 30–33 des Materialflusses, 28–29 Ausgang eines Knotens, 116, 119 Ausgangsgrad, 110, 112 maximaler, 116, 135, 136 Ausgangsmatrix, 138, 142–143 Ausgangssituation, 1–2 Auslastung, 11, 12, 30–33, 37, 40 Bedingung, 139, 143 Überlastung, 31–32, 37, 71 xxix Index Auslastungsmatrix, 137, 143 Austauschstandards, 101 Auswahl von Softwaretypen, 76–81 Automatisierung von Entscheidungen, 1, 3, 231 Erweiterung, 231 der Planung, 4–6, 227, 231 Basisanforderungen, 65 Bausteine des Informationsflusses, 86, 87 des Materialflusses, 86, 87 der Oberfläche, 86 BE, siehe bewegliches Element eines Simulationsmodells Bedingungen eines mathematischen Modells, 139–144 der Auslastung, 139, 143 des Flusserhalts, 139, 142–143 der Produktstruktur, 139, 140 der Verknüpfungstypen, 19–20 Beispiele für Verknüpfungen, 41–64 alternative, 44–55 selektive, 56–64 sequenzielle, 41–44 für Wertstromgraphen, 122–124 Beispielzahlen für Betriebsmittelzeiten, 36 für Produkte, Prozessschritte und Produktionsanlagen, 38 für Taktzeiten, 98 Betriebsmittel, 14, 34 Betriebsmittelzeit, 12, 33, 35–36 Nutzungsgrad, 11, 14, 33, 34–35 Plan-Nutzungsgrad, 33, 34–35, 164, 166 Nutzungszeit, 14–15, 34 bewegliches Element eines Simulationsmodells, 86, 87, 88 Beweisbarkeit, 176 Bewertung von Softwaretypen, 80–107 xxx Beziehungen zwischen Systemelementen, 69, 117, 137 Bosch Production System, 223 Bosch Rexroth AG, 2, 12, 13, 28, 230 Bosch-interne Regelung, 33, 34–35, 36 BPM, siehe Prozessmodellierung BPMN, siehe Business Process Model and Notation Breitensuche, 113, 115–116, A2–A4 Business Process Model and Notation, 69, 80, 101–107 Erfüllungsgrad der Anforderungen, 103–106 Ergebnis der Bewertung, 106–107 idealer Interpreter und Optimierer, 102 Kategorien von Elementen, 102 Artifacts, 102 Connecting Objects, 102, 104 Data, 102, 104 Flow Objects, 102 Swimlanes, 102 Objektorientierung, 103 Business Process Modeling, siehe Prozessmodellierung Bypass, 15 Connecting Objects, Kategorie von Elementen, 102, 104 Data, Kategorie von Elementen, 102, 104 Datenstrukturen Adjazenzliste, 112 Adjazenzmatrix, 112 InvestMenge, 153, A18 Inzidenzmatrix, 112 istMax, 182, A26 istMin, 196, A28 Kantenzug, 130, A11 linear verkettete Liste, 113 MaxFolge, 138, 144, A18 MengeUnbesuchterKanten, 130, A11 minMax, 193, 196, A28 Stapel, 113, 129, 151, A8, A15 Index Warteschlange, 113, A2 zeilenzahl, 196, 210, A28, A32 DES, siehe diskrete ereignisorientierte Simulation Diagnosestandards, 101 Digraph, 111 diskrete ereignisorientierte Simulation, 80, 84 Dokumentation, technische, A1–A33 dominierte Lösungen, 70, 71 Ebene eines Systems, 28, 66 Eclipse RCP, siehe Eclipse Rich Client Platform Eclipse Rich Client Platform, 162–163, 224 effektive Taktzeit, 33, 35 Effizienz in der Planung, 2, 4, 65, 68–69, 229–230 Eigenfertigung, siehe Eigenproduktion Eigenproduktion, 4, 25, 30, 72, 176 Eindeutigkeit der optimalen Lösung, 70, 71 der Priorisierung, 147–148 Einführung, 1–8 Eingaben des Informationsflusses, 30–33 des Materialflusses, 28–29 Eingang eines Knotens, 116, 119 Eingangsgrad, 110, 112 Eingangsmatrix, 138, 142–143 Einordnung der Dissertation, 3–4 Einzelfertigung, 3, 10, 12–13 Element bewegliches, eines Simulationsmodells, 86, 87, 88 eines grafischen Modells, 119–125 Kombination, 125 eines Systems, 28, 66 Beziehungen, 69, 117, 137 einer Verknüpfungsmenge, 16–18 maximaler Ordnung, 18 Ellipsoidmethode, 55, 174 endlicher Graph, 110, 111 Engpass, 6, 218–220, 227, 230, 231 Enterprise Resource Planning, 91 Entscheidungen automatisierte, 1, 3, 231 Erweiterung, 231 Stand der Investitionsplanung, 223 Entwicklungsbedarf, 107–108 EPC, siehe Event-Driven Process Chain Erfolgsfaktoren, 162, 216 Ergebnis einer Verknüpfung, 14, 16–18 ERP, siehe Enterprise Resource Planning Erweiterung automatisierter Entscheidungen, 231 der Kalkulation, 40–64 alternative Verknüpfung, 44–55 selektive Verknüpfung, 56–64 sequenzielle Verknüpfung, 41–44 Erzeugnis, 29 Erzeugnisgebiet, 76 essenzielle Anforderungen, 64 Event-Driven Process Chain, 101 evolutionäre Algorithmen, 91 Extensible Markup Language, 68, 104 Fertigungsverfahren, 15 FICO Xpress, 99 FIFO, siehe First In, First Out First In, First Out, 77, 113 fixe Quote selektiver Verknüpfungen, 14, 20 Fixkosten, 11 Flexibilität in der Planung, 2, 4, 65, 69, 229–230 Flow Objects, Kategorie von Elementen, 102 Fluss Flusserhalt, 139, 142–143 Flussmatrix, 137, 143 Flusspunkt, alternativer, 116, 121–125 Flusspunkt, selektiver, 116, 121–125 maximaler, 110 Folge, siehe MaxFolge, Datenstruktur Ford-Fulkerson-Algorithmus, 110 Formalismus zur Systembeschreibung, siehe Struktur eines Systems xxxi Index formularbasierte Modellierung, 68, 164 Formulierung der essenziellen Anforderungen, 66–73 Forschungsfragen, 6–8 Forschungslücke, 107–108, 229 GA, siehe genetischer Algorithmus genetischer Algorithmus, 72, 85, 87–89 geplante Produktstückzahl, 12, 30, 32, 37, 172 geplante Stillstände, 34 geplanter Ablauf, 14, 15 gerichteter Graph, 111 Geschäftsbereich, 34, 36 Geschäftsleitung, 35, 36, 65 Geschäftsprozessmodellierung, siehe Prozessmodellierung grafische Lösung alternative Verknüpfung, 52 selektive Verknüpfung, 62–64 grafische Modellierung, 4–5, 68–69, 116–125 grafische Standards, 69, 101, 108 grafisches Modell, 66, 68–69, 116, 117 Elemente, 119–125 Kombination, 125 Struktur, 117–119 Kanten, 116, 117–119 Knoten, 116, 117 Transformation, 4–5, 137–161, A18–A24 Traversierung der Kanten, 127–135, A8–A10 der Knoten, 150–160, A15–A17 Validierung, 125–137, A11–A14 Wertstromgraphen, 116, 117 Graph, 110 endlicher, 110, 111 Kanten, 110, 111–112 Kantenzug, 113 Knoten, 110 Eingangsgrad und Ausgangsgrad, 110, 112 Quellen und Senken, 112 xxxii maximaler Fluss, 110 Suche, 112–114 Breitensuche, 113, 115–116, A2–A4 Tiefensuche, 113–114, 115–116, A5–A7 iterative, 114 Traversierung, 112 Typen, 111 Digraph, 111 gerichteter, 111 Hypergraph, 111 mit Mehrfachkanten, 111 Multigraph, 111 ungerichteter, 111 Wertstromgraph, 116, 117 Weg, 110, 113, 116 kürzester, 110 Graphentheorie, siehe Graph Grenzen der Beweisbarkeit, 176 Größenordnungen von Taktzeiten, 98 Grundlagen der Kalkulation, 33–40 Voraussetzungen, 36 Prüfung, 37–40 Gruppe in einer Stückliste, 28–29 HANA-Datenbank, 92 Heuristik, 54–55, 72, 85, 91 Hill Climbing, 72 Hoare-Kalkül, 176 Hypergraph, 111 IBM ILOG CPLEX, 97, 99 IBP, siehe SAP Integrated Business Planning Implikationen, 229–230 für die Forschung, 229 für die Praxis, 229–230 Indexnotation, 44 Individualsoftware, 75 Informationsfluss, 25, 30–33, 119 Eingaben und Ausgaben, 30–33 inhaltliches Minimalprinzip, 69 Innere-Punkte-Verfahren, 55, 174 Integration der Planung, 219, 230–231 Index Intelligenz, künstliche, 231 Interpretation der Lösung alternative Verknüpfung, 48–49 selektive Verknüpfung, 59–60 Investitionen, 4, 12, 30–32, 37 Investitionsmatrix, 137, 143–144 Planungsfunktion, 4, 220 Entscheidungsstand, 223 InvestMenge, Datenstruktur, 153, A18 Inzidenzmatrix, 112 istMax, Datenstruktur, 182, A26 istMin, Datenstruktur, 196, A28 iterative Tiefensuche, 114 Java Platform Standard Edition, 68, 162, 216, A1 JDA Solutions, 90 Kalkulation Erweiterung, 40–64 alternative Verknüpfung, 44–55 selektive Verknüpfung, 56–64 sequenzielle Verknüpfung, 41–44 Grundlagen, 33–40 Voraussetzungen, 36 Prüfung, 37–40 Kanten in Graphen, 110, 111–112 in Wertstromgraphen, 116, 117–119 Vereinigung, 118–119 Kantenzug in einem Graphen, 113 Kantenzug, Datenstruktur, 130, A11 Kapazität, 3, 10–11 Personalkapazität, 3, 10–11, 230 technische, 3, 10–11, 30–31, 33, 36 Planungsfunktion, 4 Kategorisierung möglicher Anforderungen, 64–65 Kernalgorithmen grafische Modellierung und Modelltransformation Transformation, 4–5, 137–161, A18–A24 Traversierung der Kanten, 127–135, A8–A10 der Knoten, 150–160, A15–A17 Validierung, 125–137, A11–A14 mathematische Optimierung der Auslastung, 204–215, A32–A33 der Investitionen, 189–204, A28–A31 der Kapazitäten, 176–189, A26–A27 Klassen mathematischer Optimierung, 172–173 Knoten in Graphen, 110 Eingangsgrad und Ausgangsgrad, 110, 112 Quellen und Senken, 112 Knoten in Wertstromgraphen, 116, 117 Eingang und Ausgang, 116, 119 Flusspunkte, alternative, 116, 121–125 Flusspunkte, selektive, 116, 121–125 Quellen und Senken, 117, 119–120 Ressourcen, 120–121 Koeffizient einer Kostenfunktion, 94 Schwierigkeit der Festlegung, 96–97 einer linearen Nebenbedingung, 172, 173, 204 Zielfunktion, 172, 173 einer Prozessstückzahl, 137, 138 Kombination der Modellelemente, 125 Komplexität von Algorithmen, 114–116 Klassen, 114–115 Laufzeit, 114 Speicherplatzbedarf, 114 in der Serienfertigung, 1–2, 9, 13 Komplexitätstheorie, siehe Komplexität von Algorithmen Komponente eines Produkts, 28–29 einer Software Modellierer, 66, 229 Optimierer, 66, 70, 226, 229 Kontext des Problems, 10–13 konvexe Optimierung, 172–173 lineare Optimierung, 55, 72, 172–175 xxxiii Index Nebenbedingungen, 30, 54, 73, 172–174 Variablen, 19, 68, 138–139, 172–174 Zielfunktion, 30, 172–174 Korrektheit, 175–176 Beweisbarkeit, 176 partielle, 175–176 Schleifeninvariante, 175, 176 wp-Kalkül, 176 totale, 175, 176 Hoare-Kalkül, 176 Schleifenvariante, 175, 176 Kosten, 11, 32, 92, 191 fixe, 11 Funktion, 93 Schwierigkeit der Festlegung der Koeffizienten, 96–97 variable, 11 künstliche Intelligenz, 231 kürzester Weg in einem Graphen, 110 Kunde, 24, 29, 81, 90, 91 Kundennachfrage, 29, 65 Volatilität, 65 Kurzeinführung zur Graphentheorie, 110–114 zur Komplexität von Algorithmen, 114–116 zur Korrektheit, 175–176 zur linearen Optimierung, 172–175 Last In, First Out, 113 Laufzeit, 72–73, 114 lineare obere Schranke, 72–73 Leistungsanforderungen, 65 Leistungsverluste, 34 Leitung des Unternehmens, siehe Geschäftsleitung Lieferant, siehe Zulieferer Lieferkette, 90 LIFO, siehe Last In, First Out linear verkettete Liste, 113 lineare obere Laufzeitschranke, 72–73 lineare Optimierung, 55, 72, 172–175 lineare Programmierung, 91 xxxiv Lösungsverfahren, 90, 91, 100 Ellipsoidmethode, 55, 174 Innere-Punkte-Verfahren, 55, 174 Simplex-Verfahren, 55, 72, 174, 216 Maximierung und Minimierung, 174 Mixed-Integer Linear Programming, 91 Nebenbedingungen, 30, 54, 73, 172–174 numerische Stabilität, 95–97, 99, 174 Sicherstellung, 223 Problem, 173 Solver, 83, 94, 97, 99 FICO Xpress, 99 IBM ILOG CPLEX, 97, 99 lp_solve, 174, 216, 222 Microsoft Excel, 83 Standardform, 173 Variablen, 19, 68, 138–139, 172–174 Zielfunktion, 30, 172–174 lineare Programmierung, 91 lineares Wasserfallmodell, 64 Lösungsansatz, 4–6, 227 Lösungsschritte grafische Modellierung und Modelltransformation, 7–8, 109–170, A1–A24 mathematische Optimierung, 8, 171–226, A25–A33 Lösungsverfahren, 90, 91, 100 Ellipsoidmethode, 55, 174 Innere-Punkte-Verfahren, 55, 174 Simplex-Verfahren, 55, 72, 174, 216 Lösungsvorbereitung, siehe Systemanalyse LP, siehe lineare Programmierung lp_solve, 174, 216, 222 MAE, siehe Maschine, Anlage oder Einrichtung Maschine, Anlage oder Einrichtung, 11, 14 Materialfluss, 25, 28–29, 117, 118 Eingaben und Ausgaben, 28–29 Simulation, 80, 84–90 Index mathematische Optimierung, 4, 6, 172–173 Klassen, 172–173 konvexe Optimierung, 172–173 lineare Optimierung, 55, 72, 172–175 Nebenbedingungen, 30, 54, 73, 172–174 Variablen, 19, 68, 138–139, 172–174 Zielfunktion, 30, 172–174 mathematisches Modell, 66, 70, 137–144 Bedingungen, 139–144 Struktur, 138–148 Hilfsmatrizen, 138, 141–143 Matrizen und Folgen, 137–144 Variablen, 138–139 Matrix Ausgangsmatrix, 138, 142–143 Auslastungsmatrix, 137, 143 Eingangsmatrix, 138, 142–143 Flussmatrix, 137, 143 Investitionsmatrix, 137, 143–144 Produktstrukturmatrix, 137, 140 Prozessmatrix, 137, 139 reeller Koeffizienten, 172, 173–174, 204, 211 Vereinigungsmatrix, 138, 141–142 MaxFolge, Datenstruktur, 138, 144, A18 maximale Produktstückzahl, siehe technische Kapazität maximaler Ausgangsgrad, 116, 135, 136 maximaler Fluss, 110 Maximierung der Kapazitäten, 176–189, A26–A27 Beschreibung des Algorithmus, 184–186, A26–A27 Beweis der Korrektheit, 186–188 der Zeitkomplexität, 188–189 Datenstrukturen, 182, A26 Eindeutigkeit, 177–178 Grundidee zum Ablauf, 181–182 Vorbedingungen, 181 Ziel, 178–180 Mehrfachkanten, 111 MengeUnbesuchterKanten, Datenstruktur, 130, A11 Metaheuristik, 72, 85, 89 evolutionäre Algorithmen, 91 genetischer Algorithmus, 72, 85, 87–89 Hill Climbing, 72 Partikelschwarmoptimierung, 85, 89 Simulated Annealing, 72 Microsoft Excel, 68, 80, 82–84, 164, 219 Erfüllungsgrad der Anforderungen, 82–83 Ergebnis der Bewertung, 83–84 Zielwertsuche und Solver, 83 Microsoft PowerPoint, 165, 166, 220 Microsoft Visio, 68, 77 MILP, siehe Mixed-Integer Linear Programming minimale obere Schranken, siehe minMax, Datenstruktur minimale Symbolmenge, 69–70 Minimalprinzip, inhaltliches, 69 Minimierung der Investitionen, 189–204, A28–A31 Beschreibung des Algorithmus, 197–200, A28–A31 Beweis der Korrektheit, 200–203 der Zeitkomplexität, 203–204 Datenstrukturen, 196, A28–A29 Eindeutigkeit, 190–191 Grundidee zum Ablauf, 195–196 Vorbedingungen, 194–195 Ziel, 191–194 Minimierung einer allgemeinen linearen Zielfunktion, 175, A25 minMax, Datenstruktur, 193, 196, A28 Mitarbeiter, 10–11, 14, 76 Qualifikation, 11, 14, 76, 79 Mixed-Integer Linear Programming, 91 Modell, 65, 66, 109, 116–125, 137–144 analytisches, 79, 84, 93 grafisches, 66, 68–69, 116, 117 mathematisches, 66, 70, 137–144 xxxv Index Simulationsmodell, 70, 79, 84 Struktur grafische, 117–119 mathematische, 138–148 Transformation, 4–5, 137–161, A18–A24 Validierung, 125–137, A11–A14 Visualisierung, ordnungsmäßige, 69, 169 Modellierer, Komponente einer Software, 66, 229 Modellierung, 65, 66–70, 109–170, A1–A24 formularbasierte, 68, 164 grafische, 4–5, 68–69, 116–125 tabellarische, 68, 164 textuelle, 68 Modellierungssprache, algebraische, 79 Multigraph, 111 Nebenbedingungen, 30, 54, 73, 172–174 Netzwerksimplex, 110 nicht dominierte Lösungen, 70, 71 nichtrekursive Implementierung der Breitensuche, 113, A2, A4 der Tiefensuche, 113, 114, A5, A7 Norm Bosch-interne Regelung, 33, 34–35, 36 DIN 199-1, 28–29 DIN 199-5, 29 DIN 8580, 15 IEEE Std 830, 64 ISO/IEC/IEEE 29148, 64 numerische Stabilität, 95–97, 99, 174 Sicherstellung, 223 Nutzungsgrad, 11, 14, 33, 34–35 Plan-Nutzungsgrad, 33, 34–35, 164, 166 Nutzungszeit, 14–15, 34 offenes System, 28 Operanden einer Verknüpfung, 14, 16 operative Planung, 3, 10, 12, 230 optimale Taktzeit, 33–34 xxxvi Optimierer, Komponente einer Software, 66, 70, 226, 229 Optimierung, 65, 70–73, 171–226, A25–A33 dominierte und nicht dominierte Lösungen, 70, 71 globale und lokale Optima, 72, 85, 91, 173 Heuristik, 54–55, 72, 85, 91 mathematische, 4, 6, 172–173 konvexe, 172–173 lineare, 55, 72, 172–175 Metaheuristik, 72, 85, 89 evolutionäre Algorithmen, 91 genetischer Algorithmus, 72, 85, 87–89 Hill Climbing, 72 Partikelschwarmoptimierung, 85, 89 Simulated Annealing, 72 optimale Lösung, 40, 70, 172–173, 174 Eindeutigkeit, 70, 71 optimale Teillösung, 40, 46, 54, 60 Suchraum, 68, 70–72, 177, 190 Optimierung der Algorithmen, 224 Optimierung der Auslastung, 204–215, A32–A33 Beschreibung des Algorithmus, 210–212, A32–A33 Beweis der Korrektheit, 213–215 der Zeitkomplexität, 215 Datenstrukturen, 210, A32 Eindeutigkeit, 205 Grundidee zum Ablauf, 208–210 Vorbedingungen, 208 Ziel, 206–208 optionale Anforderungen, 64 Oracle JD Edwards EnterpriseOne Supply Chain Planning, 91 ordnungsmäßige Modellvisualisierung, 69, 169 partielle Korrektheit, 175–176 Schleifeninvariante, 175, 176 Index wp-Kalkül, 176 Partikelschwarmoptimierung, 85, 89 PDS, siehe Production Data Structure PEK, siehe Personalkapazität Personal Bedarf, 11, 230 Kapazität, 3, 10–11, 230 Pilotstandort, 225 Plan-Nutzungsgrad, 33, 34–35, 164, 166 Planer, 2–6, 67, 76, 230–231 Planungsdimensionen, 3, 10–13 Produktionsfaktor, 3, 10–11 Anlagen, siehe Maschine, Anlage oder Einrichtung Mitarbeiter, 10–11, 14 Produktionstyp, 3, 10, 12–13 Einzelfertigung, 3, 10, 12–13 Serienfertigung, 3, 10, 12–13, 38 Zeithorizont, 3, 10, 12 operative Planung, 3, 10, 12, 230 strategische Planung, 3, 10, 12, 35–37 Planungsfunktionen, 4, 230 Arbeitsplanung, 4, 231 Investitionsplanung, 4, 220 Entscheidungsstand, 223 technische Kapazitätsplanung, 4 Planungsintervall, 12, 166 Planungsziele, 4, 12, 30–33, 70–72 maximale Kapazitäten, 4, 12, 30–31, 70–71, 180 Anforderung, 70–71 Funktion der Eingaben und Ausgaben, 30–31 Iterationsvorschrift, 180 minimale Investitionen, 4, 12, 31–32, 71, 193–194 Anforderung, 71 Funktion der Eingaben und Ausgaben, 31–32 Iterationsvorschrift, 193–194 optimale Auslastung, 4, 12, 32–33, 71–72, 207 Anforderung, 71–72 Funktion der Eingaben und Ausgaben, 32–33 Iterationsvorschrift, 207 Potenziale in der Planung, 1–2, 4, 227, 230, 231 Effizienz, 2, 4, 65, 68–69, 229–230 Flexibilität, 2, 4, 65, 69, 229–230 Transparenz, 2, 4, 65, 69, 229–230 PP/DS, siehe SAP APO Production Planning and Detailed Scheduling PPM, siehe Production Process Model Primärbedarf, 29, 164, 217 Priorisierung in Wertstromgraphen, 121, 147–148 Eindeutigkeit, 147–148 Problembeschreibung, 2 Production Data Structure, 93 Production Process Model, 93 Produkt, 26, 28–29 Komponente, 28–29 Produktfamilie, 29 Produktgruppe, 38 Referenzprodukt, 177, 180 Struktur, 140–141 Bedingung, 139, 140 Produktstrukturmatrix, 137, 140 Zyklus, 140–141 Stückzahl, 19, 29, 30, 33 geplante, 12, 30, 32, 37, 172 maximale, siehe technische Kapazität Verteilung, 19, 119, 138 Variante, 12, 13, 20, 29 Produktionsanlage, siehe Maschine, Anlage oder Einrichtung Produktionsfaktor, 3, 10–11 Anlagen, siehe Maschine, Anlage oder Einrichtung Mitarbeiter, 10–11, 14 Produktionsnetzwerk, 2, 90, 91, 223, 225 Produktionsprozess, siehe Prozess Produktionsstandort, siehe Standort Produktionssystem, siehe System Produktionstyp, 3, 10, 12–13 xxxvii Index Einzelfertigung, 3, 10, 12–13 Serienfertigung, 3, 10, 12–13, 38 Produktivität, 11 Prototyp, 224, 225 Prozess, 9, 13, 24–25 Prozessmatrix, 137, 139 Prozessschritt, 9, 12, 13, 14–15 Taktzeit, 12, 20, 33–35 effektive, 33, 35 optimale, 33–34 Überlagerung, 13, 44, 47, 53, 58 Prozesszeit, 14 Stückzahl, 19–20, 40, 137, 138 Vereinigung, 66, 118–119 Prozessmodellierung, 80, 100–107 Business Process Model and Notation, 69, 80, 101–107 Event-Driven Process Chains, 101 Extensible Markup Language, 68, 104 Standards, 101 Unified Modeling Language Activity Diagrams, 101 Web Services Business Process Execution Language, 101, 102, 105 Yet Another Workflow Language, 101 PSO, siehe Partikelschwarmoptimierung Qualifikation der Mitarbeiter, 11, 14, 76, 79 Qualitätsverluste, 34 Quelle in einem Graphen, 112 in einem Wertstromgraphen, 117, 119–120 Quote selektiver Verknüpfungen fixe, 14, 20 resultierende, 14, 21–23 RCP, siehe Eclipse Rich Client Platform Referenzprodukt, 177, 180 rekursive Implementierung der Breitensuche, 113, A3, A4 der Tiefensuche, 114, A6, A7 rekursive Systemstruktur, siehe Struktur eines Systems xxxviii rekursive Verknüpfung, 13, 15, 16 Ressource eines grafischen Modells, 120–121 eines Simulationsmodells, 86 eines Systems, 28, 66 resultierende Quote selektiver Verknüpfungen, 14, 21–23 Richtlinie VDI 3633, 9, 13, 109 SAP Advanced Planning and Optimization, 91 SAP APO, siehe SAP Advanced Planning and Optimization SAP APO PP/DS, siehe SAP APO Production Planning and Detailed Scheduling SAP APO Production Planning and Detailed Scheduling, 91 SAP APO SNP, siehe SAP APO Supply Network Planning SAP APO Supply Network Planning, 80, 91–100, 164 Datenstrukturen, 93 Erfüllungsgrad der Anforderungen, 92–99 Ergebnis der Bewertung, 100 Kostenfunktion, 93 Alternativen in Bezug auf die Optimierung, 94–95 Schwierigkeit der Festlegung der Koeffizienten, 96–97 SAP APO TP/VS, siehe SAP APO Transportation Planning and Vehicle Scheduling SAP APO Transportation Planning and Vehicle Scheduling, 91 SAP Enterprise Resource Planning, 68, 92, 94 SAP ERP, siehe SAP Enterprise Resource Planning SAP IBP, siehe SAP Integrated Business Planning SAP Integrated Business Planning, 92 SAP S/4HANA, 92, 94 Index SAP SCM, siehe SAP Supply Chain Management SAP Supply Chain Management, 91 Schichtmodell, 35–36, 86, 164, 231 Betriebsmittelzeit, 12, 33, 35–36 Schleifeninvariante, 175, 176 Schleifenvariante, 175, 176 Schluss, 227–231 Schnittstelle eines Systems, 28–33, 67, 120 Informationsfluss, 30–33 Materialfluss, 28–29 SCM, siehe Supply Chain Management Sekundärbedarf, 29, 31, 140, 164, 217 selektive Verknüpfung, 14–16, 20, 68 Beispiele, 56–64 selektiver Flusspunkt, 116, 121–125 Senke in einem Graphen, 112 in einem Wertstromgraphen, 117, 119–120 sequenzielle Verknüpfung, 14–16, 19, 67 Beispiele, 41–44 Serienfabrikation, siehe Serienfertigung Serienfertigung, 3, 10, 12–13, 38 Sicherstellung numerischer Stabilität, 223 Siemens Plant Simulation, 80, 85–90 Bausteine bewegliche Elemente, 86, 87, 88 des Informationsflusses, 86, 87 des Materialflusses, 86, 87 der Oberfläche, 86 Ressourcen, 86 Erfüllungsgrad der Anforderungen, 86–89 Ergebnis der Bewertung, 89–90 Objektorientierung, 85 SimTalk, 86 Simplex-Verfahren, 55, 72, 174, 216 SimTalk, 86 Simulated Annealing, 72 Simulation, 80, 84 diskrete ereignisorientierte, 80, 84 Materialflusssimulation, 80, 84–90 Simulationsmodell, 70, 79, 84 Simulationsstudie, 84 simulationsbasierte Optimierung, 84–85 SNP, siehe SAP APO Supply Network Planning SO, siehe simulationsbasierte Optimierung Software AspenTech aspenONE Supply Chain Management, 90 AURELIE, 2, 4, 6–8, 162–170, 216–226 Eclipse Rich Client Platform, 162–163, 224 Java Platform Standard Edition, 68, 162, 216, A1 JDA Solutions, 90 Microsoft Excel, 68, 80, 82–84, 164, 219 Microsoft PowerPoint, 165, 166, 220 Microsoft Visio, 68, 77 Oracle JD Edwards EnterpriseOne Supply Chain Planning, 91 SAP Advanced Planning and Optimization, 91 SAP Enterprise Resource Planning, 68, 92, 94 SAP Integrated Business Planning, 92 SAP S/4HANA, 92, 94 SAP Supply Chain Management, 91 Siemens Plant Simulation, 80, 85–90 Softwareentwicklung, agile, 64 softwaregestützter Workflow, 2, 4–6, 224–226, 227, 231 Softwaretypen, 75 Ausschluss algebraischer Modellierungssprachen, 79 von Software zur Wertstromaufnahme, 76–79 Auswahl, 76–81 Bewertung von Software, 80–107 zur Erstellung von Tabellenkalkulationen, 81–84 zur Materialflusssimulation, 84–90 zur Prozessmodellierung, 100–107 xxxix Index für Supply Chain Management, 90–100 Solver, 83, 94, 97, 99 FICO Xpress, 99 IBM ILOG CPLEX, 97, 99 lp_solve, 174, 216, 222 Microsoft Excel, 83 Speicherplatzbedarf, 114 Stand der Technik, 75–108 Forschungslücke, 107–108, 229 Standardform linearer Optimierung, 173 Standardsoftware, 75, 77, 80, 91 Standort, 2, 4, 9, 28 Stapel, Datenstruktur, 113, 129, 151, A8, A15 Stillstände, geplante, 34 strategische Planung, 3, 10, 12, 35–37 Struktur eines grafischen Modells, 117–119 Kanten, 116, 117–119 Knoten, 116, 117 eines mathematischen Modells, 138–148 Hilfsmatrizen, 138, 141–143 Matrizen und Folgen, 137–144 eines Systems, 13–28 Prozesse, 9, 13, 24–25 Prozessschritte, 9, 12, 13, 14–15 Wertströme, 9, 13, 25–27 Stückliste, 28–29 Auflösung, 29 Primärbedarf, 29, 164, 217 Sekundärbedarf, 29, 31, 140, 164, 217 Erzeugnis, 29 Gruppe, 28–29 Strukturstückliste, 28, 29 Stücklistenfaktor, 29, 140, 163 Teil, 28–29 Stückzahl, 3–4, 10–13 Produktstückzahl, 19, 29, 30, 33 geplante, 12, 30, 32, 37, 172 maximale, siehe technische Kapazität xl Verteilung, 19, 119, 138 Prozessstückzahl, 19–20, 40, 137, 138 Suche in Graphen, 112–114 Breitensuche, 113, 115–116, A2–A4 Tiefensuche, 113–114, 115–116, A5–A7 iterative, 114 Suchraum, 68, 70–72, 177, 190 Superposition aller Wertströme, 66 Supply Chain Management, 90 Swimlanes, Kategorie von Elementen, 102 Symbol, 68 Bibliothek, 76 Menge, minimale, 69–70 System, 2, 4–6, 9, 13 Ebenen, 28, 66 Elemente, 28, 66 Beziehungen, 69, 117, 137 offenes, 28 Ressourcen, 28, 66 Schnittstelle, 28–33, 67, 120 Informationsfluss, 30–33 Materialfluss, 28–29 Struktur, 13–28 Prozesse, 9, 13, 24–25 Prozessschritte, 9, 12, 13, 14–15 Wertströme, 9, 13, 25–27 Umwelt, 28 Systemanalyse, 4, 6–7, 9–73 tabellarische Modellierung, 68, 164 Tabellenkalkulationen, 2, 68–69, 80–84, 219 Taktzeit, 12, 20, 33–35 effektive, 33, 35 Größenordnungen, 98 optimale, 33–34 technische Dokumentation, A1–A33 technische Kapazität, 3, 10–11, 30–31, 33, 36 Planungsfunktion, 4 Teil in einer Stückliste, 28–29 Teilautomatisierung der Planung, 4–6, 227, 231 Index Teilmenge einer Verknüpfungsmenge, 14, 16, 18 TEK, siehe technische Kapazität Test einer Software, 224–225 Integrationstest, 225 Testschritt, 224–225 Testsystem, 72, 222 textuelle Modellierung, 68 Tiefensuche, 113–114, 115–116, A5–A7 iterative, 114 totale Korrektheit, 175, 176 Hoare-Kalkül, 176 Schleifenvariante, 175, 176 TP/VS, siehe SAP APO Transportation Planning and Vehicle Scheduling Transformation, 4–5, 137–161, A18–A24 Beschreibung des Algorithmus, 153, 155–158, A18–A24 Beweis der Zeitkomplexität, 160–161 Datenstrukturen, 151–153, A18–A20 Grundidee zum Ablauf, 150–151 Vorbedingungen, 150 Ziel, 150 Transparenz in der Planung, 2, 4, 65, 69, 229–230 Traversierung, 112 der Kanten, 127–135, A8–A10 Beschreibung des Algorithmus, 130–132, A8–A10 Beweis der Zeitkomplexität, 134–135 Datenstrukturen, 129–130, A8–A9 Grundidee zum Ablauf, 127–129 der Knoten, 150–160, A15–A17 Beschreibung des Algorithmus, 153–155, A15–A17 Beweis der Zeitkomplexität, 159–160 Datenstrukturen, 151, A15–A16 Grundidee zum Ablauf, 150–151 Typen von Graphen, 111 von Verknüpfungen, 14–16, 19–20, 67–68 Überlagerung von Prozessschritten, 13, 44, 47, 53, 58 Überlastung, 31–32, 37, 71 UML AD, siehe Unified Modeling Language Activity Diagram Umsetzung, 162–169, 216–224 Umwelt eines Systems, 28 ungerichteter Graph, 111 Unified Modeling Language Activity Diagram, 101 Unternehmensleitung, siehe Geschäftsleitung Validierung eines grafischen Modells, 125–137, A11–A14 Beschreibung des Algorithmus, 130, 132–134, A11–A14 Beweis der Zeitkomplexität, 136 Datenstrukturen, 129–130, A11–A12 Grundidee zum Ablauf, 127–129 Vorbedingungen, 127 Ziel, 125–127 der Optimierungsergebnisse, 224–225 variable Kosten, 11 Variablen, 19, 68, 138–139, 172–174 eines mathematischen Modells, 138–139 Variante eines Produkts, 12, 13, 20, 29 Variantenvielfalt, 1, 13 VBA, siehe Visual Basic for Applications Vektor der Produktstückzahlen, 137, 139 geplante, 172, 175 maximale, 176, 177 der Prozessstückzahlen, 40 reeller Koeffizienten, 172–174 reeller oberer Schranken, 172–174 Verarbeitung der Ergebnisse, 219–220, 231 Vereinigung von Kanten, 118–119 Vereinigungsmatrix, 138, 141–142 von Prozessen, 66, 118–119 Verfügbarkeitsverluste, 34 xli Index Verkettung von Verknüpfungen, 13, 44 von Wertströmen, 223 Verknüpfung, 13–24 41–64, 67–68 alternative, 14–16, 19–20, 67–68 Beispiele, 44–55 Ausdrucksbaum, 24 Ergebnis, 14, 16–18 von mehr als zwei Operanden, 20–23 Operanden, 14, 16 rekursive, 13, 15, 16 selektive, 14–16, 20, 68 Beispiele, 56–64 sequenzielle, 14–16, 19, 67 Beispiele, 41–44 Typen, 14–16, 19–20, 67–68 Verkettung, 13, 44 Indexnotation, 44 Verknüpfungsmenge, 14, 16–18 Element, 16–18 maximaler Ordnung, 18 einer Ordnung, 14, 17 Teilmenge, 14, 16, 18 Verluste in der Produktion, 34 Verteilung der Produktstückzahl, 19, 119, 138 Visual Basic for Applications, 69 Volatilität der Kundennachfrage, 65 Vorgang, 14 Warteschlange, Datenstruktur, 113, A2 Wasserfallmodell, lineares, 64 Web Services Business Process Execution Language, 101, 102, 105 Weg in einem Graphen, 110, 113, 116 kürzester, 110 Weiterentwicklungen, 230–231 Wertstrom, 9, 13, 25–27 Informationsfluss, 25, 30–33, 119 Materialfluss, 25, 28–29, 117, 118 Superposition, 66 Verkettung, 223 Wertstrommanagement, 25 Wertstromgraph, 116, 117 xlii Beispiele, 122–124 Kanten, 116, 117–119 Vereinigung, 118–119 Knoten, 116, 117 Eingang und Ausgang, 116, 119 Flusspunkte, alternative, 116, 121–125 Flusspunkte, selektive, 116, 121–125 Quellen und Senken, 117, 119–120 Ressourcen, 120–121 Priorisierung, 121, 147–148 Eindeutigkeit, 147–148 Wertstrommuster, 125 Zyklus, 126 Workflow, softwaregestützter, 2, 4–6, 224–226, 227, 231 wp-Kalkül, 176 WS-BPEL, siehe Web Services Business Process Execution Language wünschenswerte Anforderungen, 64 XML, siehe Extensible Markup Language YAWL, siehe Yet Another Workflow Language Yet Another Workflow Language, 101 zeilenzahl, Datenstruktur, 196, 210, A28, A32 Zeitgrößen, 33 Betriebsmittelzeit, 12, 33, 35–36 Nutzungsgrad, 11, 14, 33, 34–35 Plan-Nutzungsgrad, 33, 34–35, 164, 166 Taktzeit, 12, 20, 33–35 effektive, 33, 35 Größenordnungen, 98 optimale, 33–34 Zeithorizont, 3, 10, 12 operative Planung, 3, 10, 12, 230 strategische Planung, 3, 10, 12, 35–37 Zeitintervall, siehe Planungsintervall Zeitkomplexität, 114 Zielfunktion, 30, 172–174 Index Zielvorgabe, 32, 34 Zufallsvariablen, 84 Zukauf, 30, 72, 176 Zulieferer, 29, 81, 90, 91 Zusammenfassung, 227–229 Zyklus in der Produktstruktur, 140–141 in einem Wertstromgraphen, 126 xliii Literaturverzeichnis 216 Quellen Hinweis: Neben den unten stehenden, öffentlich einsehbaren Quellen sei auf alle internen Unterlagen verwiesen, die im Zuge der Entwicklung und Einführung der Software AURELIE bei der Bosch Rexroth AG in der Abteilung Manufacturing Coordination and Technology (DC/MFC) zu diesem Thema erstellt und archiviert wurden. van der Aalst, Wil M. P. 2004a. »Business Process Management: A Personal View.« Business Process Management Journal 10 (2): 248–253. doi:10.1108/bpmj.2004.15710baa.001. van der Aalst, Wil M. P. 2004b. »Business Process Management Demystified: A Tutorial on Models, Systems and Standards for Workflow Management.« In Lectures on Concurrency and Petri Nets: Advances in Petri Nets, hrsg. von Jörg Desel, Wolfgang Reisig und Grzegorz Rozenberg. Bd. 3098 von Lecture Notes in Computer Science, 1–65. Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-27755-2_1. van der Aalst, Wil M. P. 2013. »Business Process Management: A Comprehensive Survey.« ISRN Software Engineering 2013. 37 S. doi:10.1155/2013/507984. van der Aalst, Wil M. P., Lachlan Aldred, Marlon Dumas und Arthur H. M. ter Hofstede. 2004. »Design and Implementation of the YAWL System.« In Advanced Information Systems Engineering: 16th International Conference, CAiSE 2004, Riga, Latvia, June 7–11, 2004, Proceedings, hrsg. von Anne Persson und Janis Stirna. Bd. 3084 von Lecture Notes in Computer Science, 142–159. Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-↵ 25975-6_12. van der Aalst, Wil M. P., Arthur H. M. ter Hofstede und Mathias Weske. 2003. »Business Process Management: A Survey.« In Business Process Management: International Conference, BPM 2003, Eindhoven, the Netherlands, June 26–27, 2003, Proceedings, hrsg. von Wil M. P. van der Aalst, Arthur H. M. ter Hofstede und Mathias Weske. Bd. 2678 von Lecture Notes in Computer Science, 1–12. Berlin, Heidelberg: Springer. doi:10.1007/3-540-44895-0_1. Aigner, Martin. 2006. Diskrete Mathematik (6., korr. Aufl.). Wiesbaden: Vieweg. doi:10.↵ 1007/978-3-8348-9039-9. Allweyer, Thomas. 2010. BPMN 2.0: Introduction to the Standard for Business Process Modeling (2. Aufl.). Norderstedt: Books on Demand. ISBN 978-3-8391-4985-0. xlv Literaturverzeichnis Ammann, Paul und Jeff Offutt. 2016. Introduction to Software Testing (2., überarb. Aufl.). Cambridge, UK: Cambridge University Press. doi:10.1017/9781316771273. Ammenwerth, Elske und Reinhold Haux, Hrsg. 2005. IT-Projektmanagement in Krankenhaus und Gesundheitswesen: Einführendes Lehrbuch und Projektleitfaden für das taktische Management von Informationssystemen. Stuttgart: Schattauer. ISBN 978-3-7945-2416-7. Andradóttir, Sigrún. 1998. »A Review of Simulation Optimization Techniques.« In Proceedings of the 1998 Winter Simulation Conference, hrsg. von Deborah J. Medeiros, Edward F. Watson, John S. Carson und Mani S. Manivannan, 151–158. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.1998.744910. Backlund, Alexander. 2000. »The Definition of System.« Kybernetes 29 (4): 444–451. doi:10.1108/03684920010322055. Balla, Jochen und Frank Layer. 2007. Production Planning with SAP APO-PP/DS. SAP PRESS. Bonn, Boston, MA: Galileo Press. ISBN 978-1-59229-113-7. Bangsow, Steffen. 2010. Manufacturing Simulation with Plant Simulation and SimTalk: Usage and Programming with Examples and Solutions. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-05074-9. Banks, Jerry, John S. Carson II, Barry L. Nelson und David M. Nicol. 2010. Discrete-Event System Simulation (5., überarb. Aufl.). Upper Saddle River, NJ, Singapur: Prentice Hall. ISBN 978-0-13-606212-7. Bartsch, Helmut und Peter Bickenbach. 2002. Supply Chain Management mit SAP APO: Supply-Chain-Modelle mit dem Advanced Planner & Optimizer 3.1 (2., aktual. und erw. Aufl.). SAP PRESS. Bonn: Galileo Press. ISBN 978-3-89842-111-9. Bazaraa, Mokhtar S., John J. Jarvis und Hanif D. Sherali. 2010. Linear Programming and Network Flows (4. Aufl.). Hoboken, NJ: John Wiley & Sons. ISBN 978-0-470-46272-0. Bhargava, Hemant K., Ramayya Krishnan und Peter Piela. 1994. »Formalizing the Semantics of ASCEND.« In Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences, January 4–7, 1994, 505–516. Wailea, HI: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/HICSS.1994.323312. Bisschop, Johannes und Marcel Roelofs. 2004. »The Modeling Language AIMMS.« Siehe Kallrath 2004, 71–104. doi:10.1007/978-1-4613-0215-5_6. Blanchard, David. 2010. Supply Chain Management: Best Practices (2., illustr. Aufl.). Wiley Best Practices. Hoboken, NJ: John Wiley & Sons. ISBN 978-1-4784-2993-7. Bourg, David M. 2009. Excel Scientific and Engineering Cookbook: Adding Excel to Your Analysis Arsenal. Sebastopol, CA: O’Reilly Media. ISBN 978-0-596-00879-6. xlvi Literaturverzeichnis Boyd, Stephen und Lieven Vandenberghe. 2004. Convex Optimization. New York: Cambridge University Press. ISBN 978-0-521-83378-3. Brocke, Henrik, Falk Uebernickel und Walter Brenner. 2009. »Success Factors in IT-Projects to Provide Customer Value Propositions.« In Proceedings of the 20th Australasian Conference on Information Systems. Monash University. Beitrag 24, 10 S. Abgerufen am 4. Januar 2017. http://aisel.aisnet.org/acis2009/24/. vom Brocke, Jan und Michael Rosemann, Hrsg. 2010. Handbook on Business Process Management 1: Introduction, Methods, and Information Systems. International Handbooks on Information Systems. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-00416-2. Brooke, Anthony, David A. Kendrick, Alexander Meeraus und Richard E. Rosenthal. 1988. GAMS: A User’s Guide. Redwood City, CA: Scientific Press. ISBN 978-0-89426-118-3. Bungartz, Hans-Joachim, Stefan Zimmer, Martin Buchholz und Dirk Pflüger. 2009. Modellbildung und Simulation: Eine anwendungsorientierte Einführung. eXamen.press. Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-79810-1. Bussieck, Michael R. und Alex Meeraus. 2004. »General Algebraic Modeling System (GAMS).« Siehe Kallrath 2004, 137–157. doi:10.1007/978-1-4613-0215-5_8. Carson, Yolanda und Anu Maria. 1997. »Simulation Optimization: Methods and Applications.« In Proceedings of the 1997 Winter Simulation Conference, hrsg. von Sigrún Andradóttir, Kevin J. Healy, David H. Withers und Barry L. Nelson, 118–126. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.1997.↵ 640387. Chen, Injazz J. und Antony Paulraj. 2004. »Towards a Theory of Supply Chain Management: The Constructs and Measurements.« Journal of Operations Management 22 (2): 119–150. doi:10.1016/j.jom.2003.12.007. Chopra, Sunil und Peter Meindl. 2013. Supply Chain Management: Strategy, Planning, and Operation (5., überarb. Aufl.). Boston, MA: Pearson. ISBN 978-0-13-274395-2. Cohn, Mike. 2004. User Stories Applied: For Agile Software Development. Addison-Wesley Signature Series. Boston, MA: Addison-Wesley. ISBN 978-0-321-20568-1. Colombani, Yves, Bob Daniel und Susanne Heipcke. 2004. »Mosel: A Modular Environment for Modeling and Solving Optimization Problems.« Siehe Kallrath 2004, 211–238. doi:10.1007/978-1-4613-0215-5_12. Colombani, Yves und Susanne Heipcke. 2002. »Mosel: An Extensible Environment for Modeling and Programming Solutions.« In Proceedings of the Fourth International Workshop on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimisation Problems (CP-AI-OR ’02), hrsg. von Narendra Jussien und François Laburthe, 277–290. École des Mines de Nantes. Abgerufen am 4. Januar 2017. http://web.emn.↵ fr/x-info/cpaior/Proceedings/CPAIOR-20.pdf. xlvii Literaturverzeichnis Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest und Clifford Stein. 2001. Introduction to Algorithms (2., überarb. und illustr. Aufl.). Cambridge, MA: MIT Press. ISBN 978-0-262-03293-3. Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, Clifford Stein und Paul Molitor. 2010. Algorithmen – Eine Einführung (3., überarb. und erw. Aufl.). München: Oldenbourg Wissenschaftsverlag. ISBN 978-3-486-59002-9. Council of Supply Chain Management Professionals (CSCMP). 2015. »Bylaws of CSCMP.« Überarbeitet am 15. Juli, abgerufen am 4. Januar 2017. http://cscmp.org/. Cunningham, Kevin und Linus Schrage. 2004. »The LINGO Algebraic Modeling Language.« Siehe Kallrath 2004, 159–171. doi:10.1007/978-1-4613-0215-5_9. Davis, Martin. 1958. Computability and Unsolvability. New York: McGraw-Hill. Neuauflage 1982. New York: Dover Publications. ISBN 978-0-486-61471-7. DeCarolis, Joseph, Kevin Hunter und Sarat Sreepathi. 2010. »The TEMOA Project: Tools for Energy Model Optimization and Analysis.« In International Energy Workshop 2010, Stockholm, Sweden, June 21–23, 2010. Abgerufen am 28. November 2019. http://www.↵ temoaproject.org/publications/. Deelmann, Thomas und Peter Loos. 2004. »Grundsätze ordnungsmäßiger Modellvisualisierung.« In Modellierung 2004: Proceedings zur Tagung, 23–26. März 2004, Marburg, hrsg. von Bernhard Rumpe und Wolfgang Hesse. Bd. P-45 von GI-Edition: Lecture Notes in Informatics (LNI), 289–290. Bonn: Köllen. ISBN 978-3-88579-374-8. Deming, W. Edwards. 1953. »Management’s Responsibility for the Use of Statistical Techniques in Industry.« Advanced Management 18 (11): 8–12. ISSN 0749-7075. Deo, Narsingh. 2004. Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall Series in Automatic Computation. New Delhi: Prentice-Hall of India, Englewood Cliffs, NJ: Prentice-Hall International. ISBN 978-81-203-0145-0. Dickersbach, Jörg T. 2009. Supply Chain Management with SAP APO™: Structures, Modelling Approaches and Implementation of SAP SCM™ 2008 (3. Aufl.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-92942-0. Diestel, Reinhard. 2005. Graph Theory (3., überarb. Aufl.), Bd. 173 von Graduate Texts in Mathematics. Berlin, Heidelberg: Springer. ISBN 978-3-540-26182-7. Elektronische Fassung abgerufen am 4. Januar 2017. http://emis.de/monographs/Diestel/en/. Diestel, Reinhard. 2006. Graphentheorie (3., neu bearb. und erw. Aufl.). Springer-Lehrbuch Masterclass. Berlin, Heidelberg: Springer. ISBN 978-3-540-21391-8. Dijkman, Remco M., Marlon Dumas und Chun Ouyang. 2008. »Semantics and Analysis of Business Process Models in BPMN.« Information and Software Technology 50 (12): 1281–1294. doi:10.1016/j.infsof.2008.02.006. xlviii Literaturverzeichnis Dijkstra, Edsger W. 1976. A Discipline of Programming. Prentice-Hall Series in Automatic Computation. Englewood Cliffs, NJ: Prentice-Hall. ISBN 978-0-13-215871-8. DIN 199-1:2002-03. Technische Produktdokumentation – CAD-Modelle, Zeichnungen und Stücklisten – Teil 1: Begriffe. Technische Norm. Deutsches Institut für Normung e. V. (DIN). Berlin: Beuth, 2002. Abgerufen am 4. Januar 2017. http://www.beuth.de/de/norm/↵ din-199-1/46493205. DIN 199-5:1981-10. Begriffe im Zeichnungs- und Stücklistenwesen; Stücklisten-Verarbeitung, Stücklistenauflösung. Technische Norm. Deutsches Institut für Normung e. V. (DIN). Berlin: Beuth, 1981. Abgerufen am 4. Januar 2017. http://www.beuth.de/de/norm/↵ din-199-5/921205. DIN 8580:2003-09. Fertigungsverfahren – Begriffe, Einteilung. Technische Norm. Deutsches Institut für Normung e. V. (DIN). Berlin: Beuth, 2003. Abgerufen am 4. Januar 2017. http://www.beuth.de/de/norm/din-8580/65031153. Dinic, Jefim A. 1970. »Algorithm for Solution of a Problem of Maximum Flow in a Network with Power Estimation.« Doklady Akademii Nauk SSSR 11 (5): 1277–1280. Abgerufen am 28. November 2019. http://www.cs.bgu.ac.il/~dinitz/. Dobmann, M., Michael Liepelt und Klaus Schittkowski. 1995. »Algorithm 746: PCOMP: A Fortran Code for Automatic Differentiation.« ACM Transactions on Mathematical Software 21 (3): 233–266. doi:10.1145/210089.210091. Edmonds, Jack und Richard M. Karp. 1972. »Theoretical Improvements in Algorithmic Efficiency for Network Flow Problems.« Journal of the ACM 19 (2): 248–264. doi:10.↵ 1145/321694.321699. Ehrlenspiel, Klaus und Harald Meerkamm. 2013. Integrierte Produktentwicklung: Denkabläufe, Methodeneinsatz, Zusammenarbeit (5., überarb. und erw. Aufl.). München, Wien: Hanser. ISBN 978-3-446-43627-5. Eley, Michael. 2012. Simulation in der Logistik: Einführung in die Erstellung ereignisdiskreter Modelle unter Verwendung des Werkzeuges »Plant Simulation«. Springer-Lehrbuch. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-27373-5. Eleyat, Mujahed, Lasse Natvig und Jørn Amundsen. 2011. »Cache-Aware Matrix Multiplication on Multicore Systems for IPM-Based LP Solvers.« In Proceedings of the Federated Conference on Computer Science and Information Systems (FedCSIS), Szczecin, Poland, September 18–21, 2011, 431–438. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). ISBN 978-83-60810-35-4. Elias, Peter, Amiel Feinstein und Claude E. Shannon. 1956. »A Note on the Maximum Flow through a Network.« IRE Transactions on Information Theory 2 (4): 117–119. doi:10.↵ 1109/TIT.1956.1056816. xlix Literaturverzeichnis Erlach, Klaus. 2010. Wertstromdesign: Der Weg zur schlanken Fabrik (2., bearb. und erw. Aufl.). VDI-Buch. Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-89867-2. eVSM Group. 2015. »eVSM Application Examples: Manufacturing Mapping.« Abgerufen am 5. Januar 2018, zuletzt geändert am 15. Dezember 2015. http://evsm.com/evsm-↵ application-examples. Fishman, George S. 2001. Discrete-Event Simulation: Modeling, Programming, and Analysis. Springer Series in Operations Research and Financial Engineering. New York: Springer. doi:10.1007/978-1-4757-3552-9. Ford, Jr., Lester R. und Delbert R. Fulkerson. 1956. »Maximal Flow through a Network.« Canadian Journal of Mathematics 8:399–404. doi:10.4153/CJM-1956-045-5. Ford, Jr., Lester R. und Delbert R. Fulkerson. 1957. »A Simple Algorithm for Finding Maximal Network Flows and an Application to the Hitchcock Problem.« Canadian Journal of Mathematics 9:210–218. doi:10.4153/CJM-1957-024-0. Fourer, Robert und David M. Gay. 2003. »Numerical Issues and Influences in the Design of Algebraic Modeling Languages for Optimization.« In Proceedings of the 20th Biennial Conference on Numerical Analysis, Dundee, Scotland, hrsg. von David Francis Griffiths und George Alistair Watson, 39–51. Veröffentlicht als Numerical Analysis Report NA/217, University of Dundee. Abgerufen am 3. Januar 2017. http://ampl.com/REFS/dundee03.↵ pdf. Fourer, Robert, David M. Gay und Brian W. Kernighan. 1990. »A Modeling Language for Mathematical Programming.« Management Science 36 (5): 519–554. doi:10.1287/↵ mnsc.36.5.519. Fourer, Robert, David M. Gay und Brian W. Kernighan. 2003. AMPL: A Modeling Language for Mathematical Programming (2., überarb. Aufl.). Belmont, CA: Duxbury Thomson. ISBN 978-0-534-38809-6. Abgerufen am 4. Januar 2017. http://ampl.com/↵ resources/the-ampl-book/. Fourer, Robert, David M. Gay und Brian W. Kernighan. 2004. »Design Principles and New Developments in the AMPL Modeling Language.« Siehe Kallrath 2004, 105–135. doi:10.↵ 1007/978-1-4613-0215-5_7. Freund, Jakob und Bernd Rücker. 2012. Praxishandbuch BPMN 2.0 (3., aktual. Aufl.). München, Wien: Hanser. ISBN 978-3-446-42987-1. Fu, Michael C. 2002. »Optimization for Simulation: Theory vs. Practice.« INFORMS Journal on Computing 14 (3): 192–215. doi:10.1287/ijoc.14.3.192.113. Fu, Michael C., Fred W. Glover und Jay April. 2005. »Simulation Optimization: A Review, New Developments, and Applications.« In Proceedings of the 2005 Winter Simulation Conference, hrsg. von Michael E. Kuhl, Natalie M. Steiger, F. Brad Armstrong und Jeffrey A. l Literaturverzeichnis Joines, 83–95. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.2005.1574242. GAMS Development Corporation. 2016. GAMS – A User’s Guide. Washington, DC. Zuletzt geändert am 21. Dezember 2016, abgerufen am 2. Januar 2017. http://gams.com/↵ latest/docs/userguides/GAMSUsersGuide.pdf. Gibson, Brian J., John T. Mentzer und Robert L. Cook. 2005. »Supply Chain Management: The Pursuit of a Consensus Definition.« Journal of Business Logistics 26 (2): 17–25. doi:10.↵ 1002/j.2158-1592.2005.tb00203.x. Gingnell, Liv, Ulrik Franke, Robert Lagerström, Evelina Ericsson und Joakim Lilliesköld. 2014. »Quantifying Success Factors for IT Projects – An Expert-Based Bayesian Model.« Information Systems Management 31 (1): 21–36. doi:10.1080/10580530.2014.854033. Goldberg, Andrew V. und Robert E. Tarjan. 1988. »A New Approach to the Maximum-Flow Problem.« Journal of the ACM 35 (4): 921–940. doi:10.1145/48014.61051. Grotepaß, Lukas, Michael Sauter und Eberhard Abele. 2014. »Produktivitätsmanagement nachhaltig implementieren.« ZWF Zeitschrift für wirtschaftlichen Fabrikbetrieb 109 (9): 595–598. doi:10.3139/104.111201. Guéret, Christelle, Christian Prins und Marc Sevaux. 2002. Applications of Optimization with Xpress-MP. Blisworth, Northants: Dash Optimization Ltd. ISBN 978-0-9543503-0-7. Guerrero, Hector. 2010. Excel Data Analysis: Modeling and Simulation. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-10835-8. Hahmann, Lukas. 2012. »Efficient Planning of Technical Capacities: Analysis and Definition of Design Patters for Graphical Value Streams.« Bachelorarbeit, Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt, Fakultät für Informatik und Wirtschaftsinformatik. Halldorsson, Arni, Herbert Kotzab, Juliana H. Mikkola und Tage Skjøtt-Larsen. 2007. »Complementary Theories to Supply Chain Management.« Supply Chain Management 12 (4): 284–296. doi:10.1108/13598540710759808. Hamacher, Horst W. und Kathrin Klamroth. 2006. Lineare Optimierung und Netzwerkoptimierung: Zweisprachige Ausgabe Deutsch Englisch (2., verb. Aufl.). Wiesbaden: Vieweg. doi:10.1007/978-3-8348-9031-3. Hammer, Michael. 1990. »Reengineering Work: Don’t Automate, Obliterate.« Harvard Business Review 68 (4): 104–112. ISSN 0017-8012. Hammer, Michael. 2010. »What Is Business Process Management?« Siehe vom Brocke und Rosemann 2010, 3–16. doi:10.1007/978-3-642-00416-2_1. li Literaturverzeichnis Hammer, Michael und James Champy. 1993. Reengineering the Corporation: A Manifesto for Business Revolution. New York: HarperBusiness. ISBN 978-0-88730-640-2. Hammer, Wilfried. 1997. Wörterbuch der Arbeitswissenschaft: Begriffe und Definitionen. REFA-Fachbuchreihe Betriebsorganisation. München: Hanser. ISBN 978-3-446-18995-9. Hart, William E., Carl Laird, Jean-Paul Watson und David L. Woodruff. 2012. Pyomo – Optimization Modeling in Python, Bd. 67 von Springer Optimization and Its Applications. New York: Springer. doi:10.1007/978-1-4614-3226-5. Hart, William E., Jean-Paul Watson und David L. Woodruff. 2011. »Pyomo: Modeling and Solving Mathematical Programs in Python.« Mathematical Programming Computation 3: 219–260. doi:10.1007/s12532-011-0026-8. Hartmann, Edward H. 2013. TPM: Effiziente Instandhaltung und Maschinenmanagement (4. Aufl.). Management Competence. München: Vahlen. Übersetzung aus dem Englischen. doi:10.15358/9783800646340. Haverly, Larry. 2001. »OMNI Model Management System.« Annals of Operations Research 104 (1–4): 127–140. doi:10.1023/A:1013143003516. Haverly, Larry. 2004. »The OMNI Modeling System.« Siehe Kallrath 2004, 293–306. doi:10.↵ 1007/978-1-4613-0215-5_16. Haverly Systems, Inc. 1976. OMNI Linear Programming System: User and Operating Manual. Denville, NJ. Havey, Michael. 2005. Essential Business Process Modeling. Theory in Practice. Sebastopol, CA: O’Reilly Media. ISBN 978-0-596-00843-7. Healy, Kevin und Lee W. Schruben. 1991. »Retrospective Simulation Response Optimization.« In Proceedings of the 1991 Winter Simulation Conference, hrsg. von Barry L. Nelson, W. David Kelton und Gordon M. Clark, 901–906. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.1991.185703. Hedengren, John D. 2008. »A Nonlinear Model Library for Dynamics and Control.« Computer Aids for Chemical Engineering (CACHE) News, Sommer 2008. Abgerufen am 2. Januar 2017. http://cache.org/news-stand/summer-2008. Hedengren, John D. und Ammon N. Eaton. 2015. »Overview of Estimation Methods for Industrial Dynamic Systems.« Optimization and Engineering 16:1–24. Special Issue on Optimization in the Oil and Gas Industry. doi:10.1007/s11081-015-9295-9. Hedengren, John D., Reza Asgharzadeh Shishavan, Kody M. Powell und Thomas F. Edgar. 2014. »Nonlinear Modeling, Estimation and Predictive Control in APMonitor.« Computers & Chemical Engineering 70:133–148. doi:10.1016/j.compchemeng.2014.04.013. lii Literaturverzeichnis Heipcke, Susanne. 2012. »Xpress-Mosel.« Siehe Kallrath 2012, 77–110. doi:10.1007/↵ 978-3-642-23592-4_5. Van Hentenryck, Pascal, Irvin Lustig, Laurent Michel und Jean-François Puget. 1999. The OPL Optimization Programming Language. Cambridge, MA: MIT Press. ISBN 978-0-26272030-4. Van Hentenryck, Pascal, Laurent Michel, Frederic Paulin und Jean-François Puget. 2004. »The OPL Studio Modeling System.« Siehe Kallrath 2004, 307–350. doi:10.1007/978-↵ 1-4613-0215-5_17. Hoare, Charles Antony Richard. 1969. »An Axiomatic Basis for Computer Programming.« Communications of the ACM 12 (10): 576–580. doi:10.1145/363235.363259. Hochmuth, Christian A. 2011. »Innovative Software in Unternehmen: Strategie und Erfolgsfaktoren für Einführungsprojekte.« Masterthesis, Julius-Maximilians-Universität Würzburg, Fakultät für Wirtschaftswissenschaften. Hochstättler, Winfried. 2010. Algorithmische Mathematik. Springer-Lehrbuch. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-05422-8. ter Hofstede, Arthur H. M., Wil M. P. van der Aalst, Michael Adams und Nick Russell, Hrsg. 2010. Modern Business Process Automation: YAWL and Its Support Environment. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-03121-2. Holmström, Kenneth. 1999. »The TOMLAB Optimization Environment in Matlab.« Advanced Modeling and Optimization 1 (1): 47–69. ISSN 1841-4311. Holmström, Kenneth. 2008. »An Adaptive Radial Basis Algorithm (ARBF) for Expensive BlackBox Global Optimization.« Journal of Global Optimization 41 (3): 447–464. doi:10.↵ 1007/s10898-007-9256-8. Holmström, Kenneth und Marcus M. Edvall. 2004. »The TOMLAB Optimization Environment.« Siehe Kallrath 2004, 369–376. doi:10.1007/978-1-4613-0215-5_19. Holmström, Kenneth, Anders O. Göran und Marcus M. Edvall. 2010. User’s Guide for TOMLAB 7. Västerås, Schweden: Tomlab Optimization AB. Zuletzt geändert am 5. Mai 2010, abgerufen am 2. Januar 2017. http://tomopt.com/docs/TOMLAB.pdf. Hürlimann, Tony. 1999. Mathematical Modeling and Optimization: An Essay for the Design of Computer-Based Modeling Tools, Bd. 31 von Applied Optimization. Boston, MA, Dordrecht, London: Kluwer Academic Publishers. doi:10.1007/978-1-4757-5793-4. Hürlimann, Tony. 2004. »The LPL Modeling Language.« Siehe Kallrath 2004, 173–183. doi:10.1007/978-1-4613-0215-5_10. Hürlimann, Tony. 2016. Reference Manual of LPL. Universität Freiburg (Schweiz), Departement für Informatik. LPL 6.48, zuletzt geändert am 24. August 2016, abgerufen am 4. Januar 2017. http://virtual-optima.com/download/docs/manual.pdf. liii Literaturverzeichnis Hürlimann, Tony und Jürg Kohlas. 1988. »LPL: A Structured Language for Linear Programming Modeling.« OR Spektrum 10 (1): 55–63. doi:10.1007/BF01720038. IBM Corp. 2016a. IBM ILOG CPLEX Optimization Studio: OPL Language Reference Manual, Version 12 Release 6. Armonk, New York. Zuletzt geändert am 5. Juni 2016, abgerufen am 3. Januar 2017. http://www.ibm.com/support/knowledgecenter/SSSA5P_12.↵ 6.3/ilog.odms.studio.help/pdf/opl_langref.pdf. IBM Corp. 2016b. IBM ILOG CPLEX Optimization Studio: OPL Language User’s Manual, Version 12 Release 6. Armonk, New York. Zuletzt geändert am 5. Juni 2016, abgerufen am 3. Januar 2017. http://www.ibm.com/support/knowledgecenter/SSSA5P_12.↵ 6.3/ilog.odms.studio.help/pdf/opl_languser.pdf. IEEE Std 830-1998. IEEE Recommended Practice for Software Requirements Specifications. Technische Norm. New York: Institute of Electrical and Electronics Engineers (IEEE), 1998. ISBN 978-0-7381-0332-7. Illik, J. Anton. 2009. Formale Methoden der Informatik: Von der Automatentheorie zu Algorithmen und Datenstrukturen. Reihe Technik. Renningen: Expert-Verlag. ISBN 978-38169-2729-7. ISO/IEC/IEEE 29148:2011(E). Systems and Software Engineering – Life Cycle Processes – Requirements Engineering. Technische Norm. Genf: International Organization for Standardization (ISO), International Electrotechnical Commission (IEC), New York: Institute of Electrical and Electronics Engineers (IEEE), 2011. ISBN 978-0-7381-6591-2. Jacoby, David. 2009. Guide to Supply Chain Management: How Getting It Right Boosts Corporate Performance, Bd. 26 von The Economist Books. New York: Bloomberg Press. ISBN 978-1-57660-345-1. Kallrath, Josef, Hrsg. 2004. Modeling Languages in Mathematical Optimization, Bd. 88 von Applied Optimization. Boston, MA, Dordrecht, London: Kluwer Academic Publishers. doi:10.1007/978-1-4613-0215-5. Kallrath, Josef, Hrsg. 2012. Algebraic Modeling Systems: Modeling and Solving Real World Optimization Problems, Bd. 104 von Applied Optimization. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-23592-4. Kallrath, Josef und Thomas I. Maindl. 2006. Real Optimization with SAP ® APO. Berlin, Heidelberg: Springer. doi:10.1007/3-540-34624-4. Karlsen, Jan Terje, Jeanette Andersen, Live S. Birkely und Elise Ødegård. 2005. »What Characterizes Successful IT Projects.« International Journal of Information Technology & Decision Making 4 (4): 525–540. doi:10.1142/S0219622005001738. Keller, Gerhard, Markus Nüttgens und August-Wilhelm Scheer. 1992. »Semantische Prozeßmodellierung auf der Grundlage ›Ereignisgesteuerter Prozeßketten (EPK)‹.« Heft 89, liv Literaturverzeichnis Veröffentlichungen des Instituts für Wirtschaftsinformatik (IWi), Universität des Saarlandes, hrsg. von August-Wilhelm Scheer, Saarbrücken. ISSN 1438-5678. Ko, Ryan K. L. 2009. »A Computer Scientist’s Introductory Guide to Business Process Management (BPM).« Crossroads 15 (4): 11–18. doi:10.1145/1558897.1558901. Ko, Ryan K. L., Stephen S. G. Lee und Eng Wah Lee. 2009. »Business Process Management (BPM) Standards: A Survey.« Business Process Management Journal 15 (5): 744–791. doi:10.1108/14637150910987937. Koch, Arno. 2016. OEE für das Produktionsteam: Das vollständige OEE-Benutzerhandbuch – oder wie Sie die verborgene Maschine entdecken (3., korr. Aufl.). Nr. 5 in Operational Excellence. Ansbach: CETPM Publishing. ISBN 978-3-940775-04-7. Köchel, Peter. 2009. »Simulation Optimisation: Approaches, Examples, and Experiences.« Forschungsbericht CSR-09-03, Technische Universität Chemnitz, Fakultät für Informatik. Veröffentlicht am 22. April 2009, abgerufen am 4. Januar 2017. http://nbn-↵ resolving.de/urn:nbn:de:bsz:ch1-200900682. Korte, Bernhard und Jens Vygen. 2012. Kombinatorische Optimierung: Theorie und Algorithmen (2. Aufl.). Springer-Lehrbuch Masterclass. Berlin, Heidelberg: Springer. doi:10.↵ 1007/978-3-642-25401-7. Koskela, Mika und Jyrki Haajanen. 2007. »Business Process Modeling and Execution: Tools and Technologies Report for the SOAMeS Project.« VTT Research Notes 2407, VTT Technical Research Centre of Finland, Espoo. ISSN 1455-0865. Kouvelis, Panos, Chester Chambers und Haiyan Wang. 2006. »Supply Chain Management Research and Production and Operations Management : Review, Trends, and Opportunities.« Production and Operations Management 15 (3): 449–469. doi:10.1111/j.1937-5956.↵ 2006.tb00257.x. Krishnan, Ramayya, Peter Piela und Arthur Westerberg. 1993. »Reusing Mathematical Models in ASCEND.« In Recent Developments in Decision Support Systems, hrsg. von Clyde W. Holsapple und Andrew B. Whinston. Bd. 101 von NATO ASI Series, F: Computer and Systems Sciences, 275–293. Berlin, Heidelberg: Springer. doi:10.1007/978-3-662-02952-7_11. Kristjansson, Bjarni und Denise Lee. 2004. »The MPL Modeling System.« Siehe Kallrath 2004, 239–266. doi:10.1007/978-1-4613-0215-5_13. Krumke, Sven Oliver und Hartmut Noltemeier. 2012. Graphentheoretische Konzepte und Algorithmen (3. Aufl.). Leitfäden der Informatik. Wiesbaden: Springer Vieweg. doi:10.↵ 1007/978-3-8348-2264-2. Kühn, Wolfgang. 2006. Digitale Fabrik: Fabriksimulation für Produktionsplaner. München, Wien: Hanser. ISBN 978-3-446-40619-3. lv Literaturverzeichnis Kuip, C. A. C. 1993. »Algebraic Languages for Mathematical Programming.« European Journal of Operational Research 67 (1): 25–51. doi:10.1016/0377-2217(93)90320-M. Larson, Paul D. und Arni Halldorsson. 2004. »Logistics versus Supply Chain Management: An International Survey.« International Journal of Logistics Research and Applications 7 (1): 17–31. doi:10.1080/13675560310001619240. Law, Averill M. 2014. Simulation Modeling and Analysis (5., überarb. Aufl.). McGraw-Hill Series in Industrial Engineering and Management Science. Dubuque, IA: McGraw-Hill Education. ISBN 978-0-07-340132-4. Legris, Paul und Pierre Collerette. 2006. »A Roadmap for IT Project Implementation: Integrating Stakeholders and Change Management Issues.« Project Management Journal 37 (5): 64–75. ISSN 1938-9507. Liepelt, Michael und Klaus Schittkowski. 2000. »Remark on Algorithm 746: New Features of PCOMP, a Fortran Code for Automatic Differentiation.« ACM Transactions on Mathematical Software 26 (3): 352–362. doi:10.1145/358407.358412. Liggesmeyer, Peter. 2009. Software-Qualität: Testen, Analysieren und Verifizieren von Software (2. Aufl.). Heidelberg: Springer Spektrum. doi:10.1007/978-3-8274-2203-3. LINDO Systems Inc. 2016. LINGO: The Modeling Language and Optimizer. Chicago, IL. LINGO 16.0, zuletzt geändert am 23. Mai 2016, abgerufen am 4. Januar 2017. http://↵ www.lindo.com/downloads/PDF/LINGO.pdf. Makhorin, Andrew. 2016a. GNU Linear Programming Kit: Reference Manual for GLPK Version 4.58. Boston, MA: Free Software Foundation. Zuletzt geändert am 18. Februar 2016, abgerufen am 2. Januar 2017. http://ftp.gnu.org/gnu/glpk/. Makhorin, Andrew. 2016b. Modeling Language GNU MathProg: Language Reference for GLPK Version 4.58. Boston, MA: Free Software Foundation. Zuletzt geändert am 16. Februar 2016, abgerufen am 2. Januar 2017. http://ftp.gnu.org/gnu/glpk/. Mason, Andrew J. 2013. »SolverStudio: A New Tool for Better Optimisation and Simulation Modelling in Excel.« INFORMS Transactions on Education 14 (1): 45–52. doi:10.1287/↵ ited.2013.0112. Maximal Software, Inc. 2002. »Developing Large-Scale Optimization Models with the MPL Modeling System: A White Paper.« Zuletzt geändert am 23. März 2002, abgerufen am 3. Januar 2017. http://maximalsoftware.com/resources/mpl/mplwp.pdf. Maximal Software, Inc. 2017. MPL Modeling System: Release 5.0. Arlington, VA. Elektronische Fassung abgerufen am 4. Januar 2017. http://maximalsoftware.com/mplman/. May, Constantin und Peter Schimek. 2015. Total Productive Management: Grundlagen und Einführung von TPM – oder wie Sie Operational Excellence erreichen (3., korr. Aufl.). Nr. 1 in Operational Excellence. Ansbach: CETPM Publishing. ISBN 978-3-940775-05-4. lvi Literaturverzeichnis Meeraus, Alex. 1976. »Toward a General Algebraic Modelling System.« In IX. International Symposium on Mathematical Programming, Budapest, Hungary, August 23–27, 1976, 185. Budapest: Bolyai János Mathematical Society. Abgerufen am 28. November 2019. http://www.math.uwaterloo.ca/~bico/ismp/. Mehlhorn, Kurt und Peter Sanders. 2008. Algorithms and Data Structures: The Basic Toolbox. Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-77978-0. Melo, M. Teresa, Stefan Nickel und Francisco Saldanha-da-Gama. 2009. »Facility Location and Supply Chain Management – A Review.« European Journal of Operational Research 196 (2): 401–412. doi:10.1016/j.ejor.2008.05.007. Mertens, Peter, Freimut Bodendorf, Wolfgang König, Arnold Picot, Matthias Schumann und Thomas Hess. 2012. Grundzüge der Wirtschaftsinformatik (11. Aufl.). Springer-Lehrbuch. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-30515-3. Meyr, Herbert, Heidrun Rosič, Christian Seipl, Michael Wagner und Ulrich Wetterauer. 2008. »Architecture of Selected APS.« Siehe Stadtler und Kilger 2008, 349–366. doi:10.1007/↵ 978-3-540-74512-9_19. Nakajima, Seiichi. 1988. Introduction to TPM: Total Productive Maintenance. Cambridge, MA: Productivity Press. Übersetzung aus dem Japanischen, ursprünglich herausgegeben vom Japan Institute for Plant Maintenance (Originaltitel: TPM Nyumon). ISBN 978-0915299-23-2. Nebel, Markus. 2012. Entwurf und Analyse von Algorithmen. Studienbücher Informatik. Wiesbaden: Springer Vieweg. doi:10.1007/978-3-8348-2339-7. Neumaier, Arnold. 1997. »NOP – A Compact Input Format for Nonlinear Optimization Problems.« In Developments in Global Optimization, hrsg. von Immanuel M. Bomze, Tibor Csendes, Reiner Horst und Panos M. Pardalos. Bd. 18 von Nonconvex Optimization and Its Applications, 1–18. Boston, MA: Springer. doi:10.1007/978-1-4757-2600-8_1. van Nuffel, Dieter, Hans Mulder und Steven van Kervel. 2009. »Enhancing the Formal Foundations of BPMN by Enterprise Ontology.« In Advances in Enterprise Engineering III: CAiSE 2009, Amsterdam, the Netherlands, June 8–9, 2009, Proceedings, hrsg. von Antonia Albani, Joseph Barjis und Jan L. G. Dietz. Bd. 34 von Lecture Notes in Business Information Processing, 115–129. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-01915-9_9. Nüttgens, Markus und Frank J. Rump. 2002. »Syntax und Semantik Ereignisgesteuerter Prozessketten (EPK).« In Promise 2002: Prozessorientierte Methoden und Werkzeuge für die Entwicklung von Informationssystemen, Workshop der Gesellschaft für Informatik e. V. (GI), 9.–11. Oktober 2002 in Potsdam, hrsg. von Jörg Desel und Mathias Weske. Bd. P-21 von GIEdition: Lecture Notes in Informatics (LNI), 64–77. Bonn: Köllen. ISBN 978-3-88579-350-2. Object Management Group (OMG). 2010. »BPMN 2.0 by Example: Version 1.0 (NonNormative).« Begleitdokument zur technischen Spezifikation. OMG Document Number: lvii Literaturverzeichnis dtc/10-06-02. Zuletzt geändert am 11. Juni 2010, abgerufen am 3. Januar 2018. http://↵ www.omg.org/cgi-bin/doc?dtc/10-06-02.pdf. Object Management Group (OMG). 2013. »Business Process Model and Notation (BPMN): Version 2.0.2.« Technische Spezifikation. OMG Document Number: formal/13-12-09. Zuletzt geändert am 9. Dezember 2013, abgerufen am 3. Januar 2018. http://www.↵ omg.org/spec/BPMN/2.0.2/. Object Management Group (OMG). 2015. »OMG Unified Modeling Language (OMG UML): Version 2.5.« Technische Spezifikation. OMG Document Number: formal/15-03-01. Zuletzt geändert am 15. Juli 2015, abgerufen am 3. Januar 2018. http://www.omg.org/↵ spec/UML/2.5/. Ólafsson, Sigurdur und Jumi Kim. 2002. »Simulation Optimization.« In Proceedings of the 2002 Winter Simulation Conference, hrsg. von Enver Yücesan, Chun-Hung Chen, Jane L. Snowdon und John M. Charnes, 79–84. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.2002.1172871. Oliver, R. Keith und Michael D. Webber. 1992. »Supply-Chain Management: Logistics Catches up with Strategy.« In Logistics: The Strategic Issues, hrsg. von Martin Christopher, 63–75. London, New York: Chapman & Hall. Nachdruck, ursprünglich veröffentlicht in »Outlook« (Booz, Allen & Hamilton, 1982). ISBN 978-0-412-41550-0. Organization for the Advancement of Structured Information Standards (OASIS). 2007. »Web Services Business Process Execution Language Version 2.0.« Technische Spezifikation. Zuletzt geändert am 11. April 2007, abgerufen am 4. Januar 2017. http://docs.oasis-↵ open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html. Orlin, James B. 1997. »A Polynomial Time Primal Network Simplex Algorithm for Minimum Cost Flows.« Mathematical Programming 78 (2): 109–129. doi:10.1007/BF02614365. Ottmann, Thomas und Peter Widmayer. 2012. Algorithmen und Datenstrukturen (5. Aufl.). Heidelberg: Spektrum Akademischer Verlag. doi:10.1007/978-3-8274-2804-2. Pflug, Georg C. 1996. Optimization of Stochastic Models: The Interface between Simulation and Optimization, Bd. 373 von Kluwer International Series in Engineering and Computer Science. Boston, MA, Dordrecht, London: Kluwer Academic Publishers. ISBN 978-0-79239780-9. Piela, Peter C., Thomas G. Epperly, Karl M. Westerberg und Arthur W. Westerberg. 1991. »ASCEND: An Object-Oriented Computer Environment for Modeling and Analysis: The Modeling Language.« Computers & Chemical Engineering 15 (1): 53–72. doi:10.1016/↵ 0098-1354(91)87006-U. Piela, Peter C., Roy McKelvey und Arthur W. Westerberg. 1992. »An Introduction to the ASCEND Modeling System: Its Language and Interactive Environment.« Journal of Management Information Systems 9 (3): 91–121. doi:10.1080/07421222.1992.11517969. lviii Literaturverzeichnis Pohl, Klaus und Chris Rupp. 2011. Requirements Engineering Fundamentals: A Study Guide for the Certified Professional for Requirements Engineering Exam – Foundation Level – IREB Compliant. Sebastopol, CA: Rocky Nook. ISBN 978-1-4571-1192-1. Powell, Stephen G., Kenneth R. Baker und Barry Lawson. 2008. »A Critical Review of the Literature on Spreadsheet Errors.« Decision Support Systems 46 (1): 128–138. doi:10.↵ 1016/j.dss.2008.06.001. Powell, Stephen G., Kenneth R. Baker und Barry Lawson. 2009. »Impact of Errors in Operational Spreadsheets.« Decision Support Systems 47 (2): 126–132. doi:10.1016/j.dss.↵ 2009.02.002. Pryor, Jennifer und John W. Chinneck. 2011. »Faster Integer-Feasibility in Mixed-Integer Linear Programs by Branching to Force Change.« Computers & Operations Research 38 (8): 1143–1152. doi:10.1016/j.cor.2010.10.025. Ray, Santanu Saha. 2013. Graph Theory with Algorithms and Its Applications: In Applied Science and Technology. New Delhi: Springer India. doi:10.1007/978-81-322-0750-4. Recker, Jan. 2010. »Opportunities and Constraints: The Current Struggle with BPMN.« Business Process Management Journal 16 (1): 181–201. doi:10.1108/14637151011018001. Recker, Jan und Jan Mendling. 2006. »On the Translation between BPMN and BPEL: Conceptual Mismatch between Process Modeling Languages.« In 18th International Conference on Advanced Information Systems Engineering, Proceedings of Workshops and Doctoral Consortium, hrsg. von Thibaud Latour und Michael Petit, 521–532. Luxemburg: Namur University Press. Abgerufen am 4. Januar 2017. http://eprints.qut.edu.au/4637/. Recker, Jan und Jan Mendling. 2007. »Lost in Business Process Model Translations: How a Structured Approach Helps to Identify Conceptual Mismatch.« In Research Issues in Systems Analysis and Design, Databases and Software Development, hrsg. von Keng Siau, 227–259. Hershey, PA: IGI Publishing. ISBN 978-1-59904-927-4. REFA Bundesverband e. V. 2012. REFA-Lexikon: Industrial Engineering und Arbeitsorganisation (4. Aufl.). München: Hanser. ISBN 978-3-446-43408-0. Roelofs, Marcel und Johannes Bisschop. 2016a. AIMMS: The Language Reference. AIMMS 4. Haarlem: AIMMS B. V. Zuletzt geändert am 7. Dezember 2016, abgerufen am 4. Januar 2017. http://aimms.com/english/developers/resources/manuals/. Roelofs, Marcel und Johannes Bisschop. 2016b. AIMMS: The User’s Guide. AIMMS 4. Haarlem: AIMMS B. V. Zuletzt geändert am 7. Dezember 2016, abgerufen am 4. Januar 2017. http: //aimms.com/english/developers/resources/manuals/. Rojnuckarin, Atipat und Christodoulos A. Floudas. 1994. »MINOPT: A Mixed Integer Nonlinear Optimizer.« Technischer Bericht, Princeton University, Department of Chemical Engineering, Computer Aided Systems Laboratory. lix Literaturverzeichnis Rother, Mike und John Shook. 1999. Learning to See: Value Stream Mapping to Create Value and Eliminate Muda. Cambridge, MA: Lean Enterprise Institute. ISBN 978-0-9667843-0-5. Sauter, Michael und Guido von Killisch-Horn. 2010. »Produktivitätsmanagement in einer variantenreichen Fertigung.« In Methodisches Produktivitätsmanagement: Umsetzung und Perspektiven, hrsg. von Sascha Stowasser. Nr. 204 in Angewandte Arbeitswissenschaft, Zeitschrift für die Unternehmenspraxis, 35–85. Köln: Wirtschaftsverlag Bachem. ISSN 0341-0900. Schichl, Hermann, Stefan Dallwig und Arnold Neumaier. 2001. »The NOP-2 Modeling Language for Nonlinear Programming.« Annals of Operations Research 104 (1–4): 281–312. doi:10.1023/A:1013115708967. Schichl, Hermann und Arnold Neumaier. 2004. »The NOP-2 Modeling Language.« Siehe Kallrath 2004, 279–291. doi:10.1007/978-1-4613-0215-5_15. Schittkowski, Klaus. 2004. »PCOMP: A Modeling Language for Nonlinear Programs with Automatic Differentiation.« Siehe Kallrath 2004, 351–368. doi:10.1007/978-1-4613-↵ 0215-5_18. Schlegel, Andreas. 2002. »Konzeption und Einsatzvorbereitung eines Werkzeuges für die Bestimmung der Prozessqualität mittels Kennzahlenüberwachung und wissensbasierter Simulation.« Dissertation, Technische Universität Chemnitz, Fakultät für Maschinenbau und Verfahrenstechnik. Abgerufen am 4. Januar 2017. http://nbn-resolving.de/↵ urn:nbn:de:bsz:ch1-200201115. Schlick, Gerhard H. 2001. Projektmanagement – Gruppenprozesse – Teamarbeit: Wege, Hilfen und Mittel zu schnittstellen-minimierter Problemlösungskompetenz (4. Aufl.). RenningenMalmsheim: Expert-Verlag. ISBN 978-3-8169-1774-8. Schrage, Linus E. 1986. Linear, Integer, and Quadratic Programming with LINDO (3. Aufl.). Palo Alto, CA: Scientific Press. ISBN 978-0-89426-090-2. Schrage, Linus E. 2006. Optimization Modeling with LINGO (6. Aufl.). Chicago, IL: LINDO Systems. ISBN 978-1-893355-00-2. Schweiger, Carl A. und Christodoulos A. Floudas. 1998a. MINOPT: A Modeling Language and Algorithmic Framework for Linear, Mixed-Integer, Nonlinear, Dynamic, and Mixed-Integer Nonlinear Optimization. Princeton University, Department of Chemical Engineering. Zuletzt geändert am 15. Oktober 1998, abgerufen am 4. Januar 2017. http://titan.↵ princeton.edu/MINOPT/manual.pdf. Schweiger, Carl A. und Christodoulos A. Floudas. 1998b. »Process Synthesis, Design, and Control: A Mixed-Integer Optimal Control Framework.« In 5th IFAC Symposium on Dynamics and Control of Process Systems (DYCOPS 5), Corfu, Greece, 8–10 June, 1998. Bd. 31, Nr. 11 von IFAC Proceedings Volumes, 191–196. New York: Elsevier Science. doi:10.↵ 1016/S1474-6670(17)44927-5. lx Literaturverzeichnis Schweiger, Carl A. und Christodoulos A. Floudas. 2004. »The MINOPT Modeling Language.« Siehe Kallrath 2004, 185–209. doi:10.1007/978-1-4613-0215-5_11. Semini, Marco, Hakon Fauske und Jan O. Strandhagen. 2006. »Applications of DiscreteEvent Simulation to Support Manufacturing Logistics Decision-Making: A Survey.« In Proceedings of the 2006 Winter Simulation Conference, hrsg. von Luiz Felipe Perrone, Frederick P. Wieland, Jason Liu, Barry G. Lawson, David M. Nicol und Richard M. Fujimoto, 1946–1953. Piscataway, NJ: Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/WSC.2006.322979. Shewhart, Walter A. 1986. Statistical Method from the Viewpoint of Quality Control. Dover Books on Mathematics. New York: Dover Publications. ISBN 978-0-486-65232-0. Nachdruck, ursprünglich veröffentlicht in Washington, DC: Graduate School of the Department of Agriculture, 1939. Silver, Bruce. 2011. BPMN Method and Style, 2nd Edition, with BPMN Implementer’s Guide: A Structured Approach for Business Process Modeling and Implementation Using BPMN 2. Aptos, CA: Cody-Cassidy Press. ISBN 978-0-9823681-1-4. Simchi-Levi, David, Philip Kaminsky und Edith Simchi-Levi. 2008. Designing and Managing the Supply Chain: Concepts, Strategies, and Case Studies (3., überarb. Aufl.). McGrawHill/Irwin Series in Operations and Decision Sciences. Boston, MA: McGraw-Hill Higher Education. ISBN 978-0-07-298239-8. Singh, Bhim, Suresh K. Garg und Surrender K. Sharma. 2011. »Value Stream Mapping: Literature Review and Implications for Indian Industry.« International Journal of Advanced Manufacturing Technology 53 (5–8): 799–809. doi:10.1007/s00170-010-2860-7. Slate, Laurel und Kurt Spielberg. 1978. »The Extended Control Language of MPSX/370 and Possible Applications.« IBM Systems Journal 17 (1): 64–81. doi:10.1147/sj.171.0064. Spielberg, Kurt. 2004. »The Optimization Systems MPSX and OSL.« Siehe Kallrath 2004, 267–278. doi:10.1007/978-1-4613-0215-5_14. Stadtler, Hartmut, Bernhard Fleischmann, Martin Grunow, Herbert Meyr und Christopher Sürie. 2012. Advanced Planning in Supply Chains: Illustrating the Concepts Using an SAP ® APO Case Study. Management for Professionals. Berlin, Heidelberg: Springer. doi:10.↵ 1007/978-3-642-24215-1. Stadtler, Hartmut und Christoph Kilger, Hrsg. 2008. Supply Chain Management and Advanced Planning: Concepts, Models, Software, and Case Studies (4. Aufl.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-74512-9. Standish Group International, Inc. 1995. »Chaos Report.« Boston, MA. Abgerufen am 4. Januar 2017. http://standishgroup.com/. Standish Group International, Inc. 2011. »Chaos Manifesto: The Laws of Chaos and the Chaos 100 Best PM Practices.« Boston, MA. lxi Literaturverzeichnis Storey, John, Caroline Emberson, Janet Godsell und Alan Harrison. 2006. »Supply Chain Management: Theory, Practice and Future Challenges.« International Journal of Operations & Production Management 26 (7): 754–774. doi:10.1108/01443570610672220. Suhl, Leena und Taïeb Mellouli. 2009. Optimierungssysteme: Modelle, Verfahren, Software, Anwendungen (2., überarb. Aufl.). Springer-Lehrbuch. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-01580-9. Turau, Volker. 2009. Algorithmische Graphentheorie (3., überarb. Aufl.). München, Wien: Oldenbourg Wissenschaftsverlag. ISBN 978-3-486-59057-9. Tutte, William T. 2001. Graph Theory (2., illustr. Aufl.), Bd. 21 von Cambridge Mathematical Library. Cambridge, UK: Cambridge University Press. ISBN 978-0-521-79489-3. Unger, Thomas und Stephan Dempe. 2010. Lineare Optimierung: Modell, Lösung, Anwendung. Studium. Wiesbaden: Springer Vieweg. doi:10.1007/978-3-8348-9659-9. Vajna, Sandor, Christian Weber, Helmut Bley, Klaus Zeman und Peter Hehenberger. 2009. CAx für Ingenieure: Eine praxisbezogene Einführung (2., völlig neu bearb. Aufl.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-540-36039-1. Valente, Christian. 2011. »Design and Architecture of a Stochastic Programming Modelling System.« Dissertation, Brunel University London, School of Information Systems, Computing and Mathematics. Abgerufen am 2. Januar 2017. http://bura.brunel.↵ ac.uk/handle/2438/6249. Valente, Christian, Gautam Mitra, Mustapha Sadki und Robert Fourer. 2008. »Extending Algebraic Modelling Languages for Stochastic Programming.« INFORMS Journal on Computing 21 (1): 107–122. doi:10.1287/ijoc.1080.0282. Valente, Christian, Gautam Mitra, Victor Zviarovich, Patrick Valente, Chandra Poojari, Frank Ellison und Nico Di Domenica. 2009. SAMPL/SPInE User Manual. Uxbridge: OptiRisk Systems. Zuletzt geändert am 22. Mai 2009, abgerufen am 2. Januar 2017. http://↵ optirisk-systems.com/manuals/spineamplmanual.pdf. Valente, Patrick, Gautam Mitra, Chandra A. Poojari und Triphonas Kyriakis. 2001. »Software Tools for Stochastic Programming: A Stochastic Programming Integrated Environment (SPInE).« Technical Report TR/10/2001, Centre for the Analysis of Risk and Optimisation Modelling Applications (CARISMA), Brunel University London. Abgerufen am 2. Januar 2017. http://bura.brunel.ac.uk/handle/2438/745. VDI 3633:1996-11. Simulation von Logistik-, Materialfluss- und Produktionssystemen – Begriffsdefinitionen. VDI-Richtlinie (Entwurf). Verein Deutscher Ingenieure e. V. (VDI). Berlin: Beuth, 1996. Abgerufen am 4. Januar 2017. http://www.vdi.de/3633/. Werners, Brigitte. 2013. Grundlagen des Operations Research: Mit Aufgaben und Lösungen (3., überarb. Aufl.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-40102-2. lxii Literaturverzeichnis Wilson, D. George und Bernard D. Rudin. 1992. »Introduction to the IBM Optimization Subroutine Library.« IBM Systems Journal 31 (1): 4–10. doi:10.1147/sj.311.0004. Winston, Wayne L. 2011. Microsoft ® Excel ® 2010: Data Analysis and Business Modeling (3. Aufl.). Redmond, WA: Microsoft Press. ISBN 978-0-7356-6029-8. Witte, Frank. 2016. Testmanagement und Softwaretest: Theoretische Grundlagen und praktische Umsetzung. Wiesbaden: Springer Vieweg. doi:10.1007/978-3-658-09964-0. Wohed, Petia, Wil M. P. van der Aalst, Marlon Dumas, Arthur H. M. ter Hofstede und Nick Russell. 2006. »On the Suitability of BPMN for Business Process Modelling.« In Business Process Management: 4th International Conference, BPM 2006, Vienna, Austria, September 5–7, 2006, Proceedings, hrsg. von Schahram Dustdar, Josẽ Luiz Fiadeiro und Amit P. Sheth. Bd. 4102 von Lecture Notes in Computer Science, 161–176. Berlin, Heidelberg: Springer. doi:10.1007/11841760_12. Yeo, Kai Ting. 2002. »Critical Failure Factors in Information System Projects.« International Journal of Project Management 20 (3): 241–246. doi:10.1016/S0263-7863(01)↵ 00075-8. lxiii