# What's New in SAS/OR 9.1.3, Release 3.1 and Release 3.2

## Overview

SAS/OR version 9.1.3, release 3.1 and release 3.2 contain several new and enhanced features designed to expand the scale and scope of problems that SAS/OR can address. These enhancements also make it easier for you to use the capabilities of SAS/OR. Brief descriptions of the new features are presented in the following sections. For more information, refer to the SAS/OR documentation, available in the following six 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: The QSIM Application

## The NETFLOW Procedure

The NETFLOW procedure for network flow optimization contains a new feature that enables you to specify and solve generalized network problems. In generalized networks the amount of flow entering an arc might not equal the amount of flow leaving the arc, signifying a loss or a gain as flow traverses the arc. A new PROC NETFLOW option, GENNET, indicates that the network is generalized. Generalized networks have a broad range of practical applications, including the following:

• transportation of perishable goods (weight loss due to drying)
• financial investment account balances (interest rates)
• manufacturing (yield ratios)
• electrical power generation (loss during transmission along lines)

Another new option, EXCESS=, enables you to use PROC NETFLOW to solve an even wider variety of network flow optimization problems for both standard and generalized networks. As a result, PROC NETFLOW is equipped to deal with many frequently encountered challenges to successful network flow optimization, such as the following:

• networks with excess supply or demand
• networks containing nodes with unknown supply and demand values
• networks with nodes having range constraints on supply and demand

## The OPTLP Procedure

The OPTLP procedure provides linear programming solvers and enables you to choose from three linear programming solvers: primal simplex, dual simplex, and interior point (experimental). The simplex solvers implement a two-phase simplex method, and the interior point solver implements a primal-dual predictor-corrector algorithm. All three solvers are newly rewritten and are designed for excellent performance and scalability. Presolvers, which work aggressively to reduce the effective size of problems before the solvers are invoked, are also provided.

New in SAS/OR 9.1.3 release 3.2, the TIMETYPE= option enables you to specify the type of time (real time or CPU time) that can be limited via the MAXTIME= option and reported via the _OROPTLP_ macro variable.

PROC OPTLP accepts linear programming problems that are submitted in an MPS-format SAS data set. The MPS-format SAS data set corresponds closely to the MPS-format text file (commonly used in the optimization community) and was first introduced in SAS/OR version 9.1.3, release 2.1.

## The OPTMILP Procedure

The new OPTMILP procedure solves mixed-integer linear programming problems with an LP-based branch-and-bound algorithm that has been completely rewritten for this release. The algorithm also implements advanced techniques including presolvers, cutting planes, and primal heuristics. The resulting improvements in efficiency enable you to use PROC OPTMILP to solve larger and more complex optimization problems than you could solve with previous releases of SAS/OR.

PROC OPTMILP accepts mixed-integer linear programming problems that are submitted in an MPS-format SAS data set.

## The OPTMODEL Procedure

The OPTMODEL procedure provides a modeling environment 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, since 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.

The OPTMODEL procedure comprises the powerful OPTMODEL modeling language and state-of-the-art solvers for several classes of mathematical programming problems. Seven solvers are available to OPTMODEL:

 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 (experimental) IPNLP

## The OPTQP Procedure

The OPTQP procedure solves quadratic programming problems with a new infeasible primal-dual predictor-corrector interior point algorithm. Performance is excellent for both sparse and dense quadratic programming problems, and PROC OPTQP excels at solving large problems efficiently.

PROC OPTQP accepts quadratic programming problems that are submitted in a QPS-format SAS data set. The QPS-format SAS data set corresponds closely to the format of the QPS text file (a widely accepted extension of the MPS format) and was introduced in SAS/OR 9.1.3, release 2.1.

## Earned Value Management Macros    -    Experimental

The set of experimental Earned Value Management macros complement the current SAS/OR procedures for project and resource scheduling (PROC CPM and PROC PM) by providing diagnostic information about the execution of scheduled projects. Earned Value Management (EVM) is growing in prominence and acceptance in the project management community due to its ability to turn information about partially completed projects into valid, early projections of overall project performance. EVM measures current project execution against the project execution plan on a cost and schedule basis.

SAS/OR provides two sets of EVM macros: a set of four analytical macros to compute EVM metrics, and a set of six macros to create graphical reports based on these metrics. A wide variety of EVM metrics and performance projections, for both task-by-task and project-wide evaluations, are supported.

## Microsoft Project Conversion Macro    -    Experimental

The SAS macros %MDBTOPM and %MP2KTOPM have been used in previous releases of SAS/OR to convert files saved by Microsoft Project 98 and Microsoft Project 2000 (and later), respectively, into SAS data sets that can be used as input for project scheduling with SAS/OR. Now these two macros are combined in the SAS macro %MSPTOSAS, which converts Microsoft Project 98 (and later) data. This experimental macro generates the necessary SAS data sets, determines the values of the relevant options, and invokes PROC PM in SAS/OR 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 project and resource scheduling capabilities of SAS/OR.

Execution of the %MSPTOSAS macro requires SAS/ACCESS software.