Evolutionary computing

Entry requirements: Basic knowledge of probability theory, optimization methods and combinatorial theory.

Credits: 5

Semester: 3

Course: Elective

Language of the course: English


A.G. Hoekstra


Understand the basic principles and schemes of evolutionary algorithms (EA). Learn how to design and implement EA for various optimization problems. Get skills to tune and test EA. Examine parallel schemes of EA.


Evolutionary computing is a widely used optimization techniques. The main goal of the course is to familiarize students with basic concepts and principles of design of evolutionary algorithms (EA). The course includes theoretical basis, examination of the main components of EA and how to implemnent them. Further, the course considers methods of increasing the performance of algorithms and schemes for implementation of high-performance EA based on multiprocessor and distributed systems, as well as with the usage of GPU. During the course, students are involved not only in theoretical aspects, but also in demonstrations and analysis of real solved problems with the usage of evolutionary computing methods.

Classes carried out in the form of lectures with elements of the discussion, where such questions as: "when and which EA algorithm is better"; "for which problems EA can be applied?"; "Which set of parameters choose during implementation of EA?" can be discussed. The main practical assignment represents a development and implementation of EA for the typical optimization problem, where students' algorithms are compared with each other in a competitive way.


Lectures, workshops and practice assignments


Attendance is mandatory. Students cannot miss more than one class. Grading: personal qualities of the student 10%, practice assignment 50%, test 20%, exam 20%.