Learn Simulated Annealing, Genetic Algorithm, Tabu Search, and Evolutionary Strategies, and Learn to Handle Constraints