sif8072 distributed artificial intelligence and intelligent agents agent/ 27 february 2003 lecture...

44
SIF8072 Distributed Artificial Intelligence and Intelligent Agents http://www.idi.ntnu.no/~agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering Lecturer: Sobah Abbas Petersen Email: [email protected]

Post on 20-Dec-2015

233 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

SIF8072 Distributed Artificial Intelligence

andIntelligent Agents

http://www.idi.ntnu.no/~agent/

27 February 2003

Lecture 7: Agent-oriented Software Engineering

Lecturer: Sobah Abbas Petersen

Email: [email protected]

Page 2: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Lecture Outline

1. When is an agent-based solution appropriate?

2. AOSE Methodologies:

1. AAII (Kinny)

2. Gaia (Wooldridge et. al.)

3. Agent UML (Bauer et. al.)

4. Layered Agent Pattern Language (Kendall)

3. Formal Methods for AOSE

4. Pitfalls in agent development

Page 3: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

References - Curriculum

• Wooldridge: ”Introduction to MAS”,

– Chapter 10

• Not in curriculum:

– M. Wooldridge, N. R. Jennings, and D. Kinny. The Gaia Methodology

for Agent-Oriented Analysis and Design. In Journal of Autonomous

Agents and Multi-Agent Systems. 3(3):285-312. 2000.

– Bauer, B., Muller, J. P. and Odell, J., Agent UML: A Formalism for

Specifying Multi-agent Interaction, in Proceedings of Agent-oriented

Software Engineering, P. Ciancarni and M. Wooldridge (eds.), Springer

Verlag, Berlin, 2001, pp. 91-103.

Page 4: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Terminology of Agent-Oriented Software Engineering

Page 5: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent-oriented Software Engineering (AOSE)

• Concerns methodologies to support the

development of agent systems.

• Such methodologies have been successful in the

development of OO systems:

– e.g. OMT, UML

Page 6: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

When is an agent-based solution appropriate?

• The environment is open, or atleast highly

dynamic, uncertain or complex

• Agents are a natural metaphor

• Distribution of data, control and expertise

• Legacy systems

Page 7: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Criticisms of Existing Approaches

• Approaches such as object-oriented design fail to

capture:

– An agent’s flexible, autonomous problem-solving

behaviour

– The richness of an agent’s interactions

– The complexity of an agent’s organisational structures

Page 8: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent-oriented Analysis & Design Techniques

• An analysis and design methodology is intended

to assist in:

– Gaining an understanding of a particular system

– Designing the system.

Models

Guidelines

Methodology

Page 9: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent-oriented Models

• Agent-oriented models are intended to formalise

understanding of a system under consideration.

Model(abstract)

Implementation(concrete/Detailed)

Analysisand design

process

Page 10: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Methodologies

• Methodologies for the analysis and design

can be divided into 2 groups.

Methodologies

Inspired from O-O

methodologies, e.g.

•AAII Methodology (Kinny)•Gaia (Wooldridge et. al.)•Agent UML (Odell)

Adapts knowledge engineering

or other techniques, e.g.

•DESIRE (Blazer et. al)

Page 11: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

AAII Methodology 1(Kinny et. al.)

• Aim: to construct a set of models, which

when fully elaborated, define an agent

system specification.

Page 12: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

AAII Methodology 2

AAII Methodology

External Model(concerned with the

agents and relationships between them)

Internal Model(concerned with the

internals: beliefs, desires, intentions)

Agent Model

Agent class model

Agent instance model

Interaction Model

Page 13: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

AAII Methodology 3

•Identify relevant roles in domain

•Develop an agent class hierarchy

•Role: weather monitor

i jweather

•Identify responsibilities for each

roles:•Services required•Services provided

•Determine goals associated with each

service

•Goals:

•Find out current weather

•Make agentj aware of it

•For each goal, determine plan

•Plan:

•Send message to agentj

•Determine belief strucure of system•How to represent agenti’s and

agentj’s beliefs

Methodology Example

Page 14: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 1(Wooldridge et. al.)

• Motivation: Existing methodologies don’t support agents, in

particular, interactions and agent organisations.

• Borrows terminology from object-oriented analysis and

design.

• Encourages the analyst to think of building agent-based

systems as a process of organisational design.

Societal view of agents.

Page 15: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 2• Gaia is:

– General: applicable to a range of multi-agent systems

– Comprehensive: macro-level (societal) and micro-level (agent) aspects of systems.

• Allows an analyst to go systematically from a statement of requirements to a

design that is sufficient for implementation.

Requirements

Implementation

GAIA

Modeldetails

Concrete

Abstract

Page 16: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 3Concepts

Abstract Concepts(used during analysis to conceptualise the system)

Concrete Concepts(used within the design process)

•Roles

•Permissions

•Responsibilities

•Protocols

•Activities

•Liveliness Properties

•Safety properties

•Agent types

•Services

•Acquaintances

Page 17: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 4Relationships between Gaia Models

Requirements

statements

Roles

Model

Interactions

Model

Agent

Model

Services

Model

Acquaintance

Model

Analysis

Design

Page 18: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 5Roles Model

Role

Attributes of roles

Permissions Activities Responsibilities Protocols

Liveliness

properties

Safety

properties

Page 19: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 6Role Schema

Role Schema: Name of Role

•Description

•Protocols and activities

•Permissions

•Responsibilities

–Liveliness

–safety

•short description of the role

•protocols and activities in which

the role plays a part

•”rights” associated with the role

•liveliness responsibilities

•Safety responsibilities

• A roles model is comprised of a set of role schema

Page 20: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 7Interaction Model

• The links between the roles are represented in the

interaction model.

• It contains a set of protocol definitions:

– an institutionalised pattern of interaction, e.g. a Dutch

auction.

Page 21: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 8Analysis Process

Steps Output

1. Identify roles Roles model

2. For each role, identify associated

protocols

Interaction model

3. Using the protocol/interaction model

as basis, elaborate role model

Fully elaborated roles

model (with permissions,

responsibilities, etc.)

4. Iterate 1-3

• Objective: to develop an understanding of the system and its structure.

Page 22: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 9Design Process

Step Output

1. Create agent model Agent model

(identifies agent types)

2. Develop service model Service model

(identifies main services required to realise agent’s role)

3. Develop acquaintance model from

interaction model and agent model.

Acquaintance model

(documents the lines of communication between the agents )

• Objective: to transfer the abstract models from analysis stage into models of

sufficiently low abstraction that can easily be implemented.

Page 23: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 10Example

• To provide customers with a quote for installing a network

to deliver a particular type of telecommunications service.

• Several departments are involved:

– Customer Service Dept. (CSD)

– Design Dept. (DD)

– Legal Dept. (LD)

– Customer Vetting (CV)

Reference: Wooldridge et. al. 2000.

Page 24: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 11Example

Customer contacts CSD

Capture requirements

Vet Customer

Map requirements

to service portfolios

Offer quote

Design solution

Check legality

Offer quote

CSD

DD

Customer

LD

CV

Page 25: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 12Example

• Analysis stage: Identify roles and interaction models

Roles

CustomerHandler (CH)

QuoteManager(QM)

CSD

Customer Vetter(CV)

CV

NetworkDesigner(ND)

DD

Legal Advisor(LA)

LD

Customer (cust)

Page 26: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 13Example

• Interaction Model: For role Quote Manager (QM)

QM

Cust

LA

CHCV

Get requirements

Is customer satisfactory?

Is service legal?

Offer service to customer

Page 27: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Gaia Methodology 14Shortcomings of Gaia

• Organisation structure is static – cannot be changed

at run-time.

• Abilities of agents and services they provide are

also static.

• Suitable for a small number of agent types.

Page 28: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Let’s take a minute……

• Discuss with your neighbour the agent

model (agent types), the service model

and the acquaintance model for this

example.

Page 29: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent UML 1Rationale

• Agent UML is an extension of UML.

• It is not a methodology, rather a language for documenting

models of systems.

• Rationale for agent UML: UML is insufficient for

modelling agents for the following reasons:

– Compared to objects, agents are active.

– Agents do not only act in isolation, but in cooperation and

coordination with other agents.

Page 30: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent UML 2Limitations of UML

• The definition of agent interaction protocols is a part of defining the dynamic part of an agent system.

• Some limitations of UML:

UML Description Limitations

Interaction

Diagrams

Defines behaviour of

groups of objects

Not suitable for describing the types of

complex interactions between agents

State Diagrams Define all possible

states of an object

Suitable for a single object, but not for a

group of cooperating objects

Activity

Diagrams

Course of events or

actions for several

agents

OK

Page 31: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent UML 3Proposed Modifications

• Support for expressing concurrent threads of

interaction, enabling UML to model agent

protocols such as the CNET.

• A notion of “role” that extends that provided in

UML, in particular to allow an agent playing

several roles.

Page 32: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Agent UML 4Agent Interaction Protocols

• An agent interaction protocol describes

– A communication pattern with

• An allowed sequences of messages between agents having different roles

• Constraints on the contents of messages

– A semantic that is consistent with the communicative act within a

communication pattern

Thus, the proposed modifications are aimed at supporting this.

Page 33: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Potential contractors

Manager X

cfp

x

refuse

not-understood

propose

reject-proposal

accept-proposal

cancel

inform

deadline

x

Agent UML 5Contract Net Protocol

Page 34: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Design Patterns

• Design patterns are recurring patterns of

programming code or components of the software

architecture.

• The purpose of using design patterns is to increase

re-use and quality of code in the development of

the system.

Page 35: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

The Layered Agent Pattern Language 1

• How can agent behaviour be best organised and

structured into software?

• What software architecture best supports the

behaviour of agents?

Kendall proposed a layered agent pattern

Page 36: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

The Layered Agent Pattern Language 2

• Agents should be decomposed into layers because:

– Higher level, or more sophisticated behaviour, depends on lower

level capabilities.

– Layers only depend on their neighbours.

– There is 2-way information flow between the neighbouring layers.

• 7 layers were identified based on the agent’s real world.

Page 37: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

The Layered Agent Pattern Language 3

Mobility

Translation

Collaboration

Actions

Reasoning

Beliefs

Sensory Agent gathers sensory input from its environment.

Agent formulates a message for another agent, translating it into other semantics.

Agent’s models of itself and its environment.

Agent determines what to do.

Actions are carried out. Pending actions are queued here.

Agent determines how to collaborate with another agent.

When collaborating agents are in different locations, this layer is required for message transmission and reception.

Page 38: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

The Layered Agent Pattern Language 4

Problem Solution Pattern(s)

How can agents collaborate

without direct knowledge of

each other?

Encapsulate agent interaction in a

Facilitator that coordinates agents

within a given society

Facilitator

How can an agent adapt to the

needs of a human user?

Provide the agent with parametric

user models and sensors to to

monitor the user’s actions

Interface agent

Page 39: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Formal Methods in AOSE 1

What role is played by logic in the development of agent systems? It can

be used for:

• Specification of a system

• Directly (automatically) programming a system

– Once specified, the system must be implemented. 3 Possibilities:

1. Manual refinement of the specifications.

2. Direct execution of the specification.

3. Compilation, transform specifications into code using some automatic synthesis

process.

• Verification of a system

Page 40: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Formal Methods in AOSE 2

• Verification of a system:

– Once the system is developed, we need to show that the system is

correct with respect to the specification.

Verification Approaches

Axiomatic

•Deductive verification:

Take the concrete program

and derive a logical theory

that represents the behaviour

of the program.

Semantic

•Model checking:

Reverse engineer a program

to create a logical model,

then check if the (formal)

specification is valid in this

model.

Page 41: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Pitfalls of Agent Development 1

• “While agent-based systems are becoming

increasingly well understood, multi-agent system

development is not.” (Wooldridge & Jennings, 1999)

• Little effort has been devoted to understanding the

pragmatics of multi-agent systems development.

Page 42: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Pitfalls of Agent Development 2

Political You can oversell agents or fail to see where agents may usefully be

applied.

Management You don’t know why you want agents or what your agents are

good for. E.g. Starting an agent project without any clear goals.

Conceptual You believe that agents are a silver bullet.

Analysis and design While developing an agent system, the % of the system that is

agent-specific (e.g. Negotiation or coordination) is very small.

Micro (agent) level You decide you want your own architecture , you use too much or

too little AI. (”Useful first” strategy)

Macro (society) level You see agents everywhere, too many or too few agents.

Implementation You ignore de facto standards (e.g. KQML in agent

communication)

Page 43: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Summary

• AOSE methodologies are close to existing Software

Engineering methodologies (e.g. OO) methodologies.

• AOSE methodologies are inspired by either OO

techniques or knowledge engineering techniques.

• Main difference is focus on interaction and behavior

Page 44: SIF8072 Distributed Artificial Intelligence and Intelligent Agents agent/ 27 February 2003 Lecture 7: Agent-oriented Software Engineering

Next Lecture:

Mobile Agents

• Wooldridge: ”Introduction to MAS”,

– Chapter 10