Anda di halaman 1dari 50

Agent concepts and issues

Lin Padgham Artificial Intelligence Group Dept. of Computer Science RMIT


Thanks to AOS and E. Sonenberg for some borrowed slides

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Many choices
Smart

agents with complex knowledge Systems of many small simple agents Agents in the physical world (robots) Small mobile agents ...

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Agent approaches
Behaviour

based situated, reactive (Brooks, Maes )


Plan-based deliberative,

reasoning (Bratman, Georgeff&Rao, )

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Behaviour based architecture

behaviour layer n

percepts
behaviour layer 3 behaviour layer 2 behaviour layer 1

actions

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Behaviour based philosophy


no

internal world model no symbolic reasoning goals a function of observer intelligence is emergent

agent behaviours

environment

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example behaviours
go to point avoid obstacle

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Merging - corridor example

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Merging - go-around example

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Merging - wont always work

weighting suppression activation


Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Oscillating behaviours
run

to ball vs mark opponent

run to ball

mark opponent

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Behaviour based summary


impressive

robotics systems e.g. walking insect-like robots well to a certain complexity

work

many

layers and behaviours lead to difficulty in understanding and dealing with interactions. methodology to help with managing interactions
Software Engineering Australia (Vic.) September 1998

no

Agent-based Software Engineering Workshop

Pragmatic plan-based systems


came

out of symbolic reasoning and planning recognise need for reactivity accept adequate vs optimal solution recognise that world is dynamic earliest examples IRMA and PRS use pre-defined plans rather than generating plans

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

BDI basic concepts


beliefs - local knowledge base, can be updated desires/goals - what the agent is trying to accomplish actions - elementary things the agent can do to communicate, or change the environment plans - predetermined sequences of actions (or calls to other plans) that can accomplish specified tasks intentions - currently adopted plans - multiple concurrently events - things that happen, can be internal or external

Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

BDI architecture

beliefs / events world model

goals / desires

plans

intentions

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Plan selection and execution


invocation

condition/trigger - when should plan be

considered context condition - under what conditions is plan appropriate body - actions, sub-goals, sub-plans maintenance condition - abort if broken fail procedure - may be atomic action or more complex

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Ongoing reasoning
when

an event occurs, the agent looks for a relevant plan for each relevant plan, examines applicability selects an applicable plan & starts executing ongoing questions what goal to pursue or event to react to - now ! how to pursue it when to suspend / abandon / change level of commitment, more/less sensitive to change
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

High level programming constructs


Achieve

semantics of try and retry until achieved or possibilities exhausted Test check if known, if not find out Wait-for monitor periodically while doing other things

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Illustrative example
Airport

runway air traffic controller multiple aircraft taking off landing

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example beliefs
Aircraft

controller arrivals((plane-id, time)(plane-id, time)) runways(R1,R2,R3) ... Aircraft schedule((place, time)(place time)) altitude(height) next-arrival(place, time) ...
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Example events
aircraft

enters control zone possibly a radar sensor event aircraft contacts controller a radio message event runway assigned possibly an internally generated event following processing of a message.

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example goals and sub-goals


land

the plane determine runway fly landing pattern execute approach runway

assign

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example plan
Invocation: plane enters radar area establish communication allocate runway

Context: plane not scheduled

Maintenance: no emergency

monitor approach and land direct to park

Fail: send message "holding pattern"

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Hybrid systems

Layered architecture reactive layer deliberative layer Further layers plan generation social awareness emotion/personality

percepts

actions

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Vacuum cleaner example


vacuum

cleaner problem (Firby, 1993) problem: autonomous agent (robot) vacuuming a room without over-engineering the task solution requires a range of reactive and deliberative behaviour reactive: avoid obstacles - furniture, children deliberative: map the room, plan the task, interact with humans

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Vacuum cleaner - part 1


simple

vacuum task (vacuum as agent) objects in room are simple (e.g., convex) stationary during cleaning, may move between cleanings people occasionally move through the room

reactive architecture appropriate / sufficient for navigation minimal state, simple sensing e.g. rug, dirt simple strategies can cover the room without a map (e.g., random walk, slow spiral outwards, etc.)
Software Engineering Australia (Vic.) September 1998

Agent-based Software Engineering Workshop

Vacuum cleaner - part 2


synthetic

vacuum task complex objects (clean around, under) moving and stationary objects treated differently different vacuuming strategies at different times in different situations need to represent object classes and associated strategies solution naturally expressed in terms of goals and plans still need reactive capabilities for obstacle avoidance
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Vacuum cleaner - part 3


intelligent

vacuum task negotiate with user Do under the sofa first. Do here later. Stay away from the baby. be able to operate correctly in varied situations

need higher level understanding of goals and plans useful to retain reactive properties for obstacle avoidance
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Multi-agent systems - (DAI)


no

global control mechanism each agent has limited knowledge/capability asynchronous computation Interaction co-ordination co-operation competition negotiation
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Co-operation vs co-ordination
co-ordination

(traffic) individual goals mutual benefit avoid potential conflict co-operation (soccer game) shared goals shared plans commitment
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Teamwork
multi-agent

plans

roles authority relationships - can one assume the other will take on tasks when requested? global information or partial information? individual or joint goals? conflicting priorities?

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Coordination protocols, e.g.


contract

net manager / contractor multi-pass bidding system partial global planning agents exchange partial information on goals use info on others goals to reason about own activities use contract-net to assign tasks to underutilised agents conversation plans use predetermined knowledge of others capabilities and known authority relationships to drive negotiation
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Communication mechanisms
blackboards

contract

net protocol manager / contractor multi-pass bidding system interaction protocols e.g. request, confirm, ... shared plans possibly using roles joint intentions, joint goals, joint commitments
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Open environments
agents

need to find each other interoperability - agent communication languages middle agents matchmakers brokers agent difference

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Agent Communication Languages (ACLs)


general

requirements high level - concise, easy to parse, readable separate communication acts from domain information fit with modern networking technology - support point-to-point, broadcast, multicast be independent of transport mechanisms (http, TCP/IP...) support for facilitators
Software Engineering Australia (Vic.) September 1998

Agent-based Software Engineering Workshop

KQML
a

proposed standard for inter-agent communication, still under development


(tell : sender stock-server : content (PRICE IBM 14) : receiver joe : in-reply-to ibm-stock : language LPROLOG : ontology NYSE-TICKS)

(ask-one

: sender joe : content (PRICE IBM ?price) : receiver stock-server : reply-with ibm-stock : language LPROLOG : ontology NYSE-TICKS)

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

CORBA
Non-ACL

Communication Infrastructure:

popular for integration in intranets, Web current standard limited to OO RPC-style communication

event service usable in a few cases, message service in future


Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Summary of issues
complexity

of agent agent architecture, behaviour based, plan based, hybrid many agents or few agent interactions competing, co-ordinating, co-operating, negotiating open environments agent diversity, middle agents, ACL's
Agent-based Software Engineering Workshop Software Engineering Australia (Vic.) September 1998

Case study

schedule the use of runways on an airport


arrivals departures multiple runways
Aircraft Aircraft Aircraft

...

Air Traffic Controller

Runwa y

Runway

...

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Agents

aircraft agents request runway slot from airport monitor progress of real aircraft compute holding / delay actions air traffic controller agents arbitrator of runway use airport procedures weather knowledge runway agents manage usage schedule slot in new aircraft

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

bidding solution
aircraft aircraft aircraft
request
allocation

atc
request bid request

allocation
bid

bid
request

runway
Agent-based Software Engineering Workshop

runway
Software Engineering Australia (Vic.)

runway
September 1998

aircraft agents (bidding)


flight plan position ATL / ATT ETA position updates

aircraft
runway allocation

runway request

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

airtraffic controller agent (bidding)


runway allocation runway status airport procedures weather

runway request

atc
rescheduling request bid allocation

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

runway agents (bidding)


allocation request bid schedule readiness rescheduling

runway

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example bidding interactions


(aircraft) ABA345 request (atc) Turichirappalli (runway) East-West 1 (runway) East-West 2

request
request

bid
bid allocation allocation

rescheduling (QF638)

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

daisy chain solution


aircraft aircraft aircraft
request allocation

atc
request allocation rescheduling best allocation

runway

best so far

runway

best so far

runway
September 1998

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

aircraft agents (daisy chain)


flight plan position ATL / ATT ETA position updates

aircraft
runway allocation

runway request

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

airtraffic controller agent (daisy chain)


runway allocation runway status airport procedures weather

runway request

atc
request best allocation rescheduling

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

runway agents (daisy chain)


allocation
rescheduling schedule readiness request and best so far

runway
request and best so far

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Example daisy chain interactions


(aircraft) ABA345 request (atc) Turichirappalli (runway) East-West 1 (runway) East-West 2

request
best so far

best allocation allocation

rescheduling (QF638)

Agent-based Software Engineering Workshop

Software Engineering Australia (Vic.)

September 1998

Case Study 2 - wrapup

the example focused more on the interactions among agents than their internal architecture intelligence could be embedded in the agents, e.g. how the air traffic controller adapts to changed weather different domains may require different conceptual and software tools either when designing or when building the systems the diversity of domains justifies the existing variety of agent architectures and frameworks
Software Engineering Australia (Vic.) September 1998

Agent-based Software Engineering Workshop

Anda mungkin juga menyukai