DET2STO: A modeling tool
DET2STO is a tool that transforms a stochastic version of a model written in AMPL or in GNU MathProg into a deterministic equivalent in a fully automated way. It outputs a model file and a data file that can be then processed by the algebraic modeling language AMPL and optimized by a solver.
Stochastic Programming deals with mathematical programming models in an uncertain environment. The stochastic component has finitely many realizations and is described by an event tree. The stochastic process is assumed to be independent of the decisions. In that framework, the time-dependent deterministic decisions are made contingent to the nodes of the tree. This transformation results in a new mathematical programming problem named the deterministic equivalent, which is nothing else than an extensive formulation of the stochastic programming version of the problem.
What can I find here?
This page provides information and files. First, you can download DET2STO, a PERL program that generates for you the deterministic equivalent. You will also find examples in the form of AMPL model and data files of the deterministic version of the problem, and data files for the stochastic process.
What is AMPL?
AMPL is an Algebraic Modeling Language which permits to formulate mathematical programming problems and have them solved by standard commercial solvers like Cplex, Mosek, Xpress... or by some free solvers like GLPK. For more details, see ampl.com. There exists a free subset of AMPL, called GNU MathProg Language, that is a viable alternative in connection with DET2STO (See gnu.org/software/glpk).
What is PERL?
PERL (Practical Extraction and Report Language) is a language for scanning text files, extracting information and printing reports based on that information. It is specially designed to work with REGular EXpressions (for more details, see regexlib.com). This language is a freeware; it can be downloaded from perl.com.
How does the program work?
You can freely download the program and use it on your own problem files. The program assumes that few conventions and rules are observed in writing the deterministic model. The paper "Automatic formulation and decomposition of stochastic programs via an algebraic modeling language" by Ch. van Delft, J-Ph. Vial and J. Thénié provides a comprehensive view on the transformation process. You may find helpful to read it.
What input should I provide?
The user must provide three files.
- An AMPL model file for the deterministic version of the problem. This text file must have the extension ".mod"; e.g. myproblem.mod.
- An AMPL data file for the deterministic version of the problem. This text file must have the extension ".dat"; e.g. myproblem.dat. This file provides the parameter values in the AMPL style.
- An AMPL data file for the underlying stochastic process. This text file must have the extension ".sto"; e.g. myproblem.sto. This file describes the underlying stochastic process either under a scenario format or under a one-step transition format.
How do I use it?
You can use DET2STO on your own computer:
- Download the program into a dedicated directory (see next section).
- Copy the input files (deterministic model and data and the stochastic data) into the same directory.
- Launch the program by typing on a terminal:
perl det2sto.pl myproblemwhere myproblem is the generic name of your problem files.
- The Det2Sto.pl program.
- Consult a model file, a data file and a stochastic data file from a simple example.
- The conventions.
DET2STO by Julien Thénié and Jean-Philippe Vial, with Nidhi Sawnhey's help. DET2STO is based on the article "Automatic formulation and decomposition of stochastic programs via an algebraic modeling language", Computational Management Science, 4, p17-40, 2007 by Ch. van Delft, J-Ph. Vial and J. Thénié. First version of the online interface by Alain Dubois and Julien Thénié. Current version adapted by Laurent Drouet and Julien Thénié.