New information systems and recent applications (Grid computing, Web Services, and so on) are often distributed, large-scale, open, heterogeneous, and characterized by a dynamic environment. To model these complex systems, researchers have spent much effort during the last few years on multiagent systems. The aim is to model complex distributed systems as a set of (possibly organized) software agents that interact in a common environment. The decomposition of a system into a number of agents lets the system react and adapt better in a changing environment. Moreover, organized structures ("social" structures) can emerge from interactions between agents, which in turn constrain and coordinate the agents' behavior. A multiagent system takes its metaphors of interaction from social systems rather than using the metaphor of the isolated thinker that early artificial intelligence researchers preferred.
An important issue when dealing with this increasing complexity is to build adaptive agents and multiagent systems. Agents and multiagent systems must be aware of their own capabilities and of changes to other agents and their environment. To remain effective, agents must be able to adapt their structures and knowledge while they execute.
The objective of multiagent systems is to find a solution to global problems or to control complex systems. These systems employ a set of agents that are autonomous, proactive, adaptive, and reactive. 1,2 Each agent has its own competencies and knowledge, but it needs to interact with other agents to solve complex problems, avoid conflicts, acquire and share information, and so on.
Researchers have proposed several models of software agents. Two approaches predominate. In the cognitive approach, each agent contains a symbolic model of the outside world, about which it develops plans and makes decisions in the traditional (symbolic) AI way. In the reactive approach, simple-minded agents react rapidly to asynchronous events without using complex reasoning.
Recently, many researchers have suggested that neither a completely reactive nor a completely cognitive approach is suitable for building complete solutions for complex, dynamic systems. So, some researchers have proposed adaptive agents that combine the advantages of both approaches. These agents can react to unexpected variations of their environment.
To build adaptive agents, researchers have developed several learning-based multiagent systems. For example, Pattie Maes introduced a model in which agents have a set of actions, environmental information, a set of goals, and a reinforcement-learning algorithm to select suitable actions according to previous experimental results. 3 Jacques Pitrat highlighted the importance of metaknowledge to make agents adaptive. 4 Metaknowledge is knowledge about an agent's structure and evolutionary capacities ("self-awareness"). It enables agents to dynamically modify their behaviors by modifying their structure, including their (meta) knowledge. A number of agent models under research explicitly involve adaptation. Adaptation mechanisms provide an agent with a self-control mechanism to dynamically choose suitable actions, such as negotiation, brokering, monitoring, and scheduling.
A multiagent system's global behaviors emerge from interactions. Moreover, adaptation at the agent level contributes to changes in global behavior and might involve undesirable behaviors. 5 James Odell gives the example of the October 1987 stock market crash, which resulted from emergent behavior of adaptive software agents that buy and sell securities. 6
In multiagent simulations, the global behavior is observed by an external observer who often is the simulation's user. This observer detects and explains desirable and undesirable behaviors through a deep study of the various components and their evolution. However, in distributed systems, the system itself must detect these behaviors. Self-awareness is therefore necessary. The multiagent system must be able to observe agents, organization structures, and the evolution of its environment to detect and, when possible, anticipate undesirable behaviors while retaining desired behaviors.
Complex systems are increasingly driven by the need for robustness, reliability, better quality of service, load balancing or better performance, and so on. So, adaptability becomes crucial for handling such systems' dynamic, complex nature. Therefore, adaptability isn't an emergent property but should be a fundamental characteristic of a complex system. An adaptive multiagent system is an open system (agents can enter and leave at any moment during the execution) that dynamically and continuously modifies its structure. It has a (distributed) representation of the state of its environment and a (distributed) representation of its own organization. It continuously adapts its organization to react to the variations of its environment.
Modeling adaptive multiagent systems requires modeling both adaptive agents and adaptive multiagent systems (the micro and macro levels), their dynamics, and their interactions' dynamics.
Although many researchers have been exploring complex systems and building adaptive multiagent architectures, considerable questions remain:
Current research results solve a specific problem but usually introduce new problems. I invite other researchers to help tackle the growing number of adaptivity-related research problems.