• Contents
  • About
  • Acknowledgments
    • Credits
      • Documentation
      • Software
      • Support Groups
    • Acknowledgments
  • What’s New in SAS/OR 9.22
    • Overview
      • Highlights of Enhancements in SAS/OR 9.22
      • Highlights of Enhancements in SAS/OR 9.2
      • SAS/OR Documentation
    • The GANTT Procedure
    • Microsoft Project Conversion Macros
    • The CLP Procedure
    • The OPTMODEL Procedure
    • The OPTMILP Procedure
    • SAS Simulation Studio
  • 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
      • PROC OPTLP
      • PROC OPTMODEL
      • PROC LP
      • PROC INTPOINT
    • Network Problems
      • PROC NETFLOW
      • PROC INTPOINT
    • Mixed Integer Linear Problems
      • PROC OPTMILP
      • PROC OPTMODEL
      • PROC LP
    • Quadratic Programming Problems
      • PROC OPTQP
      • PROC OPTMODEL
    • Nonlinear Problems
      • PROC OPTMODEL
      • PROC NLP
    • Model Building
      • PROC OPTLP
      • PROC NETFLOW
      • PROC OPTMODEL
    • Matrix Generation
    • Exploiting Model Structure
    • Report Writing
      • The DATA Step
      • Other Reporting Procedures
    • References
  • The INTPOINT Procedure
    • Overview: INTPOINT Procedure
      • Mathematical Description of NPSC
      • Mathematical Description of LP
      • The Interior Point Algorithm
      • Network Models
    • Introduction
      • Getting Started: NPSC Problems
      • Getting Started: LP Problems
      • Typical PROC INTPOINT Run
    • Syntax: INTPOINT Procedure
      • Functional Summary
      • Dictionary of Options
      • PROC INTPOINT Statement
      • CAPACITY Statement
      • COEF Statement
      • COLUMN Statement
      • COST Statement
      • DEMAND Statement
      • HEADNODE Statement
      • ID Statement
      • LO Statement
      • NAME Statement
      • NODE Statement
      • QUIT Statement
      • RHS Statement
      • ROW Statement
      • RUN Statement
      • SUPDEM Statement
      • SUPPLY Statement
      • TAILNODE Statement
      • TYPE Statement
      • VAR Statement
    • Details: INTPOINT Procedure
      • Input Data Sets
      • Output Data Sets
      • Converting Any PROC INTPOINT Format to an MPS-Format SAS Data Set
      • Case Sensitivity
      • Loop Arcs
      • Multiple Arcs
      • Flow and Value Bounds
      • Tightening Bounds and Side Constraints
      • Reasons for Infeasibility
      • Missing S Supply and Missing D Demand Values
      • Balancing Total Supply and Total Demand
      • How to Make the Data Read of PROC INTPOINT More Efficient
      • Stopping Criteria
    • Examples: INTPOINT Procedure
      • Production, Inventory, Distribution Problem
      • Altering Arc Data
      • Adding Side Constraints
      • Using Constraints and More Alteration to Arc Data
      • Nonarc Variables in the Side Constraints
      • Solving an LP Problem with Data in MPS Format
      • Converting to an MPS-Format SAS Data Set
    • References
  • The LP Procedure
    • Overview: LP Procedure
    • Getting Started: LP Procedure
      • An Introductory Example
      • An Integer Programming Example
      • An MPS Format to Sparse Format Conversion Example
    • Syntax: LP Procedure
      • Functional Summary
      • Dictionary of Options
      • PROC LP Statement
      • COEF Statement
      • COL Statement
      • ID Statement
      • IPIVOT Statement
      • PIVOT Statement
      • PRINT Statement
      • QUIT Statement
      • RANGE Statement
      • RESET Statement
      • RHS Statement
      • RHSSEN Statement
      • ROW Statement
      • RUN Statement
      • SHOW Statement
      • TYPE Statement
      • VAR Statement
    • Details: LP Procedure
      • Missing Values
      • Dense Data Input Format
      • Sparse Data Input Format
      • Converting Any PROC LP Format to an MPS-Format SAS Data Set
      • Converting Standard MPS Format to Sparse Format
      • The Reduced Costs, Dual Activities, and Current Tableau
      • Macro Variable ORLP
      • Pricing
      • Scaling
      • Preprocessing
      • Integer Programming
      • Sensitivity Analysis
      • Range Analysis
      • Parametric Programming
      • Interactive Facilities
      • Memory Management
      • Output Data Sets
      • Input Data Sets
      • Displayed Output
      • ODS Table and Variable Names
      • Memory Limit
    • Examples: LP Procedure
      • An Oil Blending Problem
      • A Sparse View of the Oil Blending Problem
      • Sensitivity Analysis: Changes in Objective Coefficients
      • Additional Sensitivity Analysis
      • Price Parametric Programming for the Oil Blending Problem
      • Special Ordered Sets and the Oil Blending Problem
      • Goal-Programming a Product Mix Problem
      • A Simple Integer Program
      • An Infeasible Problem
      • Restarting an Integer Program
      • Alternative Search of the Branch-and-Bound Tree
      • An Assignment Problem
      • A Scheduling Problem
      • A Multicommodity Transshipment Problem with Fixed Charges
      • Converting to an MPS-Format SAS Data Set
    • References
  • The NLP Procedure
    • Overview: NLP Procedure
    • Getting Started: NLP Procedure
      • Introductory Examples
    • Syntax: NLP Procedure
      • Functional Summary
      • Dictionary of Options
      • PROC NLP Statement
      • ARRAY Statement
      • BOUNDS Statement
      • BY Statement
      • CRPJAC Statement
      • DECVAR Statement
      • GRADIENT Statement
      • HESSIAN Statement
      • INCLUDE Statement
      • JACNLC Statement
      • JACOBIAN Statement
      • LABEL Statement
      • LINCON Statement
      • MATRIX Statement
      • MIN, MAX, and LSQ Statements
      • MINQUAD and MAXQUAD Statements
      • NLINCON Statement
      • PROFILE Statement
      • Program Statements
    • Details: NLP Procedure
      • Criteria for Optimality
      • Optimization Algorithms
      • Finite-Difference Approximations of Derivatives
      • Hessian and CRP Jacobian Scaling
      • Testing the Gradient Specification
      • Termination Criteria
      • Active Set Methods
      • Feasible Starting Point
      • Line-Search Methods
      • Restricting the Step Length
      • Computational Problems
      • Covariance Matrix
      • Input and Output Data Sets
      • Displayed Output
      • Missing Values
      • Computational Resources
      • Memory Limit
    • Examples: NLP Procedure
      • Using the DATA= Option
      • Using the INQUAD= Option
      • Using the INEST=Option
      • Restarting an Optimization
      • Approximate Standard Errors
      • Maximum Likelihood Weibull Estimation
      • Simple Pooling Problem
      • Chemical Equilibrium
      • Minimize Total Delay in a Network
    • References
  • The NETFLOW Procedure
    • Overview: NETFLOW Procedure
      • Introduction
      • Network Models
      • Side Constraints
      • Advantages of Network Models over LP Models
      • Mathematical Description of NPSC
      • Flow Conservation Constraints
      • Nonarc Variables
      • Warm Starts
    • Getting Started: NETFLOW Procedure
      • Introductory Example
    • Syntax: NETFLOW Procedure
      • Functional Summary
      • Dictionary of Options
      • Interactivity
      • PROC NETFLOW Statement
      • CAPACITY Statement
      • COEF Statement
      • COLUMN Statement
      • CONOPT Statement
      • COST Statement
      • DEMAND Statement
      • HEADNODE Statement
      • ID Statement
      • LO Statement
      • MULT Statement
      • NAME Statement
      • NODE Statement
      • PIVOT Statement
      • PRINT Statement
      • QUIT Statement
      • RESET Statement
      • RHS Statement
      • ROW Statement
      • RUN Statement
      • SAVE Statement
      • SHOW Statement
      • SUPDEM Statement
      • SUPPLY Statement
      • TAILNODE Statement
      • TYPE Statement
      • VAR Statement
    • Details: NETFLOW Procedure
      • Input Data Sets
      • Output Data Sets
      • Converting Any PROC NETFLOW Format to an MPS-Format SAS Data Set
      • Case Sensitivity
      • Loop Arcs
      • Multiple Arcs
      • Pricing Strategies
      • Dual Variables, Reduced Costs, and Status
      • The Working Basis Matrix
      • Flow and Value Bounds
      • Tightening Bounds and Side Constraints
      • Reasons for Infeasibility
      • Missing S Supply and Missing D Demand Values
      • Balancing Total Supply and Total Demand
      • Warm Starts
      • How to Make the Data Read of PROC NETFLOW More Efficient
      • Macro Variable ORNETFL
      • Memory Limit
    • The Interior Point Algorithm: NETFLOW Procedure
      • Introduction
      • Network Models: Interior Point Algorithm
      • Linear Programming Models: Interior Point Algorithm
    • Generalized Networks: NETFLOW Procedure
      • What Is a Generalized Network?
      • How to Specify Data for Arc Multipliers
    • Using the New EXCESS= Option in Pure Networks: NETFLOW Procedure
      • Handling Excess Supply or Demand
      • Handling Missing Supply and Demand Simultaneously
      • Maximum Flow Problems
      • Handling Supply and Demand Ranges
    • Using the New EXCESS= Option in Generalized Networks: NETFLOW Procedure
      • Total Supply and Total Demand: How Generalized Networks Differ from Pure Networks
      • The EXCESS=SUPPLY Option
      • The EXCESS=DEMAND Option
    • Examples: NETFLOW Procedure
      • Shortest Path Problem
      • Minimum Cost Flow Problem
      • Using a Warm Start
      • Production, Inventory, Distribution Problem
      • Using an Unconstrained Solution Warm Start
      • Adding Side Constraints, Using a Warm Start
      • Using a Constrained Solution Warm Start
      • Nonarc Variables in the Side Constraints
      • Pure Networks: Using the EXCESS= Option
      • Maximum Flow Problem
      • Generalized Networks: Using the EXCESS= Option
      • Generalized Networks: Maximum Flow Problem
      • Machine Loading Problem
      • Generalized Networks: Distribution Problem
      • Converting to an MPS-Format SAS Data Set
    • 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
      • Macro Variable OROPTMODEL
    • 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
      • Memory Limit
      • Threaded Processing
    • Examples: OPTMODEL Procedure
      • Matrix Square Root
      • Reading from and Creating a Data Set
      • Model Construction
      • Set Manipulation
      • Multiple Subproblems
    • Rewriting NLP Models for PROC OPTMODEL
    • References
  • The Interior Point NLP Solver
    • Overview: IPNLP Solver
    • Getting Started: IPNLP Solver
    • Syntax: IPNLP Solver
      • Functional Summary
      • IPNLP Solver Options
    • Details: IPNLP Solver
      • Basic Definitions and Notation
      • Overview of Constrained Optimization
      • Overview of Interior Point Methods
      • Solver Termination Criterion
      • Solver Termination Messages
      • Macro Variable OROPTMODEL
    • Examples: IPNLP Solver
      • Solving Highly Nonlinear Optimization Problems
      • Solving Unconstrained Optimization Problems
      • Solving NLP Problems with Range Constraints
      • Solving Large-Scale NLP Problems
    • 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 Simplex Solver
      • The Interior Point Algorithm: Overview
      • Macro Variable OROPTMODEL
      • Iteration Log for the Simplex Solvers
      • Iteration Log for the Interior Point Solver
      • Problem Statistics
      • Data Magnitude and Variable Bounds
      • Variable and Constraint Status
      • Irreducible Infeasible Set
    • Examples: LP Solver
      • Diet Problem
      • Reoptimizing the Diet Problem Using BASIS=WARMSTART
      • Two-Person Zero-Sum Game
      • Finding an Irreducible Infeasible Set
    • 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
      • The Branch-and-Bound Algorithm
      • Controlling the Branch-and-Bound Algorithm
      • Presolve and Probing
      • Cutting Planes
      • Primal Heuristics
      • Node Log
      • Problem Statistics
      • Data Magnitude and Variable Bounds
      • Macro Variable OROPTMODEL
    • Examples: MILP Solver
      • Scheduling
      • Multicommodity Transshipment Problem with Fixed Charges
      • Facility Location
      • Traveling Salesman Problem
    • References
  • The NLPCNonlinear Optimization Solver
    • Overview: NLPCNonlinear Optimization Solver
      • Optimization Techniques and Types of Problems Solved
    • Getting Started: NLPCNonlinear Optimization Solver
      • Introductory Examples
    • Syntax: NLPCNonlinear Optimization Solver
      • Functional Summary
      • NLPCSolver Options
    • Details: NLPCNonlinear Optimization Solver
      • Optimization Algorithms
      • Conditions of Optimality
      • Optimality Control
      • Infeasibility
      • Feasible Starting Point
      • Line-Search Method
      • Computational Problems
      • Iteration Log
      • Macro Variable OROPTMODEL
    • Examples: NLPCNonlinear Optimization Solver
      • Least Squares Problem
      • Maximum Likelihood Weibull Model
      • Simple Pooling Problem
    • References
  • The Unconstrained Nonlinear Programming Solver
    • Overview: NLPU Solver
    • Getting Started: NLPU Solver
      • Introductory Examples
    • Syntax: NLPU Solver
      • Functional Summary
      • NLPU Solver Options
    • Details: NLPU Solver
      • Conditions of Optimality
      • Line-Search Algorithm
      • Trust-Region Algorithm
      • Broyden-Fletcher-Goldfarb-Shanno (BFGS) Algorithm
      • Macro Variable OROPTMODEL
    • Examples: NLPU Solver
      • Solving a Highly Nonlinear Problem
      • Solving the Accumulated Rosenbrock Function
      • Solving a Bound-Constrained Optimization Problem
    • 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 Sequential Quadratic Programming Solver
    • Overview: SQP Solver
    • Getting Started: SQP Solver
    • Syntax: SQP Solver
      • Functional Summary
      • SQP Solver Options
    • Details: SQP Solver
      • Conditions of Optimality
      • Solution Techniques
      • Solver Termination Messages
      • Macro Variable OROPTMODEL
    • Examples: SQP Solver
      • Solving a Highly Nonlinear Problem
      • Using the HESCHECK Option
      • Choosing a Good Starting Point
      • Using the PENALTY= Option
      • Unconstrained NLP Optimization
      • Solving Large-Scale NLP Problems
    • 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
  • The OPTLP Procedure
    • Overview: OPTLP Procedure
    • Getting Started: OPTLP Procedure
    • Syntax: OPTLP Procedure
      • Functional Summary
      • PROC OPTLP Statement
      • PROC OPTLP Macro Variable
    • Details: OPTLP Procedure
      • Data Input and Output
      • Presolve
      • Pricing Strategies for the Simplex Solvers
      • Warm Start for the Simplex Solvers
      • The Interior Point Algorithm: Overview
      • Iteration Log for the Simplex Solvers
      • Iteration Log for the Interior Point Solver
      • ODS Tables
      • Irreducible Infeasible Set
      • Memory Limit
    • 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
    • References
  • The OPTMILP Procedure
    • Overview: OPTMILP Procedure
    • Getting Started: OPTMILP Procedure
    • Syntax: OPTMILP Procedure
      • Functional Summary
      • PROC OPTMILP Statement
      • Macro Variable OROPTMILP
    • Details: OPTMILP Procedure
      • Data Input and Output
      • Warm Start
      • The Branch-and-Bound Algorithm
      • Controlling the Branch-and-Bound Algorithm
      • Presolve and Probing
      • Cutting Planes
      • Primal Heuristics
      • Node Log
      • ODS Tables
      • Memory Limit
    • Examples: OPTMILP Procedure
      • Simple Integer Linear Program
      • MIPLIB Benchmark Instance
      • Facility Location
    • References
  • The OPTQP Procedure
    • Overview: OPTQP Procedure
    • Getting Started: OPTQP Procedure
    • Syntax: OPTQP Procedure
      • Functional Summary
      • PROC OPTQP Statement
      • PROC OPTQP Macro Variable
    • Details: OPTQP Procedure
      • Output Data Sets
      • Interior Point Algorithm: Overview
      • Iteration Log for the OPTQP Procedure
      • ODS Tables
      • Memory Limit
    • Examples: OPTQP Procedure
      • Linear Least Squares Problem
      • Portfolio Optimization
      • Portfolio Selection with Transactions
    • References


ProductRelease
SAS/OR9.22
Type
Usage and Reference
Copyright Date
May 2010
Last Updated
18May2010