SMPS Format Support

The SMPS format is a standard file format for stochastic programming problems. mpi-sppy can read SMPS instances directly and solve them using the cylinder system.

Currently, only two-stage problems with SCENARIOS DISCRETE stochastic data are supported.

SMPS Files

An SMPS instance consists of three files in a directory:

  • .cor – the core deterministic model in MPS format (the “base” scenario)

  • .tim – time/stage structure mapping variables and constraints to stages

  • .sto – stochastic data defining scenarios, probabilities, and modifications

Usage

Use generic_cylinders.py with --smps-dir as the first argument, pointing to the directory containing the three SMPS files. The appropriate module (mpisppy.problem_io.smps_module) is inferred automatically, so --module-name is not needed:

python -m mpisppy.generic_cylinders --smps-dir path/to/smps/dir \
    --solver-name cplex --EF

For example, using the sizes problem included in the repository:

python -m mpisppy.generic_cylinders --smps-dir examples/sizes/SMPS \
    --solver-name cplex --EF

Note

Using --module-name together with --smps-dir is an error.

The sizes SMPS example is a two-stage mixed-integer stochastic program with 10 equiprobable scenarios.

Limitations

  • Only two-stage problems are supported (the .tim file must define exactly two stages).

  • Only SCENARIOS DISCRETE format in the .sto file is supported. The INDEP and BLOCKS stochastic data formats are not yet implemented.

  • RHS, coefficient matrix, and bounds modifications are all supported in scenario definitions.

  • The per-stage cost expression is not separated (set to 0.0), so PH convergence reports may be affected.