Multiagent Systems
Brief Description
Multi-agent systems have emerged as one of the most important areas of
research and development in information technology in the 1990s. A
multi-agent system is one composed of multiple interacting software
components known as agents, which are typically capable of
co-operating 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, in areas as
diverse as industrial process control and electronic commerce. This
module will begin by introducing the student to the notion of an
agent, and will lead them to an understanding of what an agent is, how
they can be constructed, and how agents can be made to cooperate
effectively with one-another to solve problems. The practical
component of the module will based on the many Java agent frameworks
currently available (e.g., the Java-based ``Jack'' programming language).
Aims
The aims of this module are:
- to introduce the student to the concept of an agent and
multi-agent system, and the main applications for which they are
appropriate;
- to introduce the main issues surrounding the design of
intelligent agents;
- to introduce the main issues surrounding the design of a
multi-agent society;
- to introduce a contemporary platform for implementing agents and
multi-agent systems.
Learning Outcomes
Upon completing this module, 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 in designing societies of agents that
can effectively cooperate in order to solve problems,
including an understanding of the key types of multi-agent
interactions possible in such systems;
- understand the main application areas of agent-based solutions,
and be able to develop a meaningful agent-based system using a
contemporary agent development platform.
Outline Syllabus
- Introduction (1 week):
what is an agent: agents and objects; agents and expert systems;
agents and distributed systems;
typical application areas for agent systems.
- Intelligent Agents (3 weeks):
- the design of intelligent agents - reasoning
agents (e.g., Agent0), agents as reactive systems (e.g.,
subsumption architecture); hybrid agents (e.g., PRS); layered
agents (e.g., Interrap);
- a contemporary (Java-based) framework
for programming agents
(e.g., the Jack language, the JAM! system).
- Multi-Agent Systems (5 weeks):
- classifying multi-agent interactions --- cooperative
versus non-cooperative; zero-sum and other
interactions; what is cooperation? how cooperation
occurs --- the Prisoner's dilemma and Axelrod's experiments;
(1 week)
- interactions between self-interested agents:
auctions \& voting systems; negotiation;
(2 weeks)
- interactions between benevolent agents:
cooperative distributed problem solving (CDPS),
partial global planning; coherence and coordination;
(1 week)
- interaction languages and protocols:
speech acts, KQML/KIF, the FIPA framework.
(1 week)
- Advanced topics (2 weeks):
One issue selected from the contemporary research literature,
perhaps by guest lecturer.
Assessment
Recommended texts
- M Wooldridge. An Introduction to Multiagent Systems. John Wiley, 2002.
(set text)
Other reading:
- G Weiss, editor.
Multi-Agent Systems.
The MIT Press, 1999.
- J Ferber.
Multi-Agent Systems.
Addison-Wesley, 1999.
- G M P O'Hare and N R Jennings, editors.
Foundations of Distributed AI.
Wiley Interscience, 1996.
- M Singh and M Huhns.
Readings in Agents.
Morgan-Kaufmann Publishers, 1997.
Lecture Slides