The purpose of this course is to introduce fundamental concepts of heuristics in solving various optimization problems with emphasis on metaheuristics. The topics include basic heuristic constructs (greedy, improvement, construction); metaheuristics such as simulated annealing, tabu search, genetic algorithms, ant algorithms and their hybrids.
By the end of this course students should be able to design and implement efficient algorithms to solve complex optimization problems across a diverse range of applications, such as networking, bioinformatics, routing and scheduling, etc.