Previous Page | Next Page

The Mixed Integer Linear Programming Solver

Getting Started: MILP Solver

The following example illustrates how you can use the OPTMODEL procedure to solve mixed integer linear programs. For more examples, see the section Examples: MILP Solver. Suppose you want to solve the following problem:

     

You can use the following code to call the OPTMODEL procedure for solving mixed integer linear programs:

proc optmodel;
   var x{1..3} >= 0 integer;

   min f = 2*x[1] - 3*x[2] - 4*x[3];

   con r1: -2*x[2] - 3*x[3] >= -5;
   con r2: x[1] + x[2] + 2*x[3] <= 4;
   con r3: x[1] + 2*x[2] + 3*x[3] <= 7;

   solve with milp / presolver = automatic heuristics = automatic;
   print x;
quit;

The PRESOLVER= and HEURISTICS= options specify the levels for presolving and applying heuristics, respectively. In this example, each option is set to its default value, AUTOMATIC, meaning that the solver determines the appropriate levels for presolve and heuristics automatically.

The optimal value of x is shown in Figure 11.1.

Figure 11.1 Solution Output
The OPTMODEL Procedure

[1] x
1 0
2 1
3 1

The solution summary stored in the macro variable _OROPTMODEL_ can be viewed by issuing the following statement:


   %put &_OROPTMODEL_;

This produces the output shown in Figure 11.2.

%put &_OROPTMODEL_;

Figure 11.2 Macro Output
STATUS=OK SOLUTION_STATUS=OPTIMAL OBJECTIVE=-7 RELATIVE_GAP=0 ABSOLUTE_GAP=0     
PRIMAL_INFEASIBILITY=0 BOUND_INFEASIBILITY=0 INTEGER_INFEASIBILITY=0             
BEST_BOUND=. NODES=1 ITERATIONS=2 PRESOLVE_TIME=0.00 SOLUTION_TIME=0.00          
                                                                                 

Previous Page | Next Page | Top of Page