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
.timfile must define exactly two stages).Only
SCENARIOS DISCRETEformat in the.stofile is supported. TheINDEPandBLOCKSstochastic 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.