Summary: | In this paper, we propose two new diving heuristics for finding a feasible
solution for a mixed integer programming problem, called variable
neighbourhood (VN) diving and single neighbourhood (SN) diving, respectively.
They perform systematic hard variable fixing (i.e. diving) by exploiting the
information obtained from a series of LP relaxations in order to generate a
sequence of subproblems. Pseudo cuts are added during the search process to
avoid revisiting the same search space areas. VN diving is based on the
variable neighbourhood decomposition search framework. Conversely, SN diving
explores only a single neighbourhood in each iteration: if a feasible
solution is not found, then the next reference solution is chosen using the
feasibility pump principle and the search history. Moreover, we prove that
the two proposed algorithms converge in a finite number of iterations (i.e.
either return a feasible solution of the input problem, or prove its
infeasibility). We show that our proposed algorithms significantly outperform
the CPLEX 12.4 MIP solver and the recent variants of feasibility pump
regarding the solution quality.
|