Diese Seite ist nur auf Englisch verfügbar.

Introduction to Multi-Agent-Programming - Overview

Lecturer: Dr. Alexander Kleiner and Prof. Dr. Bernhard Nebel

Exercises: Dr. Dapeng Zhang and Dr. Christian Dornhege and

Time and Location

Lecture: Tuesday 14:15-16:00
Exercises: Thursday 14:15-16:00
Location: Building 051, Room 00-031


The lecture will be given in English.


Multi-agent systems have emerged as one of the most important areas of research and development in information technology. A multi-agent system is composed of multiple interacting software components known as agents, which are typically capable of cooperating to solve problems that are beyond the abilities of any individual member. Multi-agent systems are important primarily because they have been found to have very wide applicability. The difference between agents and objects from OOP could be stated as: "Objects do it for free, but agents do it for money”. This course will begin by introducing the student to the notion of agents, and will lead them to an understanding of what agents are, how they can be constructed, and how agents can be made to cooperate effectively with one-another to solve problems. During the practicals, students will be split into smaller groups for applying their learned knowledge on programming in a multi-agent domain. As an example domain we choose the (simulated) problem of a team of agents searching for victims after a disaster, and identifying their state. The virtual agents are equipped with different sensors, e.g. a sound sensor, motion sensor, or thermo sensor. In order to report the state of victims correctly, agents have to cooperatively sense the victims' signs of life for concluding their state. We will provide the full domain and 'sample agents' coded in Java. Hence, basic programming skills in Java are mandatory for the practicals. The simulation system runs in Linux. Besides the programming task, algorithmic questions will be part of assignments in the practical.


Topics of this course are:
  • Agent architectures
  • Agent planning
  • Methods of communication
  • Distributed decision making
  • Cooperation and coordination
  • Learning in Multi-Agent systems


The course has a strong focus on practical solutions to multi-agent systems. Therefore, programming skills in Java or C++ are mandatory. Furthermore, knowledge of concepts from the lecture Foundations of Artificial Intelligence (Grundlagen der Künstlichen Intelligenz), such as search methods, and probabilistic methods, is useful.

Exercises and Exam

Students studying towards a diploma's degree can obtain a certificate ("benoteter Schein") for an advanced course ("Spezialvorlesung") in this course. For students studying towards a Bachelor of Science in Computer Science, a Master of Science in Computer Science or a Master of Science in Applied Computer Science, this course counts as an advanced course in the area "Artificial Intelligence and Robotics". The course is worth 6 ECTS points. For students who study Computer Science as a minor subject ("Nebenfach"), the precise regulations depend on the respective degree programme. Bonus points can be obtained from participating in the practical.


  • [Weiss et al. 1999] Multiagent Systems, edited by Gerhard Weiss, MIT Press, 1999.
  • [Russell & Norvig 2003] Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, second edition, Prentice Hall, 2003.

Course Materials

In the practicals and lecture, we will use the Robocup Rescue Simulation software. In the first practical on Thursday, we will give some instructions on how to install it on your computers. Alternatively, there will be a computer available you can connect to via the Internet.

Lecture slides

Exam Dates

20th of February

Zinan Lin 13:00 - 13:30
Wei Mou 13:30 - 14:00
Hannes Schulz 14:00 - 14:30
Ammar Halabi 14:30 - 15:00
Jonas Gehring 15:00 - 15:30
Ander Intxaurrondo 15:30 - 16:00
Timo Kichler 16:00 - 16:30

17th of March

Philip Stahl 12:00 - 12:30
Isgandar Valizada 12:30 - 13:00
Lionel Ott 13:00 - 13:30
Andreas Hertle 13:30 - 14:00
Philipp Blohm 14:00 - 14:30
Roxana Bersan 14:30 - 15:00
Xiaolin Wu 15:00 - 15:30
Volodymyr Goncharov 15:30 - 16:00
Mitevski Oliver 16:30 - 17:00
Cerdan Puyol Diego 17:00 - 17:30

24th of March

Nadir Akinci 13:00 - 13:30
Gizem Kayar 13:30 - 14:00
Zhongjie Cai 14:00 - 14:30
Shou-Yu Chao 14:30 - 15:00
Christoph Gonsior 15:00 - 15:30
Stefan Osswald 15:30 - 16:00
Guido Solbach 16:00 - 16:30
Adrian Mendoza 16:30 - 17:00
Johannes A. Stork 17:00 - 17:30
Cai Lulu 17:30 - 18:00