28
Topic 1: Introduction Lecture1:A Brief Introduction to Agents by Onn Shehory and Arnon Sturn

Topic 1 lecture 1

Embed Size (px)

Citation preview

Topic 1: IntroductionLecture1:A Brief Introduction to Agentsby Onn Shehory and Arnon Sturn

A Brief Introduction to Agents:Introduction

Computer programs commonly exhibit limited flexibility in their ability to handle unforeseen events and environmental conditions. They only act upon events and conditions they were designed for

They do so only in the ways they were programmed to react upon those events.

Application domain in which rigidity of this type may negatively affect system behavior

Growing need for computer systems that can cope with: Dynamic

Unpredictable environments

Agent-based systems have evolved

Comprising software agents of various types and design

A Brief Introduction to Agents:Introduction

In the context of software systems:

A software agent is a software entity that performs tasks on behalf of another entity, be it a software, a hardware, or a human entity.

Common dimensions: Autonomy

Intelligence

One may examine whether an agent is autonomous in its activity and whether its computation and actions exhibits intelligence.

With such dimension in mind, an agent in its basic form is neither autonomous nor intelligence.

A Brief Introduction to Agents:Introduction

For example:

It may perform pre-defined tasks such as data collection and transmission as in the case of Simple Network Management Protocol (SNMP) agents (which are used for network management).

The fact that the tasks are pre-defined leaves little freedom of action; hence, the agent’s autonomy is rather limited.

The fact that the agent merely collects and transmits data leaves no room for intelligent manipulation; hence the agent needs no intelligence.

A Brief Introduction to Agents:Introduction

Following these dimensions, more sophisticated agents may exhibit either autonomy or intelligence or both.

For example:

Belief, Desire, Intention (BDI) agents are agents that are equipped with software layers specifically designed for intelligent reasoning and action.

They maintain and manipulate plans and plan-relevant data and then execute their preferred plans to meet their goals.

Such intelligent behavior is based on concepts such as belief, desire, intention and goal, all of which are implemented as software artefacts within the agents.

This, BDI agents exhibit both intelligence and autonomy.

A Brief Introduction to Agents:Introduction

Another important dimension of agenthood is sociality.

Sociality refers to the ability of an agent to engage in meaningful interaction and collaboration with other agents and non-agent entities. For instance, an agent may need to execute a task that can be

performed only in a collaborative manner.

To collaborate, an agent must be able to communicate with and understand, other agents.

It may also need to negotiate, coordinate and share resources.

In some cases, agents may need to take part in a larger system comprised of multiple agents, referred to as a multi-agent system.

To facilitate the development of agents that exhibit such dimensions (and others), it is necessary to specify the dimensions, the underlying concepts and the software construct needed.

A Brief Introduction to Agents:Dimensions of Agenthood

There are many dimensions of agenthood. Yet there is no single set of dimensions that is widely agreed upon as the fundamental set for defining agents.

Nevertheless, we refer here to a core set that we find central to the definition and the development of Software Agents.

These include: Autonomy

Intelligence

Sociality

Mobility

A Brief Introduction to Agents:Dimensions of Agenthood: Autonomy

Autonomy -the most important and distinctive agent properties.

Autonomy refers to the ability of an agent to perform unsupervised computation and action and pursue its goals without being explicitly programmed or instructed for doing so.

Autonomy: the encapsulation of data and functionality within the agent

present in objects as defined in object-oriented paradigms and is therefore not unique to agents.

An autonomous agent is assumed to have full control of its internal state and its behaviors.

To enable such autonomy, an agent’s blueprint should consist of components that support autonomy.

A Brief Introduction to Agents:Dimensions of Agenthood: AutonomyInternal State

An important autonomy-enabling component is an internal state module. internal state usually holds and maintains the state of the agent

in its environment as perceived and interpreted by the agent itself.

For example:

An agent may believe that its physical location is at some (x, y) coordinate in a plane. Regardless of this being its true location, its internal state should hold that information and update it as the agent finds suit.

An internal state of this sort facilitates autonomy as it allows the agent to act upon its state without being in need for external supervision. An internal state is also important for implementing artificial intelligence capabilities within the agent, as we discuss later in this chapter.

A Brief Introduction to Agents:Dimensions of Agenthood: AutonomyBehaviors

Agents additionally exhibits autonomy by implementing behaviors.

A behavior is usually an activity which is comprised of more than one elementary action.

It is commonly assumed to be initiated and controlled by the agent itself, without external instruction.

Some behaviors may be iterative or continuous, while others are exercised in a one-shot fashion.

Regardless, behavior allow an agent to pursue its goals in an autonomous manner.

A Brief Introduction to Agents:Dimensions of Agenthood: AutonomyPro-activeness

In many cases, autonomy is also associated with pro-activeness.

An agent may react upon internal and external states and events—in which case it is reactive.

However, it may also initiate actions, e.g., in anticipation of states and events—in which it is proactive.

Reactiveness and pro-activeness may co-exist in the same agents.

Both may be present in an autonomous agent.

Yet, pro-activeness is more commonly associated with autonomy because it exhibits agent behavior, which is seen as independent of direct external triggers

Pro-activeness indeed suggests a higher level of agent autonomy.

A Brief Introduction to Agents:Dimensions of Agenthood: AutonomyPro-activeness

Other agents autonomy enablers and indicators exist too; however, one can build an autonomous agent based on the properties referred to above.

To do so, the architectural properties of the agent should include an internal state, behaviors and means for pro-activeness.

Agent architectures indeed include such constructs.

A Brief Introduction to Agents:Dimensions of Agenthood: Intelligence

Software agents need not be intelligent; however, intelligence and agenthood are frequently associated with one another.

Indeed, the notion of intelligent agents is used not only in agent-based systems but in general artificial intelligence as well.

The motivation for associating agenthood and intelligence: the agent having to act on behalf of another.

such action necessitates intelligence.

serving others and act accordingly.

Intelligence was never simple to define and the task does not become easier when moving to artificial intelligence.

We will look into the major elements associated with, and enabling, the incorporation of intelligent reasoning and behavior into software agents.

Such elements in turn entail architectural and engineering requirements

A Brief Introduction to Agents:Dimensions of Agenthood: Intelligence

Agent intelligence may require capabilities such as: learning, reasoning, planning and decision making.

These should in turn allow an agent to: make educated decisions and to behave rationally

allow it to be goal-oriented

That is, an agent can have: abstract goals for whose achievement it may make plans,

reason about its plan alternatives,

decide rationally upon the best one, and

act accordingly.

The results of its action can serve as: feedback for learning,

to improve future reasoning and action

to better meet its goals.

To facilitates such capabilities, an agent may need some specialized software constructs.

A Brief Introduction to Agents:Dimensions of Agenthood: Intelligence

Several architectural approaches have been devised in support of agent intelligence.

The BDI approach, mentioned earlier, includes a beliefs component that holds facts that are believed to be true by the agent. It also includes plans that the agent builds and can manipulate.

For this, plan segments and planning facility are required.

It further requires a mechanism for plan selection.

This is typically a filtering, refinement and eventually decision-making mechanism, which allows the agent to select a single, preferred plan of action (which is referred to as an intention).

BDI is merely an example out of a flora of goal-based, intelligent agents.

Agent Environment

Beliefs DB

Internal State

Actions Plans

Goals

Planning

Reasoning

Decision making

Learning Action Output

SensingInput

Fig. 1.1 Intelligence-enabling software constructs within an agent architecture

A Brief Introduction to Agents:Dimensions of Agenthood: Intelligence

From an architectural viewpoint, goal-based agents commonly implement an architecture similar to the one in Fig. 1.1.

As shown in that figure,

the agent interacts with the environment by receiving sensor (or other) input and acting on the environment via actuators.

The inputs are stored in a persistent internal data store, e.g., a beliefs database (DB), which includes facts about the environment.

The agents may hold a set of actions or plan fragments from which it can construct making decisions about preferred plans and actions and for updating the facts in the beliefs DB.

Reasoning may rely on, e.g., a rule base, an inference system, a decision tree, and many other alternatives.

A goal-based agent usually implements an internal state module

This is a data store, which may be part of the facts (or beliefs) DB.

Goals are usually also stored and serve for planning and decision making.

In some intelligent agents, a learning component is also present.

A Brief Introduction to Agents:Dimensions of Agenthood: Intelligence

Note that the specific details of each component and the interaction among the components need further architectural refinement, which may have significant effect on the functionality and efficiency of the agent.

Further note that intelligent and goal-based agents commonly reside in a multi-agent environment, where they need to interact intelligently to meet their goals.

In Fig. 1.1 we have not included software construct that explicitly support such interaction.

A Brief Introduction to Agents:Dimensions of Agenthood: Sociality

In many cases, an agent is situated in a multi-agent environment.

To meet its goals, the agent may need to interact with other agents and coordinate, collaborate or compete with them.

For instance, an agent may need to form a team to perform a rescue task in a disaster recovery mission.

To facilitate such capabilities, the architecture of the agent should include sociality-supporting constructs.

At the infrastructural level, communication is required.

A communication component should allow message sending, receiving and processing.

It should also support specific communication languages, messages formats, and protocols (e.g., FIPA ACL and protocol 5]).

Message parsing and understanding is also a fundamental need for any meaningful communication.

Chapter 6 provides more details on agent communication.

A Brief Introduction to Agents:Dimensions of Agenthood: Sociality

In addition to communication, meaningful interaction with other agents commonly necessitates that an agent maintain models of other agents or at least hold some data regarding them, e.g., their contact information, capabilities and possibly logs of past interaction with them.

That is, the architecture of the agent should include models of both self and other agents.

The reasoning component should include means for reasoning about others and about the interaction with them.

Similar extension are also needed to the planning, decision-making, and learning modules.

A Brief Introduction to Agents:Dimensions of Agenthood: Sociality

Further capabilities may be required to facilitate social behaviors.

For instance, mechanisms for collaboration, for team and coalition formation and for strategic behavior in competitive scenarios all enable sociality.

An example of a need for such a mechanism is the case where an agent needs to buy some goods on behalf of a human user and a discount schedule is available, which is based on the number of items purchased. In such a case, it may be beneficial for the agent to form a buyers’ group to obtain a discount.

A Brief Introduction to Agents:Dimensions of Agenthood: Sociality

Agents that interact with others in a competitive environment may need to negotiate and possibly use strategies and argumentation as part of this negotiation.

Hence, they should be equipped with negotiation and argumentation modules to facilitate such capabilities.

There are myriad ways to implement such modules and the details are out of the scope of this course.

A Brief Introduction to Agents:Dimensions of Agenthood: Mobility

Some agents and multi-agent systems exhibit mobility.

That is, agents may be able to change their logical or physical location.

One way of mobility manifestation is for the agent to move from its current execution environment (the host on which it runs) to another execution environment.

Another incarnation of mobility is found in cases where agents reside on mobile devices such as smartphones.

In such cases, even if the agent never leaves its host, the hosting device itself may roam, thus changing location and environmental conditions.

As a result, the agent that executes on the device roams and changes its environmental conditions as well.

Both types of mobility require that agents be designed for mobility and be equipped with the proper software artifacts to manage it.

A Brief Introduction to Agents:Dimensions of Agenthood: Mobility

Mobility in which agents move from one execution environment to another typically requires more infrastructure than other types of agents mobility.

We therefore discuss it (briefly) here.

An agent that moves to another host (either physical or logical) needs to:

record its state before moving,

generate a copy of itself on the target host,

stop its execution on the source host, and

resume execution on the target.

A special set of mobility behaviors should hence be incorporated in an agent that needs to execute mobility.

Yet, it is not sufficient that the agent itself is equipped with mobility constructs.

There is a need for the hosts on which mobile agents can execute to have some mobility-supporting infrastructure such as a docking station.

The latter is an execution environment that provides the mobile agent with the resources it needs for execution, yet guards the target host from overexploitation and attacks.

A Brief Introduction to Agents:Other Dimensions

There are plenty of other agent properties that affect their engineering.

As stated earlier, we have no intention to cover all of them.

An important property of some agents is their ability to adapt to changes in goals and in environmental conditions.

Adaptation is indeed considered a dimension of agenthood; however, in many cases, it does not necessitates a special adaptation module.

For instance, adaptation may be addressed by learning, planning and reasoning capabilities.

Another aspect of agenthood is the interaction of agents with human users.

Since in many cases agents perform tasks on behalf of human users, the quality of the interaction with the human is of much importance.

A Brief Introduction to Agents:Other Dimensions

This interaction must be supported by human-computer interaction components, and indeed many agents implement such components.

Human-computer interaction is a broad field of research and practice that spans beyond agents, multi-agent systems and AI.

Agents can have a physical body, such as in the case of robots.

The physical properties of agents introduce an array of requirements that are not present in software agents.

These are well addressed in the field of robotics.

Some other aspects such as agent emotions and self-awareness, agent security, agent resources and quality management, and others introduce yet another set of software components that can be incorporated into agents.

It is important to note however that seldom agent designers and developers incorporate all, or even a large portion of all of the dimensions introduced here.

A Brief Introduction to Agents:Concluding Notes

As presented in this chapter, there are many dimensions that characterize agents and affect design, implementation and engineering in general.

One may have noticed that across our discussion we incorporated very little details on the engineering needs of multi-agent systems.

As discussed here, the core dimensions of agenthood are autonomy, intelligence and sociality, while other aspects, though important, are not those defining agents and distinguishing them from other software entities.

We however stress that full-fledged software agents should inevitably include software constructs that support multiple agent dimensions to address well both functional and non-functional requirements commonly set for intelligent software agents.

A Brief Introduction to Agents:References

You may refer to text book