Agent Oriented Programming EEL 5937 Multi Agent Systems

  • Slides: 17
Download presentation
Agent Oriented Programming EEL 5937 Multi Agent Systems Lecture 26, April 10, 2003 Lotzi

Agent Oriented Programming EEL 5937 Multi Agent Systems Lecture 26, April 10, 2003 Lotzi Bölöni EEL 5937

Software development methodologies • Progress in software engineering has been made through new, powerful

Software development methodologies • Progress in software engineering has been made through new, powerful abstractions – – Procedural abstraction Abstract data types Objects Components – – Agents flexible, autonomous behaviour The richness of interactions Complexity of the agents organizational structures Mobility and mutation • If agents are to realize their potential as a software engineering paradigm, it is necessary to develop techniques specifically tailored to them. • Current approaches (e. g. rational unified process) fails to capture the EEL 5937

Why not object oriented techniques? • While there are superficial similarities between agents and

Why not object oriented techniques? • While there are superficial similarities between agents and objects – But the granularity is to fine grained, operating at the wrong level of abstraction. – An agent so represented may appear strange: maybe a single public function “receive” which encapsulates everything. • Secondary models such as use cases and interaction diagrams can be usefully used. • But the object model and the class diagram does not help us with agents. – Because the dependencies between agents are not static. EEL 5937

Agent methodologies • Numerous methodologies were proposed, which can be categorized as follows: •

Agent methodologies • Numerous methodologies were proposed, which can be categorized as follows: • Techniques using OO modelling techniques as their basis (GAIA, Agent UML, the BDI technique proposed by Kinny et. al. ) • Methodologies based on techniques form knowledge engineering, providing formal, compositional modelling languages suitable for verification of system structure and function. • Methodologies taking existing formal languages such as Z, and specify agents systems in this framework. • Methodologies developed specifically for agent systems. E. g. Cassiopeia based on the Contract Net model. EEL 5937

GAIA EEL 5937

GAIA EEL 5937

What is it? • A software methodology targeted to the analysis and design of

What is it? • A software methodology targeted to the analysis and design of agent-based systems. • It is intended to allow an analyst to go systematically from a statement of requirements to a design that is sufficiently detailed to be implemented directly. • It is loosely based on object oriented technologies, such as FUSION. • Analysis and design can be seen as a process of developing increasingly detailed models of the system to be constructed. EEL 5937

Models of the Gaia methodology EEL 5937

Models of the Gaia methodology EEL 5937

What kind of agents are handled • Coarse-grain agent systems. E. g. each agent

What kind of agents are handled • Coarse-grain agent systems. E. g. each agent ~= Unix process. • The goal is to obtain a system that maximizes some quality measure, but which might be sub-optimal for individual agents. Gaia is not intended for systems that admit the possibility of true conflict. • Agents can be heterogeneous. • The organization structure of the system is static, inter-agent relationships do not change over time. • The abilities of the agents and their services do not change over time. • The system contains a relatively small number of agents < 100. EEL 5937

Analysis concepts EEL 5937

Analysis concepts EEL 5937

Concepts: • System: e. g. society of agents • Roles – E. g. president,

Concepts: • System: e. g. society of agents • Roles – E. g. president, mailman, secretary – In an actual instantiation, these will be instantiated by actual persons / agents. – An agent can fulfill multiple roles, the same role can be taken on by multiple agents. • A role is defined by four attributes: – – Responsibilities: liveness properties + safety properties Permissions: == resources Activities Protocols: e. g. Dutch auction, English auction etc. EEL 5937

The roles model • Identifies the key roles of the system. • Here a

The roles model • Identifies the key roles of the system. • Here a role can be viewed as a more or less abstract description of an entity’s expected functionality. • Two things to specify: • The permissions/rights associated with the role – A role will have associated with it certain permissions, related to the type and amount of resources that can be exploited when carrying on a role. • The responsibilities of the role – A role is created in order to do something. That is described here. EEL 5937

The interaction model • There are inevitably dependencies and relationships between roles in a

The interaction model • There are inevitably dependencies and relationships between roles in a multi-agent organization. • In Gaia, such links are represented in the interaction model. • This model consists of a set of protocol definitions, one for each type of inter-role interaction. • Does not specify all the protocols down to the every message interchanged. EEL 5937

Protocol definition • A protocol definition consists of the following attributes: • Purpose: brief

Protocol definition • A protocol definition consists of the following attributes: • Purpose: brief text description of the nature of the interaction. • Initiator: the role who is starting it. • Responder: the role(s) with which the initiator interacts. • Inputs: information supplied by the initiator while enacting the protocol • Outputs: information supplied by/to the protocol responder during the interaction. • Processing: brief textual description of any processing happening during the protocol. EEL 5937

Analysis • 1. Identify the roles in the system. – Output: prototypical roles model.

Analysis • 1. Identify the roles in the system. – Output: prototypical roles model. • 2. For each role identify and document the associated protocols. – Output: interaction model. • 3. Using the protocol model as a basis, elaborate the roles model. – Output: fully elaborated roles model, which documents the key roles occuring in the system, their permissions and responsibilities, together with the protocols and activities in which they participate. • 4. Iterate stages 1 -3. EEL 5937

Design • “Classical design”: transform the abstract models derived during analysis into sufficiently low

Design • “Classical design”: transform the abstract models derived during analysis into sufficiently low level of abstraction that it can be implemented. • In Gaia: the goal of the design process is to transform the analysis models (roles, interaction) such that traditional design techniques (object oriented design, usually) may be applied in order to implement the agents. – How a society of agents cooperate to realize higher level goals – What is required of each agent – How the agent realizes its services is the goal of lower level (program level) design. EEL 5937

Models in the Gaia design process • Agent model – – The agent types

Models in the Gaia design process • Agent model – – The agent types that will make up the system Agent instances which will be instantiated Agent type tree: leafs are roles, agents are other nodes No inheritance • Services model – The main services that are required by each agent to realize the agent’s role. – For each service define inputs, outputs, preconditions, postconditions • Acquintance model – Documents the lines of communication between agents. – Does not define the messages sent EEL 5937

The Gaia design process • Create an agent model: – Aggregate agent roles into

The Gaia design process • Create an agent model: – Aggregate agent roles into agent types, and refine to form an agent type hierarchy – Document the instances of each agent type using instance annotations. • Develop a services model, by examining activities, protocols, and safety and liveness properties of roles. • Develop an acquaintance model from the interaction model and agent model. EEL 5937