Stokastisk programmering är ett tillvägagångssätt inom matematisk programmering som låter dig ta hänsyn till osäkerhet i optimeringsmodeller.
Medan deterministiska optimeringsproblem formuleras med hjälp av givna parametrar, innehåller verkliga tillämpade problem vanligtvis några okända parametrar. När parametrarna bara är kända inom vissa gränser, kallas ett tillvägagångssätt för att lösa sådana problem robust optimering . Detta tillvägagångssätt är att hitta en lösning som är genomförbar för all sådan data och optimal i någon mening.
Stokastiska programmeringsmodeller liknar varandra men använder kunskap om sannolikhetsfördelningarna för data eller dess uppskattningar. Målet här är att hitta någon lösning som är giltig för alla (eller nästan alla) möjliga datavärden och maximerar medelvärdet av någon funktion av beslut och slumpmässiga variabler. I allmänhet formuleras, löses sådana modeller analytiskt eller numeriskt och deras resultat analyseras för att ge användbar information till beslutsfattare.
De mest använda och välstuderade linjära tvåstegsmodellerna för stokastisk programmering. [1] Här vidtar beslutsfattaren några åtgärder i det första steget, varefter en slumpmässig händelse inträffar som påverkar utfallet av det första stegets beslut. I det andra steget kan sedan ett korrigerande beslut fattas som kompenserar för eventuella oönskade effekter till följd av beslutet i det första steget.
Den optimala lösningen för en sådan modell är ett enda beslut i det första steget och en uppsättning korrigerande beslut (beslutsregler) som bestämmer vilka åtgärder som ska vidtas i det andra steget som svar på varje slumpmässigt utfall.