Sample: Stating a MIP Problem

A mixed integer programming (MIP) problem may contain both integer and continuous variables. If the problem contains an objective function with no quadratic term, (a linear objective), then the problem is termed a Mixed Integer Linear Program (MILP). If there is a quadratic term in the objective function, the problem is termed a Mixed Integer Quadratic Program (MIQP). In ILOG CPLEX documentation, if the discussion pertains specifically to either the MILP or MIQP case, then that term is used. For the majority of topics that pertain equally to MILP and MIQP, the comprehensive term MIP is used.

The integer variables may be restricted to the values 0 (zero) and 1 (one), in which case they are referred to as binary variables. Or they may take on any integer values, in which case they are referred to as general integer variables. A variable of any MIP that may take either the value 0 or a value between a lower and an upper bound is referred to as semi-continuous. A semi-continuous variable that is restricted to integer values is referred to as semi-integer. Special Ordered Sets (SOS) are discussed elsewhere in this chapter. Continuous variables in a MIP problem are those which are not restricted in any of these ways, and are thus permitted to take any solution value within their (possibly infinite) lower and upper bounds.

In ILOG CPLEX documentation, the comprehensive term integer variable means any of the various types just mentioned except for continuous or SOS. The presence or absence of a quadratic term in the objective function for a given variable has no bearing on its being classified as continuous or integer.

The following illustrates a mixed integer programming problem, which is solved in the example program ilomipex1.cpp / mipex1.c, discussed later in this chapter:

Maximize 

 
x1 
2x2 
3x3 
x4 

 

 
subject to 
x1 
x2 
x3 
10x4 
 
20 

 

 
x1 
3x2 
x3 

 

 
 
30 

 

 

 

 
x2 

 

 
3.5x4 
with these bounds 

 
 
x1 
 
40 

 

 

 

 

 

 
 
x2 
 
+ 

 

 

 

 

 

 
 
x3 
 
+ 

 

 

 

 

 

 
 
x4 
 

 

 

 

 

 

 

 

 
x4 
integer 

 

 

 

 


Previous Page: Solving Mixed Integer Programming Problems Return to Top Next Page: Considering Preliminary Issues