mas Simon Lynch
intro the basics agent types small scale (eg: NetLogo) generic (eg: Jade, Boris…) BDI (2APL, Jason, Goal…) (BOID, BOID+N, ??)
small scale agents theoretical basis uses & limitations communication deliberation
small scale agents – examples 1 moths environmental reactive non-communicative vants environmental non-communicative complex / emergence some agent-agent interaction
small scale agents – examples 2 fox & hounds reactive interactive non-communicative
small scale agents – examples 3 ant packs simple comms (phone a friend) some deliberation social / independent? lone –> group –> swarm
small scale agents – examples 4 path building simple comms (broadcast) more deliberation social / collaborative? mine clearance simple comms (phone a cleaner) deliberative collaborative
generic agents eg... Jade Boris...see Boris intro uses... middleware, systems architectures, resource allocation, brokering, mixed-metaphor agency, etc, etc
BDI agents BDI = Beliefs, Desires, Intentions - what?? erm... informational, motivational & deliberative states-what?? ok...assumed info about the world(B) main objectives(D) plan of things to achieve(I)
BDI agents beliefs vs facts desires –> goals –> plans plans –> intentions –> goals agent beliefs rules run time goal stack
2APL: bomb disposal with Harry & Sally
harry example initial belief base of harry... Beliefs: bomb(3,4). clean(blockWorld) :- not bomb(X,Y), not carry(bomb). example goal base... Goals : clean( blockWorld )
harry... example belief updates... BeliefUpdates: {bomb(X,Y)} RemoveBomb(X,Y) {not bomb(X,Y)} {true} AddBomb(X,Y) {bomb(X,Y)} {carry(bomb)} Drop() {not carry(bomb)} {not carry(bomb)} PickUp() {carry(bomb)}
harry... example of planning goal rules PG-rules : clean(blockWorld) <- bomb(X,Y) | { pickup(), L1 ); PickUp(); RemoveBomb(X,Y); drop(), L2 ); Drop() }
harry... example of procedural rules of harry... PC-RULES : message(sally, inform, bombAt(X,Y)) <- true | { if (not bomb(A,B) ) then { AddBomb(X,Y); adoptz( clean(blockWorld) ) } else { AddBomb(X,Y) }
BDI implementation beliefs (query, add, del) goals (peek, push, pop, del) rules (plan library) message handling deliberation cycles agent beliefs rules run time goal stack
designing BDI rules the rubbish eater example (or forager or… or… or…) Rules…world-already-clean standing-next-to-rubbish rubbish-somewhere slots…name, descriptor, type (action or plan) what it achieves when it can be used modifications (add & del) to beliefs & goals
designing BDI rules #1 the rubbish picker example (or forager or… or… or…) Rule world-already-clean: desc(world is clean) achieves(clean world) when (not (rubbish ?x ?y)) typeaction del-goal(clean world)
designing BDI rules #2 Rule standing-next-to-rubbish: desc(eat rubbish at ?x ?y) achieves(clean world) when (rubbish ?x ?y) (eater-at ?x ?y) typeaction del(rubbish ?x ?y)
designing BDI rules #3 Rule rubbish-somewhere: desc(walk to rubbish at ?x ?y) achieves(clean world) when (rubbish ?x ?y) (not (eater-at ?x ?y)) typeplan post-goal(goto ?x ?y)
designing BDI rules #4 other considerations (some of these are inter-dependent)… how to handle rules to respond to incoming messages? how to interact with an environment (eg: assume environment is NetLogo) how to write the deliberation cycle how to connect through to a messaging infrastructure layer (assume Boris) sketch & explanation of complete system (“beer-mat” version)
BDI variations BOID = BDI + Obligations Norms - normative, legal behavior obligations vs desires –> selfishness & altruism strengths of legislations
other issues meta-agents message types sessions & dialog social issues trust & reputation white & yellow pages brokering
other issues types of agency – advantages/disadvantages examples cleudo (air) traffic control cloud delegation