When the decision variables are both discrete and continuous, we are dealing
with mixed integer programming problems (MIP). Hence, MIP models generalize
LP and IP models. Solving MIP problems has improved dramatically of late
with the use of advanced optimization techniques such as relaxations and decomposition
approaches, and cutting plane algorithms (see Section 5.2.1). For IP and
MIP models, enumerative algorithms such as branch and bound may be used for
small instances. The size is not the only indicator of the complexity of the problem,
but also its structure. Metaheuristics are one of the competing algorithms for
this class of problems to obtain good solutions for instances considered too complex
to be solved in an exact manner. Metaheuristics can also be used to generate
good lower or upper bounds for exact algorithms and improve their efficiency.
Notice that there are some easy problems, such as network flow problems, where
linear programming automatically generates integer values. Hence, both integer programming
approaches and metaheuristics are not useful to solve those classes of
problems.