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