This course will cover a wide range of topics in swarm intelligence, including mathematical, computational, and biological aspects. The course is organized in four parts. In the first part, the students will learn about complex systems and the basic concepts of self-organization, such as positive and negative feedback, symmetry breaking, and emergence. The second part concerns several types of network models, such as information cascades, epidemics, and voting. The instructor will illustrate a diverse collection of self-organized systems in nature, finance, and technology that concretize these concepts. The third part is dedicated to swarm robotics, and will cover common swarm algorithms for task allocation, collective motion, and collective decisionmaking. The fourth and final part covers optimization algorithms inspired by swarm intelligence, namely ant colony optimization and particle swarm optimization. The course will blend theory and practice, challenging the students to learn by implementing the algorithms discussed in class through a final project in swarm robotics.
C++/Python/Matlab programming; Linear algebra; Probability and statistics; Calculus.