Paradigma | multi-paradigma : declarativo , imperativo |
---|---|
Diseñada por | Gautam Mitra, Enza Messina, Valente Patrick |
Apareció por primera vez | 2001 |
Lanzamiento estable | 20120523/23 de mayo de 2013 |
SO | Multiplataforma (multiplataforma) |
Licencia | Propiedad |
Extensiones de nombre de archivo | .mod .dat .run .sampl |
Sitio web | www |
Influenciado por | |
AMPL |
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:
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 scenario
Demanda de parámetro aleatorio {Prod, Scen};# Probability of each scenario
probabilidad P {Escenario};# Cost of each unit of resource
param Cost{Resource};
# Requirement in terms of resources units to produce one unit of each product
param ProdReq{Resource,Prod};
# Selling price of each product
param Price{Prod};
# Initial budget
param Budget;
# Amount of resources to buy
var buy{r in Resource} >= 0,
sufijo etapa 1;# Amount of each product to produce
var amountprod{p in Prod, s in Scen} >= 0,
sufijo etapa 2;# Amount of each product to sell
var amountsell{p in Prod, s in Scen} >= 0,
sufijo etapa 2;# Total final wealth, as expected total income from sales minus costs for the resources
maximize 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 to
balance{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 produce
production{p in Prod, s in Scen}: amountsell[p,s] <= amountprod[p,s];
# Make sure we do not sell more than the market demand
sales{p in Prod, s in Scen}: amountsell[p,s] <= Demand[p,s];
# Respect initial budget
budgetres: 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 ]
- ^ 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 )
- ^ http://www.ampl.com/solvers.html
- ^ 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 .
- ^ Bertsimas, Dimitris; Sim, Melvyn (2004). "El precio de la robustez". Investigación operativa . 52 (1): 35–53. doi : 10.1287 / opre.1030.0065 .
- ^ 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 .
- ^ http://optirisk-systems.com/products_ampldevSP.asp
- ^ 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