Contents
About
Acknowledgments
Credits
Documentation
Software
Support Groups
Acknowledgments
What’s New in SAS/OR 12.1, 12.2, and 12.3
Overview
Highlights of Enhancements in SAS/OR 12.3
Highlights of Enhancements in SAS/OR 12.1
The CLP Procedure
The DTREE, GANTT, and NETDRAW Procedures
Supporting Technologies for Optimization
PROC OPTMODEL: Nonlinear Optimization
Linear Optimization with PROC OPTMODEL and PROC OPTLP
Mixed Integer Linear Optimization with PROC OPTMODEL and PROC OPTMILP
The Decomposition Algorithm
Setting the Cutting Plane Strategy
Conflict Search
PROC OPTMILP: Option Tuning
PROC OPTMODEL: The SUBMIT Block
Network Optimization with PROC OPTNET
SAS Simulation Studio 12.1
Using This Book
Purpose
Organization
Typographical Conventions
Conventions for Examples
Accessing the SAS/OR Sample Library
Online Documentation
Additional Documentation for SAS/OR Software
Introduction to Optimization
Overview
Linear Programming Problems
The OPTLP Procedure
The OPTMODEL Procedure
Mixed Integer Linear Problems
The OPTMILP Procedure
The OPTMODEL Procedure
Quadratic Programming Problems
The OPTQP Procedure
The OPTMODEL Procedure
Nonlinear Problems
The OPTMODEL Procedure
Model Building with PROC OPTMODEL
References
Shared Concepts and Topics
Parallel Computing
Syntax
PERFORMANCE Statement
ODS Tables
Memory Limit
Numerical Difficulties
References
The OPTMODEL Procedure
Overview: OPTMODEL Procedure
Getting Started: OPTMODEL Procedure
An Unconstrained Optimization Example
The Rosenbrock Problem
A Transportation Problem
OPTMODEL Modeling Language: Basic Concepts
Named Parameters
Indexing
Types
Names
Parameters
Expressions
Identifier Expressions
Function Expressions
Index Sets
Syntax: OPTMODEL Procedure
Functional Summary
PROC OPTMODEL Statement
Declaration Statements
Programming Statements
OPTMODEL Expression Extensions
AND Aggregation Expression
CARD Function
CROSS Expression
DIFF Expression
IF-THEN/ELSE Expression
IN Expression
Index Set Expression
INTER Expression
INTER Aggregation Expression
MAX Aggregation Expression
MIN Aggregation Expression
OR Aggregation Expression
PROD Aggregation Expression
Range Expression
Set Constructor Expression
Set Literal Expression
SETOF Aggregation Expression
SLICE Expression
SUM Aggregation Expression
SYMDIFF Expression
Tuple Expression
UNION Expression
UNION Aggregation Expression
WITHIN Expression
Details: OPTMODEL Procedure
Conditions of Optimality
Data Set Input/Output
Control Flow
Formatted Output
ODS Table and Variable Names
Constraints
Suffixes
Integer Variable Suffixes
Dual Values
Reduced Costs
Presolver
Model Update
Multiple Subproblems
Problem Symbols
OPTMODEL Options
Automatic Differentiation
Conversions
More on Index Sets
Threaded Processing
Macro Variable _OROPTMODEL_
Examples: OPTMODEL Procedure
Matrix Square Root
Reading From and Creating a Data Set
Model Construction
Set Manipulation
Multiple Subproblems
Traveling Salesman Problem
Rewriting PROC NLP Models for PROC OPTMODEL
References
The Linear Programming Solver
Overview: LP Solver
Getting Started: LP Solver
Syntax: LP Solver
Functional Summary
LP Solver Options
Details: LP Solver
Presolve
Pricing Strategies for the Primal and Dual Simplex Solvers
The Network Simplex Algorithm
The Interior Point Algorithm
Iteration Log for the Primal and Dual Simplex Solvers
Iteration Log for the Network Simplex Solver
Iteration Log for the Interior Point Solver
Iteration Log for the Crossover Algorithm
Concurrent LP
Problem Statistics
Variable and Constraint Status
Irreducible Infeasible Set
Macro Variable _OROPTMODEL_
Examples: LP Solver
Diet Problem
Reoptimizing the Diet Problem Using BASIS=WARMSTART
Two-Person Zero-Sum Game
Finding an Irreducible Infeasible Set
Using the Network Simplex Solver
Migration to OPTMODEL: Generalized Networks
Migration to OPTMODEL: Maximum Flow
Migration to OPTMODEL: Production, Inventory, Distribution
Migration to OPTMODEL: Shortest Path
References
The Mixed Integer Linear Programming Solver
Overview: MILP Solver
Getting Started: MILP Solver
Syntax: MILP Solver
Functional Summary
MILP Solver Options
Details: MILP Solver
Branch-and-Bound Algorithm
Controlling the Branch-and-Bound Algorithm
Presolve and Probing
Cutting Planes
Primal Heuristics
Node Log
Problem Statistics
Macro Variable _OROPTMODEL_
Examples: MILP Solver
Scheduling
Multicommodity Transshipment Problem with Fixed Charges
Facility Location
Traveling Salesman Problem
References
The Nonlinear Programming Solver
Overview: NLP Solver
Getting Started: NLP Solver
A Simple Problem
A Larger Optimization Problem
An Optimization Problem with Many Local Minima
Syntax: NLP Solver
Functional Summary
NLP Solver Options
Details: NLP Solver
Basic Definitions and Notation
Constrained Optimization
Interior Point Algorithm
Active-Set Method
Multistart
Iteration Log for the Local Solver
Iteration Log for Multistart
Solver Termination Criterion
Solver Termination Messages
Macro Variable _OROPTMODEL_
Examples: NLP Solver
Solving Highly Nonlinear Optimization Problems
Solving Unconstrained and Bound-Constrained Optimization Problems
Solving NLP Problems with Range Constraints
Solving Large-Scale NLP Problems
Solving NLP Problems That Have Several Local Minima
References
The Quadratic Programming Solver
Overview: QP Solver
Getting Started: QP Solver
Syntax: QP Solver
Functional Summary
QP Solver Options
Details: QP Solver
Interior Point Algorithm: Overview
Iteration Log
Problem Statistics
Macro Variable _OROPTMODEL_
Examples: QP Solver
Linear Least Squares Problem
Portfolio Optimization
Portfolio Selection with Transactions
References
The OPTLP Procedure
Overview: OPTLP Procedure
Getting Started: OPTLP Procedure
Syntax: OPTLP Procedure
Functional Summary
PROC OPTLP Statement
Decomposition Algorithm Statements
PERFORMANCE Statement
Details: OPTLP Procedure
Data Input and Output
Presolve
Pricing Strategies for the Primal and Dual Simplex Solvers
Warm Start for the Primal and Dual Simplex Solvers
The Network Simplex Algorithm
The Interior Point Algorithm
Iteration Log for the Primal and Dual Simplex Solvers
Iteration Log for the Network Simplex Solver
Iteration Log for the Interior Point Solver
Iteration Log for the Crossover Algorithm
Concurrent LP
ODS Tables
Irreducible Infeasible Set
Macro Variable _OROPTLP_
Examples: OPTLP Procedure
Oil Refinery Problem
Using the Interior Point Solver
The Diet Problem
Reoptimizing after Modifying the Objective Function
Reoptimizing after Modifying the Right-Hand Side
Reoptimizing after Adding a New Constraint
Finding an Irreducible Infeasible Set
Using the Network Simplex Solver
References
The OPTMILP Procedure
Overview: OPTMILP Procedure
Getting Started: OPTMILP Procedure
Syntax: OPTMILP Procedure
Functional Summary
PROC OPTMILP Statement
Decomposition Algorithm Statements
PERFORMANCE Statement
TUNER Statement
Details: OPTMILP Procedure
Data Input and Output
Warm Start
Branch-and-Bound Algorithm
Controlling the Branch-and-Bound Algorithm
Presolve and Probing
Cutting Planes
Primal Heuristics
Node Log
ODS Tables
Macro Variable _OROPTMILP_
Examples: OPTMILP Procedure
Simple Integer Linear Program
MIPLIB Benchmark Instance
Facility Location
Scheduling
References
The OPTQP Procedure
Overview: OPTQP Procedure
Getting Started: OPTQP Procedure
Syntax: OPTQP Procedure
Functional Summary
PROC OPTQP Statement
PERFORMANCE Statement
Details: OPTQP Procedure
Output Data Sets
Interior Point Algorithm: Overview
Iteration Log for the OPTQP Procedure
ODS Tables
Macro Variable _OROPTQP_
Examples: OPTQP Procedure
Linear Least Squares Problem
Portfolio Optimization
Portfolio Selection with Transactions
References
The Decomposition Algorithm
Overview: Decomposition Algorithm
Getting Started: Decomposition Algorithm
Solving a MILP with DECOMP and PROC OPTMODEL
Solving a MILP with DECOMP and PROC OPTMILP
Syntax: Decomposition Algorithm
Decomposition Algorithm Options in the PROC OPTLP Statement or the SOLVE WITH LP Statement in PROC OPTMODEL
Decomposition Algorithm Options in the PROC OPTMILP Statement or the SOLVE WITH MILP Statement in PROC OPTMODEL
DECOMP Statement
DECOMP_MASTER Statement
DECOMP_MASTER_IP Statement
DECOMP_SUBPROB Statement
Details: Decomposition Algorithm
Data Input
Decomposition Algorithm
Parallel Execution
Log for the Decomposition Algorithm
Examples: Decomposition Algorithm
Multicommodity Flow Problem
Generalized Assignment Problem
Block-Diagonal Structure and METHOD=AUTO in Single-Machine Mode
Block-Diagonal Structure and METHOD=AUTO in Distributed Mode
Resource Allocation Problem
ATM Cash Management in Single-Machine Mode
ATM Cash Management in Distributed Mode
References
The OPTMILP Option Tuner
Overview: The OPTMILP Option Tuner
Getting Started: The OPTMILP Option Tuner
Syntax: The OPTMILP Option Tuner
Functional Summary
PERFORMANCE Statement
TUNER Statement
Details: The OPTMILP Option Tuner
Data Input and Output
Default Set of Tuning Options
Full Set of Tuning Options
Tuner Log
ODS Tables
Examples: The OPTMILP Option Tuner
Tuning the Default Set of Options for a Single Problem
Tuning a Defined Set of Options for Multiple Problems
Tuning a Defined Set of Options for Multiple Problems in Distributed Mode
References
The MPS-Format SAS Data Set
Overview: MPS-Format SAS Data Set
Observations
Order of Sections
Sections Format: MPS-Format SAS Data Set
NAME Section
ROWS Section
COLUMNS Section
RHS Section (Optional)
RANGES Section (Optional)
BOUNDS Section (Optional)
BRANCH Section (Optional)
QSECTION Section
ENDATA Section
Details: MPS-Format SAS Data Set
Converting an MPS/QPS-Format File: %MPS2SASD
Length of Variables
Examples: MPS-Format SAS Data Set
MPS-Format Data Set for a Product Mix Problem
Fixed-MPS-Format File
Free-MPS-Format File
Using the %MPS2SASD Macro
References
Product
Release
SAS/OR
12.3
Type
Usage and Reference
Copyright Date
July 2013
Last Updated
10Sep2013