## Stochastic Programming

The mathematical programming types linear programming, mixed integer programming, nonlinear programming etc. have a common assumption that all the input data used in the formulation of the mathematical program is known with certainty. This is known as decision making under certainty, and the corresponding models are called deterministic models.

Models that account for uncertainty in the input data with a set of scenarios are called stochastic models. The theory and techniques used to solve stochastic models is commonly referred to as stochastic programming and stochastic optimization.

## Benefits of using AIMMS as Stochastic Programming Software for Optimization

Besides the general benefits of using AIMMS, there are specific functionalities that make AIMMS excellent software for modeling Stochastic Programming problems:

**Generating resource models:**AIMMS Stochastic Programming Software offers support for generating a stochastic linear programming and mixed integer programming recourse model from any given deterministic model, without the need to reformulate the deterministic model.**Flexible:**By only supplying additional attributes for selected parameters, variables and constraints, AIMMS Stochastic Programming Software can generate both a deterministic and recourse model from the same formulation.**Adaptable Templates:**Various user adaptable templates for generating a scenario tree and the corresponding stochastic input data for the recourse model are available in the form of a system module which can be imported into any AIMMS application.**Dealing with uncertainty:**The complete stochastic programming & optimization support set-up within AIMMS allows you to solve mathematical models with uncertainty to optimality and create robust solutions without changing the actual structure of the models.

Read more about other ways of uncertainty modeling.

**Download a free license to try AIMMS for Stochastic Programming**

## Stochastic Programming Solvers

To solve the recourse model, AIMMS can generate and solve the corresponding deterministic equivalent. In addition, AIMMS includes an algorithm to solve stochastic models using a stochastic Benders approach and a module to visualize stochastic scenario trees.

The Benders decomposition algorithm can often handle larger stochastic models than solving the deterministic equivalent with a Linear Programming solver. Our open implementation allows modelers to fine-tune it to their specific stochastic model and to use advanced features of the GMP library to solve multiple sub-problems in parallel, which may drastically reduce the total solution time.

## Stochastic Programming Functional Examples

### Stochastic Programming

This example illustrates AIMMS capabilities for stochastic programming support. Starting from an existing deterministic linear programming or mixed integer programming model, AIMMS can create a stochastic model automatically, without the need to reformulate constraint definitions. One only needs to provide a scenario tree and stochastic input data as well as to assign decisions to different stages. Once these elements have been specified, any changes made in the deterministic formulation propagate automatically to its stochastic counterpart.

Download the Stochastic Programming Example (download AIMMS First)

## Stochastic Programming Application Examples

## Free Stochastic Programming Software License

Download a *free license of AIMMS* to experience the benefits of using AIMMS as your stochastic programming software.

## Read More:

- You can find an introduction to stochastic programming in Chapters 16 and 17 of the AIMMS Optimization Modeling Guide.
- Further general information on stochastic programming is available on the home page of the stochastic programming community.
- For a full description of the stochastic programming support in AIMMS see Chapter 19 in the Language Reference.