Reactive Agents edit
The most basic ability of any intelligent agent is to be able to react to events occurring within the environment in which it is situated. Tcl's wonderful event loop is a useful mechanism for notifying an agent when an interesting event has occurred in the environment that it is situated in. However, once an event has been detected the agent has to decide on an appropriate response. A reactive (or reflexive, or stimulus-response) agent chooses its action as a function of the current sensed state of the environment, possibly together with some stored description of previous state(s) of the environment and previous actions taken (e.g., to ensure consistency of actions or to smooth readings from noisy or inaccurate sensors). There are many techniques that can be used to compute this function, including:- Decision Trees;
- Production Systems and Blackboard Systems;
- Neural Networks that can learn appropriate responses to inputs;
- Genetic Algorithms and Genetic Programming that can be used to automatically find a good stimulus-response function, or to train the weights of a Neural Net;
- Finite State Machines and Elman Networks (that can learn what state to remember);
Deliberative Agents and Planning edit
Deliberative agents extend reactive agents by attempting to plan ahead to predict future states of the environment and develop long-term courses of action to achieve given design objectives. We can also make a distinction between deliberation -- choosing which goals to commit to -- and planning/ means-end analysis where an agent contemplates how to achieve those goals. Another name for a deliberative agent would be a proactive agent. An agent can be deliberative without doing planning (e.g., if it just selects a pre-canned plan for achieving the goal from a plan library). Choosing between goals may accomplished by feasibility analysis (i.e., adopt those goals that the agent has resources to actually achieve), or by some reasoning using some higher-level goals (e.g., an agent may have some fixed higher-level goals, and deliberates to choose sub-goals) or motives, or by some decision theoretic notion of utility of goals (i.e., a real-valued function that maps goals to some measure of how useful achieving that goal would be to the agent's overall aims). Such deliberation usually involves having an internal model of the world and predicting what the effect of achieving a goal will be. Planning can then use this model to determine what sequence of actions will achieve the goal.There are problems associated with deliberation and planning, such as being able to map complex and often noisy information about the environment to an often idealised internal representation, and being able to keep such an internal model up-to-date while the environment may be constantly changing in unpredictable ways. Rodney Brooks summed up these problems with the slogan "the world is its own best model" in a series of influentual papers (e.g. Intelligence without Reason [1], PostScript). Any goal we adopt is based on information that is becoming increasingly out of date, and plans made far into the future have little hope of being suitable when we actually come round to implementing them. For some tasks, however, such as those where careful management of resources over the long-term is required, deliberative planning techniques can be worth the effort. A common means of planning is to formulate a description of the environment or problem as a directed graph structure of states (a state-space) in which we can search for a solution (a path to a goal-state) by applying operators which connect states. A number of pages discuss different search strategies:- State Space Searching in Tcl discusses basic "uninformed" searches, such as breadth-first and depth-first search;
- Heuristic Searches and Searching A Star in Space discuss informed search methods that use information about the problem domain ("heuristics"; rules of thumb) in order to optimise the search;
- [Approximate and Bounded Search] discusses non-optimal search strategies that where performing a complete or optimal search may be unfeasible;
- [Adversarial Search and Game Playing] discusses planning techniques which take into account the tactics of an opponent, such as minimax and alpha-beta pruning;
- [Reactive Planning] discusses plans which can adapt to changing situations, including Teleo-Reactive programs and Reactive Action Packages (RAPs);
Knowledge Representation and Reasoning edit
Some intelligent agent applications can involve representing and reasoning with large amounts of complex information about a problem domain, or general "common-sense" knowledge:- Symbolic and Declarative Programming;
- [Propositional Logic] discusses representing knowledge as simple propositions;
- Predicate Logic then discusses a more complete representation format, while Unification and [Resolution] discuss techniques for automatically reasoning with such knowledge;
- Various Rule-Based Expert Systems such as CLIPS using the RETE or TREAT algorithms;
- Prolog and Logic Programming techniques;
- Modal Logic for reasoning about properties of knowledge;
- Other techniques of representing "commonsense" or non-monotonic knowledge, such as Semantic Networks, Frames and [Reason Maintenance];
- Temporal Logic and dealing with time;
- Description Logics and methods of encoding ontologies of knowledge, as in the semantic web;
- Reasoning with uncertainty using such techniques as Bayesian Networks and Fuzzy Logic;
Multi-Agent Systems edit
Often multiple agents may have to interact or even actively cooperate and coordinate in order to achieve tasks in a shared environment. Development of multi-agent systems is an area of much current research effort. Topics include:- Modal Logic to reason about the beliefs and states of other agents;
- Speech Acts to influence the beliefs of other agents;
- Use of Game Theory and economic and political theory to reason about interactions with other agents;
- Language techniques, such as a Parser using recursive descent, to understand messages from other agents;
- General communication protocols and representations, such as XML and SOAP;
- Agent communication languages: KIF, KQML, and the FIPA agent languages;
- Natural Language Processing (NLP);
- Cooperation: Task Sharing, Joint Intentions, Partial Global Planning, etc.
Software edit
- D'Agents (formerly Agent Tcl);
- A popular agent test-bed is RoboCup[2];
- SOAR has a Tcl interface.
- TclCLIPS.
- Rover Mobile Application Toolkit.
- TKQML.
- TACOMA.
PS-I (originally standing for “Political Science—Identity) is a sophisticated but easy to use tool-kit for the production of powerful agent-based or computational simulation models.
SensorWare is an implementation of a mobile agent environment for wireless sensor networks. Scripts can move their code and data from node to node, autonomously. The distributed algorithms are realized as Tcl scripts that are autonomously replicated or migrated to the “proper” sensor.In SensorWare, based on the application requirements, nodes are configured as sets of services to be exploited by agents. Services are abstraction layers over the operating system and hardware resources which offers pre-defined operations in multiple single packages. Services can be re-configured at runtime based on new incoming requirements from the applications. Applications’ requests are distributed through the network in form of agents that can execute their tasks using the available services in each node. Multiple agents can reside on a single node, waiting for execution, as state machines
Books, Journals and Websites edit
In addition to the resources on the Artificial Intelligence page, there are also some resources dedicated to intelligent agents and multi-agent systems in particular:- BOOK MultiAgent Systems;
- AgentLink website: http://www.agentlink.org/
- AAAI agents page: http://aaai.org/AITopics/html/agents.html
- Foundation for Intelligent Physical Agents (FIPA): http://www.fipa.org/
- UMBC Agent Web: http://agents.umbc.edu/
- Journal Autonomous Agents and Multi-Agent Systems [3];
- The main conference is the AAMAS conference on Autonomous Agents and Multi-Agent Systems [4].