Stochastische Programmierung

From Systems analysis Wiki
Jump to navigation Jump to search

Stochastische Programmierung (englisch stochastic programming) ist ein Teilgebiet der mathematischen Programmierung, das Modelle und Methoden zur Lösung von Optimierungsaufgaben unter Unsicherheit entwickelt, bei denen einige Modellparameter nicht exakt bekannt sind, sondern als Zufallsvariablen mit bekannten oder geschätzten Wahrscheinlichkeitsverteilungen dargestellt werden[1][2].

Im Gegensatz zu deterministischen Problemen, bei denen alle Daten als gegebene Konstanten betrachtet werden, zielt die stochastische Programmierung darauf ab, eine Lösung (oder eine Entscheidungsstrategie) zu finden, die in einem statistischen Sinne optimal ist. Meistens bedeutet dies die Minimierung oder Maximierung des Erwartungswertes der Zielfunktion[1]. Die zentrale Idee besteht darin, eine Entscheidungsstrategie zu finden, die „im Durchschnitt“ über alle möglichen Realisierungen der Zufallsparameter am besten ist. Dies ist besonders relevant für Probleme, bei denen Entscheidungen wiederholt unter ähnlichen Bedingungen getroffen werden (z. B. im Bestandsmanagement oder bei der Steuerung von Energiesystemen)[3].

Mathematische Formulierung des Problems

In allgemeiner Form kann ein stochastisches Programmierproblem wie folgt formuliert werden: minxX𝔼[f(x,ξ)] wo:

  • x – der Vektor der Entscheidungsvariablen (Entscheidungen) ist, die bestimmt werden müssen.
  • X – die zulässige Menge der Entscheidungen für x ist, die durch deterministische Nebenbedingungen definiert wird.
  • ξ – ein Zufallsvektor ist, der die unsicheren Parameter des Problems darstellt (z. B. Nachfrage, Preise, Wetterbedingungen).
  • f(x,ξ) – die Zielfunktion ist, deren Wert sowohl von der getroffenen Entscheidung x als auch von der Realisierung des Zufallsvektors ξ abhängt.
  • 𝔼[] – der Erwartungswertoperator ist, der über die Wahrscheinlichkeitsverteilung des Vektors ξ berechnet wird.

Ein wesentliches Prinzip, das mehrstufigen stochastischen Modellen zugrunde liegt, ist das Nicht-Antizipativitätsprinzip (englisch non-anticipativity principle). Es besagt, dass Entscheidungen, die in einer bestimmten Stufe getroffen werden, nur von den bis zu diesem Zeitpunkt verfügbaren Informationen abhängen dürfen und nicht „in die Zukunft blicken“ können[2].

Zweistufiges Problem mit Rückgriff

Das am weitesten verbreitete Modell ist das zweistufige stochastische Programm mit Rückgriff (englisch two-stage stochastic program with recourse)[1]. Der Entscheidungsprozess ist in zwei Stufen unterteilt:

  1. Erste Stufe: Eine „Hier-und-Jetzt“-Entscheidung (here-and-now) wird getroffen – der Vektor x wird bestimmt. Diese Entscheidung muss getroffen werden, bevor die spezifische Realisierung des Zufallsvektors ξ bekannt ist.
  2. Zweite Stufe: Nachdem das zufällige Ereignis eingetreten ist, wird eine korrigierende oder kompensatorische Entscheidung (recourse decision) getroffen – der Vektor y(ξ), der darauf abzielt, negative Konsequenzen zu minimieren oder günstige Gelegenheiten zu nutzen, die sich aus der Kombination der Entscheidung der ersten Stufe x und dem Ergebnis ξ ergeben.

Mathematisch wird ein zweistufiges stochastisches lineares Programmierproblem wie folgt formuliert: minxn1{cTx+𝔼ξ[Q(x,ξ)]} unter den Nebenbedingungen der ersten Stufe: Ax=b,x0. Hierbei ist Q(x,ξ) die Rückgriffsfunktion (recourse function), die den optimalen Wert des Problems der zweiten Stufe darstellt: Q(x,ξ)=minyn2{q(ξ)TyT(ξ)x+Wy=h(ξ),y0} wobei ξ ein Zufallsvektor ist, der die Parameter q(ξ),T(ξ) und h(ξ) umfasst; und c,A,b und W deterministische Parameter sind[2].

Schlüsseleigenschaften und Theoreme

  • Konvexität: Eines der fundamentalen Ergebnisse der Theorie ist, dass für ein zweistufiges stochastisches lineares Programmierproblem die erwartete Rückgriffsfunktion Q(x)=𝔼ξ[Q(x,ξ)] eine konvexe Funktion ist. Diese Eigenschaft ist von großer Bedeutung, da sie garantiert, dass das Gesamtproblem der ersten Stufe ein konvexes Optimierungsproblem ist, für das effiziente Lösungsmethoden existieren und bei dem das globale Optimum mit dem lokalen Optimum übereinstimmt[1].
  • Deterministisches Äquivalent: Wenn der Zufallsvektor ξ eine endliche Anzahl möglicher Realisierungen (Szenarien) ξ1,,ξK mit den Wahrscheinlichkeiten p1,,pK hat, kann das stochastische Programmierproblem als ein einziges großes deterministisches Optimierungsproblem umformuliert werden. In diesem Fall wird der Erwartungswert durch eine gewichtete Summe über alle Szenarien ersetzt. Die Größe dieses Problems wächst jedoch linear mit der Anzahl der Szenarien, was zum „Fluch der Dimensionalität“ führt und diesen Ansatz für eine große Anzahl von Szenarien rechnerisch unlösbar macht[2].

Vergleich mit robuster Optimierung

Die stochastische Programmierung ist einer von mehreren Ansätzen zur Optimierung unter Unsicherheit. Ihr Hauptunterschied zur robusten Optimierung liegt in der Art der Modellierung der Unsicherheit und dem Optimalitätskriterium[4].

Vergleich der Ansätze zur Optimierung unter Unsicherheit
Kriterium Stochastische Optimierung Robuste Optimierung
Darstellung der Unsicherheit Parameter sind Zufallsvariablen mit bekannter Wahrscheinlichkeitsverteilung Parameter gehören zu einer gegebenen Unsicherheitsmenge, eine Verteilung ist nicht erforderlich
Optimalitätskriterium Optimierung des Erwartungswertes der Zielfunktion Optimierung für das Worst-Case-Szenario (Minimax)
Art der Lösung Eine im Durchschnitt optimale Strategie, die für seltene Szenarien unzulässig sein kann Eine Lösung, die für alle Realisierungen garantiert zulässig ist; kann konservativ sein

Beispiele

  • Zeitungsjungenproblem (englisch newsvendor problem): Ein klassisches Problem des Bestandsmanagements, bei dem ein Verkäufer entscheiden muss, wie viele Einheiten eines Produkts er einkaufen soll, ohne die genaue zukünftige Nachfrage zu kennen. Die Lösung balanciert zwischen dem Risiko von Verlusten durch Überbestände und dem Risiko entgangener Gewinne durch Fehlbestände.
  • Problem des Landwirts: Ein Landwirt entscheidet, wie viele Acres Land er auf einer Gesamtfläche für verschiedene Kulturen zuteilen soll, ohne das zukünftige Wetter zu kennen, das den Ernteertrag beeinflusst. Nachdem das Wetter bekannt ist, kann der Landwirt korrigierende Maßnahmen ergreifen (z. B. Überschüsse verkaufen oder fehlende Ernte auf dem Markt zukaufen)[5].

Siehe auch

Einzelnachweise

  1. 1.0 1.1 1.2 1.3 Shapiro, A., Dentcheva, D., & Ruszczyński, A. (2009). Lectures on Stochastic Programming: Modeling and Theory. Society for Industrial and Applied Mathematics (SIAM).
  2. 2.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
  3. „Stochastische Programmierung“. Wikipedia. [1]
  4. Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
  5. Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]