Variable neighborhood search (VNS),[1] proposed by Mladenović & Hansen in 1997,[2] is a metaheuristic method for solving a set of combinatorial optimization and global optimization problems.It explores distant neighborhoods of the current incumbent solution, and moves from there to a new one if and only if an improvement was made. The local search method is applied repeatedly to get from solutions in the neighborhood to local optima.VNS was designed for approximating solutions of discrete and continuous optimization problems and according to these, it is aimed for solving linear program problems, integer program problems, mixed integer program problems, nonlinear program problems, etc.
VNS systematically changes the neighborhood in two phases: firstly, descent to find a local optimum and finally, a perturbation phase to get out of the corresponding valley.
Applications are rapidly increasing in number and pertain to many fields: location theory, cluster analysis, scheduling, vehicle routing, network design, lot-sizing, artificial intelligence, engineering, pooling problems, biology, phylogeny, reliability, geometry, telecommunication design, etc.
There are several books important for understanding VNS, such as: Handbook of Metaheuristics, 2010,[3] Handbook of Metaheuristics, 2003[4] and Search methodologies, 2005.[5] Earlier work that motivated this approach can be found in
Recent surveys on VNS methodology as well as numerous applications can be found in 4OR, 2008[10] and Annals of OR, 2010.
Define one deterministic optimization problem with
min{\{f(x)|x\inX,X\subseteqS\}}
where S, X, x, and f are the solution space, the feasible set, a feasible solution, and a real-valued objective function, respectively. If S is a finite but large set, a combinatorial optimization problem is defined. If
{S=Rn
A solution
{x*\inX}
{f(x*)\leqf(x), \forall{x}\inX}
Exact algorithm for problem (1) is to be found an optimal solution x*, with the validation of its optimal structure, or if it is unrealizable, in procedure have to be shown that there is no achievable solution, i.e.,
X=\varnothing
x*
{f(x*)\leqf(x)+\epsilon, \forall{x}\inX}
{(f(x*)-f(x))/f(x*)<\epsilon, \forall{x}\inX}
Some heuristics speedily accept an approximate solution, or optimal solution but one with no validation of its optimality.Some of them have an incorrect certificate, i.e., the solution
xh
{(f(xh)-f(x))/f(xh)\leq\epsilon, \forall{x}\inX}
\epsilon
Heuristics are faced with the problem of local optima as a result of avoiding boundless computing time.A local optimum
xL
{f(xL)\leqf(x), \forall{x}\inN(xL)\capX}
where
N(xL)
xL
According to (Mladenović, 1995), VNS is a metaheuristic which systematically performs the procedure of neighborhood change, both in descent to local minima and in escape from the valleys which contain them.
VNS is built upon the following perceptions:
Unlike many other metaheuristics, the basic schemes of VNS and its extensions are simple and require few, and sometimes no parameters. Therefore, in addition to providing very good solutions, often in simpler ways than other methods, VNS gives insight into the reasons for such a performance, which, in turn, can lead to more efficient and sophisticated implementations.
There are several papers where it could be studied among recently mentioned, such as (Hansen and Mladenović 1999, 2001a, 2003, 2005; Moreno-Pérez et al.;[11])
See also: Local search (optimization). A local search heuristic is performed through choosing an initial solution x, discovering a direction of descent from x, within a neighborhood N(x), and proceeding to the minimum of f(x) within N(x) in the same direction. If there is no direction of descent, the heuristic stops; otherwise, it is iterated. Usually the highest direction of descent, also related to as best improvement, is used. This set of rules is summarized in Algorithm 1, where we assume that an initial solution x is given. The output consists of a local minimum, denoted by x, and its value. Observe that a neighborhood structure N(x) is defined for all x ∈ X. At each step, the neighborhood N(x) of x is explored completely. As this may be time-consuming, an alternative is to use the first descent heuristic. Vectors
xi\inN(x)
Function BestImprovement(x) 1: repeat 2: x' ← x 3: x ← argmin_{ f(y) }, y ∈ N(x) 4: until (f(x) ≥ f(x')) 5: return x'
Function FirstImprovement(x) 1: repeat 2: x' ← x; i ← 0 3: repeat 4: i ← i + 1 5: x ← argmin{ f(x), f(x^i)}, x^i ∈ N(x) 6: until (f(x) < f(x^i) or i = |N(x)|) 7: until (f(x) ≥ f(x')) 8: return x'
Let one denote
l{N}k(k=1,...,kmax)
l{N}k(x)
One will also use the notation
l{N'}k(x),k=1,...,k'max
l{N}k(x)
l{N'}k(x)
xopt
l{N}k(x)
x\inl{N'}k(x)\subseteqX
f(x)<f(x')
In order to solve problem by using several neighborhoods, facts 1–3 can be used in three different ways: (i) deterministic; (ii) stochastic; (iii) both deterministic and stochastic. We first give in Algorithm 3 the steps of the neighborhood change function which will be used later. Function NeighborhoodChange compares the new value f(x') with the incumbent value f(x) obtained in the neighborhood k (line 1). If an improvement is obtained, k is returned to its initial value and the new incumbent updated (line 2). Otherwise, the next neighborhood is considered (line 3).
Function NeighborhoodChange (x, x', k) 1: if f (x') < f(x) then 2: x ← x' // Make a move 3: k ← 1 // Initial neighborhood 4: else 5: k ← k+1 // Next neighborhood
When VNS does not render a good solution, there are several steps which could be helped in process, such as comparing first and best improvement strategies in local search, reducing neighborhood, intensifying shaking, adopting VND, adopting FSS, and experimenting with parameter settings.
The Basic VNS (BVNS) method (Handbook of Metaheuristics, 2010) combines deterministic and stochastic changes of neighborhood. Its steps are given in Algorithm 4. Often successive neighborhoods
l{N}k
Function VNS (x, kmax, tmax) 1: repeat 2: k ← 1 3: repeat 4: x' ← Shake(x, k) // Shaking 5: x'' ← BestImprovement(x') // Local search 6: x ← NeighbourhoodChange(x, x'', k) // Change neighbourhood 7: until k = kmax 8: t ← CpuTime 9: until t > tmax
The basic VNS is a best improvement descent method with randomization. Without much additional effort, it can be transformed into a descent-ascent method: in NeighbourhoodChange function, replace also x by x" with some probability, even if the solution is worse than the incumbent. It can also be changed into a first improvement method.Another variant of the basic VNS can be to find a solution x in the 'Shaking' step as the best among b (a parameter) randomly generated solutions from the kth neighborhood. There are two possible variants of this extension: (1) to perform only one local search from the best among b points; (2) to perform all b local searches and then choose the best. In paper (Fleszar and Hindi[12]) could be found algorithm.
The variable neighborhood descent (VND) method is obtained if a change of neighborhoods is performed in a deterministic way. In the descriptions of its algorithms, we assume that an initial solution x is given. Most local search heuristics in their descent phase use very few neighborhoods. The final solution should be a local minimum with respect to all
kmax
The reduced VNS (RVNS) method is obtained if random points are selected from
l{N}k(x)
tmax
To simplify the description of the algorithms it is used
tmax
tmax
kmax
kmax
The skewed VNS (SVNS) method (Hansen et al.)[15] addresses the problem of exploring valleys far from the incumbent solution. Indeed, once the best solution in a large region has been found, it is necessary to go some way to obtain an improved one. Solutions drawn at random in distant neighborhoods may differ substantially from the incumbent and VNS can then degenerate, to some extent, into the Multistart heuristic (in which descents are made iteratively from solutions generated at random, a heuristic which is known not to be very efficient). Consequently, some compensation for distance from the incumbent must be made.
The variable neighborhood decomposition search (VNDS) method (Hansen et al.)[16] extends the basic VNS into a two-level VNS scheme based upon decomposition of the problem. For ease of presentation, but without loss of generality, it is assumed that the solution x represents the set of some elements.
Several ways of parallelizing VNS have recently been proposed for solving the p-Median problem. In García-López et al.[17] three of them are tested: (i) parallelize local search; (ii) augment the number of solutions drawn from the current neighborhood and make a local search in parallel from each of them and (iii) do the same as (ii) but update the information about the best solution found. Three Parallel VNS strategies are also suggested for solving the Travelling purchaser problem in Ochi et al.[18]
For most modern heuristics, the difference in value between the optimal solution and the obtained one is completely unknown. Guaranteed performance of the primal heuristic may be determined if a lower bound on the objective function value is known. To this end, the standard approach is to relax the integrality condition on the primal variables, based on a mathematical programming formulation of the problem.
However, when the dimension of the problem is large, even the relaxed problem may be impossible to solve exactly by standard commercial solvers. Therefore, it seems a good idea to solve dual relaxed problems heuristically as well. It was obtained guaranteed bounds on the primal heuristics performance. In Primal-dual VNS (PD-VNS) (Hansen et al.)[19] one possible general way to attain both the guaranteed bounds and the exact solution is proposed.
The mixed integer linear programming (MILP) problem consists of maximizing or minimizing a linear function, subject to equality or inequality constraints, and integrality restrictions on some of the variables.
FSS is a method which is very useful because, one problem could be defined in addition formulations and moving through formulations is legitimate. It is proved that local search works within formulations, implying a final solution when started from some initial solution in first formulation. Local search systematically alternates between different formulations which was investigated for circle packing problem (CPP) where stationary point for a nonlinear programming formulation of CPP in Cartesian coordinates is not strictly a stationary point in polar coordinates.
Applications of VNS, or of varieties of VNS are very abundant and numerous. Some fields where it could be found collections of scientific papers:
VNS implies several features which are presented by Hansen and Mladenović[22] and some are presented here:
Interest in VNS is growing quickly, evidenced by the increasing number of papers published each year on this topic (10 years ago, only a few; 5 years ago, about a dozen; and about 50 in 2007).Moreover, the 18th EURO mini-conference held in Tenerife in November 2005 was entirely devoted to VNS. It led to special issues of IMA Journal of Management Mathematics in 2007, European Journal of Operational Research (http://www.journals.elsevier.com/european-journal-of-operational-research/), and Journal of Heuristics (https://www.springer.com/mathematics/applications/journal/10732/) in 2008.