Course syllabus
Course memo
FFR105 (FIM711), Stochastic optimization algorithms, SP1, HT25, 7.5p
The course is offered by the Department of Mechanics and Maritime Sciences. Lectures will be given on-site at the campus, they will not be live streamed. I will upload slides after each lecture so that anyone who is ill can still obtain the material from the lecture.
Contact details
During the course, we strive to be available as much as possible. You are welcome to ask questions at any time, either in class or at other times, and you may also ask questions via e-mail or telephone. You are always welcome at our offices, and personal visits are preferred to e-mails.
Lecturer and examiner:
Professor Mattias Wahde, tel. 031 772 3727, e-mail: mattias.wahde@chalmers.se
Course assistants:
Krister Blanch, e-mail: krister.blanch@chalmers.se (Until Study week 6)
Minerva Suvanto, e-mail: minerva.suvanto@chalmers.se
Vivien Lacorre, e-mail: vivien.lacorre@chalmers.se (From Study week 6 and onwards)
Finding our offices: Go to Hörsalsvägen 7, enter the building (nya M-huset), so that you have Café Bulten on your right as you enter. Then go up one flight of stairs, and enter the corridor (Vehicle Engineering and Autonomous Systems). If the door is locked, please dial the appropriate extension, as shown in the list beside the door.
Course purpose
The aim of the course is for the students to attain an understanding of methods in computer science that are inspired by natural processes such as evolution and cooperative behavior (for example, swarming), and also to be able to apply such methods in many different kinds of optimization problems. The methods studied in the course are relevant both in technical applications, for example in the optimization and design of autonomous systems, and for understanding biological systems, for example through simulation of evolutionary processes.
Schedule
The course schedule is given below, and the same information can also be found in TimeEdit The page numbers refer to pages in the course book (see Course Literature below).
Note the time for the first lecture: It starts at 08.00 (sharp) on Sept 2.
Date | Time | Room | Content |
20250902 | 08.00-09.45 | KE | Course introduction and motivation, (pp. 1-8), Classical optimization methods (introduction, pp. 8-12) |
20250903 | 08.00-09.45 | HB3 | Classical optimization methods (i), (pp. 12-21, Appendix B.1, pp. 173-174) |
20250905 | 10.00-11.45 | KE | Classical optimization methods (ii), pp. 21-34, Handout of introductory programming problem |
20250909 | 08.00-09.45 | KE | Evolutionary algorithms: background and introduction, (pp. 35-45, 82- 83). Handout of home problem 1 |
20250909 | 17.15-20.15 | MT10-13 | Introduction to stochastic optimization algorithms in Python and Matlab. Note: This session starts at 17.15, officially, but the rooms are available from 17.00, for those who want to start early. Teachers will be available from 17.15. |
20250910 | 08.00-09.45 | HB3 | Evolutionary algorithms: components of EAs, (pp. 46-59) |
20250912 | 10.00-11.45 | KE | Evolutionary algorithms: properties, (pp. 59-71), Appendix B.2, pp. 174- 183. Handin of introductory programming problem |
20250916 | 08.00-09.45 | KE | Classical optimization methods and evolutionary algorithms (review, problem solving, Q&A, etc.) |
20250917 | 08.00-09.45 | HB3 | Linear genetic programming and interactive evolutionary computation, pp. 72-81 |
20250919 | 10.00-11.45 | KE | Neural networks (Appendix A, pp. 151-172), data analysis (Appendix C, pp. 193-204) |
20250923 | 08.00-09.45 | KE | Evolutionary algorithms: Applications I (various papers etc.), Handin of home problem 1 |
20250925 | 08.00-09.45 | --- | No lecture |
20250926 | 10.00-11.45 | KE | Evolutionary algorithms, Applications II (various papers etc.), Handout of home problem 2 |
20250930 | 08.00-09.45 | KE | Ant colony optimization: background and introduction, pp. 99-106 |
20251001 | 08.00-09.45 | HB3 | Ant colony optimization: AS vs. MMAS, applications, properties of ACO, (pp. 107-116), Appendix B.3, (pp. 183-187) |
20251003 | 10.00-11.45 | KE | Particle swarm optimization: Background and introduction, (pp. 117-124) |
20251007 | 08.00-09.45 | KE | Particle swarm optimization: Properties of PSO, applications, (pp. 124-138) |
20251008 | 08.00-09.45 | HB3 | Problem-solving class (various problems), review |
20251010 | 10.00-11.45 | --- | No lecture |
20251014 | 08.00-09.45 | KE | Performance comparison (EAs, ACO, PSO), (pp. 139-149) |
20251015 | 08.00-09.45 | HB3 | Applications of stochastic optimization algorithms in autonomous robots, vehicles, and conversational agents. Handin of home problem 2 |
20251017 | 10.00-11.45 | KE | Ethics in AI and course summary |
20251021 | 08.00-09.45 | --- | No lecture |
20251022 | 08.00-09.45 | --- | No lecture |
Course literature
Wahde, M., Biologically Inspired Optimization Methods: An Introduction, WIT Press, 2008
Note: The book is sold by Chalmers' bookstore. It is also possible to buy the book online (at Amazon and many other bookstores). Note that Chalmers' bookstore offers the book at a reduced price, but has only a limited supply. The book is also available at Chalmers' library, both in physical form and as an eBook.
Course design
The course consists of a sequence of lectures, usually three per week (but note that there are some exceptions (see above) as well as a programming session in the evening of 20250909. The students must also solve a small, introductory programming problems and two sets of home problems (see Examination below). The course ends with a final exam (see Examination below).
Changes made since the previous course (2024)
The main change is that we now allow two programming languages for the assignments: Python and Matlab. Many of the course documents, slides, etc., have been updated accordingly. Also, the home problems have been updated (modified). Moreover, some slides have been reformatted and updated, particularly regarding applications of stochastic optimization algorithms. Also, some short videos have been added to explain core concepts.
Learning outcomes
After completion of the course the student should be able to...
- Implement and use several different classical optimization methods, e.g., gradient descent and penalty methods.
- Describe and explain the basic properties of biological evolution, with emphasis on the parts that are relevant for evolutionary algorithms.
- Describe and explain fundamental properties of cooperative behavior (e.g., swarming).
- Define and implement different versions of evolutionary algorithms, particle swarm optimization, and ant colony optimization, and apply
the algorithms in the solution of optimization problems. - Compare different types of biologically inspired computation methods and identify suitable algorithms for a variety of applications.
Examination
The examination consists of one separate (small) introductory programming problem (mainly to learn the coding standard), two sets of home problems, and an exam at the end of the course. The programming languages used (for the home problems) will be Matlab (the version installed on the student computers) or Python (v3.13.5).
Introductory programming problem: Even though many students are probably used to programming in Matlab or Python, some students are not. In order to make sure that all students reach an acceptable level of programming knowledge, you will have to begin by solving a (simple) programming problem, making sure to follow the coding standard. This problem (and the coding standard) will be made available on 20250905, and the solution should be handed in on (or before) 20250912. In order to get a passing grade for this assignment (which is required), you should make sure that your program (i) solves the problem, and (ii) follows the coding standard.
Home problems:
The problem sheets will be made available on 20250909 (set 1) and 20250926 (set 2), and should be handed in no later than 20250923 (set 1) and 20251015 (set 2). Maximum total score (sets1+2): 25p. Each set will contain both mandatory problems (that must be solved satisfactorily in order to pass the course) and voluntary problems (that are necessary to solve for students aspiring to receive a high grade). In problems that involve programming, you should use either Matlab or Python (see also above), not both!
Make sure to submit your solutions (via Canvas) on time! Penalties for delays: 0-6 hours: 0p, 6-24 hours: -1p, 24-48 hours: -2p, > 48 hours: -3p.
Exam:
Date: 20251029 08.30-12.30. Maximum total score: 25p.
Note: In order to attend the exam, you must be signed up for it (some time in early October, at the latest). Those students (= most of you) who are registered for the course will be signed up automatically for the October exam (but not for re-exams, if relevant). More information about the exam will follow later.
Grade requirements:
The minimum requirements for a passing grade (grade 3 at Chalmers, grade G at GU) are to
- ... obtain at least 10 p on the exam and ...
- ... generate and submit a satisfactory solution to the introductory programming problem and ...
- ... generate and submit satisfactory solutions to the mandatory home problems.
The additional requirements for the various grades are as follows: (the numbers refer to the sum of the exam result and the home problems, maximum 50p in total)
Chalmers:
5 Total score in [42,50]
4 Total score in [33,41.5]
3 Total score up to 32.5 (i.e. just the minimum requirements; see above)
GU:
VG: Total score in [39,50]
G: Total score up to 38.5 (i.e. just the minimum requirements; see above)
ECTS:
ECTS grades are offered to Erasmus Mundus students, using the same ranges as for
Chalmers grades (i.e. A=5, B=4 etc.)
Course summary:
Date | Details | Due |
---|---|---|