Agent Oriented Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Agent Oriented Programming

Description:

Based off of Object Oriented Programming (OOP) Original form ... Formal language with clear syntax and semantics for describing mental state ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 38
Provided by: lucassc
Learn more at: http://www.cs.ucf.edu
Category:

less

Transcript and Presenter's Notes

Title: Agent Oriented Programming


1
Agent Oriented Programming
  • Lucas Schroeder
  • 4/10/2007

2
Outline
  • Introduction
  • Definition
  • Architecture Language
  • Example
  • New Work
  • Questions

3
Introduction
  • Based on the paper
  • Agent-oriented Programming
  • By Yoav Shoham (Feb 1992)
  • Highly Cited (1619) Google Scholar

4
Definitions
  • Agent
  • an entity whose state is viewed as consisting
    of mental components such as beliefs,
    capabilities, choices, and commitments.
  • This means anything
  • But what is gained by adopting this viewpoint?

5
Agent - Example
  • It is perfectly coherent to treat a light switch
    as a (very cooperative) agent with the capability
    of transmitting current at will, who invariably
    transmits current when it believes that we want
    it transmitted and not otherwise flicking the
    switch is simply our way of communicating our
    desires. However, while this is a coherent view,
    it does not buy us anything, since we essentially
    understand the mechanism sufficiently to have a
    simpler, mechanistic description of its behavior.

6
Agent Oriented Programming
  • Agent Oriented Programming (AOP)
  • Based off of Object Oriented Programming (OOP)
  • Original form
  • Individual separate modules communicating with
    each other
  • Individual ways of handling incoming messages
  • Fixes the State (called Mental State) of the
    modules (called Agents) to consist of
  • Beliefs
  • Capabilities
  • Decisions

7
AOP Constraints
  • Mental State components of Agents have precisely
    defined syntax
  • Other real-world counterpart constraints
  • Can not have two contradictory beliefs at the
    same time
  • Based off of speech act theory
  • Messages between agent can
  • Inform
  • Request
  • Offer

8
OOP vs AOP
9
AOP Framework
  • Three main components
  • Formal language with clear syntax and semantics
    for describing mental state
  • Interpreted language in which to define and
    program agents
  • An agentifier to convert neutral devices into
    programmable agents
  • Paper really only addresses the first two
    components

10
Mental State
  • Decisions (or choices)
  • Goes on to redefine these as obligations with
    decisions merely being regarded as obligations to
    oneself
  • Beliefs
  • Refer to belief about the state of the world at a
    particular time
  • Capabilities
  • Can refer to self or other agents

11
Mental State Language
  • Language similar to logic languages (LISP,
    ProLog, etc)
  • In fact implementation in LISP
  • Time component
  • Robot is holding the cup at time t

12
Belief
  • Modal Operator B (Belief)
  • a is an agent
  • t is a time term
  • f is a recursively defined sentence
  • Example
  • Means that at time 3 agent a believes that at
    time 10 agent b will believe that at time 7 a
    liked b

13
Obligation
  • Modal Operator OBL (Obligation)
  • means that at time t agent a is obligated (or
    commited) to agent b about f
  • Actions are represented as facts thus the agent
    is obligated to a fact holding rather than to
    taking an action

14
Decision
  • Decisions are defined as obligations to oneself
  • Decisions are something that the agent has
    decided to be true

15
Capability
  • Modal Operator CAN (Capability)
  • means that at time t a is capable of f
  • For Example
  • At time 5 the robot might be able to ensure that
    the door is open at time 8 but at time 6 it might
    not have that capability any longer

16
Able
  • ABLE is the immediate version of CAN
  • Defining time(f) to be the outermost time
    occurring in it
  • And therefore

17
Mental State Constraints
  • Internal Consistency
  • Beliefs obligations are internally consistent
  • Good Faith
  • Agents only commit to what they believe
    themselves capable of and only if they really
    mean it
  • Introspection
  • Agents have total introspective capabilities and
    are aware of their obligations

18
Persistence of Mental State
  • Beliefs persist by default
  • The absence of beliefs also persists by default
  • Obligations by their nature also persist until
    revoked
  • Either by completion, release by obligatory
    party, or loss of capability to fulfill obligation

19
Generic Agent Interpreter
  • Agent behavior
  • Two step loop
  • Read the current messages, update mental state
  • Execute the commitments for the current time
    (possibly resulting in further belief change)
  • This loop is initiated at regular intervals set
    by the interpreter clock using an internal
    timegrain value

20
Agent Interpreter Flow Diagram
21
AGENT-0
  • Simple AOP language and its interpreter
  • Proof of concept developed to support the
    framework
  • Very simplistic
  • Fact statements are atomic objective statements
    and can not contain conjunction or disjunction

22
AGENT-0 Language
  • Actions
  • May be Private or Communicative
  • May be Conditional or Unconditional
  • Private Actions
  • May or may not involve I/O
  • Communicative Actions
  • Always involve I/O
  • Are uniform and common across all agents

23
Actions
  • Private action
  • Inform action
  • Request action
  • Unrequest action
  • Refrain action

WHERE t time point a agent name p-action
private action fact fact statement action
any action statement
24
Conditional Actions
  • Conditional actions are triggered by one
    condition a mental condition
  • Mental condition a logical combination of mental
    patterns
  • Mental pattern is one of two items
  • Syntax for Conditional Action
  • Example
  • if at time t you believe that at time t' smith is
    an employee of acme, then at time t inform agent
    a of that fact

25
Mental Conditions
  • May contain logical connectors
  • AND, OR, NOT
  • Example
  • This is example of a query about another agents
    belief about a particular fact

26
Variables
  • Language syntax has support for variables denoted
    by a ? Prefix
  • Variables are scoped locally until the first NOT
    operator (or the entire statement in the absence
    of such a connector)
  • Can use universally quantified variables which
    are prefixed with ?! and are always scoped
    throughout the entire formula

27
Commitments (Obligations)
  • Commitments rules are dictated in agent design
  • Commitments are made when both mental conditions
    and message conditions are met
  • Message Conditions
  • Logical combination of Message Patterns
  • (From Type Content)
  • Example
  • (AND (a REQUEST (DO t walk)) (NOT (?x REQUEST (DO
    t chew-gum))))

28
Commitment Rules
  • Syntax
  • (COMMIT msgcond mntlcond (agent action))
  • denotes zero or more times
  • Example
  • (COMMIT (?a REQUEST ?action) (B (now (myfriend
    ?a))) (?a ?action ))

29
Example Implementation
  • Scenario (Air Travel Booking)
  • March
  • P to C Please inform me what flights you have
    from San Francisco to New York on April 18.
  • C to P Flight 354 departs at 0830, flight 293
    departs at 1000, flight 441 departs at noon . .
    . .
  • P to C Please book me on 354.
  • C to P That is sold out.
  • P to C Please book me on 293.
  • C to P That is confirmed your reservation
    number is 112358.
  • P to C Please book me also on 441.
  • C to P That conflicts with 293 I am not
    allowed to double book a passenger.
  • P to C Please get permission to do so.
  • C to S I request permission for the following
    double booking ...
  • S to C Permission denied.
  • C to P Sorry, I cannot get approval.
  • April 18, at the airport
  • P to C My name is P I have a reservation for
    flight 293.
  • C to P Here is your boarding pass.

30
AGENT-0 Implementation
  • Use of macro definitions
  • (issue_bp pass flightnum time) ? (IF (AND (B ((-
    time h) (present pass))) (B (time (flight ?from
    ?to flightnum)))) (DO time-h (physical_issue_bp
    pass flightnum time)))
  • where
  • h one hour
  • physical_issue_bp private action to physically
    issue boarding pass

31
AGENT-0 Implementation (Cont)
  • (query_which t asker askee q) ? (REQUEST t askee
    (IF (B q) (INFORM ( t i) asker q)))
  • query_which requests only a positive answer if q
    contains a universally-quantified variable then
    query_which requests to be informed of all
    instances of the answer to the query q
  • (query_whether t asker askee q) ? (REQUEST t
    askee (IF (B q) (INFORM ( t I) asker q)))
    (REQUEST t askee (IF (B (NOT q)) (INFORM ( t i)
    asker (NOT q))))
  • query_whether expects either a confirmation or a
    disconfirmation of a fact

32
AGENT-0 Implementation (Cont)
  • Capabilities Assignments
  • ((issue_bp ?a ?flight ?time) true)
  • If it is time to issue a boarding pass then
    possess the ability to do so
  • ((DO ?time (update_remaining_seats ?timel
    ?flight_number ?additional_seats)) (B (?time
    (remaining_seats ?timel ?flight_number
    ?current_seats))))
  • update_remaining_seat is a private action
    which changes the belief regarding
    remaining_seats
  • Update the current number of seats for a
    particular flight

33
AGENT-0 Implementation (Cont)
  • Commitment Rules
  • (COMMIT (?pass REQUEST (IF (B,?p) (INFORM ?t
    ?pass ?p))) true ?pass (IF (B,?p) (INFORM ?t
    ?pass ?p)))
  • Respond to requests for information about flight
    availability
  • (COMMIT (?cust REQUEST (issue_bp ?pass ?flight
    ?time)) (AND (B (?time (remaining_seats ?flight
    ?n))) (?ngtO) (NOT ((CMT ?anyone) (issue_bp ?pass
    ?anyflight ?time)))) (myself (DO ( now 1)
    (update_remaining_seats ?time ?flight -I)))
    (?cust (issue_bp ?pass ?flight ?time)))
  • Respond to requests to issue a boarding pass for
    a flight

34
AGENT-0 Implementation (Cont)
  • That gives the complete implementation for the
    airline agent from the previous example
  • Customer implementation not detailed
  • Supervisor implementation not detailed

35
AGENT-0 Implementation (Cont)
36
New Work
  • Many follow-on works that expand on the AOP
    proposed by Shoham
  • Agent-Oriented Programming A Practical
    Evaluation by David Parks (1997)
  • JADE (Java Agent Development Framework)
  • Utilizes many of the notions put forth by Shoham

37
Questions
  • Questions?
Write a Comment
User Comments (0)
About PowerShow.com