Xpress-SP architecture
This chapter describes the organization of SP tools in Xpress. First, we discuss the scope of the current version of Xpress-SP. This is followed by a brief description of the SP module, where all the functionality for modeling stochastic models is defined and implemented. Finally, the controls and functionalities available in Xpress-IVE for visualization and analysis purposes are also described.
Scope
Xpress-SP is focused on the ease of modeling a stochastic problem. Specifically, available functionalities allow users to create a scenario tree in a structured and flexible fashion. The redundancy in modeling stochastic problems (vs. deterministic problems) is minimized, e.g., elimination of writing non-anticipative constraints, expanding the problem to retain the matrix ordered by stage or scenarios (see Section Expanding the underlying deterministic model), etc. Similarly, tools are provided in IVE to manipulate scenarios (Sections Explicit tree, Analyzing in IVE), visualize the values of entities in the model (Section Setting SP parameters), and analyze the solution (Section Setting SP parameters).
This version does not support any specialized algorithms (see Appendix) to solve stochastic problems; however, users can use the standard algorithms like simplex (Primal/Dual), Barrier, and Branch & Bound techniques available in the XpressMP suite for solving stochastic problems. Users may also obtain instance of the problem in a scenario or at a node in a scenario tree and devise their own algorithm to solve the problem. Although no special simulation or statistical tools are provided for scenario generation, users can easily create a scenario tree if one or more random variables are distributed independently or a set of random variables are distributed jointly with known discretized values and probabilities. Other functionalities may also be used to create scenario trees if the discretized values and probabilities of random variables are known.
Xpress-SP module (mmsp)
Xpress stochastic programming functionalities are made available in a module called `mmsp', so users must use this module in their stochastic models. The design of this module is based on different types defined for stochastic model entities and different functions for building, solving, and analyzing these models as discussed below.
Types
The following new types are defined:
- sprand: random variable that takes different values with certain probability, e.g., demand data.
- sprandexp: random expression built using real and sprand.
- spvar: stochastic decision variable that takes different values in different scenarios or at different nodes in the scenario tree.
- splinctr: Stochastic constraint built with real, sprand, sprandexp, and spvar.
Functions and Procedures
The following functions and procedures are provided:
abs, ceil, exp, floor, getdual, getdualatnode, getdualinscen, getobjval, getrcost, getrcostatnode, getrcostinscen, getslack, getslackatnode, getslackinscen, getsol, getsolatnode, getsolinscen, ln, maximize, maximum, minimize, minimum, round, spaddchildren, spaggregate, spcreatetree, spdelscen, speval, spfix, spgenexhtree, spgentree, spgetchild, spgetchildrencount, spgetnodecount, spgetparent, spgetprobcond, spgetprobscen, spgetprobuncond, spgetscencount, spgetxprsrealattrib, spgetxprsintattrib, spgetxprsstrattrib, spif, spprinttree, spsetdist, spsethidden, spsetname, spsetprobcond, spsetprobcondatnode, spsetprobscen, spsetrand, spsetrandatnode, spsetstage, spsetstages, spsettype, spunfix, spwriteprob, spexportprob
Parameters
The following control parameters are defined:
xsp_cblog, xsp_ive_enable, xsp_ftable, xsp_tolprob_lb, xsp_tolprob_ub, xsp_tolprob_totlb, xsp_tolprob_totub, xsp_cond_prob, xsp_scen_based, xsp_xprs_prob, xsp_implicit_stage, xsp_verbose, xsp_scale_probs, xsp_disp_warnings, xsp_re_init, xsp_create_tree, xsp_loadnames
Constants
The following constants are defined:
XSP_X_SP, XSP_X_SMPS, XSP_SMPS_FREE, XSP_X_LP, XSP_STAGE_ZERO, XSP_REC, XSP_PRIMAL, XSP_PI, XSP_OPT_LP_ONLY, XSP_EV, XSP_DUAL, XSP_BARRIER, XSP_GLOBAL.
XSP_MIN, XSP_MAX, XSP_LP_OPTIMAL, XSP_LP_INFEAS, XSP_LP_CUTOFF, XSP_LP_UNFINISHED, XSP_LP_UNBOUNDED, XSP_LP_CUTOFF_IN_DUAL, XSP_MIP_NOT_LOADED, XSP_MIP_LP_NOT_OPTIMAL, XSP_MIP_LP_OPTIMAL, XSP_MIP_NO_SOL_FOUND, XSP_MIP_SOLUTION, XSP_MIP_INFEAS, XSP_MIP_OPTIMAL
IVE controls and views for SP
The following entities can be viewed in IVE:
- Underlying expanded matrix
- Scenario tree
- List view
- Pie view
- Block view
- Stochastic dashboard
- Model information
- Realized values of stochastic entities with respect to scenarios
- Distribution of stochastic entities
- Scenario manipulation (aggregation and deletion)
If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.