What's New |
SAS/OR 9.22 continues the improvements that were delivered starting with SAS/OR 9.2. Several new and enhanced features expand the scale and scope of problems that SAS/OR software can address. These enhancements also make it easier for you to use the SAS/OR capabilities. Brief descriptions of these new features are presented in the following sections.
Highlights of the changes include the following:
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 and has enhanced scheduling capabilities.
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.
More information about the changes and enhancements is provided in this chapter. Details can be found in the documentation for the individual procedures in the relevant volumes of the SAS/OR 9.22 User’s Guide.
Some users are moving directly from SAS/OR 9.1.3 to SAS/OR 9.22. The following are some of the major enhancements that were introduced in SAS/OR 9.2:
The MPSOUT= option directs procedures to save input problem data in an MPS-format SAS data set. The MPSOUT= option is available in the LP, NETFLOW, and OPTLP procedures.
The IIS= option for the LP solver enables you to identify, for an infeasible linear program, constraints and variable bounds that form an irreducible infeasible set (IIS). The IIS= option is available in the OPTLP and OPTMODEL procedures.
The value "2" for the PRINTLEVEL= option directs procedures to produce an ODS table called "ProblemStatistics" in addition to the "ProblemSummary" and "SolutionSummary" ODS tables that are produced for PRINTLEVEL=1. The PRINTLEVEL=2 option is available in the INTPOINT, OPTLP, and OPTMILP procedures.
The %SASTOMSP macro converts data sets that are used by the CPM and PM procedures into an MDB file that is readable by Microsoft Project.
Several call routines in the GA procedure were replaced by new call routines.
The CLP procedure features improved algorithms for the "all-different" constraint in addition to several extensions to the edge-finder algorithm for resource-constrained scheduling.
For more information, see What's New in SAS/OR 9.2.
SAS/OR software is documented in the following volumes:
SAS/OR User’s Guide: Bills of Material Processing
SAS/OR User’s Guide: Constraint Programming
SAS/OR User’s Guide: Local Search Optimization
SAS/OR User’s Guide: Mathematical Programming
SAS/OR User’s Guide: Project Management
SAS/OR User’s Guide: QSIM Application
SAS Simulation Studio 1.5: User’s Guide
Online help can also be found under the corresponding classification.
The GANTT procedure produces a Gantt chart, which is a graphical tool for representing schedule-related information. PROC GANTT provides support for displaying multiple schedules, precedence relationships, calendar information, milestones, reference lines, labeling, and so on. New in SAS/OR 9.22 is the TIMEAXISFORMAT= option in the CHART statement which provides the capability to customize the format of the time axis on the Gantt chart for up to three rows. Each row can be formulated using a predefined SAS format or a user-defined format.
The SAS macro %MSPTOSAS converts Microsoft Project 98 (and later) data into SAS data sets that can be used as input for project scheduling with SAS/OR software. This macro generates the necessary SAS data sets, determines the values of the relevant options, and invokes the SAS/OR PM procedure with the converted project data. The %MSPTOSAS macro enables you to use Microsoft Project for the input of project data and still take advantage of the excellent SAS/OR project and resource scheduling capabilities. New in SAS/OR 9.22 is the capability to import and convert Microsoft Project data that has been saved in XML format. This feature is experimental.
The experimental %SASTOMSP macro converts data sets that are used by the CPM and PM procedures into a Microsoft Access Database (MDB) file that is readable by Microsoft Project. 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 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 is production in SAS/OR 9.22 with the exception of the scheduling-related constraints.
New in SAS/OR 9.22 are the GCC and ELEMENT statements for defining global cardinality constraints (GCC) and element constraints, respectively. The GCC statement enables you to bound the number of times that a specific value gets assigned to a set of variables. The ELEMENT statement enables you to define dependencies, not necessarily functional, between variables and to define noncontiguous domains.
The USECONDATAVARS= option enables you to implicitly define numeric variables in the CONDATA= data set. The TIMETYPE= option enables you to set the units (real time or CPU time) of the MAXTIME= parameter. The _ORCLP_ macro variable has been enhanced to provide more information about procedure status and solution status.
There are also several changes and enhancements to the scheduling capabilities in SAS/OR 9.22. Support for multiple-capacity resources has been added in the RESOURCE statement and the Activity data set. The REQUIRES statement syntax for specifying multiple resource requirements has changed. The format of the Activity data set has changed to a more compact form with a fixed number of variables. A new Resource data set, specified with the RESDATA= option, enables you to define resources, resource pools, and resource attributes in compact form. The format of the Schedule data set has been enhanced to separate time and schedule related observations. Two new schedule-related output data sets, SCHEDTIME= and SCHEDRES=, have been added; they contain time assignment and resource assignment information, respectively.
The OPTMODEL procedure provides a modeling environment that is tailored to building, solving, and maintaining optimization models. This makes the process of translating the symbolic formulation of an optimization model into PROC OPTMODEL virtually transparent, because the modeling language mimics the symbolic algebra of the formulation as closely as possible. PROC OPTMODEL also streamlines and simplifies the critical process of populating optimization models with data from SAS data sets. All of this transparency produces models that are more easily inspected for completeness and correctness, more easily corrected, and more easily modified, whether through structural changes or through the substitution of new data for old data.
The OPTMODEL procedure consists of the powerful OPTMODEL modeling language and access to state-of-the-art solvers for several classes of mathematical programming problems.
Seven solvers are available to OPTMODEL, as listed in Table 1.1.
Problem |
Solver |
Linear programming |
LP |
Mixed integer programming |
MILP |
Quadratic programming (Experimental) |
QP |
Nonlinear programming, unconstrained |
NLPU |
General nonlinear programming |
NLPC |
General nonlinear programming |
SQP |
General nonlinear programming |
IPNLP |
In SAS/OR 9.22, the OPTMODEL procedure adds several new features. First, PROC OPTMODEL supports named problems to enable easy manipulation of multiple subproblems. The PROBLEM declaration declares a named problem and the USE PROBLEM statement makes it active. Objectives can now be declared as arrays, so they can provide separate objectives for arrays of named problems.
Implicit variables, created via the IMPVAR declaration, allow optimization expressions to be referred to by name in a model. Implicit variables can be evaluated more efficiently than by repeating the same complex expression in multiple places.
Problem components can be accessed with aliases such as _VAR_ and _CON_, which respectively aggregate all of the variables and constraints in a problem. This allows convenient processing of all of the problem components of a given kind for printing, model expansion, and other purposes. The new suffixes .NAME and .LABEL can be used to track the identity of problem components.
Function and subroutine calls can use the "OF array-name[*]" syntax to pass an OPTMODEL array to a called routine for uses such as sorting.
The NUMBER, STRING, and SET declarations allow initial values for arrays to be supplied using an INIT clause with a list of initialization values.
The SOLVE statement supports the RELAXINT keyword to solve a problem while temporarily relaxing the integrality restriction on variables.
Analytic derivatives are now generated for most SAS library functions. The OPTMODEL procedure can use threading on systems with multiple processors to speed up evaluation of nonlinear Hessian models.
Starting with SAS/OR 9.22, the IPNLP and NLPU solvers support new techniques for large-scale optimization. The nonlinear solver IPNLP has been equipped with two new techniques. The first technique, TECH=IPKRYLOV, is appropriate for large-scale nonlinear optimization problems that can contain many thousands of variables or constraints or both. It uses exact second derivatives to calculate the search directions. Its convergence is achieved by using a trust-region framework that guides the algorithm towards the solution of the optimization problem. The second technique, TECH=IPQN, uses a quasi-Newton method and line-search framework to solve the optimization problem. As such it needs to calculate only the first derivatives of the objective and constraints. This method is more appropriate for problems where the second derivatives of the objective and constraints either are not available or are expensive to compute.
The unconstrained solver NLPU has been equipped with a new technique called TECH=CGTR. This technique uses the conjugate gradient method to solve large-scale unconstrained and bound constrained optimization problems.
The OPTMILP procedure solves mixed-integer linear programming problems with a linear-programming-based branch-and-bound algorithm that has been improved for SAS/OR 9.22. The algorithmic improvements result from incorporating new techniques in the presolver and cutting planes, better application of primal heuristics, an improved branch-and-bound strategy, and an improved strategy for handling feasibility problems. Improvements to the presolver include variable and constraint reductions based on logical implications among binary variables and generalized variable substitutions. Two new cutting plane routines (mixed 0-1 lifted inequalities and zero-half cuts) have been added, and improvements have been made to clique, Gomory mixed integer, and mixed integer rounding (MIR) cutting plane routines.
The resulting improvements in efficiency enable you to use PROC OPTMILP to solve larger and more complex optimization problems in a shorter time than with previous SAS/OR releases.
Copyright © 2010 by SAS Institute Inc.,Cary, NC, USA. All rights reserved.