netaheuristics 0.2.0

Framework to create metaheuristics
Documentation
## VNS

1. incumbent = initial solution

2. loop
   
   1. select candidate
   
   2. if candidate better than incumbent
      
      1. incumbent = candidate
      
      2. reset neighborhood
   
   3. else
      
      1. if last neighborhood return incumbent
      
      2. select next neighborhood

## SA

1. incumbent = initial solution

2. loop
   
   1. select candidate
   
   2. if candidate is accepted wrt to acceptance probability
      
      1. incumbent = candidate

## Tabu search

1. incumbent = initial solution

2. loop
   
   1. select candidate which is not tabu, or is aspirated
   
   2. if candidate is better than incumbent
      
      1. incumbent = candidate
      
      2. update tabu list

## LNS

1. incumbent = initial solution

2. best solution = incumbent

3. loop
   
   1. select candidate by destroying and then repairing the incumbent
   
   2. if candidate is accepted
      
      1. incumbent = candidate
   
   3. if candidate is better than best solution
      
      1. best solution = candidate

## General idea for framework

1. incumbent = initial solution

2. best solution = initial solution

3. loop while termination criteria not satisfied
   
   1. select candidate
   
   2. if accept candidate
      
      1. incumbent = candidate
   
   3. if candidate is better than best solution
      
      1. best solution = candidate

4. return best solution