The main objective is to give students theoretical and practical knowledge of how to tackle effectively difficult optimization problems with heuristic techniques, in particular, stochastic local search methods. In more detail, the goals are
Learn about heuristic optimization techniques
Learn how these can be used to tackle combinatorial optimization problems
Learn how to analyze heuristic algorithms empirically.
Obtain hands-on experience with the implementation and the application of heuristic techniques.
Computationally hard problems arise in many relevant application areas of computational intelligence such as computer science, operations research, bioinformatics, and engineering. For many such problems, heuristic search techniques have been established as the most successful methods. In this course I will introduce and discuss heuristic optimization techniques with a main focus on stochastic local search techniques, which are the most relevant heuristic techniques. The course will illustrate the application principles of these algorithms using a number of example applications ranging from rather simple problems of more academic interest to more complex problems from real applications. A significant focus in the course will be also on relevant techniques for the empirical evaluation of heuristic optimization algorithms and the issues that arise in their development. Hands-on experience with these algorithmic techniques will be gained in accompanying practical exercises.