De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

SAMPL , que significa "Stochastic AMPL " , es un lenguaje de modelado algebraico que resulta de la expansión del conocido lenguaje AMPL con sintaxis extendida y palabras clave. Está diseñado específicamente para representar problemas de programación estocásticos [1] y, a través de extensiones recientes, problemas con restricciones de azar, restricciones de azar integradas y problemas de optimización robustos . Puede generar la versión equivalente determinista de las instancias, utilizando todos los solucionadores a los que se conecta AMPL, [2] o generar una representación SMPS y utilizar solucionadores especializados basados ​​en descomposición, como FortSP.

Funciones de idioma [ editar ]

SAMPL comparte todas las características del lenguaje con AMPL y agrega algunas construcciones diseñadas específicamente para expresar programación estocástica basada en escenarios y optimización robusta .

Características y construcciones de programación estocástica [ editar ]

Para expresar problemas de SP basados ​​en escenarios, construcciones adicionales describen la estructura de árbol y agrupan la variable de decisión en etapas. Además, es posible especificar qué parámetro almacena las probabilidades para cada rama del árbol y qué conjunto representa el conjunto de escenarios. También están disponibles otras construcciones para definir fácilmente las restricciones de azar y la restricción de azar integrada en un problema de PS. El uso de estas construcciones de lenguaje permite retener la estructura del problema, por lo tanto, ponerlo a disposición de los solucionadores, que podrían explotarlo utilizando métodos de descomposición especializados como la descomposición de Benders para acelerar la solución.

Construcciones de optimización sólidas [ editar ]

SAMPL admite construcciones para describir tres tipos de formulaciones de optimización robustas:

  • Soyster [3]
  • Bertsimas y Sim [4]
  • Ben-Tal y Nemirovski [5]

Disponibilidad [ editar ]

SAMPL está disponible actualmente como parte del software AMPLDev (distribuido por www.optirisk-systems.com ). Es compatible con muchas plataformas populares de 32 y 64 bits incluidos en Windows , Linux y Mac OS X . Está disponible una versión de evaluación gratuita con funcionalidad limitada. [6]

Un modelo de muestra de programación estocástica [ editar ]

La siguiente es la versión SAMPL de un problema simple (Dakota [7] ), para mostrar los constructos relacionados con SP. No incluye el archivo de datos, que sigue la sintaxis normal de AMPL (consulte el ejemplo proporcionado en la página de Wikipedia de AMPL para obtener más información).

set Prod;set Resource;# Scenarios (future possible realizations)escenario de escenario ;# Definition of the problem as a two-stage problemárbol Árbol: = dos etapas ;# Demand for each product in each scenarioDemanda de parámetro aleatorio {Prod, Scen};# Probability of each scenarioprobabilidad P {Escenario};# Cost of each unit of resourceparam Cost{Resource};# Requirement in terms of resources units to produce one unit of each productparam ProdReq{Resource,Prod};# Selling price of each productparam Price{Prod};# Initial budgetparam Budget;# Amount of resources to buyvar buy{r in Resource} >= 0, sufijo etapa 1;# Amount of each product to producevar amountprod{p in Prod, s in Scen} >= 0, sufijo etapa 2;# Amount of each product to sellvar amountsell{p in Prod, s in Scen} >= 0, sufijo etapa 2;# Total final wealth, as expected total income from sales minus costs for the resourcesmaximize wealth: sum{s in Scen} P[s] * (sum{p in Prod} Price[p] * amountsell[p,s] - sum{r in Resource} Cost[r] * buy[r]);subject to# Make sure you have enough resources to produce what we intend tobalance{r in Resource, s in Scen}: buy[r] >= sum{p in Prod} ProdReq[r,p] * amountprod[p, s];# Make sure we do not sell what we did not produceproduction{p in Prod, s in Scen}: amountsell[p,s] <= amountprod[p,s];# Make sure we do not sell more than the market demandsales{p in Prod, s in Scen}: amountsell[p,s] <= Demand[p,s];# Respect initial budgetbudgetres: sum{r in Resource} Cost[r] * buy[r] <= Budget;

Conectividad de los solucionadores [ editar ]

El formato de nivel de instancia SAMPL para problemas de SP es SMPS y, por lo tanto, cualquier solucionador que admita ese estándar puede resolver el problema. Uno de estos solucionadores (FortSP) se incluye en la distribución estándar de SAMPL. Con respecto a los problemas de optimización robustos, el solucionador necesario depende de la formulación específica utilizada, ya que la formulación de Ben-Tal y Nemirovski necesita un solucionador con capacidad de cono de segundo orden .

Ver también [ editar ]

  • Lenguaje de modelado algebraico
  • OBJETIVOS
  • AMPL
  • FortSP
  • GAMS - Sistema de modelado algebraico general
  • GLPK : sistema de código abierto gratuito basado en un subconjunto de AMPL
  • MPS (formato)
  • Optimización robusta
  • Programación estocástica

Referencias [ editar ]

  1. ^ Christian Valente, Gautam Mitra, Mustapha Sadki y Robert Fourer (2009). "Ampliación de lenguajes de modelado algebraico para programación estocástica" . INFORMA Revista de Computación . 21 (1): 107-122. doi : 10.1287 / ijoc.1080.0282 .CS1 maint: varios nombres: lista de autores ( enlace )
  2. ^ http://www.ampl.com/solvers.html
  3. ^ Allen L Soyster (1974). "Nota técnica: programación convexa con restricciones y aplicaciones que incluyen conjuntos para la programación lineal inexacta" . Investigación operativa . 21 (5): 1154-1157. doi : 10.1287 / opre.21.5.1154 .
  4. ^ Bertsimas, Dimitris; Sim, Melvyn (2004). "El precio de la robustez". Investigación operativa . 52 (1): 35–53. doi : 10.1287 / opre.1030.0065 .
  5. ^ Aharon Ben-Tal y Arkadi Nemirovski (1998). "Optimización convexa robusta". Matemáticas de la investigación operativa . 23 (4): 769–805. CiteSeerX 10.1.1.135.798 . doi : 10.1287 / moor.23.4.769 . 
  6. ^ http://optirisk-systems.com/products_ampldevSP.asp
  7. ^ Higle, Julia L, Wallace, Stein W (2003). "Análisis de sensibilidad e incertidumbre en programación lineal" (PDF) . Interfaces . 33 (4): 53–60. doi : 10.1287 / inte.33.4.53.16370 . CS1 maint: varios nombres: lista de autores ( enlace )

Enlaces externos [ editar ]

  • Página de inicio de AMPL
  • Página de inicio de OptiRisk Systems