Design and Analysis Methods for Multi-Agent Systems California State University , Los Angeles Dr. Jiang Guo Fall 2010 Presented by : Behin Behdinian Sanaz Bonakdar Kate Dehbashi Monali Bhavsar Amee Joshi Outline Background of Multi Agent System History Background Agents Multi Agent System Overview Properties Features Applications Advantage Current Projects and Future Works AOSE AOSE Methodologies: Gaia AAII Agent UML DPMAS Available Tools MAGE AUMP VAStudio Mdeployer Outline Technical Issues on MAS Development process of MAS key issues where the current state-of-the-art is lacking Agent oriented methodologies weaknesses The lack of attraction for methodology user to use the agent-oriented paradigm The lack of attraction for methodology user to use existing agent-oriented methodologies Solutions Solutions of three key issues where the current state-of-the-art is lacking Agent oriented methodologies Solutions Solution to agent-oriented paradigm Solution to existing agent-oriented methodologies Agent OPEN method Feature-based method Introduction A multi-agent system (MAS) is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems which are difficult or impossible for an individual agent or monolithic system to solve. History The idea of agent-based modeling was developed as a relatively simple concept in the late 1940s. Since it requires computation-intensive procedures, it did not become widespread until the 1990s Background Von Neumann machine Cellular Automata Game of Life Thomas Schelling’s segregation model(1971) Prisoner’s Dilemma (early 1980) Flocking models (late 1980) John Holland & John H. Miller (1991) Background StarLogo (1990) SWARM and Netlogo (mid 1990) Repast (2000) Samuelson(2000, 2005) Bonabeau(2002) Samuelson and Macal(2006) The study of multi-agent systems Agent-oriented software engineering Beliefs, Desires, and Intentions (BDI) Cooperation and Coordination Organization Communication Negotiation Distribution problem solving Multi-agent learning Scientific communities Dependability and fault-tolerance What is an Agent an agent is a computer system capable of autonomous action in some environment, in order to achieve its delegated goals. Agent characteristic in a multiagent system Autonomy: the agents are at least partially autonomous Local views: no agent has a full global view of the system Decentralization: there is no designated controlling agent Type of Agent 1956–present: Symbolic Reasoning Agents Its purest expression, proposes that agents use explicit logical reasoning in order to decide what to do. 1985–present: Reactive Agents Problems with symbolic reasoning led to a reaction against this — led to the reactive agents movement, 1990-present: Hybrid Agents Hybrid architectures attempt to combine the best of symbolic and reactive architectures. Simple reflex agent Learning agent Multi-agent systems Typically multi-agent research refers to software agents However, the agents in a multi-agent system could be robots humans human teams combined human-agent teams. Overview Multi-agent Multi-agent systems can manifest self- organization and complex behaviors even when the individual strategies of all their agents are simple. Agents can share knowledge using any agreed language, within the constraints of the system's communication protocol. Knowledge Query Manipulation Language (KQML) FIPA’s Agent Communication Language (ACL). MAS Properties MAS is "self-organized systems” and tend to find the best solution for their problems "without intervention". Physical phenomena, such as energy minimizing, where physical objects tend to reach the lowest energy possible, within the physical constrained world. MAS Main feature Flexibility multi-agent system can be Added to, Modified Reconstructed Do not need to rewrite detailed of the application. These systems also tend to be rapidly Self-recovering Failure proof Self managed features Applications of Multi-Agent Research aircraft maintenance electronic book buying coalitions military demining wireless collaboration and communications military logistics planning supply-chain management joint mission planning financial portolio management Advantages of a Multi-Agent MAS distributes computational resources and capabilities across a network of interconnected agents. Whereas a centralized system may be plagued by resource limitations, performance bottlenecks, or critical failures MAS is decentralized and thus does not suffer from the "single point of failure" problem associated with centralized systems. Advantages of a Multi-Agent MAS efficiently retrieves, filters, and globally coordinates information from sources that are spatially distributed. MAS provides solutions in situations where expertise is spatially and temporally distributed. MAS enhances overall system performance, specifically along the dimensions of computational efficiency, reliability, extensibility, robustness, maintainability, responsiveness, flexibility, and reuse. Current Projects & Future Works AOSE: Agent Oriented Software Engineering AOSE Methodologies: Gaia: The Gaia Methodology for Agent-Oriented Analysis and Design AAII: Formal models and decision procedures for multi-agent systems Agent UML: A formalism for specifying multi-agent software systems DPMAS: A Design Method for Multi-agent System using Agent UML AOSE AOSE: Agent Oriented Software Engineering The agent-oriented (AO) :the ability to construct flexible systems with complex behavior by combining highly modular components Agent-oriented development toolkits mostly use in industry Agent-orientation is a paradigm for analysis, design and system organization. AOSE is a new field, methodologies far less established than object-oriented software engineering methods AOSE Methodologies: Gaia AAII Knowledge Level Agent-oriented modeling borrows from the study of human organizations and societies in describing the way in which agents in a Multi-Agent System work together And from artificial intelligence (AI) to describe the agents themselves. These additional concepts can be defined in terms of object-oriented ones which deal with ideas and structures at a higher level:” the knowledge level” Knowledge Level Categories : ConcreteEntity, Activity, and MentalStateEntity. Concrete Entity Types Agent: An atomic autonomous entity that is capable of performing some useful function. Organization: An Organization is a group of Agents working together to a common purpose. Role: A Role describes the external characteristics of an Agent Resource: Resource is used to represent non-autonomous entities such as databases or external programs Activity Types Task: A Task is a knowledge-level unit of activity with a single prime performer Interaction Protocol: Defines a pattern of Message exchange associated with an Interaction Mental State Entity Type Goal: A Goal associates an Agent with a Situation. Two other simple but important concepts used in AOSE using MESSAGE/UML are: Information Entity and Message: A Message is an object communicated between Agents Information Entity is a content of the Message Figure 1 gives an informal agent-centric overview of how these concepts are interrelated, showing their relationship to the agent concept AOSE Methodologies AOSE: Methodologies Analysis and Design methodologies Set of model and guidelines that aid in understanding the system Two approaches: Adoption & Extensions of OO approach AAII Adoption of other techniques Gaia Gaia Inspired by OO concepts Also provides agent-specific set of concepts Concepts Abstract: used during conceptualization Roles, Permissions, responsibilities,… Concrete: direct counterparts in implementation Agent types, Services,… Analyst moves from abstract to concrete concepts Agent-based system: artificial society Gaia: Abstract Concepts Gaia: Analysis Role Schema Identifies key roles in the system Interaction model Represents links between roles Set of protocol definitions consisting of Purpose Initiator Responder Inputs/outputs processing Gaia: Role Schema Gaia: Role Schema example Gaia Interaction model example Gaia: Design Create an agent model Documents variant agent types and instances of each agent Aggregates roles into agent types Develop a service model Specifies functions of an agent Develop an acquaintance model Document lines of communication between the agents Purpose: identify communication bottlenecks Nodes: agents Arrows: communication pathway Gaia: acquaintance model Gaia Usage Appropriate for large-scale real-world applications in which Agents are coarse-grained computational systems Agents are heterogeneous System organization structure is static Ability of agents and services are static System contains small number of agent types AAII Extension of OO methods based on experience of Australian AI institute with BDI-like systems Example: air-traffic management system Internal models: internal detail of agents Agents have mental attitudes: beliefs (informative) desire (Objective to be accomplished) intention (deliberative component) External models Concerns with interactions not internals of agents AAII: Analysis and Design Identify roles and develop agent class hierarchy Identify responsibilities, services and goals Determine plans that can be used to achieve each goal Determine information requirements necessary to represent and process plans and turn them into appropriate belief structure for the agents AAII: Decision Tree AAII uses decision tree to model the behavior of the system Choice nodes Chance nodes Agent UML Agent UML: Why Created? At the beginning, AOSE was not completely accepted in the industry FIPA and OMG cooperated to increase the acceptance of AOSE in industry (1999-2000). How? Relating to OO software development standard Supporting the development environment for the software lifecycle First result of the cooperation Agent UML Agent UML : What is it? An extension to the UML Agent: Active Object that can say “go” and “no” More sophisticated capabilities: Mobility Reasoning about knowledge Promotes standard representations of UML to support agent software Example: Protocol diagrams “Protocol diagrams” To show multi agent reaction Agent UML: Protocol Diagram UML extension for the specification of “Agent Interaction Protocol” AIP Describes a communication pattern, with Allowed sequence of messages between agents Constraints on the content of the message Example: Ticket market Uses FIPA English-Auction Protocol Protocol Diagrams: Elements Agents/Roles: Lifeline/Interactions May split up to show decisions Protocol Diagrams: Elements (Cont.) Nested/Interleaved Protocols Protocol Diagrams: Elements (Cont.) Asynchronous /Synchronous / Mobile messages Massage Label Communicative Act Arguments for additional information DPMAS DPMAS: A Design Method for Multi-agent System using Agent UML DPMAS uses agent UML, an extension of the UML in Object Oriented domain, as its modeling language DPMAS tells designers how to design a multi-agent system step by step, specially using agent unique concepts It provides a group of graphs to help designers in modeling multi-agent systems DPMAS suggests a design process that covers requirement specification, task specification, agent specification and deployment description DPMAS is a design method closer to real software development. A tool called AUMP has been developed to aid designers in drawing graphs used in DPMAS AUMP is the design platform of the well known MAGE agent environments DPMAS Concepts An agent is an instance of an agent class. Agent class is the software implementation of an autonomy entity and the basic unit of source codes organization. An agent achieves its goal through decision, action and interaction. An agent goal is relevant to a system task. A task is an item of work that users may require the system to do. Usually, a task is performed by a sequence of actions. A task needs the cooperation of several roles. Each role can be played by an agent. An agent can play multiple roles because it can participate in multiple tasks and play different roles in different tasks. DPMAS Process Domain description: describes the system functions using Uses case graph. Agent finding: determines how many agents the system need, what types they are, and the interactive relationships between them. Task specification: describes how the system functions are fulfilled. Activity task : needs more actions than interaction activity graph is used to describe the actions firstly, and then protocol graph may be used to describe the interactions between involved roles Interaction task : needs more interactions than actions Interaction graph is used to describe protocol firstly and followed with activity graph. Ontology specification: defines the knowledge representation in the system. The knowledge representation is used when an agent needs to make decisions and explain the messages of other agents. DPMAS Process Agent specification: gives the detail definition of every agent class. Code generation: is performed automatically Deployment: shows the runtime configuration of the system using deployment graph, including the physical position, the possible clone and move of every agent. DPMAS Process Figure Future Works Future works will be focused on model reuse and code reuse. A model template library and a code template library are under development. With these libraries, designers will be able to select an existing model template if it suits the functional requirement well. This will save a lot of design time , many models don’t need be design from very beginning Available Tools Multi-Agent Platforms AgentBuilder is an integrated tool suite for constructing intelligent software agents Jack is an environment for building, running and integrating commercial JAVA-based multi-agent systems using a component-based approach Zeus is an integrated environment for the rapid building of collaborative agents applications MAGE ( Multi-AGent Environment ) is an agent oriented programming environment MAGE: An Agent-Oriented Software Engineering Environment It provides complete tools to support agent-oriented requirement analysis, design, development and deployment The idea is to create a relatively general purpose and customizable toolkit that could be used by software users Modeling tool AUMP Step1: Use Case Model to describe system functions Step 2: behavior modeling which is used to resolve how to achieve the Use Cases .There are six types of agent behavior model : Activity Model, State Chart Model, Interaction Protocol Model, Plan Model, Inference Model and Reactive Rule Model Step 3: agent modeling which is used to demonstrate the agent system structure Step 4: system deployment modeling: describes how agents are distributed and how the system runs AUMP : A DPMAS Tools Support Development tool VAStudio A visual and integrated development environment for developing MAS Agent-based programming environment Friendly and easy-to-use interface It directly loads the result of design process of AUMP and generate the corresponding agent or MAS It provides plenty of agent templates It provides plenty of behavior components which can be used to buildup agents. Deployment tool MDeployer It provides powerful functions for users to use: Start New Agent, Kill Agent, Send Message It provides a tool through which users can deploy and manage the whole system through web Future Works MAGE is a powerful development environment for autonomous computing Future works will be focused on autonomic computing and agent-based grid Application : e-Business Technical Issues on Multi Agent system Development process of MAS We consider the state-of-the-art development process to be as follows: Designing organization and individual agents using an AOSE methodology Taking the resulting design and (manually) coding the agents in some AOPL, based on the design Debugging the system using message tracing and agent inspectors Possibly using model checking on agent code Key Issues There are three key issues where the current state-of-the-art is lacking, : The implementation is developed completely manually from the design. This creates the possibility for the design and implementation to diverge, which tends to make the design less useful for further work in maintenance and comprehension of the system. Code and design are completely different beasts. Current state-of-art is lacking in linking design and code. So, we need to remove inconsistencies between design and code. i.e. eliminate the ‘gap’ between them. Integrating code and design we need the common language. And for that we need the many AOPL’s. Having to develop link between each possible design tool and each possible language, need of single methodology and single AOPL. More practical approach is to standardize interchange formats and API’s to remain diverse so it will require more efforts and collaboration within the AOSE and ProMAS communities. Continue… Although present AOPLs provide powerful features for specifying the internals of a single agent, they mostly only provide messages as the mechanism for agent interaction. AOPLs are weak in allowing the developer to model the environment within which the agents will execute. AOPL’s focus on internals of agents but neglect the social and organizational aspects. Reason for neglecting these issues is the lack of clear and computational semantics. Work on those areas does not focus on designing agent programming languages. Current implementation of AOPLs at message level gives ‘brittle’ interactions also, designing and implementing at this level makes it very hard to verify /debug & modify interaction between agents. Continue… In most of the practical approaches for verification of multi- agent systems, verification is done on code. More work is required in verification of agent design artifacts. As verification & validation done on code, MAS are hard to debug also be difficult to detect or produce the exact circumstances that cause problem. Large number of agents makes things more difficult to consider the consequences of changes for participating agents. Because each agent has complex structure which not only inspected but need to be understood. So typically a large number of messages analyzed in conjunction with agents. In fact, all the work on model checking for multi-agent systems is still in early stages so not really suitable for use on large and realistic systems. Agent oriented methodologies weaknesses Agent-oriented methodologies weaknesses can be considered in two different aspects: The lack of attraction for methodology user to use the agent-oriented paradigm The lack of attraction for methodology user to use existing agent-oriented methodologies The lack of attraction for methodology user to use the agent-oriented paradigm Lack of agent-oriented programming languages: Although programming languages are only part of the development story, industry is reticent to adopt a new paradigm at the conceptual level if it is impossible to implement these ideas in a currently acceptable, commercially viable programming language Lack of explicit statement of agent-orientation advantages: The benefits of agent technology must be declared by introducing the cases where AOSE paradigm succeeds and other existing paradigms fail Continue… Relative difficulty of learning concept related to agent oriented paradigm (AI): As an example the usage of Gaia agent-oriented methodology requires learning logic, which decreases the adoption of this methodology, since usually methodology users are not familiar with logic and do not tend to learn it. High cost of AO acquisition: The acquisition of this paradigm by software development organizations requires a high cost for training the development team. The lack of attraction for methodology user to use existing agent-oriented methodologies Relative immaturity: The AO paradigm immaturity, which is a relative matter compared to other paradigms, is clearly because of it newness. Marketing of multiple AO methodologies: As long as the availability and marketing of multiple agent-oriented methodologies are in competitive manner, this feature is an obstacle to their widespread industrial adoption, since it leads to confusion of methodology users Continue… Lack of confrontation with wrong expectation of one size- fits-all methodology: No unique specific methodology can be general enough to be useful to every project without some level of personalization. Users usually think a unique methodology has general usage and ignore the fact that each methodology is designed for some specific goals . Thus when a specific methodology does not fit their requirements and leads to project failure they conceive the problem from the side of methodology whereas the problem is with the wrong methodology selection . Agent-oriented paradigm should support its user with the awareness and facilities to find the proper methodology for his project from existing methodologies or to change the existing instances in order to fit the project. Continue… Lack of confrontation with user willingness to setup an owned project-specific methodology: The high number of existing AO methodologies can be seen as a proof that methodology users, often prefer to setup an owned methodology specially tailored for their needs instead of reusing existing ones. AO paradigm should support its user with the awareness and facilities to avoid setting up his methodology from the scratch, but to change the existing instances in order to fit the project. Solutions of Technical issues on Multi Agent Systems Solutions of three key issues where the current state-of-theart is lacking Working on developing techniques and tools that allow for designs and code to be strongly integrated with consistency checking and change propagation. Developing better integrated designs and code would be facilitated by AOPLs being closer to the design in terms of covered concepts. Develop better techniques debugging and verification. and tools for Agent oriented methodologies Solutions Agent-oriented methodologies solutions can be considered in two different aspects: Solution to agent-oriented paradigm Solution to existing agent-oriented methodologies Solution to agent-oriented paradigm Software development organizations use an evaluation framework for agent-oriented methodologies. This approach would: (i) help to improve existing methodologies by identifying their weaknesses, (ii) make the availability of multiple methodologies an advantage (having wide range of method fragment options), (iii) do away with the wrong expectation on one-size-fits-all methodology, and (iv) answer to user willingness to setup an owned project-specific methodology. Continue… In CMM organizational maturity framework 5 maturity levels are distinguished 1.Initial 2.Repeatable 3.Defined 4.Managed 5.Optimizing Solution to existing agentoriented methodologies Agent OPEN method: OPEN, which stands for Environment and Notation. Object-oriented Process, OPEN Process Framework (OPF) consists of: (i) a process metamodel of framework from which can be generated an organizationally specific process (ii) a repository and (iii) a set of construction guidelines. The major elements in OPF metamodel are Work Units (Activities, Tasks and Techniques), Work Products, Producers and two auxiliary ones (Stages and Languages) Continue… Feature-based method: proposed a modular approach enabling developers to build customized project-specific methodologies from AOSE features. Differing from Agent OPEN approach, this method does not regard it necessary to rely on the formal metamodel of method fragments. This method identifies and standardizes the common elements of the existing methodologies. Continue… The common elements could form a generic agent model on which specialized features might be based. The remaining parts of the methodologies would represent added-value that the methodologies bring to the common elements, and should be componentized into modular features. The small granularity of features allows them to be combined into the common models in a flexible manner. By conforming to the generic agent model in the common elements, it is expected that the semantics of the optional features remain consistent. References Zhikun ZHAO, Yinglei XU , "DPMAS: A Design Method for Multi-agent System using Agent UML", 2010 Third International Conference on Information and Computing Bernhard Bauer, J¨org P. M¨uller, and James Odell, “Agent UML: A formalism for specifying multi agent software systems”, In P. Ciancarini and M. Wooldridge, editors, Agent-Oriented Software Engineering — Proceedings of the First International Workshop(AOSE-2000). Springer-Verlag: Berlin, Germany, 2000. Giovanni Caire et al, “Agent Oriented Analysis using MESSAGE/UML”, Second International Workshop, AOSE 2001,Montreal, Canada, May 29, 2001. Carole Bernon, Massimo Cossentino, Juan Pavón “An Overview of Current Trends in European AOSE Research” June 31, 2005 Wei Huang , Elia El-Darzi and Li JinSchool of Computer Science, University of Westminster Watford Road, London HA1 3TP, United Kingdom, “Extending the Gaia Methodology forthe Design and Development of Agent-based Software Systems” Wooldridge, M., Jennings, N.R., and Kinny, D, “The Gaia Methodology for AgentOriented Analysis and Design”, Journal of Autonomous Agents and Multi-Agent Systems. 3,3 (2000), 285-312. Zhongzhi Shi, Haijun Zhang, Yong Cheng, Yuncheng Jiang, QiujianSheng, Zhikung Zhao, “MAGE: an agent-oriented software engineering environment”, Proceedings of the Third IEEE International Conference on Cognitive Informatics, 2004, pp:250-257. References Rafael H. Bordini, Mehdi Dastani, and Michael Winikoff, Current Issues in Multi-Agent Systems Development(Invited Paper). O. Zohreh Akbari, A survey of agent-oriented software engineering paradigm: Towards its industrial acceptance, January 13, 2010.