The 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:
where



is the vector of structural variables 



is the matrix of technological coefficients 



is the vector of objective function coefficients 



is the vector of constraints righthand 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 LPbased branchandbound algorithm. This divideandconquer 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 MPSformat 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.
Copyright © SAS Institute, Inc. All Rights Reserved.