# Simulationsbasierte Optimierung

Die Idee der simulationsbasierten Optimierung (SBO) besteht darin, mit Simulationsmodellen eine Optimierungskomponente zu verbinden, die bestimmte Variablen eines Simulationsmodells zur Minimierung oder Maximierung einer Zielfunktion variiert.
Simulationsmodelle dienen zur Prognose komplexer, realer Systeme, die zufälligen Einflüssen unterliegen. Typischerweise nutzt man Simulationsmodelle, um die Auswirkungen einzelner Handlungsalternativen zu untersuchen, ohne diese tatsächlich umzusetzen und mögliche negative Effekte auf das reale System zu verursachen. Man beschränkt sich i. d. R. auf eine relativ kleine Zahl von Handlungsalternativen, spielt diese mit Hilfe von Simulationssoftware durch, und wählt anschließend die nach einer bestimmten Zielsetzung beste Handlungsalternative aus. Die klassische Methode zur Auswahl einer Handlungsalternative besteht darin, die Simulationen mit entsprechender Software durchzuführen, die Auswahl dann jedoch weitgehend manuell zu treffen. Die simulationsbasierte Optimierung bezweckt hingegen, diese Auswahl der „besten“ Handlungsalternative automatisiert durch einen Algorithmus vorzunehmen, der ein zugrunde liegendes Simulationsmodell verwendet. Die Grundidee der SBO besteht darin, Handlungsalternativen durch Variablen eines Simulationsmodells zu beschreiben. Ein SBO-Algorithmus variiert diese Variablen, bewertet wiederholt die aus der Wahl von Variablenwerten resultierende Lösung durch Simulationsläufe und liefert dann die beste gefundene Lösung zurück. Dabei kann zum einen der Optimierer den Simulator steuern und umgekehrt.
In Analogie zur „klassischen“ Optimierung entsprechen also bei der SBO das Simulationsergebnis, welches z. B. ein Kostenwert sein kann, der Zielfunktion eines Optimierungsproblems, und die Variablen eines Simulationsmodells den Variablen eines Optimierungsmodells. Ein wesentlicher Unterschied zu „üblichen“ Optimierungsproblemen besteht jedoch darin, dass die „Zielfunktion“ bei der SBO stochastisch ist, d. h., sie unterliegt zufälligen Schwankungen, je nachdem welches eintretende Szenario in einem Simulationslauf betrachtet wird.

## Anwendungsbeispiele

Mögliche Zielsetzungen, aus denen konkrete SBO-Probleme abgeleitet werden können, sind das Finden
* der besten Integration von Produktion und Logistik eines Unternehmens,
* der besten Layouts, Verbindungen und Kapazitäten von Logistiknetzwerken,
* der besten Anzahl von Maschinen und Anlagen einer Fabrik,
* der höchsten Auslastung verfügbarer Personalressourcen,
* der besten Standorte für die Distribution von Gütern,
* des besten Plans für den Betrieb eines Kernkraftwerks,
* der besten Allokation von Ärzten und Pflegekräften eines Krankenhauses,
* der besten Einstellung von Toleranzen in Produktionsprozessen,
* der Lösung von multikriteriellen Zielstellungen (Pareto-Optimalität) in Produktion und Logistik.

## Software

Auf dem Markt für Simulationssoftware existiert eine kaum überblickbare Vielfalt von Produkten. Diverse Simulationssoftwarepakete wurden inzwischen um Komponenten zur SBO erweitert:
* OptQuest (herausgegeben von OptTek System Inc.) ist ein SBO-Plugin für Simulationssoftware (z. B. Arena, FlexSim, AnyLogic), welches das Anlegen und die Analyse der zu optimierenden Szenarien automatisiert.
* Die MATLAB Optimization Toolbox vereint verschiedene Methoden numerischer Optimierung aus dem Bereich linearer und nichtlinearer Optimierung. Die Genetic Algorithm and Direct Search Toolbox erweitert die Möglichkeiten der Optimierung durch weitere Optimierungsstrategien.
* Plant Simulation (von Siemens) verfügt sowohl über eine eigene SBO Komponente, als auch über integrierte Neuronale Netze.
* Simulink Design Optimization verändert die Parameter eines Modells dahingehend, dass dessen dynamisches Verhalten an einem Ausgang einem vorgegebenen Signalverlauf bzw. einem Korridor folgt.

## Algorithmen

Es lässt sich folgenden Einteilung der SBO-Algorithmen in Klassen vornehmen, die sich an den SBO-Forschungsrichtungen orientiert:
* Algorithmen für endliche Lösungsräume: Ranking & Selection, Multiple Comparisons und Ordinal Optimization
* Stochastic Approximation-Algorithmen (SA) wie FDSA und SPSA
* Response Surface Methodology-Algorithmen (RSM) wie Sequential RSM mit linearer Regression oder neuronalen Netzen
* Sample Path Optimization (SPO)
* Metaheuristiken wie simulierte Abkühlung (SA), Evolutionäre Algorithmen (EA), Tabu-Suche (TS), Scatter Search (SCS) und Partikelschwarmoptimierung (PSO)
* Direct Search-Algorithmen (DS) wie Pattern Search (PS) und der Nelder-Mead-Simplex-Algorithmus, siehe Downhill-Simplex-Verfahren
* Random Search
* Adaptiv and Hybrid Search - Algorithms (determine,stochastic,evolve,genetic,threshold) with Learning Process (ISSOP - Intelligent System for Simulation and Optimization)