### Variable Neighborhood Search (VNS)

```Variable Neighborhood Search
for Bin Packing Problem
Borislav Nikolić, Hazem Ismail Abdel Aziz Ali, Kostiantyn Berezovskyi,
Ricardo Garibay Martinez, Muhammad Ali Awan
The Outline
• Introduction
– Heuristics
– Local search
– Metaheuristics
• Variable Neighborhood Search (VNS)
– Overview
– Basic Algorithim
• Scientific Paper on VNS
–
–
–
–
Scope
Minimum Bin Slack (MBS)
VNS for Bin Packing Problem (BPP)
The experiment and Results.
2
Heuristics
•
•
•
•
•
•
•
Techniques for speeding up the process
Applicable where exhaustive search is an overkill
But why?
Used for NP-Hard problems (TSP, BPP, AVS, …)
Easy implementation
But …
3
Local search
•
•
•
•
Assumes initial solution as fixed point
Generates the neighborhood and compares
If better ->
Else finished!
• Looks perfect
• But …
4
Local search
•
•
•
•
•
•
•
Unfavorable solution space
Practically locked within initial solution
Local optimum can be actually a very bad one
Highly dependent on solution space
Can be solved with some “tricks”
Deliberately accept worse result to escape
Looks like a gambling decision
5
Metaheuristics
•
•
•
•
•
•
•
Way to tackle aforementioned problems
Combination of techniques
For better exploration of solution space
But doesn’t guarantee optimality either!
More complex implementation
Criticized in the no free lunch theorems*
Yet, highly used
* “No free lunch theorems for optimization” – Wolpert & Macready
6
Metaheuristics
Examples:
Procedure (GRASP)
• Simulated Annealing (SA)
• TABU Search (TS)
• Ant colony optimisation
• Variable Neighborhood Search (VNS)
7
VNS - Overview
• Relatively young metaheuristic (1995)
• Systematically change the neighborhood
• Based on three facts:
 A local minimum w.r.t. one neighborhood structure is not
necessary so with another
 A global minimum is local minimum w.r.t. all possible
neighborhood structures
 For many problems local minima w.r.t. one or several
neighborhoods are close to each other


N. Mladenović – A variable neighborhood algorithm – a new metaheuristic for combinatorial optimization
N. Mladenović & P.Hansen – Variable neighborhood search
8
VNS – Basic Algorithim
- list of possible neighborhoods
• Of course, for local search k  1
• Initialization (initial solution and stopping cond.)
• Repeat until stopping condition
N k , ( k  1,..., k max )
max
 k=1
 Repeat until
 Shaking – Generate random point at k-th neighborhood
 Local search – find local optimum
 Move or not
9
VNS – Basic Algorithim
•
•
•
•
•
•
Stopping conditions (CPU time, # of iterations, …)
Random points to avoid cycling (determinism)
Can be easily improved
Parallelized local search (1CPU = 1 neighborhood)
Hybrids (VNS & Tabu, VNS & GRASP, …)
Simplicity, precision, efficiency, robustness
10
Variations and descendents of VNS
•
•
•
•
•
•
•
•
•
•
•
•
•
Variable neighborhood descent (VND)
Reduced VNS (RVNS)
Skewed VNS (SVNS)
General VNS (GVNS)
VN Decomposition Search (VNDS)
Parallel VNS (PVNS)
Primal Dual VNS (P-D VNS)
Reactive VNS
Backward-Forward VNS
Best improvement VNS
Exterior point VNS
VN Simplex Search (VNSS)
VN Branching . . . .
11
Scientific Paper on VNS
New heuristics for one-dimensional bin packing
By




Work at the American University of Beirut
Also work as consultants in industry
More then 10 cooperative papers
Scheduling, packing & cutting problems
Krysztof Fleszar, Khalil S. Hindi
Department of Systems Engineering, Brunel University
Published in 2000, often cited
12
Scope
• Presents new heuristic for solving 1D binpacking
• Combination of MBS and VNS
• Effective and computationaly efficient
• Remarkable performance on benchmarks
• Next slides explains:
– MBS algorithim
– VNS for BPP
– Experiments platform and Results
13
MBS
Z ' - Non-increasing list of remaining elements
- Number of remaining elements
- Size of i-th element
s ( A ) - Remaining slack in bin A
n'
ti
• Small elements finer grained and used early
• Stops search only on slack = 0
• Odd bins and even elements -> big problem
•
• Can be easily modified (MBS’)
• Use non-increasing order to stop search
•
• Outperforms FFD and BFD
14
VNS for BPP
• OK, MBS for Initial solution, but what after?
• Just a little bit formal: max f ( x )   ( l ( ))
• Definition of possible “moves” (perturbations)
m
2
 1
 Transfers
 Swaps
• Shaking:




k-th neighborhood – performing k random moves
Element can be moved only once per neighborhood
All moves are treated as equal, without analyzing
Of course, there is no point to swap elements of the same size!
15
VNS for BPP
• OK, next is local search
• Metric for finding a local optimum
 Transfers  f  [ l ( )  t i ] 2  [ l (  )  t i ] 2  l ( ) 2  l (  ) 2
2
2
2
2
 f  [ l ( )  t i  t j ]  [ l (  )  t i  t j ]  l ( )  l (  )
 Swaps
0.4
0.5
0.2
0.5
0.4
0.2
f  ( 0 . 6  0 . 4 )  ( 0 . 5  0 . 4 )  0 . 5  0 . 6  0 . 24
2
0.5
0.3
0.2
0.5
2
2
0.2
0.3
0.3
2
f  ( 0 . 7  0 . 2  0 . 3 )  ( 0 . 6  0 . 3  0 . 2 )  0 . 7  0 . 5  0 . 15
2
2
2
2
0.3
• Always chooses move with the greatest value
16
VNS for BPP
•
•
•
•
•
•
•
Steepest descent approach
Might not always be the best idea!
But let’s analyze performance
In near-optimal solution very few “moves”
Recall: k max - max # of neighbors visited
Tradeoff - computation time vs good optimum
Good experimental results with k max = 20
17
The experiment & the results
• Borland Pascal on Pentium II 400MHz
• Problem classes:
 U class – uniform distribution (20, 100) into bins of 150
 T class – “triplets” of elements from (25, 50) into bins of 100
 B class – divided in B1, B2, B3 problems, computationally very hard
 B1 – 704/720 solved optimally, items from (50, 500)
 B2 – 477/480 solved optimally, items from (50, 500)
 B3 – uniform distribution (20k, 35k) into bins of 100k, 3/10 solved optimally
• For 4 problems, better solutions were found
• But not proved to be optimal!
18
The experiment & the results
• MBS’ + VNS vs the rest
Algorithm
hits
inferior
abs.dev.av
abs.dev.max
rel.dev.av
rel.dev.max
time av.
time max.
MBS
678
692
1.02
9
1.42
16.67
0.05
8.99
MBS’
1051
319
0.38
9
0.61
14.29
0.02
4.57
VNS
1248
122
0.09
2
0.18
5.00
0.09
4.57
MBS’+VNS
1329
41
0.03
2
0.04
2.94
0.14
5.05
• Robustness test with different random seed
• In 1340/1370 the same solution in all 10 runs
• In remaining 30 the difference was always 1 bin
19
Conclusions
•
•
•
•
•
•
VNS very powerful tool
Can be easily implemented
Can be easily adapted for different problems
Increasing k max is not always fruitful
Combined with MBS’ gives great results
Practical complexity < theoretical complexity
20
21
```