Marco para modelar problemas de optimización que involucran incertidumbre
En el campo de la optimización matemática , la programación estocástica es un marco para modelar problemas de optimización que involucran incertidumbre . Un programa estocástico es un problema de optimización en el que algunos o todos los parámetros del problema son inciertos, pero siguen distribuciones de probabilidad conocidas . [1] [2] Este marco contrasta con la optimización determinista, en la que se supone que todos los parámetros del problema se conocen con exactitud. El objetivo de la programación estocástica es encontrar una decisión que optimice algunos criterios elegidos por el tomador de decisiones y que tenga en cuenta adecuadamente la incertidumbre de los parámetros del problema. Debido a que muchas decisiones del mundo real involucran incertidumbre, la programación estocástica ha encontrado aplicaciones en una amplia gama de áreas que van desde las finanzas hasta el transporte y la optimización energética. [3] [4]
Métodos
Se han desarrollado varios métodos de programación estocástica:
Definición de problema en dos etapas
La idea básica de la programación estocástica de dos etapas es que las decisiones (óptimas) deben basarse en los datos disponibles en el momento en que se toman las decisiones y no pueden depender de observaciones futuras. La formulación de dos etapas se utiliza ampliamente en la programación estocástica. La formulación general de un problema de programación estocástica de dos etapas viene dada por:
donde es el valor óptimo del problema de la segunda etapa.
Los problemas clásicos de programación estocástica lineal de dos etapas se pueden formular como
¿Dónde está el valor óptimo del problema de la segunda etapa?
En esta formulación , el vector de la variable de decisión de la primera etapa es el vector de la variable de decisión de la segunda etapa y contiene los datos del problema de la segunda etapa. En esta formulación, en la primera etapa tenemos que tomar una decisión "aquí y ahora" antes de que se conozca la realización de los datos inciertos , vistos como un vector aleatorio. En la segunda etapa, después de que se disponga de una realización de, optimizamos nuestro comportamiento resolviendo un problema de optimización adecuado.
En la primera etapa optimizamos (minimizamos en la formulación anterior) el costo de la decisión de la primera etapa más el costo esperado de la decisión (óptima) de la segunda etapa. Podemos considerar el problema de la segunda etapa simplemente como un problema de optimización que describe nuestro comportamiento supuestamente óptimo cuando se revelan los datos inciertos, o podemos considerar su solución como una acción de recurso donde el término compensa una posible inconsistencia del sistema y es el costo de esta acción de recurso.
El problema de dos etapas considerado es lineal porque las funciones objetivo y las restricciones son lineales. Conceptualmente esto no es esencial y se pueden considerar programas estocásticos de dos etapas más generales. Por ejemplo, si el problema de la primera etapa es entero, se podrían agregar restricciones de integralidad al problema de la primera etapa para que el conjunto factible sea discreto. También se podrían incorporar objetivos y restricciones no lineales si fuera necesario. [5]
Supuesto distributivo
La formulación del problema de dos etapas anterior supone que los datos de la segunda etapa se modelan como un vector aleatorio con una distribución de probabilidad conocida . Esto estaría justificado en muchas situaciones. Por ejemplo, la distribución de podría inferirse a partir de datos históricos si se supone que la distribución no cambia significativamente durante el período de tiempo considerado. Además, la distribución empírica de la muestra podría utilizarse como una aproximación a la distribución de los valores futuros de . Si se tiene un modelo previo para , se podría obtener una distribución a posteriori mediante una actualización bayesiana.
Enfoque basado en escenarios
Discretización
Para resolver numéricamente el problema estocástico de dos etapas, a menudo es necesario suponer que el vector aleatorio tiene un número finito de posibles realizaciones, llamadas escenarios , por ejemplo , con respectivas masas de probabilidad . Entonces, la esperanza en la función objetivo del problema de la primera etapa se puede escribir como la suma:
y, además, el problema de dos etapas se puede formular como un gran problema de programación lineal (esto se llama el equivalente determinista del problema original, consulte la sección § Equivalente determinista de un problema estocástico).
Cuando hay un número infinito (o muy grande) de realizaciones posibles, el enfoque estándar es representar esta distribución mediante escenarios. Este enfoque plantea tres preguntas, a saber:
- Para saber cómo construir escenarios, véase § Construcción de escenarios;
- Cómo resolver el equivalente determinista. Optimizadores como CPLEX y GLPK pueden resolver grandes problemas lineales/no lineales. El servidor NEOS, [6] alojado en la Universidad de Wisconsin, Madison , permite el acceso gratuito a muchos solucionadores modernos. La estructura de un equivalente determinista es particularmente susceptible a la aplicación de métodos de descomposición, [7] como la descomposición de Benders o la descomposición de escenarios;
- Cómo medir la calidad de la solución obtenida con respecto al óptimo "verdadero".
Estas cuestiones no son independientes. Por ejemplo, el número de escenarios construidos afectará tanto a la viabilidad del equivalente determinista como a la calidad de las soluciones obtenidas.
Programación lineal estocástica
Un programa lineal estocástico es una instancia específica del programa estocástico clásico de dos etapas. Un programa lineal estocástico se construye a partir de una colección de programas lineales (PL) de varios períodos, cada uno con la misma estructura pero con datos ligeramente diferentes. El programa lineal de dos períodos, que representa el escenario, puede considerarse como si tuviera la siguiente forma:
Los vectores y contienen las variables del primer período, cuyos valores deben elegirse inmediatamente. El vector contiene todas las variables de los períodos posteriores. Las restricciones solo afectan a las variables del primer período y son las mismas en todos los escenarios. Las demás restricciones afectan a las variables de períodos posteriores y difieren en algunos aspectos de un escenario a otro, lo que refleja la incertidumbre sobre el futuro.
Obsérvese que resolver el modelo lineal de dos períodos equivale a suponer que el escenario del segundo período no tiene incertidumbre. Para incorporar incertidumbres en la segunda etapa, se deben asignar probabilidades a diferentes escenarios y resolver el equivalente determinista correspondiente.
Equivalente determinista de un problema estocástico
Con un número finito de escenarios, los programas lineales estocásticos de dos etapas se pueden modelar como grandes problemas de programación lineal. Esta formulación a menudo se denomina programa lineal equivalente determinista, o abreviado como equivalente determinista. (Estrictamente hablando, un equivalente determinista es cualquier programa matemático que se puede utilizar para calcular la decisión óptima de la primera etapa, por lo que también existirán para distribuciones de probabilidad continuas, cuando se pueda representar el costo de la segunda etapa en alguna forma cerrada). Por ejemplo, para formar el equivalente determinista del programa lineal estocástico anterior, asignamos una probabilidad a cada escenario . Luego podemos minimizar el valor esperado del objetivo, sujeto a las restricciones de todos los escenarios:
Tenemos un vector diferente de variables de períodos posteriores para cada escenario . Sin embargo, las variables del primer período y son las mismas en cada escenario, porque debemos tomar una decisión para el primer período antes de saber qué escenario se realizará. Como resultado, las restricciones que involucran solo y solo deben especificarse una vez, mientras que las restricciones restantes deben darse por separado para cada escenario.
Construcción de escenarios
En la práctica, es posible construir escenarios solicitando la opinión de expertos sobre el futuro. El número de escenarios construidos debe ser relativamente modesto para que el equivalente determinista obtenido pueda resolverse con un esfuerzo computacional razonable. A menudo se afirma que una solución que es óptima utilizando solo unos pocos escenarios proporciona planes más adaptables que una que supone un solo escenario. En algunos casos, tal afirmación podría verificarse mediante una simulación. En teoría, algunas medidas de garantía de que una solución obtenida resuelve el problema original con una precisión razonable. Por lo general, en las aplicaciones, solo la solución óptima de la primera etapa tiene un valor práctico, ya que casi siempre una realización "verdadera" de los datos aleatorios será diferente del conjunto de escenarios construidos (generados).
Supongamos que contiene componentes aleatorios independientes, cada uno de los cuales tiene tres posibles realizaciones (por ejemplo, las realizaciones futuras de cada parámetro aleatorio se clasifican como baja, media y alta), entonces el número total de escenarios es . Tal crecimiento exponencial del número de escenarios hace que el desarrollo de modelos utilizando la opinión de expertos sea muy difícil incluso para un tamaño razonable . La situación se vuelve aún peor si algunos componentes aleatorios de tienen distribuciones continuas.
Muestreo de Monte Carlo y método de aproximación de la media de la muestra (SAA)
Un enfoque común para reducir el conjunto de escenarios a un tamaño manejable es mediante la simulación de Monte Carlo. Supongamos que el número total de escenarios es muy grande o incluso infinito. Supongamos además que podemos generar una muestra de réplicas del vector aleatorio . Por lo general, se supone que la muestra es independiente y está distribuida de manera idéntica (muestra iid). Dada una muestra, la función de expectativa se aproxima mediante el promedio de la muestra.
y en consecuencia el problema de la primera etapa está dado por
Esta formulación se conoce como método de aproximación de promedio de muestra . El problema de SAA es una función de la muestra considerada y, en ese sentido, es aleatorio. Para una muestra dada, el problema de SAA tiene la misma forma que un problema de programación lineal estocástica de dos etapas con los escenarios ., , cada uno tomado con la misma probabilidad .
Inferencia estadística
Considere el siguiente problema de programación estocástica
Aquí hay un subconjunto cerrado no vacío de , es un vector aleatorio cuya distribución de probabilidad se sustenta en un conjunto , y . En el marco de la programación estocástica de dos etapas, viene dado por el valor óptimo del problema de segunda etapa correspondiente.
Supongamos que está bien definido y tiene un valor finito para todos los . Esto implica que para cada uno el valor es finito casi con seguridad.
Supongamos que tenemos una muestra de realizaciones del vector aleatorio . Esta muestra aleatoria puede considerarse como datos históricos de observaciones de , o puede generarse mediante técnicas de muestreo de Monte Carlo. Luego podemos formular una aproximación de promedio de muestra correspondiente
Por la Ley de los Grandes Números tenemos que, bajo ciertas condiciones de regularidad converge puntualmente con probabilidad 1 a como . Además, bajo condiciones adicionales leves la convergencia es uniforme. También tenemos , es decir, es un estimador insesgado de . Por lo tanto, es natural esperar que el valor óptimo y las soluciones óptimas del problema SAA converjan a sus contrapartes del problema verdadero como .
Consistencia de los estimadores SAA
Supongamos que el conjunto factible del problema SAA es fijo, es decir, es independiente de la muestra. Sean y el valor óptimo y el conjunto de soluciones óptimas, respectivamente, del problema verdadero y sean y el valor óptimo y el conjunto de soluciones óptimas, respectivamente, del problema SAA.
- Sea y una secuencia de funciones reales (deterministas). Las dos propiedades siguientes son equivalentes:
- para cualquier y cualquier secuencia que converge a se sigue que converge a
- la función es continua en y converge uniformemente en cualquier subconjunto compacto de
- Si el objetivo del problema SAA converge al objetivo del problema verdadero con probabilidad 1, como , uniformemente en el conjunto factible . Entonces converge a con probabilidad 1 como .
- Supongamos que existe un conjunto compacto tal que
- El conjunto de soluciones óptimas del problema verdadero no está vacío y está contenido en
- La función tiene un valor finito y es continua en
- la secuencia de funciones converge a con probabilidad 1, como , uniformemente en
- Para un tamaño suficientemente grande el conjunto no está vacío y la probabilidad es 1.
- entonces y con probabilidad 1 como . Nótese que denota la desviación del conjunto respecto del conjunto , definida como
En algunas situaciones se estima el conjunto factible del problema SAA, luego el problema SAA correspondiente toma la forma
donde es un subconjunto de que depende de la muestra y, por lo tanto, es aleatorio. No obstante, los resultados de consistencia para los estimadores SAA aún se pueden derivar bajo algunos supuestos adicionales:
- Supongamos que existe un conjunto compacto tal que
- El conjunto de soluciones óptimas del problema verdadero no está vacío y está contenido en
- La función tiene un valor finito y es continua en
- la secuencia de funciones converge a con probabilidad 1, como , uniformemente en
- Para un tamaño suficientemente grande el conjunto no está vacío y la probabilidad es 1.
- Si y converge con probabilidad 1 a un punto , entonces
- para algún punto existe una secuencia tal que con probabilidad 1.
- entonces y con probabilidad 1 como .
Asintótica del valor óptimo de SAA
Supongamos que la muestra es iid y fija un punto . Entonces, el estimador promedio de la muestra , de , es insesgado y tiene varianza , donde se supone que es finita. Además, por el teorema del límite central tenemos que
donde denota convergencia en la distribución y tiene una distribución normal con media y varianza , escrita como .
En otras palabras, tiene una distribución asintóticamente normal , es decir, para valores grandes , tiene una distribución aproximadamente normal con media y varianza . Esto conduce al siguiente intervalo de confianza (aproximado) % para :
donde (aquí denota la cdf de la distribución normal estándar) y
es la estimación de la varianza muestral de . Es decir, el error de estimación de es (estocásticamente) de orden .
Aplicaciones y ejemplos
Aplicaciones biológicas
La programación dinámica estocástica se utiliza con frecuencia para modelar el comportamiento animal en campos como la ecología del comportamiento . [8] [9] Las pruebas empíricas de modelos de búsqueda de alimento óptima y transiciones en la historia de vida , como el emplumamiento en las aves y la puesta de huevos en las avispas parasitoides , han demostrado el valor de esta técnica de modelado para explicar la evolución de la toma de decisiones conductuales. Estos modelos suelen tener muchas etapas, en lugar de dos.
Aplicaciones económicas
La programación dinámica estocástica es una herramienta útil para comprender la toma de decisiones en condiciones de incertidumbre. La acumulación de capital en condiciones de incertidumbre es un ejemplo; los economistas especializados en recursos la utilizan a menudo para analizar problemas bioeconómicos [10] en los que interviene la incertidumbre, como el clima, etc.
Ejemplo: optimización de cartera en varias etapas
El siguiente es un ejemplo de finanzas de programación estocástica de múltiples etapas. Supongamos que en un momento dado tenemos capital inicial para invertir en activos. Supongamos además que se nos permite reequilibrar nuestra cartera en ocasiones, pero sin inyectarle efectivo adicional. En cada período tomamos una decisión sobre la redistribución de la riqueza actual entre los activos. Sean las cantidades iniciales invertidas en los n activos. Requerimos que cada una sea no negativa y que la ecuación de equilibrio se cumpla.
Considere los rendimientos totales para cada período . Esto forma un proceso aleatorio de valor vectorial . En el período de tiempo , podemos reequilibrar la cartera especificando las cantidades invertidas en los respectivos activos. En ese momento se han realizado los rendimientos en el primer período, por lo que es razonable utilizar esta información en la decisión de reequilibrio. Por lo tanto, las decisiones de la segunda etapa, en el momento , son en realidad funciones de realización del vector aleatorio , es decir, . De manera similar, en el momento la decisión es una función de la información disponible dada por la historia del proceso aleatorio hasta el momento . Una secuencia de funciones , , con ser constante, define una política implementable del proceso de decisión. Se dice que dicha política es factible si satisface las restricciones del modelo con probabilidad 1, es decir, las restricciones de no negatividad , , , y las restricciones de equilibrio de riqueza,
donde en el periodo la riqueza viene dada por
que depende de la realización del proceso aleatorio y de las decisiones tomadas hasta el momento .
Supongamos que el objetivo es maximizar la utilidad esperada de esta riqueza en el último período, es decir, considerar el problema
Este es un problema de programación estocástica de múltiples etapas, donde las etapas están numeradas de a . La optimización se realiza sobre todas las políticas implementables y factibles. Para completar la descripción del problema, también es necesario definir la distribución de probabilidad del proceso aleatorio . Esto se puede hacer de varias maneras. Por ejemplo, se puede construir un árbol de escenarios particular que defina la evolución temporal del proceso. Si en cada etapa se permite que el rendimiento aleatorio de cada activo tenga dos continuaciones, independientemente de otros activos, entonces el número total de escenarios es
Para escribir ecuaciones de programación dinámica , considere el problema de múltiples etapas anterior hacia atrás en el tiempo. En la última etapa , se conoce y se ha elegido una realización del proceso aleatorio . Por lo tanto, es necesario resolver el siguiente problema
donde denota la esperanza condicional de dado . El valor óptimo del problema anterior depende de y y se denota .
De manera similar, en las etapas , se debe resolver el problema.
cuyo valor óptimo se denota por . Finalmente, en la etapa , se resuelve el problema
Proceso aleatorio independiente por etapas
Para una distribución general del proceso , puede resultar difícil resolver estas ecuaciones de programación dinámica. La situación se simplifica drásticamente si el proceso es independiente por etapas, es decir, es (estocásticamente) independiente de para . En este caso, las expectativas condicionales correspondientes se convierten en expectativas incondicionales y la función , no depende de . Es decir, es el valor óptimo del problema
y es el valor óptimo de
para .
Herramientas de software
Lenguajes de modelado
Todos los problemas de programación estocástica discreta pueden representarse con cualquier lenguaje de modelado algebraico , implementando manualmente la no anticipatividad explícita o implícita para asegurarse de que el modelo resultante respete la estructura de la información disponible en cada etapa. Una instancia de un problema SP generado por un lenguaje de modelado general tiende a crecer bastante (linealmente en el número de escenarios), y su matriz pierde la estructura que es intrínseca a esta clase de problemas, que de otro modo podría ser explotada en el momento de la solución por algoritmos de descomposición específicos. Están comenzando a aparecer extensiones a lenguajes de modelado diseñados específicamente para SP, consulte:
- AIMMS - apoya la definición de problemas SP
- EMP SP (Programación matemática extendida para programación estocástica): un módulo de GAMS creado para facilitar la programación estocástica (incluye palabras clave para distribuciones paramétricas, restricciones de azar y medidas de riesgo como valor en riesgo y déficit esperado ).
- SAMPL : un conjunto de extensiones de AMPL diseñadas específicamente para expresar programas estocásticos (incluye sintaxis para restricciones de azar, restricciones de azar integradas y problemas de optimización robusta )
Ambos pueden generar un formato de nivel de instancia SMPS, que transmite de forma no redundante la estructura del problema al solucionador.
Véase también
Referencias
- ^ Shapiro, Alexander; Dentcheva, Darinka ; Ruszczyński, Andrzej (2009). Lecciones sobre programación estocástica: modelado y teoría (PDF) . Serie MPS/SIAM sobre optimización. Vol. 9. Filadelfia, PA: Sociedad de Matemáticas Industriales y Aplicadas (SIAM). pp. xvi+436. ISBN 978-0-89871-687-0. MR 2562798. Archivado desde el original (PDF) el 24 de marzo de 2020. Consultado el 22 de septiembre de 2010 .
- ^ Birge, John R.; Louveaux, François (2011). Introducción a la programación estocástica. Springer Series in Operations Research and Financial Engineering. doi :10.1007/978-1-4614-0237-4. ISBN 978-1-4614-0236-7. ISSN 1431-8598.
- ^
Stein W. Wallace y William T. Ziemba (eds.). Aplicaciones de la programación estocástica . Serie de libros MPS-SIAM sobre optimización 5, 2005.
- ^
Las aplicaciones de la programación estocástica se describen en el siguiente sitio web, Comunidad de Programación Estocástica.
- ^ Shapiro, Alexander; Philpott, Andy. Un tutorial sobre programación estocástica (PDF) .
- ^ "Servidor NEOS para optimización".
- ^ Ruszczyński, Andrzej ; Shapiro, Alexander (2003). Programación estocástica . Manuales de investigación de operaciones y ciencia de la gestión. Vol. 10. Filadelfia: Elsevier . p. 700. ISBN 978-0444508546.
- ^ Mangel, M. y Clark, CW 1988. Modelado dinámico en ecología del comportamiento. Princeton University Press ISBN 0-691-08506-4
- ^ Houston, A. I y McNamara, JM 1999. Modelos de comportamiento adaptativo: un enfoque basado en el estado . Cambridge University Press ISBN 0-521-65539-0
- ^ Howitt, R., Msangi, S., Reynaud, A y K. Knapp. 2002. "Uso de aproximaciones polinomiales para resolver problemas de programación dinámica estocástica: o un enfoque "Betty Crocker" para SDP". Universidad de California, Davis, Departamento de Economía Agrícola y de Recursos, Documento de trabajo.
Lectura adicional
- John R. Birge y François V. Louveaux. Introducción a la programación estocástica . Springer Verlag, Nueva York, 1997.
- Kall, Peter; Wallace, Stein W. (1994). Programación estocástica. Serie Wiley-Interscience en sistemas y optimización. Chichester: John Wiley & Sons, Ltd., págs. xii+307. ISBN 0-471-95158-7.Señor 1315300 .
- G. Ch. Pflug: Optimización de modelos estocásticos. La interfaz entre simulación y optimización . Kluwer, Dordrecht, 1996.
- András Prekopa . Programación estocástica. Editorial académica Kluwer, Dordrecht, 1995.
- Andrzej Ruszczynski y Alexander Shapiro (eds.) (2003) Programación estocástica . Manuales de investigación de operaciones y ciencia de la gestión, vol. 10, Elsevier.
- Shapiro, Alexander; Dentcheva, Darinka ; Ruszczyński, Andrzej (2009). Lecciones sobre programación estocástica: modelado y teoría (PDF) . Serie MPS/SIAM sobre optimización. Vol. 9. Filadelfia, PA: Sociedad de Matemáticas Industriales y Aplicadas (SIAM). pp. xvi+436. ISBN 978-0-89871-687-0. MR 2562798. Archivado desde el original (PDF) el 24 de marzo de 2020. Consultado el 22 de septiembre de 2010 .
- Stein W. Wallace y William T. Ziemba (eds.) (2005) Aplicaciones de la programación estocástica . Serie de libros MPS-SIAM sobre optimización 5
- King, Alan J.; Wallace, Stein W. (2012). Modelado con programación estocástica. Springer Series in Operations Research and Financial Engineering. Nueva York: Springer. ISBN 978-0-387-87816-4.
Enlaces externos
- Página de inicio de la comunidad de programación estocástica