**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.

» To activate the demo click here »

## 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

where*myproblem**myproblem*is the generic name of your problem files.

## Downloads

- The Det2Sto.pl program.
- Consult a model file, a data file and a stochastic data file from a simple example.
- The conventions.

## Acknowledgement

**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é.