Assumed prior knowledge
Except for the basics of probability theory, calculus, and linear algebra, no specific prerequisites are required.
Evolutionary Computation is a field of computer science dealing with algorithms gleaned from the model of organic evolution – so-called evolutionary algorithms. The idea is to let the computer evolve solutions to problems rather than trying to “calculate” them.
Evolutionary algorithms do this by using the fundamental principles of evolution such as, for example, selection, mutation and recombination among a population of simulated individuals. The evolutionary approach is used today in a variety of application areas for solving problems that require intelligent behaviour, adaptive learning and optimization. These fields include e.g. engineering optimization, artificial life, automatic programming, autonomous agents, and machine learning, since optimization algorithms are a core component of many machine learning approaches.
The course focuses on the fundamentals of biological evolution as the underlying motivation, the main variants of evolutionary algorithms (genetic algorithms and evolution strategies), application examples, and some outlook into related aspects of evolutionary computation.
Table of Contents:
- Introduction a. Simple example of Monte-Carlo Search b. Simple example of Evolution c. Comparison and Motivation
- The Model of Biological Evolution a. Genotypes and Phenotypes b. Basics of the Neo-Darwinian Paradigm
- Evolutionary Algorithms – General Overview
- Genetic Algorithms a. Basic Algorithm b. Schema Processing Interpretation of Genetic Algorithms c. Schema Theorem d. Convergence Velocity Perspective e. Practical Applications: From Airline Crew Scheduling to Car Crash Optimization
- Evolution Strategies a. Basic Algorithms b. Convergence Velocity Perspective c. Practical Applications d. Advanced Techniques (mixed-integer, multi objective)
- Genetic Programming a. Basic Algorithm b. Practical Applications
- Advanced Topics a. Mixed-Integer Representations b. Self-Adaptation in Genetic Algorithms c. Optimizing Evolutionary Algorithms
The course gives a comprehensive overview of the field through a series of lectures and exercises. In addition, a practical application exercise of evolutionary computation is given to the students, who are expected to run experiments and write a report about the experiment and the results obtained. This report will be written in scientific paper format, to gain some experience in scientific writing.
Provided that the quality of results is good, we will encourage and help the authors of the best paper to submit it to a scientific conference.
Learn the main algorithms in the field, in particular genetic algorithms and evolutionary strategies.
Understand the underlying principles of evolutionary computation.
Learn the theoretical foundations of evolutionary computation.
Apply the algorithms to some application area and obtain some practical experience.
Learn about applications in science and industry.
Learn how to write a short scientific paper in evolutionary computation.
The most recent timetable can be found at the Computer Science (MSc) student website.
Mode of instruction
Lectures and practical assignment sessions.
Hours of Study: 168 (= 6 EC)
Practical assignment sessions: 10
Practical work: 48
Exam and preparation: 36
The final grade is a combination of grades for (1) the written exam (60%) and (2) the report about the practical assignment (40%).
The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.
The following books are recommended but not mandatory for the course:
Th. Bäck: Evolutionary Algorithms in Theory and Practice, Oxford, University Press, NY, 1996. ISBN-13: 978-0195099713
A.E. Eiben, J.E. Smith: Introduction to Evolutionary Computing, Springer, Berlin, 2015. ISBN 978-3-662-44874-8
Slides will be provided for download.
- You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.