Computer scientists seek inspiration for solving current problems from various sources. Many times, they find it in nature, as through evolution living organisms have discovered simple and elegant solutions to common problems. A number of known algorithms uses biomimicry. For example, there is an algorithm that in order to find the shortest path to a destination copies the approach of ants, and an algorithm that in order for a fast wireless network setup emulates the flocking of birds. The goal of the course is to present to students the use of the emulation of nature’s time-tested patterns and strategies in order to create products, processes, computer systems and algorithms. Besides the specific knowledge, the students will gain an insight into the theoretical background by means of which they will be able to adapt more easily to the fast changes in current computer and information science. The acquired competences are transferrable as most of the covered topics are applicable to a wide variety of applications.
Lectures overview:
1. Introductory lecture (motivation, fuzzy logic, biomimicry, collective behaviour)
2. Cinder++ (C++ API for creative coding, OpenGL)
3.-7. Fuzzy logic (fuzzy sets, membership functions, FIS, time and fuzzy logic, fuzzy arithmetic, fuzzy type 2, use cases)
8-12. Autonomous agents and collective behaviour (modelling and simulation of collective behaviour, particle systems, boids, SPP model, animats, modelling perception, drives, action selection, verification)
13-15. Artificial life and artificial worlds (learning agents, learning collective behaviour, framstics, stickyfeet, fuzzy evolution and fuzzy genetic algorithms)
Lab work:
Group project in modelling and simulation related to the topics covered in the course.