Evolutionary Computing

2024-2025

General Information

Course Code X_400111
Credits 6 EC
Period P1
Course Level 400
Language of Tuition English
Faculty Faculty of Science
Course Coordinator prof. dr. A.E. Eiben
Examiner prof. dr. A.E. Eiben
Teaching Staff dr. K. da Silva Miras de Araujo
dr. K. da Silva Miras de Araujo
prof. dr. A.E. Eiben

Practical Information

You need to register for this course yourself. The (de)registration deadlines can be found on VU.nl

Teaching Methods Seminar, Lecture

Target audiences

This course is also available as:

Course Objective

This course has a threefold objective:


1) (Knowledge & Understanding) To learn about computational methods based on Darwinian principles of evolution.

2) (Applying knowledge and understanding, Communication) To use such methods as problem solvers and as simulation tools; to determine adequate algorithm setups depending on the problem at hand.

3) (Applying knowledge and understanding, Lifelong learning skills) To gain hands-on experience in performing computational experiments with evolutionary algorithms.

Course Content

This course is about constructing, applying and studying algorithms based on the Darwinian evolution theory. Driven by selection (survival of the fittest, mating of the fittest) and randomised reproduction (mutation, recombination), an evolutionary process is being emulated and solutions for a given problem are being "bred". During this course, various flavours within evolutionary computing are treated, including genetic algorithms, evolution strategies, evolutionary programming, genetic programming, differential evolution, particle swarm optimisation. Applications in optimisation, constraint handling, machine learning, and robotics are discussed. Specific subjects handled include: genetic structures (representations), selection techniques, sexual and asexual reproduction operators, (self-)adaptivity and methodological aspects, such as algorithm design & tuning, and performance assessment. Special attention is paid to the field of evolutionary robotics where the bodies (morphology, hardware) and the brains (controller, software) of robots are evolved simultaneously. Hands-on-experience with evolutionary algorithms is gained through a compulsory programming assignment.

Additional Information Teaching Methods

Oral lectures and compulsory Python programming assignment (in teams of
3 to 5). A limited number of highly motivated students can replace the
programming assignment by a special research assignment under the
personal supervision of the lecturer(s). These research projects aim at
publications with the students as first authors of the paper.

Method of Assessment

Written exam and programming assignment (in teams of 3 to 5). To pass the course as a whole, you must pass both the exam and the programming assignment. For the final grade they will count with the same weight:

Grade = 0.5 x Exam_Grade + 0.5 x Assignment_Grade.

Note that:

  • The exam is multiple choice, taken on the campus in an electronic form. There is a resit in case you cannot attend or fail.
  • The programming assignment is graded based on your code, the quality of the solution your algorithm finds, and a short report. No resit is possible for the programming assignment.
  • If you pass one component (Exam or Assignment), but fail the other, then you can keep the grade of the passed component for next year or later. Then you can pass the course by getting a good grade (> 5.5) for the missing component and using the old grade in the averaging formula.

Literature

The course is based on the textbook A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer, 2015, 2nd edition, ISBN 978-3-662-44873-1. The lectures and the book chapters are synchronised to a great extent. In addition, a number of carefully selected papers to provide extra information on specific topics are available via Canvas.

Additional Information Target Audience

MSc Artificial Intelligence

MSc Econometrics and Operations Research

MSc Finance

MSc Business Analytics

MSc Computer Science

MSc Computer Security

Additional Information

Attending the lectures in real life is not mandatory, but highly recommended. Active participation in the team work for the programming assignment is a must!

Explanation Canvas

The complete schedule of the course, organised by the chapters of the textbook, will be made available at the beginning of the course. Students are assumed to consult the course schedule to keep up with the progress, as Canvas rubrics are not used. Video recordings of the lectures made during the COVID period are still available on Canvas for self-study.

Recommended background knowledge

Python programming skills are necessary to do the practical assignment. If you cannot program, you cannot complete this course.