SAS/OR 14.1 adds a number of new optimization capabilities that shorten optimization time, increase diagnostic capabilities, and make the software easier to use. Highlights include the following:
Several solvers improve their performance.
The concurrent FOR loop (the COFOR loop) in PROC OPTMODEL can run in distributed mode. Note: Distributed mode requires SAS High-Performance Optimization.
PROC OPTMODEL adds a profiler that tracks the amount of time spent in problem generation, presolve, and various stages of the solution process.
PROC OPTNET enables parallel computing, provides faster graph data input, and adds enhancements to three of its algorithms.
The quadratic and nonlinear solvers add irreducible infeasible set (IIS) diagnostics.
The decomposition algorithm expands the range of constraint matrix structures that it can detect automatically.
The CLP procedure adds more variable selection strategies.
SAS Simulation Studio 14.1, a component of SAS/OR 14.1 for Windows environments, adds features that improve the accuracy of your models and give you additional controls on model execution. Highlights include the following:
controls on the order in which dynamically created data input and output ports on blocks execute during the run of a model
centralized controls on the ranking of blocks in a model, which determines the order of execution for events that are scheduled for the same simulation clock time
expanded and improved controls on the allocation of resource units among resource entities when there is a scheduled adjustment
automatic launching of the SAS server on your local PC
Several optimization solvers have improved their performance over that of SAS/OR 13.2 as follows:
The interior point linear programming (LP) solver is 30% faster.
The branch-and-cut mixed integer linear programming (MILP) solver is 35% faster.
When METHOD=AUTO (the default setting), the decomposition (DECOMP) algorithm is 130% faster in finding an optimal MILP solution and 240% faster in finding a solution with a 5% optimality gap.
The active set algorithm in the nonlinear programming (NLP) solver is 4% faster for the entire test suite and 10% faster for the more difficult problems in the test suite.
The OPTMODEL procedure makes three major changes:
The COFOR statement (which specifies a concurrent FOR loop) can distribute processing of solver invocations in the loop across multiple computational nodes, not simply among multiple computational threads on the same node. You request processing across multiple nodes by specifying a value greater than 1 in the NODES= option in the PERFORMANCE statement. Note: Distributed mode requires SAS High-Performance Optimization.
CLP solver invocation via the SOLVE WITH CLP statement is promoted to production status.
The PROFILE statement is added. This statement invokes and configures the PROC OPTMODEL profiler to track and report the time spent processing declarations, the time spent executing statements, and the number of times statements are executed. The profiler can help you identify elements of problem generation, presolve, and solution that require large amounts of time; it can be a useful aid in error detection and performance improvement. The PROFILE statement includes two optional arguments, mode and options. The mode argument enables or disables the profiler, and can also request that accumulated profiler data be printed. The options argument controls how PROC OPTMODEL collects, retains, and displays profiler information.
PROC CLP adds the new conflict-directed variable selection strategies, VARSELECT=WDEG and VARSELECT=DOMWDEG; adds a new dynamic variable section strategy, VARSELECT=DOMDDEG; and promotes the PACK and LEXICO constraint classes to production status.
PROC OPTNET enables faster graph data input. The STANDARDIZED_LABELS option in the PROC OPTNET statement enables you to read graph data that contain only numeric node identifiers more quickly. More generally, PROC OPTNET supports parallel computing, including parallel graph data input. This is especially helpful in shortening the time that is needed to input large-scale graph data. You can use the PERFORMANCE statement and its NTHREADS= option to request multithreaded computing.
PROC OPTNET adds enhancements to three of the algorithms that it uses. The TSP (traveling salesman problem) algorithm can solve asymmetric problems, which are defined on directed graphs; the shortest path algorithm can accept negative link weights; and the default connected components algorithm for undirected graphs is the more efficient union-find algorithm.
PROC OPTNET produces ODS tables as output. You can use the DETAILS option in the PERFORMANCE statement to request that PROC OPTNET produce the Timing ODS table, which reports the amount of time that each step of the procedure uses.
The NLP solver and the quadratic programming (QP) solver each add the IIS= option, which directs the solver to identify an irreducible infeasible set among the linear constraints and decision variable bounds for a problem that is found to be infeasible. Identification of irreducible infeasible sets provides valuable guidance in restoring infeasible problems to feasibility.
The MILP solver now runs in parallel (threaded) mode by default for improved performance.
The DECOMP algorithm for the LP and MILP solvers adds the SET value for the METHOD= option. This value directs the DECOMP algorithm to find a set-partitioning or set-covering structure in the constraint matrix. If such constraints are detected, they serve as the linking constraints, and the remaining weakly connected components of the constraint matrix define blocks of constraints for use in the DECOMP algorithm.
SAS Simulation Studio 14.1, which provides a graphical environment for building and working with discrete-event simulation models, makes four major improvements:
FairIntegerBased: Any adjustments to the units of a resource entity are made on an integer basis, and any fractional resource units are ignored. If resource units increase or decrease, then those units are distributed integrally and as evenly as possible among all potential resource entities. This is the new default allocation policy.
IntegerBased: For a scheduled decrease in resource units, the units of the first targeted resource entity are integrally decreased as much as possible. If necessary, other resource entities are targeted if the first entity does not have enough units to cover the scheduled decrease. For an increase in resource units, this policy is the same as the FairIntegerBased policy.
FractionBased: For a scheduled increase in resource units, the additional units are distributed evenly among all targeted resource entities, potentially resulting in fractional units for some resource entities. For a scheduled decrease in resource units, the behavior is the same as for the IntegerBased policy, except that fractional units are also included. This was the default allocation policy in releases prior to SAS Simulation Studio 14.1.
SAS/OR 14.1 is now available. For complete information about all SAS/OR releases, see the documentation at support.sas.com/stat/.
Download a pdf version of this document