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:

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:



If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.