Previous Page | Next Page

The OPTMILP Procedure

Overview: OPTMILP Procedure

The OPTMILP procedure is a solver for general mixed integer linear programs (MILPs).

A standard mixed integer linear program has the following formulation:



is the vector of structural variables

is the matrix of technological coefficients

is the vector of objective function coefficients

is the vector of constraints right-hand sides (RHS)

is the vector of lower bounds on variables

is the vector of upper bounds on variables


is a nonempty subset of the set of indices

The OPTMILP procedure implements an LP-based branch-and-bound algorithm. This divide-and-conquer approach attempts to solve the original problem by solving linear programming relaxations of a sequence of smaller subproblems. The OPTMILP procedure also implements advanced techniques such as presolving, generating cutting planes, and applying primal heuristics to improve the efficiency of the overall algorithm.

The OPTMILP procedure requires a mixed integer linear program to be specified using a SAS data set that adheres to the MPS format, a widely accepted format in the optimization community. Chapter 16 discusses the MPS format in detail. It is also possible to input an incumbent solution in MPS format; see the section Warm Start for details.

You can use the MPSOUT= option to convert typical PROC LP format data sets into MPS-format SAS data sets. The option is available in the LP, INTPOINT, and NETFLOW procedures. For details about this option, see Chapter 5, The LP Procedure, Chapter 4, The INTPOINT Procedure, and Chapter 7, The NETFLOW Procedure.

The OPTMILP procedure provides various control options and solution strategies. In particular, you can enable, disable, or set levels for the advanced techniques previously mentioned.

The OPTMILP procedure outputs an optimal solution or the best feasible solution found, if any, in SAS data sets. This enables you to generate solution reports and perform additional analyses by using SAS software.

Previous Page | Next Page | Top of Page