Evolutionary algorithms

The goal of the seminar is to try out how evolutionary algorithms behave on simple tasks. To this end, we will use Python and a simple “library” written in it. Typically, your task will be to adjust or implement an operator to make the algorithm perform better. If you have never seen Python, there is no need to worry - the very basics (which are the same in most similar languages) will be enough for the seminar.

The assignments are submitted in Postal Owl.

Credit requirements

There will be 12 practicals during the term. In 11 of them, there will be an assignment worth up to 5 points, i.e. 55 points in total for the term. Additionally, in many practicals it will be possible to get bonus points, e.g. for the best solution or for solving an extended version of the assignment.

The practicals are divided into groups of 1-3 lessons on a similar topic. You will always submit the assignments for the whole group at once, after the last practical of the group. The deadline for each assignment can be found at the assignment and will always be set to approximately two weeks after the assignment is given. You need to submit the assignment before this deadline to get the full number of points. For submissions at most two weeks after the deadline, you can get half the points. Some bonus points will be limited to submission before the next practical.

To get the credit, you need to have at least 36 points at the end of the term.

Submission requirements

Every submitted solution must contain a short description of what you did, a plot (comparison) of the convergence of the different versions of the algorithm, and a comment on why you think the results are the way they are. Try to be as concise as possible - do not repeat the assignment, do not explain standard genetic operators (covered in the lecture or the practicals). On the other hand, do not forget to mention the parameters you used and how you changed them. Each assignment has its own template to fill in - copy the filled Markdown template as text into Postal Owl and upload the plots as an attachment in a single .zip file.

Use of generative AI

The use of generative AI for the implementation is not forbidden, but you must declare it for every assignment. For writing the text about what you did, do not use AI if possible, or only in a limited way (e.g. to check grammar); try to keep the resulting text as short as possible. All observations and analyses must be your own.

Course outline

Simple genetic algorithm

Set partition problem

Continuous optimization

Evolution of classification rules

Multi-objective optimization

Travelling salesman problem

DEAP library

Genetic programming

Additional materials