• Contents
  • About
  • Acknowledgments
    • Credits
      • Documentation
      • Software
      • Support Groups
    • Acknowledgments
  • What's New in SAS/OR 9.2
  • Using This Book
    • Purpose
    • Organization
    • Typographical Conventions
    • Conventions for Examples
    • Accessing the SAS/OR Sample Library
    • Online Help System and Updates
    • 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
      • Macro Variable _ORINTPO
      • Memory Limit
    • Examples: INTPOINT Procedure
      • Example 2.1: Production, Inventory, Distribution Problem
      • Example 2.2: Altering Arc Data
      • Example 2.3: Adding Side Constraints
      • Example 2.4: Using Constraints and More Alteration to Arc Data
      • Example 2.5: Nonarc Variables in the Side Constraints
      • Example 2.6: Solving an LP Problem with Data in MPS Format
      • Example 2.7: 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
      • Example 3.1: An Oil Blending Problem
      • Example 3.2: A Sparse View of the Oil Blending Problem
      • Example 3.3: Sensitivity Analysis: Changes in Objective Coefficients
      • Example 3.4: Additional Sensitivity Analysis
      • Example 3.5: Price Parametric Programming for the Oil Blending Problem
      • Example 3.6: Special Ordered Sets and the Oil Blending Problem
      • Example 3.7: Goal-Programming a Product Mix Problem
      • Example 3.8: A Simple Integer Program
      • Example 3.9: An Infeasible Problem
      • Example 3.10: Restarting an Integer Program
      • Example 3.11: Alternative Search of the Branch-and-Bound Tree
      • Example 3.12: An Assignment Problem
      • Example 3.13: A Scheduling Problem
      • Example 3.14: A Multicommodity Transshipment Problem with Fixed Charges
      • Example 3.15: 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
      • Example 4.1: Using the DATA= Option
      • Example 4.2: Using the INQUAD= Option
      • Example 4.3: Using the INEST=Option
      • Example 4.4: Restarting an Optimization
      • Example 4.5: Approximate Standard Errors
      • Example 4.6: Maximum Likelihood Weibull Estimation
      • Example 4.7: Simple Pooling Problem
      • Example 4.8: Chemical Equilibrium
      • Example 4.9: 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
      • Example 5.1: Shortest Path Problem
      • Example 5.2: Minimum Cost Flow Problem
      • Example 5.3: Using a Warm Start
      • Example 5.4: Production, Inventory, Distribution Problem
      • Example 5.5: Using an Unconstrained Solution Warm Start
      • Example 5.6: Adding Side Constraints, Using a Warm Start
      • Example 5.7: Using a Constrained Solution Warm Start
      • Example 5.8: Nonarc Variables in the Side Constraints
      • Example 5.9: Pure Networks: Using the EXCESS= Option
      • Example 5.10: Maximum Flow Problem
      • Example 5.11: Generalized Networks: Using the EXCESS= Option
      • Example 5.12: Generalized Networks: Maximum Flow Problem
      • Example 5.13: Machine Loading Problem
      • Example 5.14: Generalized Networks: Distribution Problem
      • Example 5.15: 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
        • CONSTRAINT Declaration
        • MAX and MIN Objective Declarations
        • NUMBER, STRING, and SET Parameter Declarations
        • VAR Declaration
      • Programming Statements
        • Assignment Statement
        • CALL Statement
        • CLOSEFILE Statement
        • CONTINUE Statement
        • CREATE DATA Statement
        • DO Statement
        • DO Statement, Iterative
        • DO UNTIL Statement
        • DO WHILE Statement
        • DROP Statement
        • EXPAND Statement
        • FILE Statement
        • FIX Statement
        • FOR Statement
        • IF Statement
        • LEAVE Statement
        • Null Statement
        • PRINT Statement
        • PUT Statement
        • READ DATA Statement
        • RESET OPTIONS Statement
        • RESTORE Statement
        • SAVE MPS Statement
        • SAVE QPS Statement
        • SOLVE Statement
        • STOP Statement
        • UNFIX Statement
      • 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
      • OPTMODEL Options
      • Automatic Differentiation
      • Conversions
      • More on Index Sets
      • Memory Limit
    • Examples: OPTMODEL Procedure
      • Example 6.1: Matrix Square Root
      • Example 6.2: Reading from and Creating a Data Set
      • Example 6.3: Model Construction
      • Example 6.4: Set Manipulation
    • Rewriting NLP Models for PROC OPTMODEL
    • References
  • The Interior Point Nonlinear Programming Solver -- Experimental
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • IPNLP Solver Options
    • Details
      • Basic Definitions and Notation
      • Overview of Constrained Optimization
      • Overview of Interior Point Methods
      • Solver Termination Criterion
      • Solver Termination Messages
      • Macro Variable _OROPTMODEL_
    • Examples
      • Example 7.1: Solving Highly Nonlinear Optimization Problems
      • Example 7.2: Solving Unconstrained Optimization Problems
      • Example 7.3: Solving NLP Problems with Range Constraints
    • References
  • The Linear Programming Solver
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • LP Solver Options
    • Details
      • 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
      • Example 8.1: Diet Problem
      • Example 8.2: Reoptimizing the Diet Problem Using BASIS=WARMSTART
      • Example 8.3: Two-Person Zero-Sum Game
      • Example 8.4: Finding an Irreducible Infeasible Set
    • References
  • The Mixed Integer Linear Programming Solver
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • MILP Solver Options
    • Details
      • 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
      • Example 9.1: Scheduling
      • Example 9.2: Multicommodity Transshipment Problem with Fixed Charges
      • Example 9.3: Facility Location
      • Example 9.4: Traveling Salesman Problem
    • References
  • The NLPC Nonlinear Optimization Solver
    • Overview
      • Optimization Techniques and Types of Problems Solved
    • Getting Started
      • Introductory Examples
    • Syntax
      • Functional Summary
      • NLPC Solver Options
    • Details
      • Optimization Algorithms
      • Conditions of Optimality
      • Optimality Control
      • Infeasibility
      • Feasible Starting Point
      • Line-Search Method
      • Computational Problems
      • Iteration Log
      • Macro Variable _OROPTMODEL_
    • Examples
      • Example 10.1: Least-Squares Problem
      • Example 10.2: Maximum Likelihood Weibull Model
      • Example 10.3: Simple Pooling Problem
    • References
  • The Unconstrained Nonlinear Programming Solver
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • NLPU Solver Options
    • Details
      • Conditions of Optimality
      • Line-Search Algorithm
      • Broyden-Fletcher-Goldfarb-Shanno (BFGS) Algorithm
      • Macro Variable _OROPTMODEL_
    • Examples
      • Example 11.1: Solving a Highly Nonlinear Problem
      • Example 11.2: Solving the Accumulated Rosenbrock Function
    • References
  • The Quadratic Programming Solver -- Experimental
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • QP Solver Options
    • Details
      • Interior Point Algorithm: Overview
      • Iteration Log
      • Problem Statistics
      • Macro Variable _OROPTMODEL_
    • Examples
      • Example 12.1: Linear Least-Squares Problem
      • Example 12.2: Portfolio Optimization
      • Example 12.3: Portfolio Selection with Transactions
    • References
  • The Sequential Quadratic Programming Solver
    • Overview
    • Getting Started
    • Syntax
      • Functional Summary
      • SQP Solver Options
    • Details
      • Conditions of Optimality
      • Solution Techniques
      • Solver Termination Messages
      • Macro Variable _OROPTMODEL_
    • Examples
      • Example 13.1: Solving a Highly Nonlinear Problem
      • Example 13.2: Using the HESCHECK Option
      • Example 13.3: Choosing a Good Starting Point
      • Example 13.4: Using the PENALTY= Option
      • Example 13.5: Unconstrained NLP Optimization
      • Example 13.6: Solving Large-Scale NLP Problems
    • References
  • The MPS-Format SAS Data Set
    • Overview
      • Observations
      • Order of Sections
    • Sections Format
      • NAME Section
      • ROWS Section
      • COLUMNS Section
      • RHS Section (Optional)
      • RANGES Section (Optional)
      • BOUNDS Section (Optional)
      • BRANCH Section (Optional)
      • QSECTION Section
      • ENDATA Section
    • Details
      • Converting an MPS/QPS-Format File: %MPS2SASD
      • Length of Variables
    • Examples
      • Example 14.1: MPS-Format Data Set for a Product Mix Problem
      • Example 14.2: Fixed-MPS-Format File
      • Example 14.3: Free-MPS-Format File
      • Example 14.4: 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
      • Example 15.1: Oil Refinery Problem
      • Example 15.2: Using the Interior Point Solver
      • Example 15.3: The Diet Problem
      • Example 15.4: Reoptimizing after Modifying the Objective Function
      • Example 15.5: Reoptimizing after Modifying the Right-Hand Side
      • Example 15.6: Reoptimizing after Adding a New Constraint
      • Example 15.7: 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
      • Example 16.1: Simple Integer Linear Program
      • Example 16.2: MIPLIB Benchmark Instance
      • Example 16.3: 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
      • Example 17.1: Linear Least-Squares Problem
      • Example 17.2: Portfolio Optimization
      • Example 17.3: Portfolio Selection with Transactions
    • References


ProductRelease
SAS/OR9.2
Type
Usage and Reference
Copyright Date
March 2008
Last Updated
16Jan2009