Monday, February 16, 2009

C4 Brain Architecture for EBDI Agents

The Media Lab at MIT developed an layered brain architecture for Synthetic Creatures at http://web.media.mit.edu/~bruce/Site01.data/ijcai01.pdf that has the following discrete systems:

  • Sensory System
  • Perception System

  • Navigation System

  • Motor System

  • Working Memory

  • Blackboard

Another paper on C4 is at http://characters.media.mit.edu/Papers/gdc01.pdf . I like their use of the Percept Tree that is encoded in a Percept memory data structure which is matched to records in Working Memory. Of course, we can add emotion to the agents by using the work of Camuri and Coglio at http://www.kestrel.edu/home/people/coglio/mm98.pdf and the work by Jiang et al. on the EBDI(emotion, belief, desire and intention) framework at http://jmvidal.cse.sc.edu/papers/jiang07a.pdf. Specifically, the BDI agent has


  • Beliefs—knowledge about the environment

  • Desires—goals of the agent

  • Intentions—decisions about present and future behavior

MSDN has a good article on BDI agents for service orchestration at http://msdn.microsoft.com/en-us/library/bb898865.aspx and the authors state that a goal directed model can be used for application design:


"This model initially has high-level plans. These high-level plans are to achieve a sequence of goals. Each goal is achieved by a set of plans. If a goal can be achieved in different ways, it is further decomposed and separate plans are developed to achieve the goal. More plans can be added to the application at any time. The set of plans that are developed to achieve a goal is a service that is defined by the goal it fulfils."


As an example of their graph:


These BDI agents then dynamically build the application at runtime by selecting the appropriate plan out of a library of plans for the goal. An example of BDI using C#.NET is at http://www.blasteinn.com/robotdata/LegoRobot_Report.pdf . Another good article on BDI is Creating Interactive Characters with BDI agents at http://cfpm.org/~emma/pubs/NorlingSonenberg04.pdf that uses JACK- an automous systems development platform. I have downloaded the 60 day trail and read the manual at http://www.aosgrp.com/documentation/jack/Agent_Manual_WEB/index.html . A good powerpoint presentation is at http://www.mip.sdu.dk/~bbk/AOSE/JACK/19991029Coburn-AgentsMelb.pdf and http://goanna.cs.rmit.edu.au/~ssardina/courses/Roma07PhDcourse/lect09/busetta99jack.pdf as I attempt to build BDI agents with JACK in Java. More later.

No comments: