Your SlideShare is downloading. ×
T3 Agent oriented programming languages
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

T3 Agent oriented programming languages

1,423
views

Published on

14th European

14th European

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,423
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
37
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. AOP
  • 2. Outline1 AOP: Agent Oriented Programming About AOP Shortfalls Trends Jason Introduction to Jason Reasoning Cycle Main Language Constructs: Beliefs, Goals, and Plans Other Language Features Comparison With Other Paradigms The Jason Platform Perspectives: Some Past and Future Projects Conclusions
  • 3. About AOP
  • 4. AOP About AOP JasonAgent Oriented Programming Use of mentalistic notions and a societal view of computation [Shoham, 1993] Heavily influence by the BDI architecture and reactive planning systems Various language constructs for the sophisticated abstractions used in AOSE Agent: Belief, Goal, Intention, Plan Organisation: Group, Role, Norm, Interactions Environment: Artifacts, Percepts, Actions 4 / 68
  • 5. AOP About AOP JasonAgent Oriented ProgrammingFeatures Reacting to events × long-term goals Course of actions depends on circumstance Plan failure (dynamic environments) Rational behaviour Social ability Combination of theoretical and practical reasoning 5 / 68
  • 6. AOP About AOP JasonLiterature Books: [Bordini et al., 2005a], [Bordini et al., 2009] Proceedings: ProMAS, DALT, LADS, ... [Baldoni et al., 2010, Dastani et al., 2010, Hindriks et al., 2009, Baldoni et al., 2009, Dastani et al., 2008b, Baldoni et al., 2008, Dastani et al., 2008a, Bordini et al., 2007a, Baldoni and Endriss, 2006, Bordini et al., 2006b, Baldoni et al., 2006, Bordini et al., 2005b, Leite et al., 2005, Dastani et al., 2004, Leite et al., 2004] Surveys: [Bordini et al., 2006a], [Fisher et al., 2007] ... Languages of historical importance: Agent0 [Shoham, 1993], AgentSpeak(L) [Rao, 1996], MetateM [Fisher, 2005], 3APL [Hindriks et al., 1997], Golog [Giacomo et al., 2000] Other prominent languages: Jason [Bordini et al., 2007b], Jadex [Pokahr et al., 2005], 2APL [Dastani, 2008], GOAL [Hindriks, 2009], JACK [Winikoff, 2005] But many others languages and platforms... 6 / 68
  • 7. AOP About AOP JasonSome Languages and Platforms Jason (H¨bner, Bordini, ...); 3APL and 2APL (Dastani, van u Riemsdijk, Meyer, Hindriks, ...); Jadex (Braubach, Pokahr); MetateM (Fisher, Guidini, Hirsch, ...); ConGoLog (Lesperance, Levesque, ... / Boutilier – DTGolog); Teamcore/ MTDP (Milind Tambe, ...); IMPACT (Subrahmanian, Kraus, Dix, Eiter); CLAIM (Amal El Fallah-Seghrouchni, ...); GOAL (Hindriks); BRAHMS (Sierhuis, ...); SemantiCore (Blois, ...); STAPLE (Kumar, Cohen, Huber); Go! (Clark, McCabe); Bach (John Lloyd, ...); MINERVA (Leite, ...); SOCS (Torroni, Stathis, Toni, ...); FLUX (Thielscher); JIAC (Hirsch, ...); JADE (Agostino Poggi, ...); JACK (AOS); Agentis (Agentis Software); Jackdaw (Calico Jack); ... 7 / 68
  • 8. AOP About AOP JasonThe State of Multi-Agent Programming Already the right way to implement MAS is to use an AOSE Methodology (Prometheus, Gaia, Tropos, ...) and an MAS Programming Language! Many agent languages have efficient and stable interpreters — used extensively in teaching All have some programming tools (IDE, tracing of agents’ mental attitudes, tracing of messages exchanged, etc.) Finally integrating with social aspects of MAS Growing user base 8 / 68
  • 9. AOP About AOP JasonSome Shortfalls IDEs and programming tools are still not anywhere near the level of OO languages Debugging is a serious issue — much more than “mind tracing” is needed Combination with organisational models is very recent — much work still needed Principles for using declarative goals in practical programming problems still not “textbook” Large applications and real-world experience much needed! 9 / 68
  • 10. AOP About AOP JasonSome Trends I Modularity and encapsulation Debugging MAS is hard: problems of concurrency, simulated environments, emergent behaviour, mental attitudes Logics for Agent Programming languages Further work on combining with interaction, environments, and organisations We need to put everything together: rational agents, environments, organisations, normative systems, reputation systems, economically inspired techniques, etc. ￿ Multi-Agent Programming 10 / 68
  • 11. AOP About AOP JasonResearch on Multi-Agent Systems... — Whatever you do in MAS, make it available in a programming language/platform for MAS!!! — 11 / 68
  • 12. Jason
  • 13. AOP About AOP JasonAgentSpeakThe foundational language for Jason Originally proposed by Rao [Rao, 1996] Programming language for BDI agents Elegant notation, based on logic programming Inspired by PRS (Georgeff & Lansky), dMARS (Kinny), and BDI Logics (Rao & Georgeff) Abstract programming language aimed at theoretical results 13 / 68
  • 14. AOP About AOP JasonJasonA practical implementation of a variant of AgentSpeak Jason implements the operational semantics of a variant of AgentSpeak Has various extensions aimed at a more practical programming language (e.g. definition of the MAS, communication, ...) Highly customised to simplify extension and experimentation Developed by Jomi F. Hbner and Rafael H. Bordini 14 / 68
  • 15. AOP About AOP JasonMain Language Constructs and Runtime Structures Beliefs: represent the information available to an agent (e.g. about the environment or other agents) Goals: represent states of affairs the agent wants to bring about Plans: are recipes for action, representing the agent’s know-how Events: happen as consequence to changes in the agent’s beliefs or goals Intentions: plans instantiated to achieve some goal 15 / 68
  • 16. AOP About AOP JasonMain Architectural Components Belief base: where beliefs are stored Set of events: to keep track of events the agent will have to handle Plan library: stores all the plans currently known by the agent Set of Intentions: each intention keeps track of the goals the agent is committed to and the courses of action it chose in order to achieve the goals for one of various foci of attention the agent might have 16 / 68
  • 17. AOP About AOP JasonJason InterpreterBasic Reasoning cycle perceive the environment and update belief base process new messages select event select relevant plans select applicable plans create/update intention select intention to execute 17 / 68
  • 18. AOP About AOP JasonJason Rreasoning Cycle Belief Agent Beliefs Base 5 1 2 EventsPercepts Percepts SE Plan perceive BUF BRF Library External External Selected Events Events Events Beliefs Event 4 7 Relevant 6 Beliefs to Internal Check Plans Unify SocAcc Add and Events Plans Delete Context Event Applicable Beliefs Plans 3Messages Messages 8 9 Selected 10 checkMail SM Intended Intention Execute Action Actions SO SI act Means Intention .send Intentions Push New Messages Suspended Intentions Intentions Intention sendMsg (Actions and Msgs) New Plan ... New New ... Updated Intention 18 / 68
  • 19. AOP About AOP JasonBeliefs — Representation Syntax Beliefs are represented by annotated literals of first order logic functor(term1 , ..., termn )[annot1 , ..., annotm ] Example (belief base of agent Tom) red(box1)[source(percept)]. friend(bob,alice)[source(bob)]. lier(alice)[source(self),source(bob)]. ˜lier(bob)[source(self)]. 19 / 68
  • 20. AOP About AOP JasonBeliefs — Dynamics I by perception beliefs annotated with source(percept) are automatically updated accordingly to the perception of the agent by intention the plan operators + and - can be used to add and remove beliefs annotated with source(self) (mental notes) +lier(alice); // adds lier(alice)[source(self)] -lier(john); // removes lier(john)[source(self)] 20 / 68
  • 21. AOP About AOP JasonBeliefs — Dynamics II by communication when an agent receives a tell message, the content is a new belief annotated with the sender of the message .send(tom,tell,lier(alice)); // sent by bob // adds lier(alice)[source(bob)] in Tom’s BB ... .send(tom,untell,lier(alice)); // sent by bob // removes lier(alice)[source(bob)] from Tom’s BB 21 / 68
  • 22. AOP About AOP JasonGoals — Representation Types of goals Achievement goal: goal to do Test goal: goal to know Syntax Goals have the same syntax as beliefs, but are prefixed by ! (achievement goal) or ? (test goal) Example (Initial goal of agent Tom) !write(book). 22 / 68
  • 23. AOP About AOP JasonGoals — Dynamics I by intention the plan operators ! and ? can be used to add a new goal annotated with source(self) ... // adds new achievement goal !write(book)[source(self)] !write(book); // adds new test goal ?publisher(P)[source(self)] ?publisher(P); ... 23 / 68
  • 24. AOP About AOP JasonGoals — Dynamics II by communication – achievement goal when an agent receives an achieve message, the content is a new achievement goal annotated with the sender of the message .send(tom,achieve,write(book)); // sent by Bob // adds new goal write(book)[source(bob)] for Tom ... .send(tom,unachieve,write(book)); // sent by Bob // removes goal write(book)[source(bob)] for Tom 24 / 68
  • 25. AOP About AOP JasonGoals — Dynamics III by communication – test goal when an agent receives an askOne or askAll message, the content is a new test goal annotated with the sender of the message .send(tom,askOne,published(P),Answer); // sent by Bob // adds new goal ?publisher(P)[source(bob)] for Tom // the response of Tom will unify with Answer 25 / 68
  • 26. AOP About AOP JasonTriggering Events — Representation Events happen as consequence to changes in the agent’s beliefs or goals An agent reacts to events by executing plans Types of plan triggering events +b (belief addition) -b (belief deletion) +!g (achievement-goal addition) -!g (achievement-goal deletion) +?g (test-goal addition) -?g (test-goal deletion) 26 / 68
  • 27. AOP About AOP JasonPlans — Representation An AgentSpeak plan has the following general structure: triggering event : context ¡- body. where: the triggering event denotes the events that the plan is meant to handle the context represent the circumstances in which the plan can be used the body is the course of action to be used to handle the event if the context is believed true at the time a plan is being chosen to handle the event 27 / 68
  • 28. AOP About AOP JasonPlans — Operators for Plan ContextBoolean operators Arithmetic operators & (and) + (sum) | (or) - (subtraction) not (not) * (multiply) = (unification) / (divide) >, >= (relational) div (divide – integer) <, <= (relational) mod (remainder) == (equals) ** (power) == (different) 28 / 68
  • 29. AOP About AOP JasonPlans — Operators for Plan Body A plan body may contain: Belief operators (+, -, -+) Goal operators (!, ?, !!) Actions (internal/external) and Constraints Example (plan body) +rain : time to leave(T) & clock.now(H) & H ¿= T ¡- !g1; // new sub-goal !!g2; // new goal ?b(X); // new test goal +b1(T-H); // add mental note -b2(T-H); // remove mental note -+b3(T*H); // update mental note jia.get(X); // internal action X ¿ 10; // constraint to carry on close(door).// external action 29 / 68
  • 30. AOP About AOP JasonPlans — Example +green patch(Rock)[source(percept)] : not battery charge(low) ¡- ?location(Rock,Coordinates); !at(Coordinates); !examine(Rock). +!at(Coords) : not at(Coords) & safe path(Coords) ¡- move towards(Coords); !at(Coords). +!at(Coords) : not at(Coords) & not safe path(Coords) ¡- ... +!at(Coords) : at(Coords). 30 / 68
  • 31. AOP About AOP JasonPlans — Dynamics The plans that form the plan library of the agent come from initial plans defined by the programmer plans added dynamically and intentionally by .add plan .remove plan plans received from tellHow messages untellHow 31 / 68
  • 32. AOP About AOP JasonStrong Negation Example +!leave(home) : ˜raining ¡- open(curtains); ... +!leave(home) : not raining & not ˜raining ¡- .send(mum,askOne,raining,Answer,3000); ... 32 / 68
  • 33. AOP About AOP JasonProlog-like Rules in the Belief Base Example likely color(Obj,C) :- colour(Obj,C)[degOfCert(D1)] & not (colour(Obj, )[degOfCert(D2)] & D2 ¿ D1) & not ˜colour(C,B). 33 / 68
  • 34. AOP About AOP JasonPlan Annotations Like beliefs, plans can also have annotations, which go in the plan label Annotations contain meta-level information for the plan, which selection functions can take into consideration The annotations in an intended plan instance can be changed dynamically (e.g. to change intention priorities) There are some pre-defined plan annotations, e.g. to force a breakpoint at that plan or to make the whole plan execute atomically Example (an annotated plan) @myPlan[chance of success(0.3), usual payoff(0.9), any other property] +!g(X) : c(t) ¡- a(X). 34 / 68
  • 35. AOP About AOP JasonFailure Handling: Contingency Plans Example (an agent blindly committed to g) +!g : g. +!g : ... ¡- ... ?g. -!g : true ¡- !g. 35 / 68
  • 36. AOP About AOP Jason“Higher-Order” Variables Example (an agent that asks for plans on demand) -!G[error(no relevant)] : teacher(T) ¡- .send(T, askHow, { +!G }, Plans); .add plan(Plans); !G. in the event of a failure to achieve any goal G due to no relevant plan, asks a teacher for plans to achieve G and then try G again The failure event is annotated with the error type, line, source, ... error(no relevant) means no plan in the agent’s plan library to achieve G { +!G } is the syntax to enclose triggers/plans as terms 36 / 68
  • 37. AOP About AOP JasonInternal Actions Unlike actions, internal actions do not change the environment Code to be executed as part of the agent reasoning cycle AgentSpeak is meant as a high-level language for the agent’s practical reasoning and internal actions can be used for invoking legacy code elegantly Internal actions can be defined by the user in Java libname.action name(. . .) 37 / 68
  • 38. AOP About AOP JasonStandard Internal Actions Standard (pre-defined) internal actions have an empty library name .print(term1 , term2 , . . .) .union(list1 , list2 , list3 ) .my name(var ) .send(ag,perf ,literal) .intend(literal) .drop intention(literal) Many others available for: printing, sorting, list/string operations, manipulating the beliefs/annotations/plan library, creating agents, waiting/generating events, etc. 38 / 68
  • 39. AOP About AOP JasonJason × Java I Consider a very simple robot with two goals: when a piece of gold is seen, go to it when battery is low, go charge it 39 / 68
  • 40. AOP About AOP JasonJason × Java II Example (Java code – go to gold) public class Robot extends Thread { boolean seeGold, lowBattery; public void run() { while (true) { while (! seeGold) { } while (seeGold) { a = selectDirection(); doAction(go(a)); } } } } (how to code the charge battery behaviour?) 40 / 68
  • 41. AOP About AOP JasonJason × Java III Example (Java code – charge battery) public class Robot extends Thread { boolean seeGold, lowBattery; public void run() { while (true) { while (! seeGold) if (lowBattery) charge(); while (seeGold) { a = selectDirection (); if (lowBattery) charge(); doAction(go(a)); if (lowBattery) charge(); } } } } (note where the tests for low battery have to be done) 41 / 68
  • 42. AOP About AOP JasonJason × Java IV Example (Jason code) +see(gold) ¡- !goto(gold). +!goto(gold) :see(gold) // long term goal ¡- !select direction(A); go(A); !goto(gold). +battery(low) // reactivity ¡- !charge. ˆ!charge[state(started)] // goal meta-events ¡- .suspend(goto(gold)). ˆ!charge[state(finished)] ¡- .resume(goto(gold)). 42 / 68
  • 43. AOP About AOP JasonJason × Prolog With the Jason extensions, nice separation of theoretical and practical reasoning BDI architecture allows long-term goals (goal-based behaviour) reacting to changes in a dynamic environment handling multiple foci of attention (concurrency) Acting on an environment and a higher-level conception of a distributed system 43 / 68
  • 44. AOP About AOP JasonCommunication Infrastructure Various communication and execution management infrastructures can be used with Jason: Centralised: all agents in the same machine, one thread by agent, very fast Centralised (pool): all agents in the same machine, fixed number of thread, allows thousands of agents Jade: distributed agents, FIPA-ACL Saci: distributed agents, KQML ... others defined by the user (e.g. AgentScape) 44 / 68
  • 45. AOP About AOP JasonDefinition of a Simulated Environment There will normally be an environment where the agents are situated The agent architecture needs to be customised to get perceptions and act on such environment We often want a simulated environment (e.g. to test an MAS application) This is done in Java by extending Jason’s Environment class 45 / 68
  • 46. AOP About AOP JasonInteraction with the Environment Simulator Environment Agent Reasoner Simulator Architecture perceive getPercepts act executeAction change percepts 46 / 68
  • 47. AOP About AOP JasonExample of an Environment Class 1 import jason.*; 2 import ...; 3 public class robotEnv extends Environment { 4 ... 5 public robotEnv() { 6 Literal gp = 7 Literal.parseLiteral(”green˙patch(souffle)”); 8 addPercept(gp); 9 } 10 11 public boolean executeAction(String ag, Structure action) { 12 if (action.equals(...)) { 13 addPercept(ag, 14 Literal.parseLiteral(”location(souffle,c(3,4))”); 15 } 16 ... 17 return true; 18 } } 47 / 68
  • 48. AOP About AOP JasonMAS Configuration Language I Simple way of defining a multi-agent system Example (MAS that uses JADE as infrastructure) MAS my˙system – infrastructure: Jade environment: robotEnv agents: c3po; r2d2 at jason.sourceforge.net; bob #10; // 10 instances of bob classpath: ”../lib/graph.jar”; ˝ 48 / 68
  • 49. AOP About AOP JasonMAS Configuration Language II Configuration of event handling, frequency of perception, user-defined settings, customisations, etc. Example (MAS with customised agent) MAS custom – agents: bob [verbose=2,paramters=”sys.properties”] agentClass MyAg agentArchClass MyAgArch beliefBaseClass jason.bb.JDBCPersistentBB( ”org.hsqldb.jdbcDriver”, ”jdbc:hsqldb:bookstore”, ... ˝ 49 / 68
  • 50. AOP About AOP JasonMAS Configuration Language III Example (CArtAgO Environment) MAS grid˙world – environment: alice.c4jason.CEnv agents: cleanerAg agentArchClass alice.c4jason.CogAgentArch #3; ˝ 50 / 68
  • 51. AOP About AOP JasonJason Customisations Agent class customisation: selectMessage, selectEvent, selectOption, selectIntetion, buf, brf, ... Agent architecture customisation: perceive, act, sendMsg, checkMail, ... Belief base customisation: add, remove, contains, ... Example available with Jason: persistent belief base (in text files, in data bases, ...) 51 / 68
  • 52. AOP About AOP JasonjEdit Plugin 52 / 68
  • 53. AOP About AOP JasonEclipse Plugin 53 / 68
  • 54. AOP About AOP JasonMind Inspector 54 / 68
  • 55. AOP About AOP JasonSome Related Projects I Speech-act based communication ´ Joint work with Renata Vieira, Alvaro Moreira, and Mike Wooldridge Cooperative plan exchange Joint work with Viviana Mascardi, Davide Ancona Plan Patterns for Declarative Goals Joint work with M.Wooldridge Planning (Felipe Meneguzzi and Colleagues) Web and Mobile Applications (Alessandro Ricci and Colleagues) Belief Revision Joint work with Natasha Alechina, Brian Logan, Mark Jago 55 / 68
  • 56. AOP About AOP JasonSome Related Projects II Ontological Reasoning ´ Joint work with Renata Vieira, Alvaro Moreira JASDL: joint work with Tom Klapiscak Goal-Plan Tree Problem (Thangarajah et al.) Joint work with Tricia Shaw Trust reasoning (ForTrust project) Agent verification and model checking Joint project with M.Fisher, M.Wooldridge, W.Visser, L.Dennis, B.Farwer 56 / 68
  • 57. AOP About AOP JasonSome Related Projects III Environments, Organisation and Norms Normative environments Join work with A.C.Rocha Costa and F.Okuyama MADeM integration (Francisco Grimaldo Moreno) Normative integration (Felipe Meneguzzi) CArtAgO integration Moise integration More on jason.sourceforge.net, related projects 57 / 68
  • 58. AOP About AOP JasonSome Trends for Jason I Modularity and encapsulation Capabilities (JACK, Jadex, ...) Roles (Dastani et al.) Mini-agents (?) Recently done: meta-events To appear soon: annotations for declarative goals, improvement in plan failure handling, etc. Debugging is hard, despite mind inspector, etc. Further work on combining with environments and organisations 58 / 68
  • 59. AOP About AOP JasonSummary AgentSpeak Logic + BDI Agent programming language Jason AgentSpeak interpreter Implements the operational semantics of AgentSpeak Speech-act based communicaiton Highly customisable Useful tools Open source Open issues 59 / 68
  • 60. AOP About AOP JasonAcknowledgements Many thanks to the Various colleagues acknowledged/referenced throughout these slides Jason users for helpful feedback CNPq for supporting some of our current researh 60 / 68
  • 61. AOP About AOP JasonFurther Resources http://jason.sourceforge.net R.H. Bordini, J.F. H¨bner, and u M. Wooldrige Programming Multi-Agent Systems in AgentSpeak using Jason John Wiley & Sons, 2007. 61 / 68
  • 62. AOP About AOP JasonBibliography I Baldoni, M., Bentahar, J., van Riemsdijk, M. B., and Lloyd, J., editors (2010). Declarative Agent Languages and Technologies VII, 7th International Workshop, DALT 2009, Budapest, Hungary, May 11, 2009. Revised Selected and Invited Papers, volume 5948 of Lecture Notes in Computer Science. Springer. Baldoni, M. and Endriss, U., editors (2006). Declarative Agent Languages and Technologies IV, 4th International Workshop, DALT 2006, Hakodate, Japan, May 8, 2006, Selected, Revised and Invited Papers, volume 4327 of Lecture Notes in Computer Science. Springer. Baldoni, M., Endriss, U., Omicini, A., and Torroni, P., editors (2006). Declarative Agent Languages and Technologies III, Third International Workshop, DALT 2005, Utrecht, The Netherlands, July 25, 2005, Selected and Revised Papers, volume 3904 of Lecture Notes in Computer Science. Springer. Baldoni, M., Son, T. C., van Riemsdijk, M. B., and Winikoff, M., editors (2008). Declarative Agent Languages and Technologies V, 5th International Workshop, DALT 2007, Honolulu, HI, USA, May 14, 2007, Revised Selected and Invited Papers, volume 4897 of Lecture Notes in Computer Science. Springer. 62 / 68
  • 63. AOP About AOP JasonBibliography II Baldoni, M., Son, T. C., van Riemsdijk, M. B., and Winikoff, M., editors (2009). Declarative Agent Languages and Technologies VI, 6th International Workshop, DALT 2008, Estoril, Portugal, May 12, 2008, Revised Selected and Invited Papers, volume 5397 of Lecture Notes in Computer Science. Springer. Bordini, R. H., Braubach, L., Dastani, M., Fallah-Seghrouchni, A. E., G´mez-Sanz, J. J., Leite, J., O’Hare, G. M. P., Pokahr, A., and Ricci, A. o (2006a). A survey of programming languages and platforms for multi-agent systems. Informatica (Slovenia), 30(1):33–44. Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2005a). Multi-Agent Programming: Languages, Platforms and Applications, volume 15 of Multiagent Systems, Artificial Societies, and Simulated Organizations. Springer. 63 / 68
  • 64. AOP About AOP JasonBibliography III Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2005b). Programming Multi-Agent Systems, Second International Workshop ProMAS 2004, New York, NY, USA, July 20, 2004 Selected Revised and Invited Papers, volume 3346 of Lecture Notes in Computer Science. Springer. Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2006b). Programming Multi-Agent Systems, Third International Workshop, ProMAS 2005, Utrecht, The Netherlands, July 26, 2005, Revised and Invited Papers, volume 3862 of Lecture Notes in Computer Science. Springer. Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2007a). Programming Multi-Agent Systems, 4th International Workshop, ProMAS 2006, Hakodate, Japan, May 9, 2006, Revised and Invited Papers, volume 4411 of Lecture Notes in Computer Science. Springer. Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2009). Multi-Agent Programming: Languages, Tools and Applications. Springer. 64 / 68
  • 65. AOP About AOP JasonBibliography IV Bordini, R. H., H¨bner, J. F., and Wooldridge, M. (2007b). u Programming Multi-Agent Systems in AgentSpeak Using Jason. Wiley Series in Agent Technology. John Wiley & Sons. Dastani, M. (2008). 2apl: a practical agent programming language. Autonomous Agents and Multi-Agent Systems, 16(3):214–248. Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2004). Programming Multi-Agent Systems, First International Workshop, PROMAS 2003, Melbourne, Australia, July 15, 2003, Selected Revised and Invited Papers, volume 3067 of Lecture Notes in Computer Science. Springer. Dastani, M., Fallah-Seghrouchni, A. E., Leite, J., and Torroni, P., editors (2008a). Languages, Methodologies and Development Tools for Multi-Agent Systems, First International Workshop, LADS 2007, Durham, UK, September 4-6, 2007. Revised Selected Papers, volume 5118 of Lecture Notes in Computer Science. Springer. 65 / 68
  • 66. AOP About AOP JasonBibliography V Dastani, M., Fallah-Seghrouchni, A. E., Leite, J., and Torroni, P., editors (2010). Languages, Methodologies, and Development Tools for Multi-Agent Systems, Second International Workshop, LADS 2009, Torino, Italy, September 7-9, 2009, Revised Selected Papers, volume 6039 of Lecture Notes in Computer Science. Springer. Dastani, M., Fallah-Seghrouchni, A. E., Ricci, A., and Winikoff, M., editors (2008b). Programming Multi-Agent Systems, 5th International Workshop, ProMAS 2007, Honolulu, HI, USA, May 15, 2007, Revised and Invited Papers, volume 4908 of Lecture Notes in Computer Science. Springer. Fisher, M. (2005). Metatem: The story so far. In [Bordini et al., 2006b], pages 3–22. Fisher, M., Bordini, R. H., Hirsch, B., and Torroni, P. (2007). Computational logics and agents: A road map of current technologies and future trends. Computational Intelligence, 23(1):61–91. 66 / 68
  • 67. AOP About AOP JasonBibliography VI Giacomo, G. D., Lesp´rance, Y., and Levesque, H. J. (2000). e Congolog, a concurrent programming language based on the situation calculus. Artif. Intell., 121(1-2):109–169. Hindriks, K. V. (2009). Programming rational agents in GOAL. In [Bordini et al., 2009], pages 119–157. Hindriks, K. V., de Boer, F. S., van der Hoek, W., and Meyer, J.-J. C. (1997). Formal semantics for an abstract agent programming language. In Singh, M. P., Rao, A. S., and Wooldridge, M., editors, ATAL, volume 1365 of Lecture Notes in Computer Science, pages 215–229. Springer. Hindriks, K. V., Pokahr, A., and Sardi˜a, S., editors (2009). n Programming Multi-Agent Systems, 6th International Workshop, ProMAS 2008, Estoril, Portugal, May 13, 2008. Revised Invited and Selected Papers, volume 5442 of Lecture Notes in Computer Science. Springer. Leite, J. A., Omicini, A., Sterling, L., and Torroni, P., editors (2004). Declarative Agent Languages and Technologies, First International Workshop, DALT 2003, Melbourne, Australia, July 15, 2003, Revised Selected and Invited Papers, volume 2990 of Lecture Notes in Computer Science. Springer. 67 / 68
  • 68. AOP About AOP JasonBibliography VII Leite, J. A., Omicini, A., Torroni, P., and Yolum, P., editors (2005). Declarative Agent Languages and Technologies II, Second International Workshop, DALT 2004, New York, NY, USA, July 19, 2004, Revised Selected Papers, volume 3476 of Lecture Notes in Computer Science. Springer. Pokahr, A., Braubach, L., and Lamersdorf, W. (2005). Jadex: A bdi reasoning engine. In [Bordini et al., 2005a], pages 149–174. Rao, A. S. (1996). Agentspeak(l): Bdi agents speak out in a logical computable language. In de Velde, W. V. and Perram, J. W., editors, MAAMAW, volume 1038 of Lecture Notes in Computer Science, pages 42–55. Springer. Shoham, Y. (1993). Agent-oriented programming. Artif. Intell., 60(1):51–92. Winikoff, M. (2005). Jack intelligent agents: An industrial strength platform. In [Bordini et al., 2005a], pages 175–193. 68 / 68
  • 69. Overview Other APLs &Architectural Considerations Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
  • 70. Overview• Overview of APL landscape• Some Architectural Considerations• Research Themes• References Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 71. Agent ProgrammingLanguages: An Overview Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
  • 72. A Brief History of AOP• 1990: AGENT-0 (Shoham)• 1993: PLACA (Thomas; AGENT-0 extension with plans)• 1996: AgentSpeak(L) (Rao; inspired by PRS)• 1996: Golog (Reiter, Levesque, Lesperance)• 1997: 3APL (Hindriks et al.)• 1998: ConGolog (Giacomo, Levesque, Lesperance)• 2000: JACK (Busetta, Howden, Ronnquist, Hodgson)• 2000: GOAL (Hindriks et al.)• 2000: CLAIM (Amal El FallahSeghrouchni)• 2002: Jason (Bordini, Hubner; implementation of AgentSpeak)• 2003: Jadex (Braubach, Pokahr, Lamersdorf)• 2008: 2APL (successor of 3APL)This overview is far from complete! Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 73. A Brief History of AOP• AGENT-0 Speech acts• PLACA Plans• AgentSpeak(L) Events/Intentions• Golog Action theories, logical specification• 3APL Practical reasoning rules• JACK Capabilities, Java-based• GOAL Declarative goals• CLAIM Mobile agents (within agent community)• Jason AgentSpeak + Communication• Jadex JADE + BDI• 2APL Modules, PG-rules, … Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 74. A Brief History of AOPAgent Programming Languages and Agent Logics have not (yet)converged to a uniform conception of (rational) agents. Agent Programming Agent Logics Architectures BDI, Intention Logic, KARO PRS (Planning) , InterRap Agent-Oriented Programming Multi-Agent Logics, Norms, Agent0, AgentSpeak, ConGolog, Collective Intentionality3APL/2APL, Jason, Jadex, JACK, … Conceptual extension CASL, Games and Knowledge “Declarative Goals” Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 75. Part 1: BDI Agents and AOP Agent FeaturesMany diverse and different features have been proposed, but theunifying theme still is the BDI view of agents. Agent Programming Agent Logics • “Simple” beliefs and belief • “Complex” beliefs and belief revision revision • Planning and Plan revision • Commitment Strategies e.g. Plan failure • Goal Dynamics • Declarative Goals • Look ahead features • Triggers, Events e.g. beliefs about the future, e.g. maintenance goals strong commitment • Control Structures preconditions • … • Norms • … Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 76. How are these APLs related? A comparison from a high-level, conceptual point, not taking into account any practical aspects (IDE, available docs, speed, applications, etc) Family of Languages Multi-Agent Systems Basic concepts: beliefs, action, plans, goals-to-do): All of these languages (except AGENT-0, AgentSpeak(L), Jason1 PLACA, JACK) have AGENT-01 versions implemented (PLACA ) “on top of” JADE. Golog 3APL2 Main addition: Declarative goals 2APL 3APL + GOAL Java-based BDI Languages Mobile Agents Jack (commercial), Jadex CLAIM31 mainly interesting from a historical point of view2 from a conceptual point of view, we identify AgentSpeak(L) and Jason3 without practical reasoning rules4 another example not discussed here is AgentScape (Brazier et al.) Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 77. Some Architectural Considerations Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
  • 78. GOAL Architecture Agent Beliefspercept Process Action action percepts Rules Goals Environment Real or simulated world of events Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 79. Interpreters: GOAL Process percepts(= apply percept rules) Also called deliberation cycles. Select action (= apply action rules) GOAL’s cycle is a classic sense-plan-act cycle. Perform action(= send to environment) Update mental state(= apply action specs + commitment strategy) Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 80. Interpreter: 2APL Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 81. Under the Hood: Implementing AOP Example: GOAL Architecture Plugins Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 82. 2APL IDE: Introspector Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 83. 2APL IDE: State Tracer Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 84. Research Themes A Personal Point of View Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
  • 85. Part 3: Short-term Future A Research AgendaFundamental research questions:• What kind of expressiveness* do we need in AOP? Or, what needs to be improved from your point of view? We need your feedback!• Verification: Use e.g. temporal logic combined with belief and goal operators to prove agents “correct”. Model-checking agents, mas(!)Short-term important research questions:• Planning: Combining reactive, autonomous agents and planning.• Learning: How can we effectively integrate e.g. reinforcement learning into AOP to optimize action selection?• Debugging: Develop tools to effectively debug agents, mas(!). Raises surprising issues: Do we need agents that revise their plans?• Organizing MAS: What are effective mas structures to organize communication, coordination, cooperation?• Last but not least, (your?) applications!* e.g. maintenance goals, preferences, norms, teams, ... Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 86. Combining AOP and PlanningCombining the benefits of reactive, autonomous agents and planning algorithmsGOAL Planning• Knowledge • Axioms• Beliefs • (Initial) state• Goals • Goal description• Program Section • x• Action Specification • Plan operatorsAlternative KRT Plugin:Restricted FOL, ADL, Plan Constraints (PDDL) Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 87. Part 3: Short-term Future ApplicationsNeed to apply the AOP to find out what works and what doesn’t• Use APLs for Programming Robotics Platform• Many other possible applications:• (Serious) Gaming (e.g. RPG, crisis management, …)• Agent-Based Simulation• The Web• <add your own example here> Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 88. References• 2APL: http://www.cs.uu.nl/2apl/• ConGolog: http://www.cs.toronto.edu/cogrobo/main/systems/index.html• GOAL: http://mmi.tudelft.nl/~koen/goal• JACK: http://en.wikipedia.org/wiki/JACK_Intelligent_Agents• Jadex: http://jadex.informatik.uni-hamburg.de/bin/view/About/Overview• Jason: http://jason.sourceforge.net/JasonWebSite/Jason Home.php• Multi-Agent Programming Languages, Platforms and Applications, Bordini, R.H.; Dastani, M.; Dix, J.; El Fallah Seghrouchni, A. (Eds.), 2005 introduces 2APL, CLAIM, Jadex, Jason• Multi-Agent Programming: Languages, Tools and Applications Bordini, R.H.; Dastani, M.; Dix, J.; El Fallah Seghrouchni, A. (Eds.), 2009 introduces a.o.: Brahms, CArtAgO, GOAL, JIAC Agent Platform Koen Hindriks, João Leite K. Hindriks, J. PL-MAS Tutorial – EASSS09 EASSS12
  • 89.       !  
  • 90.   
  • 91.    
  • 92.       
  • 93.    !  " !! ! 
  • 94.  #!!!  
  • 95.   
  • 96. #!  $!   $"#$  
  • 97.   
  • 98.  % & !)(*( $ ! " ! !  &    &   !    (! !  &   *  (%(  (! !  !  $    !! ! !)$! ! ! ! ! ! 
  • 99.  
  • 100.  
  • 101.   
  • 102.  
  • 103. 
  • 104.       
  • 105.  
  • 106.  
  • 107. 
  • 108.     
  • 109.   
  • 110.   
  • 111.  %  
  • 112.   
  • 113. "   %  !    + " ,!  ! (! !  /&!     
  • 114.  
  • 115.   -!  -!
  • 116.    .
  • 117. ! 
  • 118. ! .  #$ (()()    
  • 119.   
  • 120. +#+,-"",  
  • 121.   
  • 122. . *  &* 011234.2+ !, 0115
  • 123. +4!634.27   !, 0118 !*+,+#!6 9"
  • 124. # , 0118+# &)$& !, 011:5
  • 125. +;* !<, 011=+!&)$& !, >222+/$ !&;&#)$ &;, >222+;* !<, >222-+!!! $, >22>!+/&;$96  !  !*, >225!7+/!$9!&
  • 126. *!&!, >22=>
  • 127. +$5
  • 128. ,4!  ?  
  • 129.   
  • 130. . *  &* 34.2 ! 
  • 131. 
  • 132. !  !*+,  @      &! !  5
  • 133. 
  • 134. ! !!$  ! !9 &!!.9!  (!! ! - -9! + ! $ ", !  !*A$!  !7 (A/( >
  • 135.  -$&
  • 136. .$&B  
  • 137.   
  • 138. . *  &* 
  • 139.  
  • 140.    
  • 141.    
  • 142.  
  • 143.     (  (%(  /(&  &#
  • 144. # +
  • 145. !,& #!     -$ . &3&  2& !*&&    ! "5
  • 146. @>
  • 147. &!&!7&&B /()0   &!! C(!! !D  
  • 148.   
  • 149. 
  • 150.  
  • 151.  "  
  • 152. 
  • 153.   
  • 154. 
  • 155.  
  • 156. 
  • 157.  
  • 158. !     (  C  D9!9  C 7D9!9   
  • 159. !!
  • 160. !     !  <<
  • 161. !!$  !("!  (!! !  *!!! $  4&  <<9!9$  $ $& <<! !!          $ $  3  B  B  
  • 162.   
  • 163. ! %   1    !"
  • 164. #
  • 165. "
  • 166. $ 
  • 167. #
  • 168. 
  • 169.  
  • 170. %" " "
  • 171.  "
  • 172. & "&* $&  . ((() 23*
  • 173. (
  • 174. )
  • 175.  42  !$! +7 34.2&  !*+,&!0
  • 176. &,! 34.20      +
  • 177. , C  D(<   5
  • 178. > $2(   >
  • 179. F5
  • 180. A  3 ., $3 !*+!,&!7 -50 !"  ! !  > ! $!  & " !*+,!!5  $  ! !!$% ! 7!  $ ! +/!E !<,  
  • 181.   
  • 182. /,$"#$5665755  
  • 183.   
  • 184. 5 G $  ! !  $ G*A9A! $! ! $   !  &<    % )%& H $ ! !"! ! $ " $!   
  • 185.   
  • 186. " &(%(   ;$!!@7 ! ! I 7!   9 !6& !*!$9! <     9!$!   .9 <  J 99$$ !" !*  !< K $   9A!GL!   
  • 187.   
  • 188.  (%( /&(   
  • 189.   
  • 190.  
  • 191.        !   +G! "  $,  
  • 192.      !  +G! "! $,  
  • 193.   
  • 194. 
  • 195. 
  • 196. !  +G  ,     K !   ! !  +G! "!  A    ! ",  
  • 197.   
  • 198.  ( *5  89:*;<89( (  &;< 89 ) ( ;<  
  • 199.   
  • 200. =- >*   ! 9M -9* ! ! $ ! $ ! ! <  9* !9 !  9*!9 
  • 201.    9*   <  
  • 202.   
  • 203. %.( - ?/@4"  9*C    !D6   $ !9*   
  • 204. ! !9*!9!9* $9!9  
  • 205.   
  • 206. $6  
  • 207.   
  • 208. #)  %.( -  $
  • 209.    *< N /! !     
  • 210.  N #$+$  ! ,   
  • 211.      
  • 212. 
  • 213.  
  • 214.   
  • 215.   
  • 216. #)  %, 
  • 217. ?A
  • 218. B4
  • 219.  
  • 220. 
  • 221. 
  • 222. 
  • 223. ( 3* 8    
  • 224.    
  • 225.    
  • 226.  <  !99!!  
  • 227.   
  • 228. #)  %5 
  • 229. ?A
  • 230. B4
  • 231.  
  • 232.  
  • 233. 
  • 234. (  8   
  • 235.   
  • 236.      
  • 237.  <  !!9!!  
  • 238.   
  • 239. #)  %.( -  H! !9$  $9I  !$ !  !  *9!<   
  • 240. 
  • 241.  
  • 242.   
  • 243.  !8 
  • 244.  
  • 245.  
  • 246.  
  • 247.  
  • 248.  
  • 249.  
  • 250.  
  • 251.  
  • 252. 
  • 253.   
  • 254.   
  • 255.  
  • 256.     
  • 257.      < ! *9!!  
  • 258.   
  • 259. -%&) !. 1  *9!!9$ 9!  3% 9!!9!< 7!  N ! 9   &  ! 9 < N ! !    & !  !  <  
  • 260.   
  • 261. $*5*9!
  • 262. 
  • 263. 
  • 264.  !" !8
  • 265.  
  • 266.  
  • 267.  
  • 268.  
  • 269.  
  • 270.  
  • 271.  
  • 272.  
  • 273. 
  • 274.   
  • 275.   
  • 276.  
  • 277.     
  • 278.     <3* 8   
  • 279.    
  • 280.    
  • 281. < 8  
  • 282.   
  • 283.      
  • 284. <  ! ! ! !  
  • 285.   
  • 286. , )(%.*C53   ! 
  • 287.      99!<  ! 
  • 288.      !9!< N H !
  • 289. M$  !< 7!   
  • 290. 
  • 291.     
  • 292.    
  • 293.   
  • 294. /3.* 5           "!!! !   9 !!9!!!"<         +$9,.! !9! ! 9  <  
  • 295.   
  • 296. 0)  .( - /() 
  • 297. 9 7 *"/H 9" !9! ! < (9*    /$  ! ! !" ! !9*  !!" ! "$!  ! !   
  • 298.   
  • 299. ( /%%  D    
  • 300.   
  • 301. #E 7)$ 4$!)$! 9!  !!  99!  9$ ! +! 9" !9!,<  N 
  • 302.  99! on(a,d) ! move(a,d)< N #9 on(a,b) ! move(a,d)<  
  • 303.   
  • 304. (( 2(#   $!$ ! ! " !  < (! ! "9* N  $ !9!&!* < N 9* !&   !9< )  8  
  • 305.   
  • 306.    !  
  • 307.    ! 
  • 308.  < H! !  N * &<<!9 $  ! ! ! I N O& +   !",    
  • 309.   
  • 310. $2-#-#  
  • 311.   
  • 312. /,$"#$566575/  
  • 313.   
  • 314. / !!  ! !!$! !! $ " 7 !! !  
  • 315. !$ 9$! 9$! "   
  • 316.   
  • 317. //  ( 7 !! B/ /  (   & &
  • 318. !&! !9 "&/ &P(   Q!&Q$&Q  &Q&Q!&<<<# $% ?=  >4 R! .&R! !&R&R "&R$9 !*&   R  &R!&R &R  &R   
  • 319.   
  • 320. !% )( *1  !"#!$  %&#() ! !9 " %*+*# ,*+)-"
  • 321. ! "$-.  $ -"/ //012& //03#  4#-) . .  
  • 322.   
  • 323. /)3  ! $! ! $ !   C$ D&<<$! " $  #  $ !!  !!  !  !9C $D!)$ ! ! &9$  N !9 +C$9.! D,& $ 7 !@ ! N J ! $  N J !  "+!J !  ! !9 ", N J !!$ "  
  • 324.   
  • 325.      !
  • 326.   " ! 9  ! ! ! N 9 ! ! !$ !   "!!!   "    #! "  &-! & /(-! &/(! &B N -!  .! N /(!  "$ !$  
  • 327.   
  • 328. ( C   3**("#($3*##) %##*##$ &*# ##)..*!"#!$%&#56*(6)%##*()  $ 4#3# *6 #)..  
  • 329.   
  • 330.  ( )$7 S F%  % &
  • 331.  @@
  • 332. !  ! !$!Q. !   @@9!      &! & < F)   % &
  • 333. 6 F   % &
  • 334. F  G  G* 4" 
  • 335. ( (3  + 4" 
  • 336. ,S@@      !!  !  ! T (0+,S@U!    ! !9 "U@T 3&+,S @@4 !9"9 ! $!     @@ !7$ <! !!!!R. !  < T @U ! U@T  
  • 337.   
  • 338.  & .9!!M!!.9!
  • 339.  !!  N  &  &! &9&!& !& ! -! N .9!!$!! 3 ! $  (     N !!.9!!$!$  (   !!!"     
  • 340.   
  • 341. 56#5#$,56  
  • 342.   
  • 343.  &  *! VH! "$7   !   !IH! "$!"& !&! !IVH! "$*!9$  !!  !)" !"IVH! "$!!9$   !!  !)" !"*  
  • 344.   
  • 345.  5 * V ! $ ! .  !I H! !! .  !I ;  !    ! I !  )  !   
  • 346. I O&9$ $! !!  !!$!<  
  • 347.   
  • 348. " % * D !!"E ! !  <")$  "!   ;       "   I   " !  ; *  !*  ( " I     ;      "! J! ! $ I-!$ &   
  • 349.   
  • 350.   , ($  
  • 351.   
  • 352. &  6  !9      !9 9"!  !9$)$" 
  • 353. !! $!   !"  ! !9!    $ !! $  !   $ +#$ 3,  !
  • 354. $ ! " !   !9  
  • 355.  $ ! .9!!   $  !$! 7$ ! $   @ 9$ $! !  
  • 356.   
  • 357. D%! )   H !!  !* ! <")$  "!   ;$!   H  $ I  H ! + ! , H+!,  (!   ! !!- I  ! " ;!   !  !  ! I-!$   ? 4  
  • 358.   
  • 359.  #.   /!$ !!9 5 )  ! "  $ <7! &$  #$ ! ! ! $!  #$ ! !$!  #$ ! !!! !  #$ !  $ ! B  
  • 360.   
  • 361. $  
  • 362.  $  $ K   $ $"$<7! &$$  $ ! " #$9 !  ( 9$ $   B3/ -! ! "$$  9$ $  <  
  • 363.   
  • 364. $B,/,/,6"  
  • 365.   
  • 366.  *&=))( > !9*& !& < *!$$!&$ $ &7 !&B  
  • 367.   
  • 368. .    ! $!   !"$!  /*H4!9   
  • 369.   
  • 370. $  /   ! !
  • 371.    +  $
  • 372. , >200 -! ! 7 $!   "       02! &7 & &!9 $& !&     "  !!*
  • 373.   @@$ !   <@  
  • 374.   
  • 375.  5  
  • 376.   
  • 377. 5 6/ 5  4!*!5(  ! !$$) <  5  >
  • 378.   $! $! !! !"P 4
  • 379. < !  "!*! ! !"4"<  
  • 380.   
  • 381. 5 * 
  • 382.  !)!* !! ! +! ,&!$99+! ,  !!-! ! + $! !",<  
  • 383.   
  • 384. #% 5 $ 
  • 385. M 
  • 386. ! !%9     ! $. .! !K3# 4K#3-34>22% K !9  >2 !W $  "!<    !  M <  
  • 387.   
  • 388. #3/  >
  • 389. !!9$   3!9  ! < )!9$   -  9 <   @@< $ <@  #9 @  @@9!9<<$<$@ !@<   @@><< $<*@XM@.!.3Y4@  
  • 390.   
  • 391. #3/ ! !!  3!9  ! ! !  !*  
  • 392.   
  • 393. ,  &G0
  • 394. M %7 (!  $ !9$ !! <
  • 395. !!" ! !9 ! < 7   !   9 !   !/(! %79! <  
  • 396.   
  • 397. ,  &G0
  • 398. M  K)$!    !  ! ! $!  ! !9 9   ! !9!< ( 9$ 9$ !$  9! ! 9!<  @@<$)$<@  
  • 399.   
  • 400. % )) C H(  4-(- M $ .! !*$) +K "P!!,   M   @@< $ <@ !@!@*@
  • 401. M   @@M!7.! <! *<$. !9$<@7*@9@@K!@
  • 402. M   @@M!<$< @ @ M @  @@! <@! ! @7< +,  
  • 403.   
  • 404. 
  • 405. + 
  • 406. !
  • 407. ,#
  • 408. # ))( -
  • 409. 
  • 410. 
  • 411. #
  • 412. 
  • 413. $  
  • 414.  .
  • 415. -!"  9! !   4H9  , -./  
  • 416.   
  • 417. 
  • 418. !
  • 419.  P##/$  
  • 420.   
  • 421. 
  • 422. + 
  • 423. !
  • 424. ,#
  • 425. # #  (%$! !!)$  H! *0)    I
  • 426. I&!  9 "$  IH"$9!*? + *(K<<  !9 9!!  !   ! C D<-.*! &!+?,  .   ! !)$  9! &!$ $! ! !<  ;! " ! <<  ! 
  • 427.   E!  I 3(    "9$! &!+?,< #!$ $(!  !   !I  :$H! ! ! $ $ !E $! &! & ! I ! 9$  ! &+"$I,))( ?U<<! !!& && !&<<<  
  • 428.   
  • 429. /3 
  • 430. 
  • 431. 
  • 432. "#
  • 433. #  
  • 434.   
  • 435.  5    7 /  + !, !  !  ! 
  • 436. !    7   !  
  • 437. ! !   ##  &(&
  • 438. ! ! +
  • 439. ((,  
  • 440.   
  • 441.  / 
  • 442. 
  • 443.  4"  !   !!   << $!! "+,&   +! , 9 & !!9$ ! & $! & !  ! !   7  " !! &   !E! + 7 ", B  #!   ! !&*  %   ! &.   $ & 9*&!   !&  &<<<& !E! &<<< K4>22% M  
  • 444.   
  • 445. #* (  >
  • 446.  @@<<$$<@>! @  @@< $ <@ !@!  @@<* !<@*@Z  Z  !7 @@M!7<! *<$.!9$<@9@@9$ @ ! @@M!<$< @!H9  @!;<  -$ . 
  • 447. !!$!&
  • 448. ! ! ! & /&#<;<6(! !&-<6(7&<6!! $&<+<,& >22W 0"1").) -$ . 
  • 449. !!$!&4! !  /&#<;<6(! !&-<6(7&<6!! $&<+<,& >221   231! !")1
  • 450.  I-6,"#$5-.5I  
  • 451.   
  • 452.  
  • 453.   
  • 454. #* (  -(! !&>
  • 455. ! ! !!  !!$!& ! !$! $ $ !-$ .  " +- ,&08+5,>0%.>%=& !$  $ ! !.9! &+<,!!4!!!/ !!&>22=< -(! !!/! $9*< ! ! ! /(-$-$ . 
  • 456. !<
  • 457.     ! !H*  $ ! ! -$ .  " +-.Y,&>221< -(! !<-$!#$./!
  • 458. !>
  • 459. &<$!&(<!&! <4! +<,&;!9*#!#$./!!$!! 4  $ ! !+>P$,& /31:=.0.82W88.%2>.8& >221< -(! !&!! /!!&($9!.$-"<(9$/(.9! -$ . 
  • 460. !<   :  ! !H* 
  • 461. !-$ .  " +
  • 462. - >221,&>221< -!! &-(! !!-!!*;!9</@! !/(-$ +7 9 ! ,<
  • 463. <02  <<$ $ !-$ !  " +- >200,&4$&O$& 9! +<,&-!"&>N8&>200& 4! &4!!& <0>20.0>2><  
  • 464.   
  • 465.  &% H!$ 
  • 466.  $ 4   ! I;"$ !!   !I  
  • 467.