25-08-2017, 09:32 PM
Agent Oriented (AO) Technology
Agent oriented programing.doc (Size: 301.5 KB / Downloads: 29)
INTRODUCTION
We need open architectures that continuously change and evolve to accommodate new components and meet new requirements. More and more software must operate on different platforms, without recompilation and with minimal assumptions about its operating systems and users. It must be robust, autonomous and proactive. These circumstances motivated the development of Agent Oriented Programming.
The objective of Agent Oriented (AO) Technology is to build systems applicable to real world that can observe and act on changes in the environment. Such systems must be able to behave rationally and autonomously in completion of their designated tasks. AO technology is an approach for building complex real time distributed applications. This technology is build on belief that a computer system must be designed to exhibit rational goal directed behaviour similar to that of a human being. AO technology achieves this by building entities called agents which are purposeful reactive and communication based and sometimes team oriented.
There are different programming methods. Object Oriented Programming is the successor of Structured programming. Agent oriented programming can be seen as an improvement and extension of object oriented programming. Since the word “Programming” is attached it means that both concepts are close to the programming language and implementation level. The term “Agent-Oriented Programming” was introduced by Shoham. So this AOP is a fairly new programming paradigm that supports societal view of computation. In AOP objects known as agents interact to achieve individual goals. Agents can be autonomous entities, deciding their next step without the interference of a user, or they can be controllable, serving as mediatory between user and another agent.In AOP programming is performed at abstract level. Agent-Oriented Software Engineering is being described as a new paradigm for the research field of Software Engineering. But in order to become a new paradigm for the software industry, robust and easy-to-use methodologies and tools have to be developed. The term AOP was suggested by Shoham.
1. ESSENTIALS OF AN AOP
Shoham suggests that AOP system needs each of three elements to be complete
1. A formal language with clear syntax for describing the mental state. This would likely include structure for stating beliefs, passing messages etc.
2. A programming language in which to define agents. The semantics of this language should be closely related to formal language.
3. A method for converting neutral applications into agents. This kind of tool will allow an agent to communicate with a non-agent .
2. AGENT
Before we go in detail into the programming side of AOP lets have a look into what the agent concept is?
Agent is a software process that meets the conventions of OAA (Open Agent Architecture) society. An agent is an abstraction that enables to model a system more easily. With this paradigm, a complex system can be modeled as a set of entities, the“agents”. Agent satisfies this requirement by registering the services it can provide in an acceptable form by being able to speak the Inter agent Communication language (IACL), and by sharing the functionality common to all OAA Agent such as the ability to install triggers, manage data in certain ways etc. An agent according to Shoham is “an entity whose state is viewed as consisting of mental components such as beliefs, capabilities, choices and commitments”. This definition is cryptic at best and useless at worst. In agent Oriented programming there is no single agreed definition of entities that are dealt with it.
“What makes any hardware or software component an agent is precisely the fact that one has chosen to analyze and control it in these mental terms.” – Yoav Shoham
Generally agent is a hardware or (more usually) software based computer system with the following properties
*Autonomy: The ability to operate without direct intervention of humans or others and have some kind of control over their actions and internal state.
*Social-ability: The ability to interact with other agents through some kind of agent-communication language.
*Reactivity: The ability to understand the environment and respond regularly to changes that occur in it. Environment is usually thought to be physical, unpredictable, and containing other agents
*Pro-activeness: The ability to exhibit goal-directed behaviour by taking the initiative instead of just acting in response. An agent is pro-active because it acts according to a goal and not simply in reaction to the environment. It is capable of behaviors (directed by the objective to carry out) taking the initiative rather than to wait for orders stating to it what it must do.
Some other attributes of agency are
*Mobility: The ability to move around an electronic network.
*Veracity: The assumption of not communicating false information knowingly.
*Benevolence: The assumption of not having conflicting goals.
*Rationality: The assumption of acting with a view to achieve its goals, instead of preventing them.
So we can say that an agent is an intelligent agent; i.e. it is a piece of autonomous software. Is there any special meaning in words intelligent and agent? An agent shows intelligent behaviour, which is the ability to select actions based on knowledge. The word agent means one who is authorized to act for or in place of another.
Examples of software agents
1. The animated paper clip in Microsoft office.
2. Computer viruses (example of destructive agent)
3. Artificial players or actors in computer games and simulation.
4. Web spiders:- Collect data to build indexes to used by a software engine.
So the agent needs to have
Belief: This represents the agents current knowledge about the world, including information about the current state of the environment inferred from perception devices and messages from other agents, as well as internal information.
Desire: This represents a state, which the agent is trying to achieve, such as safe landing of all planes currently circling the airport, or the achievement of a certain financial return on the stock market.
Intention: This is the chosen means to achieve the agents desires and is generally implemented as plans. Plan may be thought of as procedures that come with preconditions and intended outcomes.
Plan: The means of achieving desires with the options available to the agents.
In agent systems the agent not only needs to know what has to be achieved , but also needs to be able to take appropriate action inorder to ensure that the desired state of the world is achieved .So an agent system requires not just abductive reasoning, but also a suitable notion of agent.
3. AGENT CLASSIFICATION
So far we discussed about what an agent is. Now we may go to the different types of agents. The presence and absence of the above mentioned attributes is the basis of classification. There is weak and strong notion of agency. Agent theories depend on these two notions of agency. In the weak notion of agency, agents have their own will (autonomy), they are able to interact with each other (social ability), they respond to stimulus (reactivity) and they take initiative (pro-activity). Weak notion requires only a white box on agents. It defines agents only in terms of observable properties. In strong notion of agency weak notion of agency is preserved, in addition agents can move around (mobility), they are truthful (veracity), they do what they are told to do (benevolence) and they will perform in an optimal manner to achieve goals (rationality). i.e. in strong notion of agency agent is modeled in terms of mental concepts. These mental concepts should have an implicit representation within the implementation of agents. This strong notion forces a white box on agents. . In McCarthy’s view, ascribing mental qualities is a means of understanding and of communication between humans, i.e. it is a purely conceptual tool that serves the purpose of expressing existing knowledge about a particular program or its current state.
Shall we go detail into the idea of mental concepts
"All the ... reasons for ascribing belief's are epistemological; i.e. ascribing beliefs is needed to adapt to limitations on our ability to acquire knowledge, use it for prediction, and establish generalizations in terms of the elementary structure of the program. Perhaps this is the general reason for ascribing higher levels of organization to systems."
To illustrate why this point of view is reasonable, McCarthy uses the example of a program that is given in source code form. It is possible to completely determine the programs behavior by simulating the given code, i.e. no mental categories are necessary to describe this behavior.