# The OPTMODEL Procedure

Procedures in Online Documentation

The OPTMODEL procedure consists of a powerful modeling language and a collection of state-of-the-art solvers.
You can use the OPTMODEL procedure to solve the following classes of mathematical programming problems:

- linear programming
- mixed integer linear programming
- quadratic programming
- nonlinear programming

## Modeling Language

The modeling language is tailored to building, solving, and maintaining optimization models.
In PROC OPTMODEL, a model consists of one or more declarations of variables, objectives, constraints,
and parameters, in addition to possibly intermixed programming statements. The declarations define the
mathematical form of the problem to solve. The programming statements define data values, invoke a
solver, or print the results. The modeling language mimics the symbolic algebra of the
optimization model's formulation as closely as possible. In addition, the language also provides the
following features:

- automatic differentiation
- advanced flow control
- dynamic model generation
- model-data separation
- transparency of access to SAS data sets

## Solvers

The OPTMODEL procedure also includes a collection of specialized algorithms, called solvers, that exploit
the structure in a problem to find optimal solutions more efficiently. Each solver is designed to solve a
specific class of mathematical programming problem. PROC OPTMODEL provides the following seven solvers:

- LP – linear programming
- MILP – mixed integer linear programming
- NLPU – unconstrained nonlinear programming
- NLPC – general nonlinear programming
- IPNLP – interior point nonlinear programming
- QP – quadratic programming (experimental)
- SQP – sequential quadratic programming

## Examples

OPTMODEL procedure examples