Heuristics, metaheuristics, and hyperheuristics for rich vehicle routing problems

Abstract In this chapter, we describe the most important heuristic methods for solving different variants of the Vehicle Routing Problems and Pickup and Delivery Problems. In combinatorial optimization the exact methods are mostly used when the number of the customers in particular problems is relatively low and thus the optimal solution can be found in reasonable time. From practical point of view, the algorithms used to solve various optimization problems must be usually very efficient and must give near-optimal solutions in short time. A heuristic approach to solve an optimization problem does not guarantee obtaining the optimal solution but enables us to elaborate a feasible routing schedule in acceptable time. Due to NP-hardness of the routing problems, solving problem instances to optimality is possible only in case of small-size tests. The main challenge in most of these problems is finding balance between the available CPU time, the size of the problem, and the quality of the approximated solution or need to find exact solution. Recent rapid development of various heuristic and metaheuristic approaches helps in achieving both reduced computation time and better results. Metaheuristics is an enhancement of classical heuristics with emphasis on deep exploration of the solution space. They usually combine sophisticated neighborhood search rules and recombination of solutions. The quality of the solutions produced by metaheuristics is typically much higher than that obtained by classical heuristics techniques but with a price of increased computing time. The metaheuristic techniques are context dependent and usually require finely tuned parameters, which unfortunately makes their extensions to other problems difficult. Many metaheuristics have been proposed for the vehicle routing problems, and they can be widely divided into local search, population search, and learning mechanism groups; however, best metaheuristics merge ideas from different approaches. The hyperheuristics is a new optimization paradigm, commonly described as heuristics to choose heuristics, comprising search methods, learning techniques for generating or selecting heuristics to solve optimization problems. The main difference between metaheuristics and hyperheuristics is that metaheuristics directly search the solution space of a problem, whereas hyperheuristics search the space of heuristics. In this chapter, a wide range of various heuristic, metaheuristic, and hyperheuristic algorithms is described including Tabu Search, Simulated Annealing, Variable Neighborhood Search, Cuckoo Search, Ant Colony, Firefly, Bee Colony, Bacterial Foraging, Genetic, Evolutionary, Memetic algorithms, and many more.