Contents
About
Acknowledgments
Credits
Documentation
Software
Support Groups
Acknowledgments
What’s New in SAS/OR 13.1
Overview
Highlights of Enhancements in SAS/OR 13.1
Procedure Enhancements
The CLP Procedure
The OPTLSO Procedure
The OPTMODEL Procedure
Linear and Nonlinear Optimization with PROC OPTLP and PROC OPTMODEL
Mixed Integer Linear Optimization with PROC OPTMILP and PROC OPTMODEL
SAS Simulation Studio 13.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
Multithreaded 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
Syntax: OPTMODEL Procedure
Functional Summary
PROC OPTMODEL Statement
Declaration Statements
Programming Statements
Details: OPTMODEL Procedure
Named Parameters
Indexing
Types
Names
Parameters
Expressions
Identifier Expressions
Function Expressions
Index Sets
OPTMODEL Expression Extensions
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
FCMP Routines
More on Index Sets
Threaded Processing
Macro Variable _OROPTMODEL_
Rewriting PROC NLP Models for PROC OPTMODEL
Examples: OPTMODEL Procedure
Matrix Square Root
Reading From and Creating a Data Set
Model Construction
Set Manipulation
Multiple Subproblems
Traveling Salesman Problem
Sparse Modeling
Chemical Equilibrium
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
Parallel Processing
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
Parallel Processing
Node Log
Problem Statistics
Macro Variable _OROPTMODEL_
Examples: MILP Solver
Scheduling
Multicommodity Transshipment Problem with Fixed Charges
Facility Location
Traveling Salesman Problem
References
The Network Solver
Overview: Network Solver
Getting Started: Network Solver
Syntax: Network Solver
Functional Summary
SOLVE WITH NETWORK Statement
General Options
Input and Output Options
Algorithm Options
Details: Network Solver
Input Data for the Network Solver
Solving over Subsets of Nodes and Links (Filters)
Biconnected Components and Articulation Points
Clique
Connected Components
Cycle
Linear Assignment (Matching)
Minimum-Cost Network Flow
Minimum Cut
Minimum Spanning Tree
Shortest Path
Transitive Closure
Traveling Salesman Problem
Macro Variable _OROPTMODEL_
Examples: Network Solver
Articulation Points in a Terrorist Network
Cycle Detection for Kidney Donor Exchange
Linear Assignment Problem for Minimizing Swim Times
Linear Assignment Problem, Sparse Format versus Dense Format
Minimum Spanning Tree for Computer Network Topology
Transitive Closure for Identification of Circular Dependencies in a Bug Tracking System
Traveling Salesman Tour through US Capital Cities
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
Parallel Processing
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
Parallel Processing
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
Parallel Processing
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
Parallel Processing
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
Special Case: Identical Blocks
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
Bin Packing Problem
Resource Allocation Problem
Vehicle Routing Problem
ATM Cash Management in Single-Machine Mode
ATM Cash Management in Distributed Mode
Kidney Donor Exchange
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_M1
Type
Usage and Reference
Copyright Date
December 2013
Last Updated
17Dec2013