Teacher: Viviana Mascardi
When: presentation of the course: Monday, 1st of October 2018, room 710. Lesson zero: Wednesday, 3rd of October 2018, room 217. The schedule for the course is Tuesday 9-11 + Wednesday 14-17.
Where: room 214
Multiagent systems (MASs for short) have emerged as one of the most important areas of research and development in information technology. A multiagent system is one 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.
The characteristics of MASs are that (1) each agent has incomplete information or capabilities for solving the problem and, thus, has a limited viewpoint; (2) there is no system global control; (3) data are decentralized; and (4) computation is asynchronous.
Multiagent systems are important primarily because they have been found to have very wide applicability, in areas as diverse as industrial process control and electronic commerce. This course will introduce the students to the notion of an agent, and will lead them to an understanding of what an agent is, how they can be constructed, how agents can be made to cooperate effectively with one-another to solve problems.
The aims of this course are:
-- to introduce the student to the concept of an agent and multiagent system, and the main applications for which they are appropriate;
-- to introduce the main issues surrounding the design of intelligent autonomous agents, and the main approaches and techniques for the implementation of such agents;
-- to introduce the main issues surrounding the design of multiagent systems, and the main approaches and techniques for enabling communication and cooperation in such systems.
Upon completing this course, a student will:
-- understand the notion of an agent, how agents are distinct from other software paradigms (e.g., objects), and understand the characteristics of applications that lend themselves to an agent-oriented solution;
-- understand the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents;
-- understand the key issues and approaches to high-level communication in multiagent systems;
-- understand the main application areas of agent-based solutions.
The course develops in breadth rather than in depth: it aim at showing many different challenging and exciting research problems in the Distributed Artificial Intelligence area and show languages, tools and methods suitable for facing them.
The course is closely connected with Ubiquitous Computing, Data Semantics and the AUK mini-course on Logic-based programming languages (18 hours) that will be offered by V. Mascardi in January or February 2018, and complements Machine Learning by providing an insight into a different approach to the design and development of intelligent systems. Loose connections can be devised with the Principles and Paradigms of Programming Languages course as well: agent-oriented programming is indeed a programming paradigm on its own, with features borrowed from logic programming and object orientation.
Introduction to agents and MASs
-- What is an agent, what is a MAS
-- History of agents and MASs
-- Agent-oriented software engineering
Communication as action
-- Foundations of the speech acts theory
-- Issues in communication
Agent-oriented programming (AOP): the foundations
Agent-based modeling and simulation
Distributed AI: some classical issues
-- Uninformed search
-- Informed search
Applications of agents and MASs
Motto of the course:
"Once something is done, it's not AI anymore"