Programación estocástica
Programación estocástica (del inglés stochastic programming) es una rama de la programación matemática que desarrolla modelos y métodos para resolver problemas de optimización en condiciones de incertidumbre, donde algunos parámetros del modelo no se conocen con exactitud, sino que se representan como variables aleatorias con distribuciones de probabilidad conocidas o estimadas[1][2].
A diferencia de los problemas deterministas, donde todos los datos se consideran constantes dadas, la programación estocástica tiene como objetivo encontrar una solución (o una política de toma de decisiones) que sea óptima en algún sentido estadístico. Generalmente, esto significa minimizar o maximizar la esperanza matemática de la función objetivo[1]. La idea clave es encontrar una política de toma de decisiones que sea la mejor "en promedio" para todas las posibles realizaciones de los parámetros aleatorios, lo cual es especialmente relevante para problemas donde las decisiones se toman repetidamente en condiciones similares (por ejemplo, en la gestión de inventarios o sistemas energéticos)[3].
Formulación matemática del problema
En su forma general, un problema de programación estocástica puede formularse como: donde:
- — es el vector de variables de decisión (soluciones) que se deben determinar.
- — es el conjunto de soluciones factibles para , definido por restricciones deterministas.
- — es un vector aleatorio que representa los parámetros inciertos del problema (por ejemplo, demanda, precios, condiciones climáticas).
- — es la función objetivo, cuyo valor depende tanto de la decisión tomada como de la realización del vector aleatorio .
- — es el operador de esperanza matemática, calculado sobre la distribución de probabilidad del vector .
Un principio fundamental que subyace en los modelos estocásticos multietapa es el principio de no anticipación (del inglés non-anticipativity principle). Este establece que las decisiones tomadas en cualquier etapa solo pueden depender de la información disponible hasta ese momento y no pueden "anticipar el futuro"[2].
Problema de dos etapas con recurso
El modelo más común es el problema de dos etapas con recurso (del inglés two-stage stochastic program with recourse)[1]. El proceso de toma de decisiones se divide en dos etapas:
- Primera etapa: Se toma una decisión "aquí y ahora" (here-and-now), determinando el vector . Esta decisión debe tomarse antes de que se conozca la realización específica del vector aleatorio .
- Segunda etapa: Una vez que ocurre el evento aleatorio, se toma una decisión correctiva o de recurso (recourse decision), el vector , con el fin de minimizar las consecuencias negativas o aprovechar las oportunidades favorables que surgen de la combinación de la decisión de la primera etapa y el resultado .
Matemáticamente, un problema de programación lineal estocástica de dos etapas se formula de la siguiente manera: sujeto a las restricciones de la primera etapa: . Aquí, es la función de recurso (recourse function), que representa el valor óptimo del problema de la segunda etapa: donde es un vector aleatorio que incluye los parámetros y ; mientras que y son parámetros deterministas[2].
Propiedades clave y teoremas
- Convexidad: Uno de los resultados fundamentales de la teoría es que para un problema de programación lineal estocástica de dos etapas, la función de recurso esperada es una función convexa. Esta propiedad es de gran importancia, ya que garantiza que el problema general de la primera etapa es un problema de programación convexa, para el cual existen métodos de solución eficientes y el óptimo global coincide con el local[1].
- Equivalente determinista: Si el vector aleatorio tiene un número finito de realizaciones posibles (escenarios) con probabilidades , el problema de programación estocástica puede reformularse como un único gran problema de optimización determinista. En este caso, la esperanza matemática se reemplaza por una suma ponderada sobre todos los escenarios. Sin embargo, el tamaño de este problema crece linealmente con el número de escenarios, lo que conduce a la "maldición de la dimensionalidad" y hace que este enfoque sea computacionalmente inviable para un gran número de escenarios[2].
Comparación con la optimización robusta
La programación estocástica es uno de los varios enfoques para la optimización en condiciones de incertidumbre. Su diferencia clave con la optimización robusta radica en la forma en que se modela la incertidumbre y en el criterio de optimalidad[4].
| Criterio | Optimización estocástica | Optimización robusta |
|---|---|---|
| Representación de la incertidumbre | Los parámetros son variables aleatorias con una distribución de probabilidad conocida | Los parámetros pertenecen a un conjunto de incertidumbre definido, no se requiere distribución |
| Criterio de optimalidad | Optimización de la esperanza matemática de la función objetivo | Optimización del peor caso (minimax) |
| Naturaleza de la solución | Una política que es óptima "en promedio", pero puede ser infactible para escenarios raros | Una solución garantizada para ser factible para todas las realizaciones; puede ser conservadora |
Ejemplos
- Problema del vendedor de periódicos (del inglés newsvendor problem): Un problema clásico de gestión de inventarios donde un vendedor debe decidir qué cantidad de un producto comprar sin conocer la demanda futura exacta. La solución equilibra el riesgo de pérdidas por excedentes con el riesgo de lucro cesante por escasez.
- Problema del granjero: Un granjero decide cuántos acres de tierra destinar a diferentes cultivos en una superficie total, sin conocer el clima futuro que afectará el rendimiento. Una vez que se conoce el clima, el granjero puede tomar acciones correctivas (por ejemplo, vender el excedente o comprar la cosecha faltante en el mercado)[5].
Véase también
Referencias
- ↑ 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.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
- ↑ "Programación estocástica". Wikipedia. [1]
- ↑ Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
- ↑ Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]