Summary
In this chapter, you were introduced to search problems and combinatorial optimization. We then closely examined three classic combinatorial problems – each with numerous real-life applications – the knapsack problem, the TSP, and the VRP. For Each of these problems, we followed a similar process of finding an appropriate representation for a solution, creating a class that encapsulates the problem and evaluates a given solution, and then creating a genetic algorithm solution that utilizes that class. We ended up with valid solutions for all three problems while experimenting with genotype-to-phenotype mapping and elitism-backed exploration.
In the next chapter, we will look into a family of closely related tasks, namely constraint satisfaction problems, starting with the classic n-queens problem.