Return to Index
Operations Research Models and Methods
Computation Section
Subunit Optimize
 - Mixed Integer Programming
Integer Variables

The add-in allows the solution of mixed-integer programming models with the combinatorial methods. If the integer variables affect the model in a linear fashion, the model is then a mixed-integer-linear model and can be solved using branch and bound implemented by either the Excel Solver or the Jensen LP/IP add-in. The search approach described here also handles problems where the integer variables affect the objective and constraints in a nonlinear or combinatorial fashion. This is an interesting and valuable feature since many practical situations have these characteristics.

The add-in solves problems by searching over the combinatorial variables. The remaining variables must define a linear programming model since their values will be found using the linear programming simplex technique. The simplex technique is implemented in the Jensen LP/IP add-in. Of course, the LP/IP add-in must be installed for the methods to work.

For convenience we illustrate the add-in with the mixed-integer-linear model shown below. The first three variables are required to be integer as indicated by the I's preceding the indices in row 6.



To construct the combinatorial form we select Math Program from the Optimize menu. The dialog below is presented.

Here we choose the Integer option. The combinatorial form shown below is constructed for the three variables identified on the model as integer.

The Objective value cell (T3) is linked to the objective function of the model. The feasibility State (cell V2) and Value (cell V3) are determined by the slack variables for the model. These cells are automatically filled by the add-in.

On the model, the lower bounds and upper bounds of the integer variables are linked to the decisions in the combinatorial form. The linking equations are shown for X1 in the figure below. The upper and lower bounds of the decision variables are set equal to the combinatorial variables. As the search proceeds the math programming model is reduced to an LP in three continuous variables. The add-in creates columns to compute the slack and feasibility values for the constraints. The feasibility values are positive for infeasible solutions.

  Selecting Search from the Optimize menu initiates exhaustive enumeration of the combinatorial variables. Since there are three binary variables, eight solutions are evaluated. For each combinatorial solution, the LP/IP simplex algorithm is called to find the optimum values for the remaining variables. The results of the enumeration are shown below. The optimum solution is recomputed before the final solution is presented resulting in a 9th run and the duplicate solutions are shown as run 2 and run 9 in the table below.
  The final solution is reflected in the math programming model in row 8. The values of the first three variables are fixed by setting their upper and lower bounds equal to the entries in the combinatorial form, and the last three variables are determined by the simplex algorithm.


Note that we have handled the integer variables by combinatorial methods while using the LP simplex method to solve the continuous variables. The add-in enumerated each integer solution and placed it on the combinatorial form. The Excel formulas transferred the solution to the lower and upper bound rows of the math programming form and the Jensen LP/IP add-in solved the resulting LP. Although we have illustrated this feature on a simple problem that could have been solved with a single call to the LP/IP algorithm, this combination of combinatorial search and linear programming can be a powerful solution tool.

We have used exhaustive enumeration for this example, but all of the search methods previously described are available. For larger problems, we may not be able to find the optimum, but we may be able to find a good heuristic solution with the other approximate methods.


Manual Link


The third option for math programming enumeration is to manually establish the links from the enumeration variables to the linear programming model. For this example, we consider the same model, but we do not require any of the variables to be integer. The model showing the LP solution with the original constraints is below.

We want to modify the model to allow the purchase of greater values of the RHS for the constraints. Of course if the RHS values are increased, the optimal solution will most likely have a corresponding increase in the optimal objective function. We assume an individual constraint RHS can be increased by 12 units for a cost of $7.


We choose Math Program from the Optimize menu and click the Manual Link button. We enter 5 as the number of variables, one for each constraint. We also click the Linear button to create a data array for linear coefficients.


The combinatorial form is below. The data table includes a row for the linear contribute of the combinatorial variables. The objective function of the combinatorial form is the sum of this linear contribution and the solution of the LP. We have manually modified the RHS vector of the math programming model to refer to the enumeration variables. For example in cell F15 we place the formula:

= 35 + 12*R7

When R7 is 0, the RHS for the first constraint is 35. When R7 is 1, the RHS is 47. The other RHS values are similarly replaced. As each alternative for the combinatorial variables is considered, the RHS vector is changed and the corresponding LP is solved with the LP/IP add-in. With the Manual option it is necessary to link the combinatorial form with the math programming form manually, but any relationship is allowed.


The results of the enumeration are shown below. The list shows the top 20 solutions. The optimum adds extra resources to constraints 3 and 4.


The LP solution with an extra 12 units for constraints 3 and 4 is shown below. During the course of the enumeration 33 separate LP problems were solved. The one shown is for the optimum solution.


When a math programming model is on the active worksheet, selecting Math Programming from the Optimize menu allows all or part of the model to be solved with combinatorial methods. Of course when the model is naturally a linear-integer or linear-mixed integer model, it is more readily solved directly by the Excel Solver or the Jensen LP/IP Solver. There are situations however, when it is necessary or convenient to treat part of the problem with combinatorial methods. For these situations the add-in will be useful.

The same facility is available for network flow and transportation models. This is described on the next page.

Return to Top

tree roots

Operations Research Models and Methods
by Paul A. Jensen
Copyright 2004 - All rights reserved