SAS/OR® Software

Mathematical Programming Tools

Mathematical programs are a class of optimization problems with a goal of maximizing or minimizing an objective function with respect to a set of decision variables, subject to constraints on those decision variables. These optimization problems are categorized by the structure of the objective function and the constraints.

Mathematical programming techniques in SAS/OR software help solve mathematical programs that can correspond to a wide range of problems including resource allocation, distribution, product mix and blending, production planning, capital budgeting, asset allocation, and portfolio selection and staffing, to name a few.

Specialized algorithms (called solvers) that exploit the structure in the problem have been developed for solving specific categories of mathematical programs. The approach is to exploit characteristics of the problem to find optimal solutions more efficiently. All optimization procedures in SAS/OR software employ such specialized algorithms and are defined by the structure of the mathematical program that they solve. The following sections detail these structural categories.

Linear Programming

Linear programs (LPs) are problems that have an objective function and constraints that are defined by using linear functions of the decision variables. The constraints can be a set of linear equalities or inequalities or both.

Mixed Integer Linear Programming

Mixed integer linear programs (MILPs) are problems that have an objective function, a set of linear equality or inequality constraints (or both) that are defined using linear functions of the decision variables, and an additional constraint that requires some or all of the decision variables to be integer-valued.

Network Flow Programming

A network consists of a collection of nodes joined by a collection of arcs. The arcs connect nodes and convey flow of one or more commodities that are supplied at supply nodes and demanded at demand nodes in the network. Each arc has a cost per unit of flow, a flow capacity, and a lower flow bound associated with it. Constrained network models can be used to describe a wide variety of real-world applications ranging from production, inventory, and distribution problems to financial applications.

Nonlinear Programming

Nonlinear programming (NLP) problems involve minimizing or maximizing a continuous nonlinear function subject to linear and nonlinear, equality and inequality, and lower and upper bound constraints. Problems of this type are found in many settings ranging from optimal control to maximum likelihood estimation.

Quadratic Programming

A quadratic programming (QP) problem is identified by a quadratic term (in addition to or without a linear component) in the objective function, and a collection of linear constraints including general linear constraints along with lower or upper bounds (or both) on the decision variables.