Definition und Zielsetzung
Der Verein deutscher Ingenieure (VDI) definiert Simulation
allgemein als die
„Nachbildung eines Systems mit seinen dynamischen Prozessen
in einem experimentierfähigen Modell, um zu Erkenntnissen zu gelangen, die auf
die Wirklichkeit übertragbar sind” ( [VDI 2013]).
Der Einsatz von Simulation empfiehlt sich immer dann, wenn
Experimente und Messungen in der Realität zu langsam
(Bevölkerungsentwicklungen), zu schnell (Explosionsverhalten), zu gefährlich
(Crashtests), unmöglich (Urknall) oder schlicht teuer (Fabrikplanung) wären. Insbesondere bei
komplexen Realsystemen sind die Grenzen analytischer Methoden und Beschreibungen
schnell erreicht. Simulation dagegen kann, auf Basis einer geeigneten Modellierung, sehr umfangreiche Systeme handhaben und dem Anwender die
Zusammenhänge der einzelnen Systemvariablen deutlich machen (vgl. [Law und Kelton 2000], S. 106ff.). Über Simulationsläufe wird das zeitliche
Ablaufverhalten von Systemen abgebildet; zusätzlich kann es protokolliert, reproduziert,
analysiert und interpretiert werden und Sensitivitätsanalysen werden ermöglicht.
Mit Simulation können bestehende Systeme iterativ optimiert
werden, bspw. durch effizienteren Einsatz von Ressourcen oder die Verbesserung
von Steuerungsstrategien während des Betriebs. Zudem kann die Planung noch nicht
existenter Systeme unterstützt werden: Allein die schlichte
Visualisierung des dynamischen Systemverhaltens kann die Analyse komplexer Zusammenhänge ungemein erleichtern und erlaubt den Einsatz von Simulationsmodellen als Schulungsinstrument.
Alles
in allem bringt der geschickte Einsatz von Simulation in der Praxis oftmals
erhebliche Kostenvorteile mit sich, deckt Kostenrisiken erst auf oder
verschafft eine höhere Investitionssicherheit. Andererseits ist die zur Gewinnung valider Erkenntnisse über
das Realsystem notwendige Isomorphie zwischen dem System und dem zu bildenden
Modell schwer zu gewährleisten. Außerdem kann eine schlechte Datenbasis die
Ergebnisse dramatisch verfälschen (was allerdings kein simulationsspezifischer
Nachteil ist). Es ist zu bedenken, dass Simulationsstudien an sich aufwendig und
damit teuer sind, ein Erfolg aber nicht garantiert werden kann.
Simulationsstudien mit ihren teils umfangreichen Experimenten und Berechnungen werden teilweise als Allheilmittel zur Systemverbesserung
oder gar zur Optimierung missverstanden. In Wahrheit liefert Simulation jedoch
im besten Fall ein Optimum unter den getroffenen Annahmen und einer endlichen Anzahl untersuchter Alternativen. Aktuell erfährt das Forschungsgebiet der Kopplung von Simulations- und Optimierungsmethoden eine wachsende Bedeutung.
Es ist absehbar, dass sich der Einsatz von Simulationstechniken
in Zukunft mit der Verfügbarkeit schnellerer Rechner und immer leichter
bedienbarer Werkzeuge weiter verstärken wird. Eine Grenze der Möglichkeiten der
Simulation ist prinzipiell nicht in Sicht. Problematisch ist am ehesten der mit einer höheren Detaillierung im Bereich der Modellierung einhergehende steigende Datenbedarf, der zur Berechnung sinnvoller Ergebnisse ebenfalls einer entsprechenden Qualität bedarf.
Aspekte der Modellierung realer Systeme
Fast jedes Realsystem ist in irgendeiner Form problembehaftet
(vgl. [Liebl 1995, S. 113ff.]), so dass die Modellierung und Simulation der
problemrelevanten Bestandteile und Eigenschaften zu wünschenswerten
Verbesserungen führen könnte. Ein Modell besitzt im Gegensatz zum Realsystem
lediglich eine eingeschränkte Menge an Variablen, die das prinzipielle Verhalten
eines Systems abbilden (vgl. [Smith 1968, S. 1]). Dabei werden nur die für den spezifischen Untersuchungszweck relevanten Parameter und Einflussgrößen berücksichtigt. Ein Modell soll das
reale System abstrahieren und auf die Fragestellung schnell eine
aussagekräftige Antwort geben. Bei der Modellerstellung darf nie das Ziel der
Untersuchung aus den Augen gelassen werden; ein Modell allein besitzt keine
Existenzberechtigung.
Modelle lassen sich wie folgt klassifizieren:
- Deterministisch/stochastisch:
Wenn der Eintritt einer Zustandsänderung mit
einer gewissen Wahrscheinlichkeit behaftet ist, heißt ein Modell stochastisch.
Dabei werden verschiedene Wahrscheinlichkeitsverteilungen empirischer oder
theoretischer Art verwendet, um das reale Verhalten möglichst identisch nachzuahmen.
- Diskret/kontinuierlich:
Ändern sich Systemvariablen und -zustände
diskret, heißt ein Modell diskret, ansonsten kontinuierlich (vgl. [Liebl 1995,
S. 9]). In diskreten Modellen besitzen die Systemvariablen fest definierte
Zustände, zwischen denen sie wechseln können, z.B.: Frei, In Arbeit, Blockiert,
Wartend und Unterbrochen. Neben der strikten Trennung von diskreter und
kontinuierlicher Simulation existiert auch die Möglichkeit, beide Typen als hybride Form zu
kombinieren.
- Fixe oder
variable Zeitinkremente: Die Zeitsteuerung
während einer Simulation kann mittels fixer oder variabler Zeitintervalle
geschehen. Für die diskrete Simulation von Systemen hat sich i.d.R. die
variable Zeiteinteilung als vorteilhaft herausgestellt. Dabei wird die
Simulationszeit mit den Eintrittszeitpunkten aufgetretener Ereignisse
inkrementiert. Die Alternative besteht darin, jeweils um ein festes
Zeitintervall zu inkrementieren und dann alle eingetretenen Zustandsänderungen
und deren Abhängigkeiten zu bestimmen. Letzteres ist leichter technisch zu
implementieren, es besteht aber die Notwendigkeit der Sequenzierung und
Synchronisation, was den Rechenaufwand erhöht.
- Stationär/nicht
stationär: Stationäre Modelle werden i. Allg.
nach einer Einschwingphase in einen gleichgewichtigen Zustand eintreten. In
diesem sind die Outputvariablen nicht mehr trendbehaftet, können jedoch
durchaus eine hohe Varianz aufweisen. Die Einschwingphase kann die
Outputgrößen positiv oder negativ verzerren, so dass sie ggf. entfernt werden
muss. Stationäre Modelle haben prinzipiell einen unendlichen Zeithorizont, im
Gegensatz zu den nicht stationären. Diese weisen oftmals Strukturbrüche während
ihres Ablaufs auf (z.B. variierende Ankunftsraten) oder haben ein natürliches
Ende, welches den Eintritt des stationären Zustands verhindert. Ob ein Modell
als stationär oder nicht stationär simuliert wird, hängt stark vom jeweiligen
Untersuchungszweck ab.
Parallele
und verteilte Simulation
Wie viele andere
rechenintensive Aufgaben auch, können große Simulationsmodelle durch eine
geeignete Parallelisierung auf verschiedene Prozessoren in
ihrer Laufzeit verkürzt werden. Die „parallele und
verteilte Simulation“ (vgl. [Fujimoto 2000]) kann dabei auf verschiedene Arten
genutzt werden, um einen Simulationslauf zu beschleunigen:
Eine bloße Verteilung
häufig benötigter Routinen (Generierung von Pseudozufallszahlen, statistische
Berechnungen, usw.) auf andere Prozessoren (vgl. [Mehl 1994, S. 7]) kann
bereits sequenzielle Simulationsmodelle ohne Auswirkungen auf die Modellierung
beschleunigen. Weitere Geschwindigkeitssteigerungen sind darüber hinaus nur zu
erzielen, wenn das Modell selbst aufgeteilt und parallelisiert wird, also verschiedene Ereignisse
desselben Laufs auf unterschiedlichen Prozessoren berechnet werden. Die so
entstehenden Submodelle werden jeweils von einem eigenen ereignisgesteuerten
Simulator ausgeführt und als logische Prozesse (LP) bezeichnet. Damit die Simulation dann tatsächlich beschleunigt wird, ist eine geeignete Aufteilung des Modells zu
finden. Dies erweist sich als nicht trivial (vgl. [Mehl 1994, S. 9ff.]).
In der Praxis wird üblicherweise ein vereinfachtes Verfahren zur schnelleren Berechnung von Simulationsexperimenten verwandt, indem eine spezifische Modellkonfiguration auf einem einzelnen Rechner berechnet wird, die zur Berechnung des Experimentes benötigten Replikationen oder weiteren Konfigurationen und Parametrierungen des Simulationsmodells jedoch in Rechnernetzen verteilt werden. Diese Form der verteilten Simulation ist technisch weniger anspruchsvoll, weil die einzelnen Simulationsläufe unabhängig voneinander berechnet werden können und nur im Bereich der Analyse des Experimentes die gesammelten Informationen wieder zentral gesammelt und ausgewertet werden müssen.
Softwaresysteme zur Simulation
Simulationswerkzeuge dienen in erster Linie der Unterstützung
der Durchführung von Simulationsstudien. Prinzipiell kann zwischen allgemeinen
und speziellen Werkzeugen unterschieden werden.
Zu allgemeinen Werkzeugen ist jede Programmiersprache
(z. B. C, C++, C#, JAVA, etc.) zu zählen. Je nach
Komplexität des Systems und spezieller Anforderungen an z. B.
Geschwindigkeit oder Speichereffizienz kann es notwendig werden, ein
Simulationsmodell direkt in einer dieser Sprachen zu erstellen. Für die meisten
Programmiersprachen liegen mittlerweile leistungsstarke Funktions- bzw.
Klassenbibliotheken vor. Zusätzlich existieren spezielle Werkzeuge zur Erstellung von
Simulationsprogrammen. Dies sind zum einen für die besonderen Anforderungen der
Simulation konzipierte Simulationssprachen, z.B. Simscript, GPSS oder Simula. Daneben gibt es visuelle Systeme, die mit grafischen Benutzeroberflächen die
Erzeugung von Simulationsprogrammen unterstützen (z.B. Plant
Simulation, Arena, Enterprise Dynamics, FlexSim, etc.).
Jede Simulationsumgebung sollte bestimmte Grundfunktionalitäten
zur Verfügung stellen. Zu diesen zählen Generierung von Zufallszahlen
unterschiedlichster Verteilungen, Management der Simulationszeit
(diskret/kontinuierlich), Ereignishandling, Warteschlangenmanagement,
Datensammlung, Datenanalyse und Reportgenerierung. Weitere Qualitätsaspekte,
die einen entscheidenden Einfluss auf die Handhabbarkeit haben, sind
Portierbarkeit sowie Art und Qualität der Dokumentation. Im Allgemeinen gilt ein in einer Programmiersprache direkt
umgesetztes Modell aufgrund der niedrigeren Abstraktion als viel zeit- und
ressourcenaufwendiger in der Entwicklung, aber auch weitaus performanter als ein
(visuelles) Simulationstool.
Vorgehensmodelle für Simulationsstudien
Eine Simulationsstudie kann durchaus wie ein „normales“ Projekt
behandelt werden. Die Anwendung eines strukturierten Vorgehens ist folglich
ebenso wichtig wie in jedem anderen Projekt. Von Anfang an müssen dabei Fehler
im Projektablauf vermieden und gemeinsam mit dem Auftraggeber abgestimmte
Zielsetzungen konsequent verfolgt werden.
Law und Kelton haben ein Modell zur Durchführung einer
Simulationsstudie vorgeschlagen, dass sie „Steps of a sound simulation study”
nennen (vgl. [Law/Kelton 2000]).
- Vorstudie:
Zunächst muss eine genaue Problemdefinition durch und mit dem Auftraggeber
erfolgen.
- Konzeptuelle
Modellierung und Datensammlung: Informationen über die Systemstruktur und
-abläufe müssen unter Zuhilfenahme diverser Erhebungstechniken gesammelt
werden. Ebenfalls sehr früh sollten repräsentative Eingabedaten erhoben werden,
weil mit deren Vorhandensein der Erfolg der Studie steht und fällt.
- Validierung:
In dieser Phase wird die Frage nach der Gültigkeit des konzeptuellen Modells
gestellt. Dies kann bspw. mittels strukturierter Modellüberprüfungen erfolgen, die von den beteiligten Experten gemeinsam durchgeführt werden. Ist das
Modell nicht valide, wird zu Schritt 2 zurückgesprungen.
- Implementierung:
Das Modell wird in der gewählten Entwicklungsumgebung umgesetzt. Das
entstehende Programm muss anschließend verifiziert werden, um zu garantieren,
dass das Simulationsprogramm (technisch) korrekt läuft.
- Testläufe:
Das Simulationssystem wird mit echten Daten getestet, die bspw. aus existenten,
vergleichbaren Systemen stammen oder plausibel generiert wurden.
- Validierung
des implementierten Modells: Anwendungs- und Simulationsexperten sollen
nochmals die Korrektheit feststellen. Es gibt keinen „richtigen Weg“, ein noch nicht existentes System zu validieren und nur sehr wenige „echte“ Validierungstechniken (Ansätze zu finden in [Rabe et al, 2008]). Sinnvoll seien
in jedem Fall Expertengespräche und eine gute Dokumentation. Kein
nicht triviales Modell kann jemals total validiert werden. Durch gezieltes
Verändern der Inputdaten kann außerdem eine Sensitivitätsanalyse durchgeführt
werden, um die wirklich relevanten Inputfaktoren zu bestimmen und damit die
nachfolgende Experimentation zu verkürzen. Auch nach der erneuten Validierung
ist ein Rücksprung vorgesehen, falls das Modell der Überprüfung nicht standhält.
- Experimentationsdesign:
Für jede zu untersuchende Systemkonfiguration werden die Länge des
Simulationslaufes und der Anlaufphase sowie die Anzahl der unabhängigen
Laufwiederholungen (Replikationen) spezifiziert. Dabei kann die Zahl der
Replikationen durch die Kombinatorik bei vielen zu untersuchenden
Einflussgrößen leicht prohibitiv groß werden, um in der geplanten Zeit zu den
gewünschten Ergebnissen zu gelangen. Ein gutes Design ist also für den Erfolg
der Studie von zentraler Bedeutung. In der Praxis finden hier zumeist Verfahren der statistischen Versuchsplanung Anwendung.
- Produktionsläufe
durchführen: Die Produktionsläufe sollten sorgfältig protokolliert werden,
um anschließend die gewünschten Analysen durchführen zu können.
- Outputanalyse:
Hauptziele sind oft die Bestimmung absoluter Leistungskennzahlen von Systemen,
der Vergleich verschiedener Konfigurationen oder die Optimierung des Vektors
der Inputfaktoren. Letzteres ist das weitaus schwierigste Ziel, wird aber
mittlerweile durch einige Softwarepakete unterstützt, welche mittels
Optimierungsalgorithmen die Inputfaktoren derart variieren, dass die
Outputzielgröße iterativ verbessert wird.
- Dokumentation, Ergebnispräsentation: Die Dokumentation sollte
eigentlich studienbegleitend durchgeführt werden. Alle Annahmen, das
entwickelte Simulationssystem sowie die Ergebnisse müssen sehr gut dokumentiert
und dem Auftraggeber präsentiert werden. Die Ergebnisse müssen dabei sowohl
valide als auch glaubwürdig sein.
Anschließend gilt es, die gewonnenen Erkenntnisse auf das
Realsystem zu übertragen. Neben der Dokumentation muss es selbstverständlich
weitere übergreifende Tätigkeiten geben, die jedoch nicht im Ursprungsmodell
genannt sind. Üblicherweise fallen hier heute alle Aufgaben an, die dem klassischen Projektmanagement zugerechnet werden können.
Literatur
Fujimoto, R. M.: Parallel and distributed Simulation Systems. New Xork : Wiley 2000.
Law, A. M., Kelton, W.:
Simulation Modeling and Analysis. Boston : McGraw Hill, 4th edition 2007.
Liebl, F.: Simulation. München : Oldenbourg, 1995.
Mehl, H.: Methoden
verteilter Simulation. Braunschweig : Vieweg 1994.
Rabe, M., Spieckermann, S., Wenzel, S.: Verifikation und Validierung für die Simulation in Produktion und Logistik: Vorgehensmodelle und Techniken (VDI-Buch) , Springer Verlag, 2008
Smith, J.: Computer Simulation Models. London : Griffin 1968.
VDI-Richtlinie 3633: Simulation von Logistik-, Materialfluss- und Produktionssystemen - Grundlagen. Düsseldorf : VDI Verlag, 2013.
Autoren
Prof. Dr.-Ing. habil. Wilhelm Dangelmaier, Universität Paderborn, Heinz-Nixdorf-Institut, Wirtschaftsinformatik, insb. CIM, Fürstenallee 11, 33102 Paderborn
Autoreninfo
Prof. Dr. Christoph Laroque, Westsächsische Hochschule Zwickau, Dr.-Friedrichs-Ring 2a, 08056 Zwickau
Autoreninfo