# Enhancements in SAS/OR 9.2 Software

SAS/OR 9.2 continues the improvements in optimization that began with three
SAS/OR 9.1.3 releases (2.1, 3.1, and 3.2), along with enhanced capabilities in project scheduling
and discrete event simulation. These improvements make SAS/OR easier to use and expand the scope and
scale of problems that you can address with it.

###
Enhancements to New Optimization Procedures

The new optimization procedures in SAS/OR, originally introduced in
SAS/OR 9.1.3 releases 2.1, 3.1, and 3.2, are:

- PROC OPTMODEL: optimization modeling language and access to linear, mixed-integer linear,
quadratic, and general nonlinear optimization
- PROC OPTLP: linear optimization
- PROC OPTMILP: mixed-integer linear optimization
- PROC OPTQP: quadratic optimization

The OPTLP procedure adds the experimental option to identify, for an infeasible linear program,
constraints and variable bounds that collectively form an irreducible infeasible set (IIS).
This option is also available when building and solving a linear program with the OPTMODEL procedure.

The OPTLP, OPTMILP, and OPTQP procedures add the ability to produce an ODS table for problem
statistics, yielding descriptive information about the problem being solved.

###
Aiding Migration to the New Optimization Procedures

In SAS/OR 9.2 the INTPOINT, LP, and NETFLOW procedures each add the MPSOUT= option,
which directs the procedure to save input problem data in an MPS-format SAS data set.
Invoking the MPSOUT= option causes the procedure to output the data and halt without
attempting optimization, and the resulting SAS data set can be used to specify a problem
so that it may be solved using either the OPTLP or the OPTMILP procedure.

###
Network Optimization

The NETFLOW procedure adds the ability to model generalized networks,
in which the flow entering an arc in the network might not equal the flow exiting
the same arc; this signifies a loss or a gain as the flow traverses the arc. Examples
of real-world applications of generalized networks include:

- Perishable goods transportation (weight loss due to drying)
- Financial account balances over multiple time periods (interest accrual)
- Manufacturing processes (yield/waste ratios)
- Electrical power generation (voltage loss along transmission lines)

PROC NETFLOW is now able to work with networks that have challenging
characteristics such as excess supply or demand, unknown supply or demand at
some network nodes, or node with range constraints on supply or demand.

###
Earned Value Management Macros

Earned Value Management (EVM, also known as Earned Value Analysis) aids in tracking
the execution of a project, comparing current accomplishments against the plan on both
a schedule and budget basis. In SAS/OR 9.2, two sets of macros are provided for EVM: a
set of four macros to calculate metrics and a set of six macros to create graphical reports
based on the metrics. Metrics ranging from task-specific to project-wide are supported.

### Microsoft Project Conversion Macros

SAS/OR enables you to convert project data created with Microsoft Project for use
with the project scheduling capabilities of SAS/OR. New in SAS/OR 9.2, you can also
export project data from SAS/OR for use with Microsoft Project. The %MSPTOSAS macro
imports data from Microsoft Project to SAS/OR, and the experimental %SASTOMSP macro
exports from SAS/OR to Microsoft Project. Note that execution of either of these macros
requires SAS/ACCESS software.

### Genetic Algorithms and Constraint Programming

The GA procedure solves optimization problems through the use of genetic algorithms.
Genetic algorithms work with a group of solutions to a problem and treat the group as
a biological population, causing the group to grow and evolve over successive "generations"
and applying selective pressure to improve the population in accordance with the objective
of the optimization problem. In SAS/OR 9.2 PROC GA is at production status and adds several
enhancements to its routines and options designed to improve flexibility and readability and
to improve the overall functioning of the procedure.

The CLP procedure, experimental in SAS/OR 9.2, solves constraint satisfaction problems
through the use of constraint programming. This approach assigns values to decision variables
individually and sequentially, tracking how each assignment affects the available values for other
decision variables and adjusting as needed. In SAS/OR 9.2, PROC CLP enhances its underlying
algorithms and strategies, and also adds to its capabilities for modeling and solving scheduling problems.

### Discrete Event Simulation

Discrete event simulation is used to study the operations of systems
(retail, transportation, manufacturing, etc.) with significant random elements,
such as the arrival of customers at a retail store, service times in manufacturing,
or caller preferences at an incoming call center. Discrete event simulation provides
insight into system behavior and helps to characterize how the system reacts to changes
in operating conditions and/or configuration. SAS Simulation Studio, experimental in
SAS/OR 9.2, features a graphical user interface that requires no programming and provides
all the tools for building, running, and analyzing results from discrete event simulation models.
SAS Simulation Studio integrates with JMP for experimental design and can analyze results
using either JMP or SAS.