OO Programming for AI: Intelligent Agents
These notes are taken from the following texts:
Lecture Notes in Artificial Intelligence, Intelligent Agents, ECAI-94
Lecture Notes in Artificial Intelligence, Intelligent Agents II, IJCAI-95
Autonomous Learning from the Environment, Wei-Min Shen, 1994, Computer Science Press
What is an Agent
A Weak Notion of Agency
Perhaps the most general way is to denote a hardware or software system with the following properties:
- automony
agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state
- social ability
agents interact with other agents (and possibly humans) via some kind of agent-communication language
- reactivity
agents perceive their environment,
(which may be the physical
world, a user via a graphical interface, a collection of other agents,
the INTERNET, or perhaps all of these combined) and respond in a timely
fashion to changes that occur in it.
- pro-activeness
agents do not simply act in response to their environement, they are able to exhibit goal-directed behaviour by taking the initiative
A Stronger Notion of Agency
For some researchers (particulalry in AI) the term 'intelligent agent' has
a stronger and more specific meaning. Here, in addition to those properites
stated above, it is either conceptualized or implemented using concepts that
are more usually applied to humans.
For example, agents might use mentalistic notions, such as
knowledge, belief, intention, and obligation.
(the Cognition of Emotion)
Key Issues
- Agent theories
are essentially specifications. Agent theorists
address: How are we to conceptualize agents? What properties should
agents have, and how are we to formally represent and reason about
these properties
- Agent architectures
represent the move from specification
to implementation. Those working here address: How are we to
construct computer systems that satisfy properties specified by
agent theorists? What software and/or hardware structures are
appropriate? What is the appropriate separation of concerns?
- Agent languages
are programming languages that may embody
the various principles proposed by theorists. Those working here ask:
How are we to program agents? What are the right primitives for this
task? How are we to effectively compile or execute agent programs?
Well, this sure seems like more that intelligent agent issues!
Sounds a lot to me like the knowledge levels that David Marr pointed
out many years ago :-)
See survey in Lecture notes
Autonomy
- An autonomous system must have its own way to interact with the
environment. That is, it should have its own actions and perceptions.
Everything that is built must be upon these actions and percepts. Every
concept or idea of that system must eventually have meaning in terms of these
actions and percepts. A system says ice is cold, because it can touch ice and
sense the effect of that action.
- An autonomous system must learn from its experience, especially from its mistakes. No matter how thoughtful its creator is, an autonomous system is
bound to meet situations in its own world that are not specified in its
built-in instructions. Because of this, mistakes are inevidable. An Autonomous system must be able to correct mistakes as they happen, not repeat them
forever
-
An autonomous system must decide what to do by itself. Actions must have purposes: either making progress toward the goals or exploring the environment to gather more information. There is no teacher to tell a system what to do.
The only source of learning is the consequences of its actions.
- An autonomous system must be able to adopt to different environments and tasks. The system must be flexible and general. It should be able to learn
from any environment in which it can "live". For example, an autonomous lawnmower
should be able to mow your front yard and a soccer field.
- An autonomous system does not mean refusing any external help. In fact,
an autonomous system should always be able to assimilate advice. For example, one might tell an automomous system what the life-threatening situations are so that the system will not jump off a cliff or plunge into acid. However,
advice should not be taken in a blind fashion. Whether a piece of advice
is good or bad will ultimately be judged by the system itself.