 
               

The OPTMODEL procedure provides a framework for specifying and solving linear programs (LPs). A standard linear program has the following formulation:
| ![\[  \begin{array}{rl} \displaystyle \mathop {\min } &  \mathbf{c}^\mr {T} \mathbf{x} \\ \mbox{subject to} &  \mathbf{A} \mathbf{x}\; \{ \ge , =, \le \} \;  \mathbf{b} \\ &  \mathbf{l} \le \mathbf{x} \le \mathbf{u} \end{array}  \]](images/ormpug_lpsolver0001.png) | 
where
|   | 
 |   | is the vector of decision variables | 
| 
 | 
 |   | is the matrix of constraints | 
| 
 | 
 |   | 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 | 
The following LP solvers are available in the OPTMODEL procedure:
primal simplex solver
dual simplex solver
network simplex solver
interior point solver
The primal and dual simplex solvers implement the two-phase simplex method. In phase I, the solver tries to find a feasible solution. If no feasible solution is found, the LP is infeasible; otherwise, the solver enters phase II to solve the original LP. The network simplex solver extracts a network substructure, solves this using network simplex, and then constructs an advanced basis to feed to either primal or dual simplex. The interior point solver implements a primal-dual predictor-corrector interior point algorithm. If any of the decision variables are constrained to be integer-valued, then the relaxed version of the problem is solved.