Peer-To-Peer and Agent-Based Computing: Agents & Multi-Agent Systems: Introduction
Peer-To-Peer and Agent-Based Computing: Agents & Multi-Agent Systems: Introduction
agent-based computing
Agents & Multi-Agent
Systems: Introduction
peer-to-peer and agent-based computing
2
Agents and Multi-agent Systems (MAS)
Software agents are programs with unique features
such as:
Autonomy (no/little human input or interference)
Proactiveness (act in an anticipatory fashion, i.e., before
things happen)
Social skills (agents communicate)
A MAS has many autonomous entities (the agents)
interacting with one other to achieve
Conflicting goals (competition) or
Joint goals (cooperation)
Inevitable conclusions:
not every program is a software agent
not every IT/e-business solution requires a MAS
peer-to-peer and agent-based computing
3
Agents, MASs & AI
Classical Artificial Intelligence (AI) concentrates on
modelling single agents:
A single, stand-alone expert system
A single, stand-alone natural language processing
system
A single, stand-alone robot that learns
...
Work on agents & MASs investigate scenarios in
which various agents communicate:
Individual agents do not have to be clever
The intelligence may only arise in the agents
collective behaviour, as in, for instance, an ant colony
peer-to-peer and agent-based computing
4
The goal of this part of the course is
Introduce aspects of agents and MAS:
1. Case studies and technologies (platforms,
languages)
2. Communication languages and protocols
3. Auctions and voting mechanisms
4. Negotiation
5. Game theory
6. Mobile agents
7. Sensor networks
peer-to-peer and agent-based computing
5
Agent-Oriented Programming
Computer science has a number of goals:
Develop human-oriented, ubiquitous systems,
Interconnect disparate elements,
Create systems to make autonomous and intelligent
decisions about delegated tasks.
Programming has progressed through:
sub-routines, procedures and functions,
abstract data types, and objects
to agents
peer-to-peer and agent-based computing
6
Agents in e-Commerce
Software agents can be delegated tasks such as:
Information retrieval
Finding the cheapest/best supplier
Maintaining a companys stock of components
Buying and selling in an energy market
Management & coordination of business processes
peer-to-peer and agent-based computing
7
Agents in e-Science
Software agents can be delegated tasks such as:
Finding an appropriate computational resource
Distributing results of scientific experiments
Negotiating the provision of a high-demand tool
Management & coordination of scientific processes
peer-to-peer and agent-based computing
8
How to build agents & MASs
How do we build software agents to carry out the
tasks delegated to them?
How do we build agents that can interact with others in
order to do what they were told to
We may not have control as to how the other agents
out there will behave!
How do we engineer a MAS consisting of many
independent components that interact?
How do we address features from individual agents as
well as global properties of the group of agents?
Do we write each agent individually? There may be
100s of them!
Lets make this discussion more concrete:
Scenario: agentifying Microsofts Outlook
peer-to-peer and agent-based computing
9
How to build agents & MASs (Contd)
Microsofts Outlook offers means for people to share their
diaries:
A person can organise a meeting and invite other people to
attend it
An invitation can either be accepted or refused
If refused the person who is trying to organise the meeting will
need to try again, and tell everyone who has accepted that the
meeting will be changed, etc.
This is a tedious process which can take a long time!
Would it not be better if the people who could not attend
suggested a time that would suit them?
This task could, however, be delegated to a program!
How would you program this?
peer-to-peer and agent-based computing
10
How to build agents & MASs (Contd)
Can we meet at 2PM tomorrow?
Sorry, I cant. What about 3PM? Failing
that, would Monday be any good?
We would want the following to happen:
Dead easy:
A program provides communication between running copies of Outlook
Which language?
This program exchanges messages
Which kinds of messages are permitted and in which order?
Can we ensure the dialogue always terminates?
Which setup? Peer-to-peer? Client-server?
Will we allow foreign agents to join in?
peer-to-peer and agent-based computing
11
How to build agents & MASs (Contd)
However, the solution should scale up:
peer-to-peer and agent-based computing
12
The Agent Concept
What is an agent?
Agent characteristics
Agents and other things
Environment characteristics
The intentional stance
peer-to-peer and agent-based computing
13
What is an Agent?
Main point:
Agents act independently, controlling their internal state
Agents are capable of autonomous action in some
environment within which they live
Agents actions may affect/change the environment
Environment, on its turn, is the input to the agent
peer-to-peer and agent-based computing
14
The Environment
Environments are:
The physical or virtual space within which the agent
works
Examples:
A program controlling a door mechanism
A program roaming the Web for cheap flights to Dublin
peer-to-peer and agent-based computing
15
If the environment is fixed and
Only the agent can cause the environment to change
The effects of the actions are stable
then the system may execute blindly.
E.g., a thermostat and a heater
However, realistic environments are not like that:
Other factors influence the environment
The effects of actions may be unstable
E.g., agents in a network of computers
Interesting environments are dynamic
Agents: reactivity
peer-to-peer and agent-based computing
16
Software for dynamic environments is hard to build!
It must expect the unexpected & possibility of failure
Reactive system:
Maintains an on-going interaction with its environment
Responds to significant changes in time for the response to be
useful (no point in responding 3 hours later)
Given a stimulus, agents respond with a designated
response:
Programming by events outwith the agents control
If the environment is very diverse then we cannot foresee all
possible events
Therein lies the challenge and beauty of agent design
Agents: reactivity (Contd)
peer-to-peer and agent-based computing
17
Agents monitor and react to environment
On top of that, we want our agents to achieve the
goals we delegated to them:
E.g., a shop-bot should text us with a deal on tickets
This feature of agents is called proactiveness:
When left on its own, an agent that has programmed
goals, will strive to achieve them
It is part of its design to actively pursue its goals
Agents: goal-directed behaviour
peer-to-peer and agent-based computing
18
A lonely agent is a contradiction:
Many agents can achieve something bigger than each of them
can do in isolation
The world is a large multi-agent environment:
People, Java programs, Web services, etc.
The actions and goals of other agents must be taken into account
when we are designing our agents
Some goals can only be achieved with the cooperation of other
agents; other goals may lead to competition!
Agents should be endowed with social abilities:
The ability to interact with other agents meaningfully
Direct or indirect communication (message-passing)
Terms of a cooperation can be negotiated and agreed
Agents: social ability
peer-to-peer and agent-based computing
19
Agents may also possess
Mobility: the ability to move around machines
Veracity: they will not knowingly provide false
information
Benevolence: they will, if possible, do what is asked
Rationality: an agent will act towards achieving its goals,
and not act to make these goals unachievable
Learning/adaptation skills: agents improve their
performance from experience
Agents: other features
peer-to-peer and agent-based computing
20
Reading List
An Introduction to Multi-Agent Systems, M.
Wooldridge, John Wiley & Sons, 2008
Is it an agent or just a program? S. Franklin and A.
Graesser, available on-line at
http://www.msci.memphis.edu/~franklin/AgentProg.html
Artificial Intelligence: A Modern Approach (2
nd
Ed.),
S. Russell and P. Norvig, Prentice-Hall, 2003.
Multi-Agent Systems: A Modern Approach to
Distributed Artificial Intelligence, G. Weiss (editor),
MIT Press, 1999.
Multi-Agent Systems: An Introduction to
Distributed Artificial Intelligence, J. Ferber, Addison-
Wesley, 1999.