What’s New in SAS/OR 9.3

Overview

SAS/OR 9.3 includes a number of additions and improvements that enhance the performance and capabilities of SAS/OR software in several areas. These updates also make it easier to work with SAS/OR software and the solutions that it produces. Brief descriptions are presented in the following sections.

Highlights of Enhancements in SAS/OR 9.3

Highlights of the changes include the following:
  • The CLP procedure’s scheduling mode, which solves scheduling constraint satisfaction problems (CSPs), is now production. The CLP procedure now supports the specification of an objective function.
  • The CPM procedure adds a control on the use of progress update information with resource-constrained schedules.
  • The Microsoft Project conversion macro %SASTOMSP is production.
  • The linear programming interior point solver adds an experimental crossover option that converts the optimal solution found to an optimal basic feasible solution.
  • The linear programming solver adds a network simplex algorithm for problems with a dominant or embedded network structure.
  • The nonlinear programming solver adds an active set solution algorithm and also adds a multistart capability.
  • All optimization solvers (linear, mixed-integer linear, quadratic, and nonlinear) add performance improvements.
  • SAS Simulation Studio adds Windows 64-bit support, closer integration with JMP, and several interface and technical enhancements.
More information about the changes and enhancements is provided in this chapter. Details can be found in the relevant volumes of the SAS/OR 9.3 User’s Guide and in the SAS Simulation Studio 1.6: User’s Guide.

Highlights of Enhancements in SAS/OR 9.22

Some users are moving directly from SAS/OR 9.2 to SAS/OR 9.3. The following are some of the major enhancements that were introduced in SAS/OR 9.22:
  • You can customize the format of the time axis on the Gantt chart.
  • You can import and convert Microsoft Project data that has been saved in XML format.
  • The CLP procedure is now production with the exception of the scheduling-related constraints.
  • The OPTMODEL procedure supports named problems to enable easy manipulation of multiple subproblems.
  • The IPNLP and NLPU solvers support new techniques for large-scale optimization.
  • SAS Simulation Studio 1.5 is a new graphical application for discrete event simulation and is included with SAS/OR software.

Documentation Enhancements

The OPTMODEL family of mathematical programming procedures constitutes a completely new generation of optimization capabilities, distinct from and preferred over the older SAS/OR mathematical optimization procedures. The newer optimization procedures access new, far more scalable optimization solvers and use more accessible and extensible syntax than the older procedures. Therefore, SAS/OR users are encouraged to migrate to the newer optimization procedures. Accordingly, SAS/OR User's Guide: Mathematical Programming now includes information about the OPTMODEL family of procedures and their associated optimization solvers. Information about the older procedures and solvers is still available in SAS/OR User's Guide: Mathematical Programming Legacy Procedures.

The CLP Procedure

The CLP procedure is a finite-domain constraint programming solver for solving constraint satisfaction problems (CSPs) with linear, logical, global, and scheduling constraints. The CLP procedure, including the scheduling constraints, is production in SAS/OR 9.3.
PROC CLP has the following enhancements:
  • enhancements for specifying an objective function:
    • The _TYPE_ variable values MAX and MIN can be used to specify an objective in the Constraint input data set.
    • The experimental OBJ statement enables you to set upper (UB= option) and lower (LB= option) bounds on the value of an objective function that is specified in the Constraint data set. If upper and lower bounds for the objective value are not specified, the CLP procedure tries to derive bounds from the domains of the variables that appear in the objective function.
    • You can also use the OBJ statement to specify the tolerance (TOL= option) used for finding a locally optimal objective value.
  • expanded variable and activity selection strategy options:
    • The ACTSELECT= option in the SCHEDULE statement adds the PRIORITY value, which specifies that activities of highest priority should be selected to break ties between activities with identical start times.
    • The experimental EVALACTSEL option in the SCHEDULE statement evaluates all of the possible activity selection strategies by attempting to find a solution with each.
    • The experimental EVALVARSEL option in the PROC CLP statement evaluates all of the possible variable selection strategies by attempting to find a solution with each.
    • The new macro variables _ORCLPEAS_ and _ORCLPEVS_ record the results of the evaluations requested by the EVALACTSEL and EVALVARSEL options, respectively.

The CPM Procedure

The CPM procedure performs project and resource scheduling and can be used for planning, controlling, and monitoring a project. For SAS/OR 9.3, PROC CPM adds the experimental SETFINISH= option, which enables progress update information to override resource considerations when determining the resource-constrained finish times of activities. Specifying SETFINISH=EARLY gives priority to progress update information, and the default value SETFINISH=MAX sets the resource-constrained finish times to ensure that all resources assigned to an activity complete their work as originally scheduled.

Microsoft Project Conversion Macros

The %SASTOMSP macro is production. This macro converts data sets that are used by the CPM and PM procedures into an MDB file that is readable by Microsoft Project 2000, 2002, and 2003. The macro converts information that is common to PROC CPM, PROC PM, and Microsoft Project; this information includes hierarchical relationships, precedence relationships, time constraints, resource availabilities, resource requirements, project calendars, resource calendars, task calendars, holiday information, and work- shift information. In addition, the early and late schedules, the actual start and finish times, the resource-constrained schedule, and the baseline schedule are also extracted and stored as start-finish variables.
Execution of the %MSPTOSAS and %SASTOMSP macros requires SAS/ACCESS® software.

The OPTLP Procedure

The OPTLP procedure solves linear programming problems with solvers that have been improved and augmented for SAS/OR 9.3:
  • A network simplex algorithm has been added to solve linear programming problems that have a significant network structure embedded within them. This solver operates by first identifying and extracting the largest possible network structure within the problem. It finds an optimal solution to the network problem and then uses this solution as the core of an advanced initial solution for the entire problem, which is solved with the primal or dual simplex solver. As with other linear programming solvers, the network simplex solver is specified using the SOLVER=NS option. The new SOLVER2= option, used only when SOLVER=NS, is used to specify the solver to be used for solving the overall problem after the network problem has been solved.
  • For the interior point solver, the experimental CROSSOVER= option specifies that a solution found by the interior point solver should be converted to a basic feasible solution such as would be found by a primal or dual simplex solver. In many cases a basic feasible solution is more practically useful than the type of solution typically identified by an interior point solver. CROSSOVER=ON activates the crossover algorithm, which by default (CROSSOVER=OFF) is not used.
These new features are also accessible from the OPTMODEL procedure.

The OPTMODEL Procedure

The OPTMODEL procedure provides a modeling syntax designed specifically for building and working with optimization models including linear, mixed-integer, quadratic, and general nonlinear optimization.
In SAS/OR 9.3, PROC OPTMODEL adds features that give you greater control over the disposition of models and solutions:
  • The CREATE DATA statement adds options that enable you to control the formatting, length, and labeling of output data set variables that are created from an optimization model or its solution.
  • The SAVE MPS and SAVE QPS statements en able you to specify an objective function that determines which objective among several alternatives is saved as the problem objective in the MPS or QPS data set.
SAS/OR 9.3 delivers very significant upgrades for nonlinear optimization:
  • A new experimental active-set solver is available and is recommended for both small- and large-scale problems. The active-set solver is often the preferred solver if the problem being addressed contains only bound constraints, and it can also deliver superior performance for other classes of problems.
  • The new multistart method considers multiple starting points for the optimization process. This approach is useful for nonlinear optimization problems that might have many locally opt mal solutions, which is common if either or both of the objective and constraint functions are non-convex. In such a case, one of the locally optimal solutions is also the globally optimal solution; with the multistart algorithm, the nonlinear optimization solver starts at several different initial points and then reports back the best among the multiple locally optimal solutions that it has found. In the first phase of the multistart algorithm, the feasible region of the optimization problem is explored and candidate starting points are determined so as to be most likely to produce good locally optimal solutions. In the second phase, a subset of the candidates is selected (according to criteria designed to produce better and distinct locally optimal solutions) and used as starting points for the nonlinear optimization solver. Two options can be used to control these phases: the MSBNDRANGE= option limits the initial exploration of the feasible region and is especially useful with unbounded problems, and the MSNUMSTARTS= option specifies the number of starting points to be used. After the multistart algorithm has concluded, the solution with the best objective function is reported. The .msinit suffix can be used to produce the values of the decision variables at the starting point that ultimately lead to the discovery of this solution.

SAS Simulation Studio 1.6

SAS Simulation Studio is a graphical application that enables you to build, run, and analyze discrete event simulation models. Application areas include retail, customer service, health care, transportation, and many other industries. The graphical user interface of SAS Simulation Studio provides extensive modeling tools suitable for both novice and advanced simulation users.
In SAS/OR 9.3, SAS Simulation Studio 1.6 provides the following enhancements:
  • support for the 64-bit Windows platform along with the 32-bit Windows platform support it has always offered
  • improved features and usability:
    • a new set of icons for all blocks
    • new graphics technology for graphical display blocks (bar charts, scatter plots, histograms, and so on)
    • cut-and-paste capabilities to aid in replicating sections of models
    • a new Snapshot feature that provides a scaled-down view of the entire model, which can be used to navigate to sections of interest in larger models that extend beyond the boundaries of one monitor screen
  • enhanced ability to work with data and generate samples from probability distributions. You can now sample from nonhomogeneous Poisson processes and empirical distributions (discrete and continuous). Integration with JMP® distribution-fitting capabilities is tighter than in previous releases: you can now select a candidate fitted distribution from JMP software and with one click transmit the distribution and parameter settings back to the appropriate Numeric Source block in SAS Simulation Studio.
  • new blocks:
    • The Observation Source block enables you to sample an entire observation from a source data set in a single step; this is useful when many variables from the same data set are used in a simulation model.
    • The Dataset Writer block, when signaled to do so, saves data collected during a simulation model run to a specified location.
    • The Dataset Holder block also receives data collected during a simulation model run but makes the data available for queries during the same run.
    • The Stopper block enables you to create a signal that immediately stops a simulation model run and can also trigger the saving of key simulation data near or at the end of the simulation model run.
    • The Stat Collector block enables you to collect time-persistent statistics and values.
  • access to SAS software (to run SAS programs during or after a simulation model run) not only on the local PC but also on a remote SAS server