210 likes | 354 Views
peer-to-peer and agent-based computing. Agent-Based Computing: tools, languages and case studies (Cont’d). Agent Programming Languages. Agent-oriented programming languages Not essential, BUT make life easier…
E N D
peer-to-peer and agent-based computing Agent-Based Computing: tools, languages and case studies (Cont’d)
Agent Programming Languages • Agent-oriented programming languages • Not essential, BUT make life easier… • Do you know of a specific functionality that can only be implemented with a particular programming language? • Special-purpose programming languages increase productivity as they offer higher-level constructs • Particular aspects of the targeted domain are easier to explore • Agent-oriented programming languages are useful • However, there are many out there and many more are appearing… • Let’s look at some of them! peer-to-peer and agent-based computing
AgentSpeak • Influential abstract programming language • Uses the BDI agent model (we’ll see more about it) • Beliefs: what the agent believes about the environment • Desires: what the agent needs to achieve • Intentions: plans to fulfil the desires peer-to-peer and agent-based computing
AgentSpeak Architecture peer-to-peer and agent-based computing
AgentSpeak Control Loop • Agent receives events which are either • External (from the environment or from sensors) • Internally generated Events (news and existing ones) are beliefs • Agent looks for plans that match events • Matching plans become desires • Agent chooses one plan from its desires to execute • Chosen plan is an intention • Execute chosen plan • During execution of plan, new events arise – go to 1 peer-to-peer and agent-based computing
AgentSpeak: Beliefs • Beliefs represent information the agent has • About the environment • About its own internal state • Encoded as ground first-order logic predicates sensor(temperature, 30) sensor(smoke, low) sensor(movement, detected) status(light, on) status(door, closed) status(window, open) peer-to-peer and agent-based computing
AgentSpeak: Plans • Created off-line (manually or via planning systems) • Provide agents with a description of the actions it should perform: • How to respond to events (e.g., if fire detected, then enact the plan to put out fire and alert fire brigade) • How to achieve goals (e.g., how to book a flight from Dundee to Paris) • Plan structure: • Trigger condition: an event the plan can handle • Context: conditions under which plan can be used • Body: actual actions comprising the plan peer-to-peer and agent-based computing
AgentSpeak: Plans (Cont’d) • Format: TriggeringEvent:Context<-Body • Meaning: • If TriggeringEvent arises and • Context holds in the current set of beliefs then • Execute Body peer-to-peer and agent-based computing
AgentSpeak: Events • Achieve goal P: +!P • Drop goal P: -!P • Add new belief B: +B • Drop belief B: -B peer-to-peer and agent-based computing
AgentSpeak: “Hello World” /* Initial goals */ !start. /* Plans */ +!start : true <- .print("hello world."). Agent has a single initial goal • There is one single plan: • if you have acquired goal “start” then • when “true” holds (it always does) • carry out the single step plan “print(“hello world”) peer-to-peer and agent-based computing
Jason • An interpreter of AgentSpeak in Java • Development environment for MASs • Free downloads: • http://jason.sourceforge.net • Integrated with JADE (distributed execution) • Eclipse plug-in peer-to-peer and agent-based computing
Java Extensions for AgentProgramming • Various extensions to Java • Agent-specific constructs/built-ins • JACK, JADE and JASON are Java extensions! • There are, however, APIs which retain the syntax and “object-orientedness” of Java • Agent Building and Learning Environment (ABLE) • IBM’s agent toolkit • Java interfaces and base classes defining a library of JavaBeans called AbleBeans, including • Reading and writing text and database data, • Rule-based inferencing using Boolean and fuzzy logic, • Machine learning techniques (e.g., neural networks, Bayesian classifiers, and decision trees). peer-to-peer and agent-based computing
Case Study 1: Softbots • Software robots (Softbots) • Intelligent software agents that use software tools and services on a person's behalf • User communicates what she wants accomplished (the goals), and softbots dynamically determine how to satisfy the person’s request • Tool use is one of the hallmarks of intelligence • Softbots rely on the same tools and utilities available to human computer users • Tools for sending mail, printing files, searching the Web… • Popular Softbots interact with a wide range of software tools and services through the WWW peer-to-peer and agent-based computing
Case Study 1: MetaCrawler • WWW search services operated by the Univ. of Washington • 1995–1997 • Licensed to Go2Net, now InfoSpace, in 1997. • Single, central interface for WWW document searching peer-to-peer and agent-based computing
Case Study 1: MetaCrawler (Cont’d) • Upon receiving a query: • It posts the query to multiple search engines in parallel, then • It performs sophisticated pruning on the responses returned • MetaCrawler prunes as much as 75% of the returned responses as irrelevant, outdated, or unavailable peer-to-peer and agent-based computing
Case Study 1: MetaCrawler (Cont’d) • Current version (www.metacrawler.com) peer-to-peer and agent-based computing
Case Study 2: Calendar Agent • Retsina Semantic Web Calendar Agent • Developed at Carnegie-Melon’s Intell. Software Agents Lab • Interoperability between RDF-based calendar descriptions on the web, and Personal Information Manager (PIM) Systems such as Microsoft's Outlook • Home page: http://www.cs.cmu.edu/~softagents/cal/ • Schedules can be: • Browsed and imported by the user manually • Shared and imported autonomously by agents • Assists users in keeping calendar “up-to-date” • Higher fidelity model of user’s schedule • Minimal cost on the user’s time • Supports meeting scheduling • Agents negotiate meeting times based on user’s schedule and preferences peer-to-peer and agent-based computing
Case Study 2: Calendar Agent (Cont’d) • Schedules and events described on the web in RDF, using ontologies, and linked to individual's contact information (e.g., their home page). • Consists of • Distributed Meeting Scheduling Engine and • RETSINA Semantic Web Calendar Parser. • Agent • Assists in organising and scheduling meetings between several individuals, • Coordinates these based on existing schedules maintained by MS Outlook. peer-to-peer and agent-based computing
Case Study 2: Calendar Agent (Cont’d) • Agent interface and importing schedules onto Outlook peer-to-peer and agent-based computing
Case Study 3: Robot Teams • Teams of robots must coordinate their actions and collaborate • Example: robots playing football • Each robot is an autonomous agent • Robocup: yearly competition of robot teams • http://www.robocup.org • Sony AIBO Legged League • Football matches between teams of autonomous quadruped robots made by Sony Corporation. • Sony AIBO's are publicly available and can be programmed peer-to-peer and agent-based computing
Further reading • A Survey of Programming Languages and Platforms for Multi-Agent Systems, Bordini et. al., 2006, available at http://www.informatica.si/PDF/30-1/02_Bordini-A%20Survey%20of%20Programming%20Languages%20and%20Platforms...pdf • Logics and Agent Programming Languages, Logan, B. and Alechina, N., ESSLLI 2009, available at http://www.agents.cs.nott.ac.uk/events/lapl09/ • JASON examples: http://jason.sourceforge.net/wp/examples/ • IBM’s ABLE: http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzahx%2Findex.html peer-to-peer and agent-based computing