Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Agents & MAS: An Introduction

2010

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