Thursday 21 June 2007

24.1, An Introduction to Multiagent Systems

Notes taken from 'An Introduction to Multiagent Systems' (2002), by Michael Wooldridge

1, Introduction

This book is about multiagent systems. It addresses itself to two key problems:

- How do we build agents that are capable of independent, autonomous action in order to successfully carry out the tasks that we delegate to them?

- How do we build agents that are capable of interacting (cooperating, coordinating, negotiating) with other agents in order to successfully carry out the tasks that we delegate to them, particularly when the other agents cannot be assumed to share the same interests/goals?

The first problem is that of agent design, and the second problem is that of society design. The two problems are not orthogonal - for example, in order to build a society of agents that work together effectively, it may help if we give members of the society models of the other agents in it.

The Vision Thing: "You are in desperate need of a last minute holiday somewhere warm and dry. After specifying your requirements to your personal digital assistant (PDA), it converses with a number of different Web sites, which sell services such as flights, hotel rooms, and hire cars. After hard negotiation on your behalf with a range of sites, your PDA presents you with a package holiday."

There are many basic research problems that need to be solved in order to make such a scenario work; such as:

- How do you state your preferences to your agents?

- How can your agent compare different deals from different vendors?

- What algorithms can your agent use to negotiate with other agents (so as to ensure you are not 'ripped off')?

Objections to Multiagent Systems: Is it not all just distributed/concurrent systems?

In multiagent systems, there are two important twists to the concurrent systems story.

- First, because agents are assumed to be autonomous - capable of making independent decision about what to do in order to satisfy their design objectives - it is generally assumed that synchronization and coordination structures in a multiagent system are not hardwired in at design time, as they typically are in standard concurrent/distributed systems. We therefore need mechanisms that will allow agents to synchronize and coordinate their activities at run time.

- Second, the encounters that occur among computing elements in a multiagent system are economic encounters, in the sense that they are encounters between self-interested entities. In a classic distributed/concurrent system, all the computing elements are implicitly assumed to share a common goal (of making the overall system function correctly). In multiagent systems, it is assumed instead that agents are primarily concerned with their own welfare (although of course they will be acting on behalf of some user/owner).

No comments: