In General
Although many of the architectures have been categorized as "yes", "no", or "maybe" with respect to certain capabilities, often only parts of a capability are supported by an architecture. So quite a bit is simplified in saying that capability X is provided by architecture Y; the link to that architecture will give more information. If a capability was not addressed by the authors, then it will usually fall into the "no" category.
Being able to represent certain kinds of knowledge may be considered a capability in its own right, but knowlede represenation issues will be discussed only as they relate to the capabilities listed here.
Certain capabilities, such as the ability to perceive and the ability to act, are common to most architectures and are not discussed here.
_____________________________________________________________________________
Index for this document:
_____________________________________________________________________________
"Internal" Capabilities
Planning
Planning is deciding on a sequence of actions before executing them. There are many different algorithms that can be used for planning. Some architectures use a fixed algorithm, others use control knowledge to implement various algorithms. Some of the possible variations on basic planning are:
- taking into account the uncertainty of actions, and also maximizing expected utility instead of goal-satisficing (decision-theoretic planning). This is useful in unpredictable environments where actions may fail.
- non-linear planning
- anytime planning (at any time, the best next action is available, which improves the longer planning goes on). This is useful when time is critical.
- relationship to reactivity: not planning at all (purely reacting), or somehow combining reaction with planning
- can planning take place at the same time as execution?
Natural language processing
This includes natural language generation, and/or natural language understanding. Many systems can take input as commands or requests from the user, and generate requests or explanations, but this is not necessarily in natural language.
Learning
This includes any type of learning, excluding things like updating internal state to reflect changes in the world, and episodic memory. Learning methods fall into different categories, and different architecture address different subsets of these.
Two broad categories of learning methods are:
- Analytic learning. This is typically some method of learning where the speed of getting some kind of problem-solving result increases, but the correctness does not. That is, the agent does not learn anything new, but rather changes the rate at which it can access some bit of existing knowledge. Some of the forms of analytic learning used in the architectures we analyzed:
- caching: This is simply storing a computed value to avoid having to compute it in the future.
- Explanation-based learning (EBL): this is similar to caching except the result is usually generalized.
- compilation: This is a form of EBL, often used to make the agent more reactive.
- learning using advice: this is typically used in combination with EBL to get the right training examples.
- static analysis: this is similar to EBL, except no training example is needed.
- learning of abstraction hierarchies:
- Inductive learning. This includes
- statistical operator ordering
- case-based learning (derivational analogy): This is a way to learn how to solve new problems by analogy with previously solved problems.
- experimentation: this is a way to gain domain knowledge or correct imperfect domain knowledge.
- exploration
- behavior debugging
Similarly, learning can be used to acquire many different types of knowledge. A property related to this is whether or not learning is complex environment, where it is nearly impossible to give an agent a complete world model to begin with. Analytic learning is important in dynamic environmentswhere speedup is crucial.
Meta-reasoning
Meta-reasoning is an agent reasoning about its own internal processes, including deciding when to reason, how much to reason, what kind of reasoning to do, etc. In the simplest form of meta-reasoning, used by several architectures, reasoning is treated as an action to be considered along with other, more typical "external" actions. This form of "bounded rationality" becomes important when the environment is dynamic or critical to the point where spending a lot of time thinking may get the agent in trouble. Another simple form of meta-reasoning is using reasoning to select a problem-solving method. Meta-resoning is usually facilitated by a homogeneous knowledge represenation scheme.
Problem solving
Problem solving differs from planning in that the result is not necessarily an action or a set of actions. If an architecture is able to do general problem solving and reasoning, this is typically the way more specific capabilities like planning, diagnosis, query answering, are implemented.
"External" Capabilities
Reactivity
Reactivity is the ability to respond quickly to sudden external changes. This typically involves little or no "high-level" cognitive processing, and is often accomplished by close coupling of perception and action. This ability is often important in dynamic environments.
Reactivity is often considered to be complimentary to planning. Reactivity has the advantage of speed, where planning has the advantage of being able to choose a more optimal action, given adequate time. Typically reactivity is accomplished by some kind of condition-action rules, where deliberation is minimized.
-
Navigation
Navigation is the ability to get from an initial location to a desired location; this includes obstacle avoidance. This may or may not involve planning. This capability is particulary non-trivial in real, dynamic, noisy, or unpredictable environments. Navigation typically involves some reactive capability, if the environment is dynamic. Also some form of path planning is often, but not always, done. There are a number of architectures that do not directly address navigation; even if they seem to have the right ingredients, they are filed under "No".
Interruptable
An agent is interruptable if, in the course of pursuing a task, incoming perceptions may cause it to (temporarily) abandon the task, to pursue a new (presumably more important) task. This means that the system needs to be able to remember its pre-interrupted state, or be able to reconstruct it . This capability is typically desirable in dynamic environments.
Ability to recover from failure
Once a failure of a plan or action has been recognized, can the agent select new actions to try and fix the problem? The agent does not necessarily need to explicitly acknowledge the failure; it may simply update its plan any time a relevant feature of the environment changes. Recovering from failure is important in dynamic or unpredictable environments. While many or all of the architectures analyzed are able to recover from failure in one way or another, their methods differ.
Able to pursue multiple simultaneous goals/tasks
This is different from the ability to perform more than 1 task combined with the ability to subgoal. This is more like interleaving the execution of several tasks simultaneously, like walking and chewing gum. Variations on this ability include the ablility to plan and act at the same time, and the ability to reason about more than 1 thing at a time. Typically this is facilitated by having different parts of the architecture operate asynchronously/in parallel.
Taskable
This is the ability to perform different tasks based on external commands (probably from the user, but in general from any agent). This does not necessarily require natural language processing, because the tasks may be specified in an artificial language.
Query answering
Query answering is the ability to query the agent about things like past episodes ("Where were you last night?"), or the current state of the world ("Are your fingernails clean?"). If not posed in natural language, some of these queries are quite simple if the agent simply has episodic or state information immediately available. While a number of architecture discussions omitted query answering, many have general problem-solving ability that could be applied in this direction.
Able to diagnose situations (medical or otherwise)
Diagnosis is the ability to analyze a situation and generate a diagnosis, as well as an explanation of why the diagnosis is plausible. This does not necessarily require natural language processing, as the diagnosis and explanation may be in an artificial or simplified language. While a number of architecture discussions omitted diagnosis, many have general problem-solving ability that could be applied in this direction.
Selective attention
In complex environments with large quantities of incoming perceptual data, it is often necessary to have some mechanism for only examining inputs of interest.
Extended Operation
Extended operation is the ability to function continuously for an extended period of time, rather than function just long enough to perform a handful of tasks. One potential obstacle is having mechanisms that continually add knowledge to the system (learning, episodic memory), which if not managed properly, can lead to filling up of available memory, and/or an unacceptable slowdown in performance. While some researchers have tried to address this issue, most never really attain true extended performance.