The OPTMILP Procedure

Procedures in Online Documentation

The OPTMILP procedure is a solver for general mixed-integer linear problem (MILPs). A standard mixed-integer linear problem has the 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

Mixed-Integer Linear Programming

The OPTMILP procedure implements an LP-based branch-and-bound algorithm in addition to several advanced techniques such as presolving, cutting planes, and primal heuristics to improve the efficiency of the overall algorithm.

You specify a MILP problem in PROC OPTMILP by providing a SAS data set that has a mathematical programming sytem (MPS) format. The MPS format is a widely accepted format in the optimization community for specifying mixed-integer linear programs. It is also possible to input an incumbent solution in the MPS format.

The OPTMILP procedure outputs SAS data sets that contain an optimal solution or the best integer feasible solution found, if any. These data sets contain problem- and solution-related information. Information related to the problem includes objective function identification, names of constraints and variables and their types, lower and upper bounds, and so on. Solution-related information in the primal data set includes the current value of each decision variable. In the dual output data set, solution-related information includes the current value of each constraint.


OPTMILP procedure examples