Research and application of Agent technology stem from a series of studies on distributed artificial intelligence conducted by MIT researchers in the 1970s.[1] Distributed artificial intelligence mainly focuses on solving distributed agent problems. There are two important branches:[2] distributed problems and MultiāAgent Systems (MASs). The distributed problems were conducted at an early stage in the distributed artificial intelligence area. The distributed problems have been extended to MultiāAgent Systems. The MultiāAgent System is a system with Agents of different abilities to complete collaboratively certain tasks or achieve certain objectives.[3ā5]
1.2.1 Agent
The concepts, properties, and research methods of Agent technology are developed from artificial intelligence. It is difficult to define either artificial intelligence or Agent. Many different definitions have been given by different schools for different requirements. The earliest concept of Agent was defined based on the concurrent actor model proposed by Hewitt in the early 1970s.[6] In the concurrent actor model, Hewitt defined a termāactor with the characteristics of selfāorganization, interaction, and parallel execution. The most classic and widely accepted definition was given by Wooldridge, et al.[7] The definition contains āweak definitionā and āstrong definitionā. The weak definition defines an Agent as a hardware and software system with autonomous ability, social skill, and responsive and predictive ability; the strong definition includes the properties of the weak definition and also the properties of knowledge, mobility, veracity, rationality, and so on.
Computer science researchers[8] consider that an Agent is a computer system based on software and hardware; it also has autonomy reactivity, socialability, proactiveness, and other properties. From the perspective of the evolution of software design methods, agentābased software engineering methods are proposed on the basis of objectāoriented software engineering methods. Moreover, decomposition and abstraction methods of complex software systems, distributed computing capabilities, interactive coordination mechanism, calculation model, and software architecture have been proposed.
Researchers in artificial intelligence are more inclined to a narrow point of view, except for the above properties. It is therefore necessary to give a more specific meaning for an Agent. Terms such as belief, intention, and commitment are used to describe an Agent. An Agent tries to mimic a humanās thinking and intelligent behavior: for example, what the Agent is doing, what the Agent knows, what the Agent wants, and so on. This definition is developed on the basis of AI knowledge symbols. Shoham[9] thought an Agent was a symbolic reasoning system, which contained the expression of symbols on environment and expected behavior.
Therefore, an Agent is an intelligent individual. Wooldridge and Jennings[7] proposed that an Agent should have four basic attributes: autonomy, reactivity, social ability, and initiative. Sargent[10] considered that the most basic attributes of an Agent were reactivity, autonomy, goalāorientation, and environmental resistance. An Agent was defined by Muller[11] as follows: 1) it is necessary to have other Agents and a virtual world where an Agent exists; 2) an Agent can perceive a virtual world and influence the virtual world; 3) an Agent can at least partly represent the virtual world; 4) an Agent is targetāoriented and has the ability to arrange its own activities; 5) an Agent can communicate with other Agents. Most researchers think that an Agent should not only meet basic properties, but should also have other properties according to application requirements: for example, mobility, learning and adaptability, interactivity, planning ability, rationality, persistent or time continuity, and so on. Three directions of current research are intelligence, agency, and mobility.[12] From the intelligence point of view, an Agent is an expert system; agency means that an Agent can be used to represent the role of a man and machine; while mobility means that an Agent can move or run on a different machine on the internet.
As the previous presentation demonstrates, an Agent should have the following properties:[13ā21]
- Autonomy: An Agent can control its behavior and internal state by itself, and it cannot be controlled by others. This is used to differentiate an Agent with other concepts such as process and object.
- Reactivity: An Agent can feel the environment and respond appropriately to environmentārelated events.
- Sociality: An Agent is in a social environment constituted by multiple Agents. These Agents exchange information with each other in some interactive methods. These Agents collaborate with each other to solve different problems and help other Agents complete related activities. Agents exchange information by a communication language.
- Initiative: The reaction of an Agent to the environment is a goalādirected initiative behavior. In some cases, the behavior of the Agent is triggered by its own requirements. The reactive behavior is a kind of positive behavior or an active communication with the environment.
- Adaptability: An Agent can respond to environmental changes, adopt a goalāoriented action at the appropriate time, and learn from its own experience, the environment, and the interaction process with other Agents.
- Interoperability: An Agent can work with other Agents to complete complex tasks, which is a social behavior.
- Learning ability: An Agent can learn from the surrounding environment and cooperative experiences so as to improve its own capability.
- Evolutionary development: An Agent can improve itself through learning, and reproduce and follow Darwin's natural selection rule āsurvival of the fittestā.
- Honesty: An Agent does not intend to deceive users.
- Rationality: the action taken by an Agent and its consequences will not harm its own interest and other Agentsā interests.
- Persistence: An Agent is ongoing, not temporary, its status should be consistent, which is not in contradiction with property (8).
- Mobility: An Agent should have the ability to move independently in the network, while its status remains unchanged.
- Reasoning: An Agent can reason and forecast in a rational manner according to accumulated past knowledge, states of the current environment, and other Agents.
- Others: philanthropic, adventurous or conservative, helpful or hostile, and so on.
The above attributes show that an Agent is similar to a person, which provides a new method for solving complex problems in computer science and artificial intelligence. Although an Agent may have a variety of properties, researchers and developers do not need to develop one Agent or an Agent system with all the attributes. Agents with several attributes and MultiāAgent systems with several attributes are developed according to actual requirements.