Introduction to Agent-based System Bambang Purnomosidi D. P. http://bpdp.name This material was taken from my website. Have a look here: http://bpdp.name/content:book:agent-based-system:introduction:start
Agenda 1: Definition and Related Concepts <ul><li>An agent is not necessarily related to computer system.
Here we will discuss only about (intelligent) software agent </li></ul>
Agent Definition <ul><li>Agent is taken from the latin word agere , means to do.
Agent in computer science and industry basically almost has the same understanding with definition in the real world, only in computer science it refers to a software entity while in the real world it refers to person, instrument, something, or any other object </li></ul>
Agent Definition (cont.) <ul><li>Merriam-Webster online dictionary: </li><ul><li>One who is authorized to act for or in the place of another. </li></ul><li>An agent in computer science refers to a software or other computational entities which has intelligence characteristics and can decide and act based on its intelligency and other information taken from its environment. An agent usually acts on behalf of computer user. </li></ul>
Agent Definition (cont.) <ul><li>An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators (Russel and Norvig, 2010).
An agent is something that acts in an environment, interact with the environment with a body, receive information through their sensors, and act in the world through their actuators, also called effectors (David Poole and Alan Mackworth, 2010)
An agent is a computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives (M. Wooldridge and N.R. Jennings, 1995). </li></ul>
Agent and Artificial Intelligence <ul><li>According to Mc Carthy (1956, rewriten again in 2007), AI is ”the science and engineering of making intelligent machines”.
Agent is central in AI for obvious reasons. AI does always try to make thing which is intelligent. This thing is not necessary a machine and it can be considered as agent. Therefore we can conclude that agent is the ultimate objective of AI. </li></ul>
Intelligent Agent <ul><li>An intelligent agent is an agent with intelligent features. A system consists of hardware and software, has intelligent features, is the one that usually called intelligent agent. This is the closest in meaning with agent defined by AI. If the agent is a software then it is called intelligent software agent. </li></ul>
Software Agent <ul><li>A software agent is a software who will act on behalf of other party (in this case, the party is computer user). To act on behalf of other party, a software agent needs to be intelligent enough, so the term ”software agent” can also be used interchangeably with ”intelligent software agent” although people often called it just ”software agent”. </li></ul>
Autonomous Agent <ul><li>An agent can also be seen from one of its characteristics: autonomy. An agent is capable to reveice comamand from computer users (i.e. human who want to finish some task), and can act intelligently to do those task(s) which has been delegated by computer users. During his activities, an agent basically can interact with the environment, learn and then using its knowledge to do its task without much interaction and command from computer users. This shows us that an agent has some degree of autonomy. An intelligent agent which has autonomy is called autonomous agent. </li></ul>
Mobile Agent <ul><li>A mobile agent basically also a software agent. It has the same features and characteristics as software agent with an added capability: ”mobility”. A mobile agent is software, together with data, which can be executed in a certain host to do a task and then move to another host to continue its execution. This mobility makes this kind of software agent is called mobile agent. </li></ul>
Multi-agent System / Distributed Artificial Intelligence <ul><li>Some problems maybe too hard to be solved by an agent alone. If an agent can not solve a problem alone, it will needs more agents to interact, commnicate, and cooperate to solve that problem. This situation is known as multi-agent system (MAS). </li></ul>
Agenda 2: Agent and Regular Software (Non-agent Software) <ul><li>Characteristics of software agent: </li><ul><li>Franklin and Graesser, 1996 </li></ul></ul>
Agent and Regular Software (Non-agent Software) <ul><li>Jenning and Wooldridge, 1995: </li><ul><li>Autonomy : agents should be able to perform the majority of their problem solving tasks without the direct intervention of humans or other agents, and they should have a degree of control over their own actions and their own internal state.
Social ability : agents should be able to interact, when they deem appropriate, with other software agents and humans in order to complete their own problem solving and to help others with their activities where appropriate.
Responsiveness : agents should perceive their environment (which may be the physical world, a user, a collection of agents, the INTERNET, etc.) and respond in a timely fashion to changes which occur in it.
Proactiveness : agents should not simply act in response to their environment, they should be able to exhibit opportunistic, goal-directed behaviour and take the initiative where appropriate. </li></ul></ul>
Agenda 3: Application of Agent-based System <ul><li>Wooldridge (2002): </li><ul><li>Distributed systems : an agent become a part of distributed system, as a processing node.
Personal software assistants : an agent play the role of proactive assistants to users working with some application. </li></ul></ul>
Application of Agent-based System <ul><li>Some notable application domain of software agent (Wooldridge, 2002): </li><ul><li>Agents for workflow and BPM
Agenda 4: Organizations Related to Agent <ul><li>FIPA (http://www.fipa.org) </li><ul><li>FIPA (The Foundation for Intelligent Physical Agent) is an IEEE Computer Society standards organization that promotes agent-based technology and the interoperability of its standards with other technologies. </li></ul></ul>
Organizations Related to Agent <ul><li>European Software-Agent Research Center </li><ul><li>The European Software-Agent Research Center is an organization of software agent research community in Europe. People may join for free by e-mail the webmaster.
Organizations Related to Agent <ul><li>AgentLink (http://www.agentlink.org)
AgentLink is Europe's IST-funded Coordination Action for agent-based computing. As such, AgentLink coordinates research and development activities in the area of agent-based computer systems on the behalf of the European Commission. AgentLink supports a range of activities aimed at raising the profile, quality, and industrial relevance of agent systems research and development in Europe, and promoting awareness and adoption of agent technologies. </li></ul>
Organizations Related to Agent <ul><li>The World Wide Web Consortium ( http://www.w3.org ) </li><ul><li>The World Wide Web Consortium (W3C) is an international community that develops standards to ensure the long-term growth of the Web. The W3C mission is to lead the World Wide Web to its full potential by developing protocols and guidelines that ensure the long-term growth of the Web. </li></ul></ul>
Agenda 5: Agent Development Kit <ul><li>ABLE (Agent Building and Learning Environment) - http://www.alphaworks.ibm.com/tech/able </li><ul><li>ABLE () is Java framework, component library, and productivity tool kit for building intelligent agents using machine learning and reasoning. Although no formal announcement, last update was July 19, 2005, which is the sign of unmaintained software. </li></ul></ul>
Agent Development Kit <ul><li>Cougaar ( http://www.cougaar.org ) </li><ul><li>Cougaar is a Java-based architecture for the construction of highly scalable distributed agent-based applications. Cougaar includes an advanced core architecture and a variety of of components that simplify the development, visualization, and management of complex distributed applications. The Cougaar architecture includes components to support agent-to-agent messaging, naming, mobility, blackboards, external UIs, and additional (pluggable) capabilities. Developer write components, also called “plugins”, which are loaded into agents to define their behavior. The Cougaar Component Model allows the developer to configure Cougaar to match both their domain and system requirements / constraints. </li></ul></ul>
Agent Development Kit <ul><li>FAMOJA (Framework for Agent-based MOdelling with JAva) is software framework consists of a collection of Java classes which aid in the rapid prototyping of agent-based model.
Features: </li><ul><li>A graphical user interface where models can easily be run, examined, modified and rerun.
Ready to use Agents for displaying data in charts
Agents and Viewers for visualizing models where Agents are situated in a grid environment </li></ul></ul>
Agent Development Kita <ul><li>Janus (http://www.janus-project.org/Home) is an enterprise-ready open-source multi-agent platform fully implemented in Java 1.6. Janus enables developers to quickly create web, enterprise and desktop multiagent-based applications. It provides a comprehensive set of features to develop, run, display and monitor multiagent-based applications. Janus-based applications can be distributed across a network. </li></ul>
Agent Development Kit <ul><li>Jason (http://jason.sourceforge.net/) is an interpreter for an extended version of AgentSpeak. It implements the operational semantics of that language, and provides a platform for the development of multi-agent systems, with many user-customisable features. Jason is available Open Source, and is distributed under GNU LGPL </li></ul>
Agent Development Kita <ul><li>JADE (Java Agent DEvelopment Framework - http://jade.tilab.com/) is a software Framework fully implemented in Java language. It simplifies the implementation of multi-agent systems through a middle-ware that complies with the FIPA specifications and through a set of graphical tools that supports the debugging and deployment phases. The agent platform can be distributed across machines (which not even need to share the same OS) and the configuration can be controlled via a remote GUI. The configuration can be even changed at run-time by moving agents from one machine to another one, as and when required. JADE is completely implemented in Java language and the minimal system requirement is the version 1.4 of JAVA (the run time environment or the JDK). </li></ul>
Agent Development Kita <ul><li>JIAC (Java-based Intelligent Agent Componentware) is a Java-based agent architecture and framework that eases the development and the operation of large-scale, distributed applications and services. This library consists of already-prepared services, components, and agents which can be integrated into an application in order to perform standard tasks. </li></ul>
Agent Development Kit <ul><li>MadKit (http://www,madkit.net)
MadKit is an open source modular and scalable multiagent platform written in Java and built upon the AGR (Agent/Group/Role) organizational model. MadKit agents play roles in groups and thus create artificial societies. </li></ul>
Agent Development Kit <ul><li>Mobile-C ( http://www.mobilec.org/ ) is an IEEE FIPA (Foundation for Intelligent Physical Agents) standard compliant multi-agent platform for supporting C/C++ mobile agents in networked intelligent mechatronic and embedded systems. Although it is a general-purpose multi-agent platform, Mobile-C is specifically designed for real-time and resource constrained applications with interface to hardware. Mobile agents are software components that are able to move between different execution environments. Mobile agents in a multi-agent system communicate and work collaboratively with other agents to achieve a global goal. It allows a mechatronic or embedded system to adapt to a dynamically changing environment. </li></ul>
Agent Development Kita <ul><li>KATO is PHP and Java-based agent development kit intended towards the development of personal assistant. It is an open source project and available at http://kato.sourceforge.net/ </li></ul>
Agent Development Kita <ul><li>eXAT is an Erlang-based agent development kit. It is intended to create MAS (Multi-Agent System). According to the website, eXAT offering a multi-agent programming platform composed of a set modules able to provide the programmer with the possibility of developing (with the same programming language) agent behavior, by means of definition of FSMs, agent intelligence, through the provided expert system engine, and agent collaboration.
eXAT is available at http://www.diit.unict.it/users/csanto/exat/index.html </li></ul>
Agent Development Kit <ul><li>Soar ( http://sitemaker.umich.edu/soar/home ) is a general cognitive architecture for developing systems that exhibit intelligent behavior. Soar is FOSS available under BSD license. The intention to create Soar was to enable the Soar architecture to: </li><ul><li>work on the full range of tasks expected of an intelligent agent, from highly routine to extremely difficult, open-ended problems
represent and use appropriate forms of knowledge, such as procedural, declarative, episodic, and possibly iconic
employ the full range of problem solving methods
learn about all aspects of the tasks and its performance on them. </li></ul></ul>
Agent Development Kit <ul><li>SPADE (Smart Python multi-Agent Development Environment - http://code.google.com/p/spade2/ )
An open source project which its aim is to build a multiagent and organization platform using Python, based on XMPP technology. </li></ul>
Agent Development Kit <ul><li>Swarm ( http://www.swarm.org/index.php/Main_Page )
Swarm is a software package for multi-agent simulation of complex systems, originally developed at the Santa Fe Institute. Swarm is intended to be a useful tool for researchers in the study of agent based models. Swarm software comprises a set of code libraries which enable simulations of agent based models to be written in the Objective-C or Java computer languages. These libraries will work on a very wide range of computer platforms. The basic architecture of Swarm is the simulation of collections of concurrently interacting agents: with this architecture, we can implement a large variety of agent based models. The Swarm software is available to the general public under GNU licensing terms. Swarm is experimental software, which means that it is complete enough to be useful but will always be under development. </li></ul>
Finish. Thank you for your kind attention. Question(s)? - I hope no.