Outline
1
2
Agents & MAS: An Introduction
3
Andrea Omicini
andrea.omicini@unibo.it
Alma Mater Studiorum—Università di Bologna
4
12th European Agent Systems Summer School
Saint-Etienne, France
23 August 2010
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
5
1 / 130
2
3
4
5
Andrea Omicini (Università di Bologna)
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
Outline
1
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
EASSS 2010, 23/8/2010
2 / 130
Toward a Paradigm Change
The Change is Widespread
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
[Zambonelli and Parunak, 2003]
Today software systems are essentially different from “traditional”
ones
The difference is widespread, and not limited to some application
scenarios
Computer science & software engineering are going to change
dramatically
complexity is too huge for traditional CS & SE abstractions
like object-oriented technologies, or component-based methodologies
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
3 / 130
Andrea Omicini (Università di Bologna)
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
Toward a Paradigm Change
The Next Crisis of Software
Impact on Software Engineering
The Scenario of the Crisis
Computing systems
will be anywere
Which impact on the design & development of software systems?
Quantitative
in terms of computational units, software components, number of
interconnections, people involved, time required, . . .
current processes, methods and technologies do not scale
will be embedded in every environment item/ object
always connected
Qualitative
wireless technologies will make interconnection pervasive
new software systems are different in kind
new features never experimented before
always active
to perform tasks on our behalf
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
4 / 130
EASSS 2010, 23/8/2010
5 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
6 / 130
Complex Software Systems
Toward a Paradigm Change
Complex Software Systems
Novel Features of Complex Software Systems
Toward a Paradigm Change
This is not for MAS only!
Situatedness
Fields like
computations occur within an environment
computations and environment mutually affect each other, and cannot
be understood separately
distributed artificial intelligence
manufacturing and environmental control systems
mobile computing
Openness
systems are permeable and subject to change in size and structure
pervasive / ubiquitous computing
Locality in control
Internet computing
components of a system are autonomous and proactive loci of control
Locality in interaction
components of a system interact based on some notion of
spatio-temporal compresence on a local basis
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
peer-to-peer (P2P) systems
have already registered the news, and are trying to account for this in
technologies and methodologies
EASSS 2010, 23/8/2010
7 / 130
Andrea Omicini (Università di Bologna)
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
Situatedness—Examples
EASSS 2010, 23/8/2010
8 / 130
Toward a Paradigm Change
Situatedness I
Environment as a first-class entity
the notion of environment is explicit
Control systems for physical domains
manufacturing, traffic control, home care, health care systems
components / computations interact with, and are affected by the
environment
explicitly aim at managing / capturing data from the environment
through event-driven models / event-handling policies
interaction with the environment is often explicit, too
Is this new?
every computation always occurred in some context
Sensor networks, robot networks
are typically meant to sense, explore, monitor and control partially
known / unknown environments
however, the environment is masked behind some “wrapping”
abstractions
environment is not a primary abstraction
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
9 / 130
Andrea Omicini (Università di Bologna)
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
Situatedness II
Situatedness III
Does masking / wrapping work?
Trend in CS and SE
drawing a line around the system
explicitly representing
wrapping abstractions are often too simple to capture complexity of
the environment
when you need to sense / control the environment, masking it is not
always a good choice
environment dynamics is typically independent of system dynamics
the environment is often unpredictable and non-formalisable
[Wegner, 1997]
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
EASSS 2010, 23/8/2010
10 / 130
Toward a Paradigm Change
what is inside in terms of component’s behaviour and interaction
what is outside in terms of environment, and system interaction with
the environment
predictability of components vs. unpredictability of the environment
this dichotomy is a key issue in the engineering of complex software
systems
11 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
12 / 130
Complex Software Systems
Toward a Paradigm Change
Complex Software Systems
Openness—Examples
Toward a Paradigm Change
Openness
Critical control systems
unstoppable systems, run forever
Permeable boundaries
drawing lines around “systems” does not make them isolated
they need to be adapted / updated anyway, in terms of either
computational or physical components
boundaries are often just conventional, thus allow for mutual
interaction and side-effects
openness to change, and automatic reorganisation are essential
features
The dynamics of change
systems may change in structure, cardinality, organisation, . . .
Systems based on mobile devices
the dynamics of mobile devices is out of the system / engineer’s
control
technologies, methodologies, but above all abstractions should
account for modelling (possibly governing) the dynamics of change
system should work without assumptions on presence / activity of
mobile devices
the same holds for Internet-based / P2P systems
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
13 / 130
Toward a Paradigm Change
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
Openness—Further Issues
EASSS 2010, 23/8/2010
14 / 130
Toward a Paradigm Change
Local Control—Examples
Where is the system?
where do components belong?
Cellular phone network
are system boundaries for real?
each cell with its own activity / autonomous control flow
autonomous (inter)acting in a world-wide network
Mummy, where am I?
how should components become aware of their environment?
World Wide Web
each server with its own (reactive) independent control flow
when they enter a system / are brought to existence?
each browser client with its own (proactive) independent control flow
How do we control open systems?
. . . where components come and go?
. . . where they can interact at their will?
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
15 / 130
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
Local Control
EASSS 2010, 23/8/2010
16 / 130
Toward a Paradigm Change
Local Control—Issues of Autonomy
Flow of Control
key notion in traditional systems
key notion in Computer Science
multiple flows of control in concurrent / parallel computing
however, not an immediate notion in complex software systems
in an open world, autonomy of execution makes it easy for
components to move across systems & environments
a more general / powerful notion is required
autonomy of components more effectively matches dynamics of
environment
Autonomy
is the key notion here
subsuming control flow / motivating multiple, independent flows of
control
at a higher level of abstraction
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
autonomy of execution is a suitable model for multiple independent
computational entities
SE principles of locality and encapsulation cope well with delegation
of control to autonomous components
17 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
18 / 130
Complex Software Systems
Toward a Paradigm Change
Complex Software Systems
Local Interactions—Examples
Local Interactions
Control systems for physical domains
each control component is delegated a portion of the environment to
control
interactions are typically limited to the neighboring portions of the
environment
strict coordination with neighboring components is typically enforced
Local interactions in a global world
autonomous components interact with the environment where they
are located
interaction is limited in extension by either physical laws or logical
constraints
autonomous components interact openly with other systems
Mobile applications
local interaction of mobile devices is the basis for “context-awareness”
interactions are mostly with the surrounding environment
interoperation with neighboring devices is typically enabled
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
Toward a Paradigm Change
EASSS 2010, 23/8/2010
19 / 130
motion to and local interaction within the new system is the cheapest
and most suitable model
situatedness of autonomous components calls for context-awareness
a notion of locality is required to make context manageable
Andrea Omicini (Università di Bologna)
Toward a Paradigm Change
Agents & MAS: An Introduction
Complex Software Systems
Summing Up
EASSS 2010, 23/8/2010
20 / 130
EASSS 2010, 23/8/2010
22 / 130
Away from Objects
Outline
Complex software systems, then
made of autonomous components
locally interacting with each other
immersed in an environment—both components and the system as a
whole
system / component boundaries are blurred—they are conceptual
tools until they work
Change is ongoing
Computer Science is changing
Software Engineering is changing
a (sort of) paradigm shift is occurring—a revolution, maybe?
[Kuhn, 1996]
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
1
2
3
4
5
21 / 130
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Away from Objects
Agents & MAS: An Introduction
Complex Software Systems
Evolution of Programming Languages: The Picture
Away from Objects
Evolution of Programming Languages: Dimensions
[Odell, 2002]
Historical evolution
Monolithic programming
Modular programming
Object-oriented programming
Agent programming
Degree of modularity & encapsulation
Unit behaviour
Unit state
Unit invocation
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
23 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
24 / 130
Complex Software Systems
Away from Objects
Complex Software Systems
Monolithic Programming
Away from Objects
Evolution of Programming Languages: The Picture
Monolithic Programming
Encapsulation? There is no encapsulation of anything, in the very end
The basic unit of software is the whole program
Programmer has full control
Program’s state is responsibility of the programmer
Program invocation determined by system’s operator
Behaviour could not be invoked as a reusable unit under different
circumstances
modularity does not apply to unit behaviour
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
25 / 130
Away from Objects
EASSS 2010, 23/8/2010
26 / 130
Away from Objects
Modular Programming
Motivations
Larger memory spaces and faster processor speed allowed program to
became more complex
Results
Some degree of organisation in the code was required to deal with the
increased complexity
Agents & MAS: An Introduction
Complex Software Systems
Agents & MAS: An Introduction
Complex Software Systems
The Prime Motor of Evolution
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
27 / 130
Away from Objects
The basic unit of software are structured loops / subroutines /
procedures / . . .
this is the era of procedures as the primary unit of decomposition
Small units of code could actually be reused under a variety of
situations
modularity applies to subroutine’s code
Program’s state is determined by externally supplied parameters
Program invocation determined by CALL statements and the likes
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
Evolution of Programming Languages: The Picture
EASSS 2010, 23/8/2010
28 / 130
Away from Objects
Object-Oriented Programming
Modular Programming
Encapsulation? Encapsulation applies to unit behaviour only
The basic unit of software are objects & classes
Structured units of code could actually be reused under a variety of
situations
Objects have local control over variables manipulated by their own
methods
variable state is persistent through subsequent invocations
object’s state is encapsulated
Object are passive—methods are invoked by external entities
modularity does not apply to unit invocation
object’s control is not encapsulated
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
29 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
30 / 130
Complex Software Systems
Away from Objects
Complex Software Systems
Evolution of Programming Languages: The Picture
Away from Objects
Agent-Oriented Programming
Object-Oriented Programming
Encapsulation? Encapsulation applies to unit behaviour & state
The basic unit of software are agents
encapsulating everything, in principle
by simply following the pattern of the evolution
whatever an agent is
we do not need to define them now, just to understand their desired
features
Agents could in principle be reused under a variety of situations
Agents have control over their own state
Agents are active
they cannot be invoked
agent’s control is encapsulated
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
31 / 130
Away from Objects
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
Evolution of Programming Languages: The Picture
EASSS 2010, 23/8/2010
32 / 130
Away from Objects
Features of Agents
Agent-Oriented Programming
Encapsulation? Encapsulation applies to unit behaviour, state &
invocation
Before we define agents. . .
. . . agents are autonomous entities
encapsulating their thread of control
they can say “Go!”
. . . agents cannot be invoked
they can say “No!”
they do not have an interface, nor do they have methods
. . . agents need to encapsulate a criterion for their activity
to self-govern their own thread of control
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
33 / 130
Away from Objects
EASSS 2010, 23/8/2010
34 / 130
Away from Objects
Objects vs. Agents: Interaction & Control
Dynamic autonomy
Agents are dynamic since they can exercise some degree of activity
they can say “Go!”
From passive through reactive to active
Message passing in object-oriented programming
Data flow along with control
data flow cannot be designed as separate from control flow
A too-rigid constraint for complex distributed systems. . .
Unpredictable / non-deterministic autonomy
Agents are unpredictable since they can exercise some degree of
deliberation
they can say “Go!”, they can say “No!”
and also because they are “opaque”—may be unpredictable to external
observation, not necessarily to design
From predictable to unpredictable through partially predictable
Agents & MAS: An Introduction
Agents & MAS: An Introduction
Complex Software Systems
Dimensions of Agent Autonomy
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
35 / 130
Message passing in agent-oriented programming
Data flow through agents, control does not
data flow can be designed independently of control
Complex distributed systems can be designed by designing
information flow
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
36 / 130
Complex Software Systems
Away from Objects
Complex Software Systems
Agents Communication
Philosophical Differences [Odell, 2002] I
Decentralisation
Object-based systems are completely pre-determined in control:
control is essential centralised at design time
Agents communicate
Interaction between agents is a matter of exchanging information
Agent-oriented systems are essentially decentralised in control
toward Agent Communication Languages (ACL)
Agents can be involved in conversations
they can be involved in associations lasting longer than the single
communication act
differently from objects, where one message just refer to one method
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
Away from Objects
EASSS 2010, 23/8/2010
37 / 130
Away from Objects
Multiple & dynamic classification
Once created, objects typically have an unmodifiable class
After creation, agents can change their role, task, goal, class, . . . ,
according to their needs and to the ever-changing structure of the
surrounding environment
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
38 / 130
Away from Objects
Philosophical Differences [Odell, 2002] II
Philosophical Differences [Odell, 2002] III
Instance-level features
Objects are class instances whose features are essentially defined by
classes themselves once and for all
Small in time
Garbage collection is an extra-mechanism in object-oriented languages
for taking advantage of disappearing objects
Agents features can change during execution, by adaptation, learning,
...
Small in impact
Loosing an object in an object-oriented system makes the whole
system fail, or at least raise an exception
Loosing an agent in a multi-agent system may lead to decreases in
performance, but agents are not necessarily single points of failure
!!! This is essentially a distributed, multi-process system issue
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
39 / 130
Away from Objects
Disappearing agents can simply be forgotten naturally, with no need
of extra-mechanisms
Small in scope
Objects can potentially interact with the whole object space, however
their interaction space is defined once and for all at design time: this
defines a sort of local information space where they can retrieve
knowledge from
Agents are not omniscient and omnipotent, and typically rely on local
sensing of their surrounding environment
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Complex Software Systems
EASSS 2010, 23/8/2010
Away from Objects
Philosophical Differences [Odell, 2002] IV
Towards the Coexistence of Agents and Objects
Emergence
Object-based systems are essentially predictable
Final issues from [Odell, 2002]
Should we wrap objects to agentify them?
Multi-agent systems are intrinsically unpredictable and
non-formalisable and typically give raise to emergent phenomena
Could we really extend objects to make them agents?
How are we going to implement the paradigm shift, under the heavy
weight of legacy?
Analogies from nature and society
Object-oriented systems have not an easy counterpart in nature
technologies, methodologies, tools, human knowledge, shared practises,
...
Multi-agent systems closely resembles existing natural and social
systems
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
40 / 130
EASSS 2010, 23/8/2010
Answers are to be found in the remainder of the EASSS courses
So, stay tuned!
41 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
42 / 130
Towards Agents
Moving Toward Agent Technologies
Towards Agents
Outline
1
2
3
4
5
Moving Toward Agent Technologies
Towards Seamless Agent Middleware
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
The first question
How are we going to implement the paradigm shift, under the heavy
weight of legacy?
Mainstreaming Agent Technologies
[Omicini and Rimassa, 2004]
Observing the state of agent technologies nowadays
Focussing on agent middleware
Devising out a possible scenario
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
43 / 130
Moving Toward Agent Technologies
Agents & MAS: An Introduction
Towards Agents
The Technology Life-Cycle
EASSS 2010, 23/8/2010
44 / 130
Moving Toward Agent Technologies
Dimensions of a Technology Shift
A successful technology from conception to abandonment
First ideas from research
Technology scenario has at least three dimensions
Programming paradigm
Premiere technology examples
new technologies change the way in which systems are conceived
Early adopters
Development process
Widespread adoption
new technologies change the way in which systems are developed
Obsolescence
Economical environment
new technologies change market equilibrium, and their success is
affected by market situations
Dismissal
Often, however, this does not happen
New technologies fail without even being tried for real
3-D space for a success / failure story
Which are the factors determining whether a technology will either
succeed or fail?
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
45 / 130
What will determine the success / failure of agent-based technologies?
Andrea Omicini (Università di Bologna)
Moving Toward Agent Technologies
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
46 / 130
Moving Toward Agent Technologies
The Programming Paradigm Dimension
The Development Process Dimension
Pushing the paradigm shift
Evangelists gain space on media
Technological geeks follow soon
Drawbacks
Accounting for real-world software development
Availability of development methods & tools is critical
No technology is to be widely adopted without a suitable
methodological support
too much hype may create unsupported expectations
perceived incompatibility with existing approaches
possible dangers for conceptual integrity
Day-by-day developer’s needs should be accounted, too
Agent-Oriented Software Engineering Methodologies
Adopting agent-based metaphors and abstractions to formulate new
practises in software engineering
Current state of AOSE methodologies
Middleware for the paradigm shift
Technology support to avoid unsupported claims
Seamlessly situated agents vs. wrapper agents
early development phases are typically well-studied
later phases are not, neither the tools, nor the fine-print details
communication actions towards agents
pragmatical actions towards objects
This allows agents to be used in conjunction with sub-systems
adopting different component models
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
47 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
48 / 130
Towards Agents
Moving Toward Agent Technologies
Towards Agents
The Economical Environment Dimension I
Moving Toward Agent Technologies
The Economical Environment Dimension II
Innovation has to be handled with care
Stakeholders of new technologies may enjoy advantages of early
positioning
However, they often focus too much on novelty and product, rather
than on benefits and service
“We are different” alone does not help much
software is a quite peculiar product: nearly zero marginal cost, and
almost infinite production capability
Agent-Oriented Middleware & Infrastructures
Promoting agent-oriented technologies through integration with
existing object-oriented middleware & infrastructures
Creating a no-cost space for agent technologies
Notions like e.g. ontology or coordination as a service
[Viroli and Omicini, 2006], which are made available to components
of any sort
where (agent) technologies are no longer “sold” as whole packages
whose choice do not require any design commitment
where however agents represent the most effective choice for most
components
allow agent metaphors to add their value to existing systems with no
assumption on the component model
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
49 / 130
The Many Agents Around
2
3
4
5
Agents & MAS: An Introduction
Towards Agents
Outline
1
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
50 / 130
The Many Agents Around
Convergence Towards The Agent
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Many areas contribute their own notion of agent
Artificial Intelligence (AI)
Distributed Artificial Intelligence (DAI)
Parallel & Distributed Systems (P&D)
Mobile Computing
Programming Languages and Paradigms (PL)
Software Engineering (SE)
Robotics
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
51 / 130
The Many Agents Around
EASSS 2010, 23/8/2010
52 / 130
The Many Agents Around
On the Notion of Agent in AI
Reproducing intelligence
AI is first of all concerned with reproducing intelligent processes and
behaviours, where
intelligent processes roughly denote internal intelligence—like
understanding, reasoning, representing knowledge, . . .
intelligent behaviours roughly represent external, observable
intelligence—like sensing, acting, communicating, . . .
Classic AI promoted the so-called symbolic acceptation of (artificial)
intelligence
based on mental representation of the external environment
where the environment is typically oversimplified
and the agent is the only source of disruption
EASSS 2010, 23/8/2010
Encapsulating intelligence
Agents in AI have from the very beginning worked as the units
encapsulating intelligence
individual intelligence
within the symbolic interpretation of intelligence
Symbolic intelligence
Agents & MAS: An Introduction
Agents & MAS: An Introduction
Towards Agents
On the Notion of Intelligence in AI
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
53 / 130
Cognitive agents
AI agents are essentially cognitive agents
they are first cognitive entities
then active entities
in spite of their very name, coming from Latin agens [agere]—the one
who acts
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
54 / 130
Towards Agents
The Many Agents Around
Towards Agents
AI & Agents—A Note
The Many Agents Around
On the Notion of Agent in DAI [Wooldridge, 2002]
Reversing perspective [Omicini and Poggi, 2006]
Today, results from AI and MAS research are no longer so easily
distinguishable
Agents and MAS have become the introductory metaphors to most of
the AI results
and acting alone within an oversimplified environment
as exemplified by one of the most commonly used AI textbooks
[Russell and Norvig, 2002]
Classic AI results on planning, practical reasoning, knowledge
representation, machine learning, and the like, have become the most
obvious and fruitful starting points for MAS research and technologies
It is quite rare nowadays that new findings or lines of research in AI
might ignore the agent abstractions at all
Altogether, rather than a mere subfield of AI, agents and MAS could
be seen as promoting a new paradigm, providing a new and original
perspective about computational intelligence and intelligent systems
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
Overcoming the individual dimension
no more a single unit encapsulating individual intelligence
55 / 130
Social acceptation of agency
agents are individuals within a society of agents
agents are components of a multiagent system (MAS)
agents are distributed within a distributed environment
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
Agent Features in DAI [O’Hare and Jennings, 1996]
EASSS 2010, 23/8/2010
56 / 130
The Many Agents Around
A DAI Agent Represents the World: What?
What should be represented?
What is relevant? What is not relevant?
More precisely, which knowledge about the environment is relevant for
an agent to effectively plan and act?
So, which portion of the environment should the agent explicitly
represent somehow in order to have the chance to behave intelligently?
A DAI agent. . .
. . . has an explicit representation of the world
. . . is situated within its environment
. . . solves a problem that requires intelligence
Representation is partial
Necessarily, an agent has a partial representation of the world
Its representation includes in general both the current state of the
environment, and the laws regulating its dynamics
. . . deliberates / plans its course of actions
. . . is flexible
. . . is adaptable
. . . learns
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
57 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
58 / 130
The Many Agents Around
A DAI Agent Represents the World: How?
A DAI Agent Represents the World: Consistency I
The issue of Knowledge Representation (KR)
Perception vs. representation
Environment changes, either by agent actions, or by its own dynamics
How should an agent represent knowledge about the world?
Representation is not neutral with respect to the agent’s model and
behaviour
and to the engineer’s possibilities as well
Choosing the right KR language / formalism
according to the agent’s (conceptual & computational) model
multisets of tuples, logic theories, description logics, . . .
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
Even supposing that an agent has the potential to observe all the
relevant changes in the environment, it can not spend all of its
activity monitoring the environment and updating its internal
representation of the world
So, in general, how could consistency of internal representation be
maintained? And to what extent?
in other terms, how and to what extent can an agent be ensured that
its knowledge about the environment is at any time consistent with its
actual state
59 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
60 / 130
Towards Agents
The Many Agents Around
Towards Agents
A DAI Agent Represents the World: Consistency II
The Many Agents Around
A DAI Agent Solves Problems
An agent has inferential capabilities
New data representing a new solution to a given problem
Reactivity vs. proactivity
An agent should be reactive, sensing environment changes and
behaving accordingly
New knowledge inferred from old data
New methods to solve a given problem
New laws describing a portion of the world
An agent should be proactive, deliberating upon its own course of
actions based on its mental representation of the world
An agent can change the world
An agent is equipped with actuators that provide it with the ability to
affect its environment
So, more generally, how should the duality between reactivity and
proactivity be ruled / balanced?
The nature of actuators depends on the nature of the environment in
which the agent is immersed / situated
In any case, agent’s ability to change the world is indeed limited
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
61 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
A DAI Agent Deliberates & Plans I
EASSS 2010, 23/8/2010
62 / 130
The Many Agents Around
A DAI Agent Deliberates & Plans II
An agent understands its own capabilities
Its capabilities in terms of actions, pre-conditions on actions, effects
of actions
An agent has a goal to pursue
A goal, typically, as a state of the world to be reached—something to
achieve
A task, sometimes, as an activity to be brought to an
end—something to do
“Understands” roughly means that its admissible actions and related
notions are somehow represented inside an agent, and there suitably
interpreted and handled by the agent
Perception should in some way interleave with action either to check
action pre-conditions, or to verify action effects
An agent is able to build a plan of its actions
It builds possible plans of action according to its goal/task, and to its
knowledge of the environment
It deliberates on the actual course of action to follow, then acts
consequently
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
63 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
A DAI Agent is Flexible & Adaptable
EASSS 2010, 23/8/2010
64 / 130
The Many Agents Around
A DAI Agent Learns
What is (not) learning?
Learning is not merely agent’s change of state
Learning is not merely dynamic perception—even though this change
the agent’s state and knowledge
Define flexible. Define adaptable.
What do these words exactly mean?
Adaptable / flexible with respect to what?
Can an agent change its goal dynamically?
What could an agent learn?
New knowledge
New laws of the world
New inferential rules?
Or, can it solve different problems in different contexts, or in
dynamics contexts?
Can an agent change its strategy dynamically?
These properties are both important and potentially misleading, since
they are apparently intuitive, and everybody thinks he/she
understands them exactly
new ways to learn?
A number of areas insisting on this topic
Machine Learning, Abductive / Inductive Reasoning, Data Mining, Neural
Networks, . . .
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
65 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
66 / 130
Towards Agents
The Many Agents Around
Towards Agents
DAI Agents: Summing Up
The Many Agents Around
A PL Agent is Autonomous in Control
In the overall, a DAI agent has a number of important features
It has a (partial) representation of the world (state & laws)
Complexity is in the control flow
The need is to abstract away from control
It has a limited but dynamic perception of the world
It has inferential capabilities
An agent encapsulates control flow
It has a limited but well-known ability to change the world
An agent is an independent locus of control
It has a goal to pursue (or, a task to do)
An agent is never invoked—it merely follows / drives its own control
flow
An agent is autonomous in control
It is able to plan its course of actions, and to deliberate on what to
do actually
Once understood what this means, it might also be flexible and
adaptable
it is never invoked—it cannot be invoked
It learns, regardless of how this term is understood
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
67 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
A PL Agent is neither a Program, nor an Object
EASSS 2010, 23/8/2010
68 / 130
The Many Agents Around
A P&D Agent is Mobile [Fuggetta et al., 1998]
An agent is not bound to the Virtual Machine where it is born
Reversing the perspective
An agent is not merely a program
A program represents the only flow of control
it is not that agents are mobile
it is that objects are not
An agent represents a single flow of control within a multiplicity
Mobility is then another dimension of computing, just uncovered by
agents
An agent is not merely a “grown-up” object
An object is invoked, and simply responds to invocations
An agent is never invoked, and can deliberate whether to respond or
not to any stimulus
A new dimension requires new abstractions
New models, technologies, methodologies
To be used for reliability, limitations in bandwidth, fault-tolerance, . . .
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
69 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
Agents & MAS: An Introduction
Towards Agents
A Robotic Agent is Physical & Situated
EASSS 2010, 23/8/2010
70 / 130
The Many Agents Around
A SE Agent is an Abstraction
A robot is a physical agent
It has both a computational and a physical nature
complexity of physical world enters the agent boundaries, and cannot
be confined within the environment
A robot is intrinsically situated
Its intelligent behaviour cannot be considered as such separately from
the environment where the robot lives and acts
Some intelligent behaviour can be achieved even without any
symbolic representation of the world
non-symbolic approach to intelligence, or situated action approach
[Brooks, 1991]
An agent is an abstraction for engineering systems
It encapsulate complexity in terms of
information / knowledge
control
goal / task
intelligence
mobility
Agent-Oriented Software Engineering (AOSE)
engineering computational systems using agents
agent-based methodologies & tools
Reactive architectures come from here
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
71 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
72 / 130
Towards Agents
The Many Agents Around
Towards Agents
A MAS Agent is a Melting Pot
A MAS Agent is Autonomous
Putting everything together
A MAS agent is goal / task-oriented
The area of Multiagent Systems (MAS) draws from the results of the
many different areas contributing a coherent agent notion
The MAS area is today an independent research field & scientific
community
As obvious, MAS emphasise the multiplicity of the agents composing
a system
Summing up
It encapsulates control
Control is finalised to task / goal achievement
A MAS agent pursues its goal / task. . .
. . . proactively
. . . not in response to an external stimulus
So, what is new here?
agents are goal / task oriented. . .
. . . but also MAS as wholes are
Individual vs. global goal / task
A MAS agent is an autonomous entity pursuing its goal / task by
interacting with other agents as well as with its surrounding
environment
Its main features are
how to make them coexist fruitfully, without clashes?
autonomy / proactivity
interactivity / reactivity / situatedness
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Towards Agents
EASSS 2010, 23/8/2010
73 / 130
Andrea Omicini (Università di Bologna)
The Many Agents Around
EASSS 2010, 23/8/2010
74 / 130
EASSS 2010, 23/8/2010
76 / 130
Autonomy
Outline
Limited perception, limited capabilities
It depends on other agents and external resources for the achievement
of its goal / task
It needs to interact with other agents and with the environment
[Agre, 1995]
1
2
communication actions & pragmatical actions
3
A MAS agent lives not in isolation
It lives within an agent society
It lives immersed within an agent environment
4
Key-abstractions for MAS
agents
society
environment
5
Agents & MAS: An Introduction
Agents
Agents & MAS: An Introduction
Agents
A MAS Agent is Interactive
Andrea Omicini (Università di Bologna)
The Many Agents Around
EASSS 2010, 23/8/2010
75 / 130
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Autonomy
Agents & MAS: An Introduction
Agents
Autonomy
Autonomy as the Core of Agents
(Autonomous) Agents (Pro-)Act
Lex Parsimoniae: Autonomy
Autonomy as the essential feature of agents
Let us see whether other typical agent features may follow / descend
from this somehow
Action as the essence of agency
The etimology of the word agent is from the Latin agens
Any coherent notion of agency should naturally come equipped with a
model for agent actions
Computational Autonomy
Agents are autonomous as they encapsulate (the thread of) control
Control does not pass through agent boundaries
only data (knowledge, information) crosses agent boundaries
Agents have no interface, cannot be controlled, nor can they be
invoked
Looking at agents, MAS can be conceived as an aggregation of
multiple distinct loci of control interacting with each other by
exchanging information
Andrea Omicini (Università di Bologna)
So, agent means “the one who acts”
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
Autonomous agents are pro-active
Agents are literally active
Autonomous agents encapsulate control, and the rule to govern it
→ Autonomous agents are pro-active by definition
where pro-activity means “making something happen”, rather than
waiting for something to happen
77 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
78 / 130
Agents
Autonomy
Agents
Agents are Situated
Autonomy
Are Agents Reactive?
Situatedness and reactivity come hand in hand
Any model of action is strictly coupled with the context where the
action takes place
The model of action depends on the context
Any “ground” model of action is strictly coupled with the context
where the action takes place
Any action model requires an adequate representation of the world
An agent comes with its own model of action
Any agent is then strictly coupled with the environment where it lives
and (inter)acts
Any effective representation of the world requires a suitable balance
between environment perception and representation
→ Any effective action model requires a suitable balance between
environment perception and representation
however, any non-trivial action model requires some form of perception
of the environment—so as to check action pre-conditions, or to verify
the effects of actions on the environment
Agents are in this sense are intrinsically situated
Agents in this sense are supposedly reactive to change
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
79 / 130
Andrea Omicini (Università di Bologna)
Autonomy
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
80 / 130
Autonomy
Are Autonomous Agents Reactive?
(Autonomous) Agents Change the World
Reactivity as a (deliberate) reduction of proactivity
Action, change & environment
Whatever the model, any model for action brings along the notion of
change
An autonomous agent could be built / choose to merely react to
external events
It may just wait for something to happen, either as a permanent
attitude, or as a temporary opportunistic choice
In this sense, autonomous agents may also be reactive
an agent acts to change something around in the MAS
Two admissible targets for change by agent action
agent an agent could act to change the state of another agent
since agents are autonomous, and only data flow among
them, the only way another agent can change their state
is by providing them with some information
change to other agents essentially involves
communication actions
Reactivity to change
Reactivity to (environment) change is a different notion
This mainly comes from early AI failures, and from robotics
It stems from agency, rather than from autonomy—as discussed above
environment an agent could act to change the state of the
environment
change to the environment requires pragmatical actions
which could be either physical or virtual depending on
the nature of the environment
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
81 / 130
Autonomy
EASSS 2010, 23/8/2010
82 / 130
Autonomy
Autonomous Agents are Interactive
From autonomy to society
From a philosophical viewpoint, autonomy only makes sense when an
individual is immersed in a society
autonomy does not make sense for an individual in isolation
no individual alone could be properly said to be autonomous
This also straightforwardly explain why any program in any sequential
programming language is not an autonomous agent per se
[Graesser, 1996, Odell, 2002]
Autonomous agents live in a MAS
Single-agent systems do not exist in principle
Autonomous agents live and interact within agent societies & MAS
Roughly speaking, MAS are the only “legitimate containers” of
autonomous agents
Agents & MAS: An Introduction
Agents & MAS: An Introduction
Agents
Autonomous Agents are Social
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
83 / 130
Interactivity follows, too
Since agents are subsystems of a MAS, they interact within the global
system
by essence of systems in general, rather than of MAS
Since agents are autonomous, only data (knowledge, information)
crosses agent boundaries
Information & knowledge is exchanged between agents
leading to more complex patterns than message passing between
objects
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
84 / 130
Agents
Autonomy
Agents
Autonomous Agents Have Need a Goal, or a Task, or. . .
Agents govern MAS computation
By encapsulating control, agents are the main forces governing and
pushing computation, and determining behaviour in a MAS
Along with control, agent should then encapsulate the criterion for
regulating the thread(s) of control
Outline
1
2
3
Autonomy as self-regulation
The term “autonomy”, at its very roots, means self-government,
self-regulation, self-determination
4
“internal unit invocation” [Odell, 2002]
This does not imply in any way that agents needs to have a goal, or a
task, to be such—to be an agent, then
However, this does imply that autonomy captures the cases of
goal-oriented and task-oriented agents
where goals and tasks play the role of the criteria for governing control
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
85 / 130
5
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Defining Agents
Agents & MAS: An Introduction
Agents
“Weak” Notion of Agent
Defining Agents
EASSS 2010, 23/8/2010
86 / 130
Defining Agents
Are Autonomous Agents Intelligent?
Four key qualities [Wooldridge and Jennings, 1995]
Intelligence helps autonomy
Autonomous agents have to self-determine, self-govern, . . .
Weak agents are
Autonomous
Intelligence makes it easy for an agent to govern itself
While intelligence is not mandatory for an agent to be autonomous
Proactive
Reactive (to change)
however, intelligent autonomous agents clearly make sense
Social
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
87 / 130
Andrea Omicini (Università di Bologna)
Defining Agents
Agents & MAS: An Introduction
Agents
EASSS 2010, 23/8/2010
88 / 130
Defining Agents
Are Autonomous Agents Mobile?
Do Autonomous Agents Learn?
Mobility is an extreme form of autonomy
Autonomous agents encapsulate control
Learning may improve agent autonomy
By learning, autonomous agents may acquire new skills, improve their
practical reasoning, etc.
At the end of the story, control might be independent of the
environment where an agent lives—say, the virtual machine on which
it runs
Mobile autonomous agents clearly make sense
even though mobility is not required for an agent to be autonomous
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
89 / 130
In short, an autonomous agent could learn how to make a better use
out of its autonomy
Learning autonomous agents clearly make sense
learning, however, is not needed for an agent to be autonomous
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
90 / 130
Agents
Defining Agents
Agents
Defining Agents
“Strong” Notion of Agent
Summing Up
Mentalistic notion [Wooldridge and Jennings, 1995]
Agents are autonomous computational entities
Agents encapsulate control along with a criterion to govern it
From autonomy, many other features (more or less) stem
Strong agents have mental components such as
autonomous agents are interactive, social, proactive, and situated;
they might have goals or tasks, or be reactive, intelligent, mobile
they live within MAS, and interact with other agents through
communication actions, and with the environment with pragmatical
actions
Belief
Desire
Intention
Knowledge
...
Intelligent agents are core components for complex systems
Strong vs. weak notion of agency
Mobility
Intelligent agents and mental components
Intelligent autonomous agents are naturally (and quite typically) conceived
as strong agents
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Building Agents & MAS
EASSS 2010, 23/8/2010
91 / 130
Paradigm Shifts
2
3
4
5
Agents & MAS: An Introduction
Building Agents & MAS
Outline
1
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
92 / 130
Paradigm Shifts
Paradigm Shifts in Software Engineering
New classes of programming languages
New classes of programming languages come from paradigm shifts in
Software Engineeringa
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
new meta-models / new ontologies for artificial systems build up new
spaces
new spaces have to be “filled” by some suitably-shaped new (class of)
programming languages, incorporating a suitable and coherent set of
new abstractions
The typical procedure
first, existing languages are “stretched” far beyond their own limits,
and become cluttered with incoherent abstractions and mechanisms
then, academical languages covering only some of the issues are
proposed
finally, new well-founded languages are defined, which cover new spaces
adequately and coherently
a
SE here is taken in its broadest acceptation as the science of building software
system, rather than the peculiar “theoretically practical” discipline you find at
ICSE. . . Otherwise, one may easily see the thing the other way round
Agents & MAS: An Introduction
Building Agents & MAS
EASSS 2010, 23/8/2010
93 / 130
Paradigm Shifts
EASSS 2010, 23/8/2010
94 / 130
EASSS 2010, 23/8/2010
96 / 130
Programming Agents
Outline
Things are running too fast
New classes of programming languages emerge too fast from the
needs of real-world software engineering
However, technologies (like programming language frameworks)
require a reasonable amount of time (and resources, in general) to be
suitably developed and stabilised, before they are ready for SE practise
→ Most of the time, SE practitioners have to work with languages (and
frameworks) they know well, but which do not support (or,
incoherently / insufficiently support) required abstractions &
mechanisms
→ This makes methodologies more and more important with respect to
technologies, since they can help covering the “abstraction gap” in
technologies
Agents & MAS: An Introduction
Agents & MAS: An Introduction
Building Agents & MAS
The Problem of PL & SE Today
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
95 / 130
1
2
3
4
5
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Building Agents & MAS
Programming Agents
Building Agents & MAS
The Agent Abstraction
Programming Agents
Agent Architectures
MAS programming languages support agent architectures
MAS programming languages have agent as a fundamental abstraction
An agent programming language should support one (or more) agent
definition(s)
so, straightforwardly supporting mobility in case of mobile agents,
intelligence somehow in case of intelligent agents, . . . , by means of
well-defined language constructs
Required agent features play a fundamental role in defining language
constructs
Agents have (essential) features, but they are built around an agent
architecture, which defines both its internal structure, and its
functioning
An agent programming language should support one (or more) agent
architecture(s)
e.g., the BDI (Belief, Desire, Intention) architecture
[Rao and Georgeff, 1991]
A good introduction [Wooldridge, 2002]
Agent architectures influence possible agent features
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Building Agents & MAS
EASSS 2010, 23/8/2010
97 / 130
Andrea Omicini (Università di Bologna)
Programming Agents
Agents & MAS: An Introduction
Building Agents & MAS
Agent Observable Behaviour
EASSS 2010, 23/8/2010
98 / 130
Programming Agents
Agent Behaviour
Agent computation vs. agent interaction / coordination
Agents have both an internal behaviour and an observable, external
behaviour
MAS programming languages support agent model of action
Agents act
through either communication or pragmatical actions
Altogether, these two sorts of action define the admissible space for
agent’s observable behaviour
a communication language defines how agents speak to each others
a “language of pragmatical actions” should define how an agent can
act over its environment
Building Agents & MAS
EASSS 2010, 23/8/2010
so, what is new here?
the observable behaviour of an agent as a computational component is
driven / governed by the agent itself
e.g., intelligent agents do practical reasoning—reasoning about
actions—so that computation “computes” over the interaction
space—in short, agent coordination
not so much work on languages of pragmatical actions, however
Agents & MAS: An Introduction
computation the inner functioning of a computational component
interaction actions determining the observable behaviour of a computational
component
Agent autonomy is new
Agent programming languages should account for both sorts of
languages
Andrea Omicini (Università di Bologna)
this reproduce the “computation vs. interaction / coordination”
dichotomy of standard programming languages
[Wegner, 1997, Gelernter and Carriero, 1992]
99 / 130
Programming Agents
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Building Agents & MAS
EASSS 2010, 23/8/2010
Programming Agents
Agent (Programming) Languages
Agents Without Agent Languages
Languages to be, languages to interact
What if we do not have an agent language available?
For either theoretical or practical reasons, it may happen
Agent programming languages should be either / both
languages to be languages to define (agent) computational behaviour
languages to interact languages to define (agent) interactive
behaviour
Example: Agent Communication Languages (ACL)
EASSS 2010, 23/8/2010
adopt an agent definition, along with the agent’s required / desired
features
choose agent architecture accordingly, and according to the MAS needs
define a model and the languages for agent actions, both
communicative and pragmatical
map agent features, architecture, and action model / languages upon
the existing abstractions, mechanisms & constructs of the language
chosen
thus building an agent abstraction layer over our non-agent language
foundation
they just define how agents speak with each other
however, these languages may have some requirements on internal
architecture / functioning of agents
Agents & MAS: An Introduction
we may need an essential Prolog feature, or be required to use Java
What we do need to do: (1) define
What we do need to do: (2) map
ACL are the easiest example of agent languages “to interact”
Andrea Omicini (Università di Bologna)
100 / 130
101 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
102 / 130
Building Agents & MAS
Beyond Agents: Programming MAS
Building Agents & MAS
Outline
1
2
3
4
5
Beyond Agents: Programming MAS
Programming the Interaction Space I
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
The space of MAS interaction
Languages to interact roughly define the space of (admissible) MAS
interaction
Languages to interact should not be merely seen from the viewpoint
of the individual agent (subjective viewpoint)
The overall view on the space of (admissible) MAS interaction is the
MAS engineer’s viewpoint (objective viewpoint)
subjective vs. objective viewpoint over interaction
[Schumacher, 2001, Omicini and Ossowski, 2003]
Agents & MAS: An Introduction
Building Agents & MAS
EASSS 2010, 23/8/2010
103 / 130
Andrea Omicini (Università di Bologna)
Beyond Agents: Programming MAS
Agents & MAS: An Introduction
Building Agents & MAS
Programming the Interaction Space II
Coordination
Enabling / governing / constraining the space of MAS interaction
Coordination in short
Many different definitions around
A number of inter-disciplinary fields of study insist on the space of
(system) interaction
communication
dialogue / argumentation
coordination
organisation
security
e-institutions / normative systems
...
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Building Agents & MAS
104 / 130
Beyond Agents: Programming MAS
no time to explain everything in this course—we need to simplify, here
In short, coordination is managing / governing interaction in any
possible way, from any viewpoint
Coordination has a typical “dynamic” acceptation
that is, enabling / governing interaction at execution time
Coordination in MAS is even a more chaotic field
again, a useful definition to harness the many different acceptations in
the field is subjective vs. objective coordination—the agent’s vs. the
engineer’s viewpoint over coordination
EASSS 2010, 23/8/2010
105 / 130
Andrea Omicini (Università di Bologna)
Beyond Agents: Programming MAS
Agents & MAS: An Introduction
Building Agents & MAS
Organisation
EASSS 2010, 23/8/2010
106 / 130
Beyond Agents: Programming MAS
Security
Organisation in short
Again, a not-so-clear and shared definition
It mainly concerns the structure of a system
Security in short
You may not believe it, but also security means managing interaction
it is mostly design-driven
It affects and determines admissible / required interactions
permissions / commitments / policies / violations / fines / rewards /
...
Organisation is still enabling & ruling the space of MAS interaction
but with a more “static”, structural flavour
such that most people mix-up “static” and “organisation” improperly
Organisation in MAS is first of all a model of responsibilities & power
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
you cannot see / do / say this, you can say / do / see that
Typically, security has both “static” and “dynamic” flavours
a design-time plus a run-time acceptation
But tends to enforce a “negative” interpretation over interaction
“this is not allowed”
In this sense, it is dual to both coordination and organisation
So, in MAS at least, they should to be looked at altogether
typically based on the notion of role
requiring a model of communicative & pragmatical actions
Andrea Omicini (Università di Bologna)
EASSS 2010, 23/8/2010
107 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
108 / 130
Building Agents & MAS
Beyond Agents: Programming MAS
Building Agents & MAS
Beyond Agents: Programming MAS
Coordination, Organisation & Security
Micro- vs. Macro-level in MAS
Governing interaction in MAS
Micro-level: individual goals
Coordination, organisation & security all mean managing (MAS)
interaction
They all are meant to shape the space of admissible MAS interactions
to define its admissible space at design-time (organisation/security
flavour)
to govern its dynamics at run-time (coordination/security flavour)
Individual agents are built around some individual goal/task, which
represent the micro-level of MAS
Macro-level: social/global goals
Agent societies / MAS are built around some global goal/task, which
represent the macro-level of MAS
An overall view is then required
MAS middleware & infrastructures, normative systems, e-institutions,
. . . , often try to approach the overall problem of handling the MAS
interaction space with a uniform approach
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Issues in MAS
EASSS 2010, 23/8/2010
109 / 130
2
3
4
5
EASSS 2010, 23/8/2010
110 / 130
Current Lines of Development
Technologies
Developing usable technologies
A lot of experimental work, a number of nice agent technologies
developed
Reliable agent technologies are under development
Integration with common technology standards
Agents & MAS: An Introduction
Issues in MAS
EASSS 2010, 23/8/2010
111 / 130
Andrea Omicini (Università di Bologna)
Current Lines of Development
Agents & MAS: An Introduction
Issues in MAS
Methodologies
EASSS 2010, 23/8/2010
112 / 130
Current Lines of Development
Meta-models
How do we explain MAS to the masses – ordinary programmers, I mean?
Agents, societies, environment?
Providing usable methodologies and tools
Industry-level AOSE methodologies are needed
What about agent society as a first-class entity? What about MAS
environment?
AO development process should be addressed, too
Some theoretical work ongoing
The issue of tools is a key one
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Issues in MAS
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
Current Lines of Development
Outline
1
Micro-level vs. Macro-level
Making everything work smoothly is typically the main issue in
governing interaction in MAS
Agents & MAS: An Introduction
E.g., A&A meta-model [Omicini et al., 2008], based on the notions of
artifacts used by agents within workspaces relating topology to agent
activity
EASSS 2010, 23/8/2010
113 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
114 / 130
Issues in MAS
Current Lines of Development
Issues in MAS
Standards
Applications
Building a shared AO technology environment worldwide
FIPA started a decade ago
Sorry, a course on this is missing; but!
Complex systems, ok
OMG and IEEE (FIPA committee) are taking the lead today
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
Issues in MAS
EASSS 2010, 23/8/2010
Some papers, already [Pěchouček and Mařı́k, 2008]
115 / 130
2
3
4
5
Agents & MAS: An Introduction
Issues in MAS
EASSS 2010, 23/8/2010
116 / 130
EASSS 2010, 23/8/2010
118 / 130
Hot Topics
Simulation
Complex Software Systems
Toward a Paradigm Change
Away from Objects
Towards Agents
Moving Toward Agent Technologies
The Many Agents Around
Agents
Autonomy
Defining Agents
Building Agents & MAS
Paradigm Shifts
Programming Agents
Beyond Agents: Programming MAS
Issues in MAS
Current Lines of Development
Hot Topics
Andrea Omicini (Università di Bologna)
Andrea Omicini (Università di Bologna)
Hot Topics
Outline
1
Current Lines of Development
Using MAS for simulating complex systems
Real-world systems
Complex software systems
Simulation for SE
Agents & MAS: An Introduction
Issues in MAS
EASSS 2010, 23/8/2010
117 / 130
Andrea Omicini (Università di Bologna)
Hot Topics
Agents & MAS: An Introduction
Issues in MAS
Hot Topics
Self-*
Environment
Self-organising MAS
Handling unpredictable environment
Modelling environment as a first-class entity
Self-* techniques for MAS
Mapping natural & social systems
Environment abstractions
Self-* techniques for SE
From virtual environments to augmented reality
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
119 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
120 / 130
Issues in MAS
Hot Topics
Issues in MAS
Knowledge-Intensive Systems
Intelligent Complex Systems
Agents for KIS
Developing over distributed cognition
Intelligent MAS
Encapsulating intelligence
Hot Topics
within knowledge-intensive environments
within individual agents
Both intelligence and mobility are features, along with self-*
techniques
as well as within social abstractions
also adopting self-adaptation techniques
From ontologies to semantic coordination
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
121 / 130
Andrea Omicini (Università di Bologna)
Conclusion
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
122 / 130
Conclusion
What did we say?
Bibliography I
Agre, P. E. (1995).
Computational research on interaction and agency.
Artificial Intelligence, 72(1-2):1–52.
Special volume on computational research on interaction and agency, part 1.
Motivations & Issues for Agents and MAS
. . . time for questions. . .
Brooks, R. A. (1991).
Intelligence without representation.
Artificial Intelligence, 47:139–159.
. . . thanks for listening. . .
Fuggetta, A., Picco, G. P., and Vigna, G. (1998).
Understanding code mobility.
IEEE Transactions on Software Engineering, 24(5):342–361.
. . . and enjoy EASSS 2010!!
Gelernter, D. and Carriero, N. (1992).
Coordination languages and their significance.
Communications of the ACM, 35(2):97–107.
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
123 / 130
Andrea Omicini (Università di Bologna)
Conclusion
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
124 / 130
Conclusion
Bibliography II
Bibliography III
Graesser, S. F. A. (1996).
Is it an agent, or just a program?: A taxonomy for autonomous agents.
In Jörg P. Müller, Michael J. Wooldridge, N. R. J., editor, Intelligent Agents III Agent
Theories, Architectures, and Languages: ECAI’96 Workshop (ATAL) Budapest, Hungary,
August 12–13, 1996 Proceedings, volume 1193 of Lecture Notes In Computer Science,
pages 21 – 35. Springer.
Omicini, A. and Ossowski, S. (2003).
Objective versus subjective coordination in the engineering of agent systems.
In Klusch, M., Bergamaschi, S., Edwards, P., and Petta, P., editors, Intelligent Information
Agents: An AgentLink Perspective, volume 2586 of LNAI: State-of-the-Art Survey, pages
179–202. Springer.
Kuhn, T. S. (1996).
The Structure of Scientific Revolutions.
University of Chicago Press, 3rd edition.
Omicini, A. and Poggi, A. (2006).
Multiagent systems.
Intelligenza Artificiale, III(1-2):76–83.
Special Issue: The First 50 Years of Artificial Intelligence.
Odell, J. (2002).
Objects and agents compared.
Journal of Object Technologies, 1(1):41–53.
Omicini, A., Ricci, A., and Viroli, M. (2008).
Artifacts in the A&A meta-model for multi-agent systems.
Autonomous Agents and Multi-Agent Systems, 17(3):432–456.
Special Issue on Foundations, Advanced Topics and Industrial Perspectives of Multi-Agent
Systems.
O’Hare, G. M. and Jennings, N. R., editors (1996).
Foundations of Distributed Artificial Intelligence.
Sixth-Generation Computer Technology. John Wiley & Sons Ltd., hardcover edition.
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
125 / 130
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
126 / 130
Conclusion
Conclusion
Bibliography IV
Bibliography V
Omicini, A. and Rimassa, G. (2004).
Towards seamless agent middleware.
In IEEE 13th International Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises (WET ICE 2004), pages 417–422, 2nd International Workshop
“Theory and Practice of Open Computational Systems” (TAPOCS 2004), Modena, Italy.
IEEE CS.
Proceedings.
Pěchouček, M. and Mařı́k, V. (2008).
Industrial deployment of multi-agent technologies: review and selected case studies.
Autonomous Agents and Multi-Agent Systems, 17(3):397–431.
Special Issue on Foundations, Advanced Topics and Industrial Perspectives of Multi-Agent
Systems.
Rao, A. S. and Georgeff, M. P. (1991).
Modeling rational agents within a BDI architecture.
In Allen, J. F., Fikes, R., and Sandewall, E., editors, 2nd International Conference on
Principles of Knowledge Representation and Reasoning (KR’91), pages 473–484, San
Mateo, CA. Morgan Kaufmann Publishers.
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
127 / 130
Russell, S. J. and Norvig, P. (2002).
Artificial Intelligence: A Modern Approach.
Prentice Hall / Pearson Education International, Englewood Cliffs, NJ, USA, 2nd edition.
Schumacher, M. (2001).
Objective Coordination in Multi-Agent System Engineering. Design and Implementation,
volume 2039 of LNCS.
Springer.
Viroli, M. and Omicini, A. (2006).
Coordination as a service.
Fundamenta Informaticae, 73(4):507–534.
Special Issue: Best papers of FOCLASA 2002.
Wegner, P. (1997).
Why interaction is more powerful than algorithms.
Communications of the ACM, 40(5):80–91.
Wooldridge, M. and Jennings, N. R. (1995).
Intelligent agents: Theory and practice.
Knowledge Engineering Review, 10(2):115–152.
Andrea Omicini (Università di Bologna)
Conclusion
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
128 / 130
Conclusion
Bibliography VI
Agents & MAS: An Introduction
Wooldridge, M. J. (2002).
An Introduction to MultiAgent Systems.
John Wiley & Sons Ltd., Chichester, UK.
Andrea Omicini
andrea.omicini@unibo.it
Zambonelli, F. and Parunak, H. V. D. (2003).
Towards a paradigm change in computer science and software engineering: A synthesis.
The Knowledge Engineering Review, 18(4):329–342.
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
129 / 130
Alma Mater Studiorum—Università di Bologna
12th European Agent Systems Summer School
Saint-Etienne, France
23 August 2010
Andrea Omicini (Università di Bologna)
Agents & MAS: An Introduction
EASSS 2010, 23/8/2010
130 / 130