Academic Year 2019/2020



Course code: 089169

CFU: 5



Scuola di Ingegneria Industriale e dell’Informazione, Master of Science in Engineering for Computing Systems and in Automation and Control Engineering


Instructor: Francesco AMIGONI





Aims and learning outcomes

Computer systems are increasingly distributed and interconnected. This trend naturally leads to the development of systems composed of autonomous decision-making entities, called autonomous agents, that interact with each other in complex environments. Agent-based systems are an abstraction of specific computing systems deployed in several applications, including electronic commerce, control of industrial processes, logistics, ambient intelligence, web services, robotics, space systems, and modeling of complex systems.

This course aims at presenting general techniques for developing multiagent systems, independently of the applicative domains. In particular, the course will present methods for developing single agents, able to make rational decisions in situations affected by uncertainty, and for developing systems composed of multiple agents, with special emphasis on the interaction mechanisms between the agents. Moreover, some real-world applications of agent systems will be discussed. At the end of the course, students will acquire the ability to design and develop distributed systems based on the agent paradigm.



1. Introduction to the concepts of autonomous agents and of multiagent systems.

2. Autonomous agents as rational decision makers: architecture for intelligent agents, Markov decision processes.

3. Interactions between self-interested agents: short introduction to game theory, negotiations, voting mechanisms, auctions, coalition formation.

4. Interactions between cooperative agents: decision-theoretic multiagent planning, distributed constraint optimization.

5. Multiagent learning: multiagent Markov decision processes and stochastic games, evolutionary game theory.

6. Examples of real-world applications of agent-based systems.



Students are required to know basic notions of computer science (programming), algebra, and probability.


Further information

For further information about the course:





Suggested readings

Gerhard Weiss (editor), “Multiagent Systems (second edition)”, The MIT Press, 2013 (


Other teaching material

Further teaching material could be possibly made available along the course.




The students' assessment is based on a 1.5-hour closed-book written test at the end of the course, consisting in exercises and questions on all the topics of the course. The test assigns a maximum of 31 points (30 cum laude is assigned when the total score is strictly larger than 30 points). Students can take the written test at any exam session during the year.