As stated earlier, multi-agent technology is finding various applications across many domains. Generally, several categories of applications can be distinguished (e.g., Ferber, 1999). For the purpose of planning decision support three categories are of main interest (e.g., Ferrand, 1996):
– User assistance: having purely computing (i.e., virtual) agents, with
either different or similar skills, cooperate or coordinate in order to accomplish tasks on behalf of users or to help users in doing so.
– Micro-simulation: analyzing the properties of theoretical models of the
surrounding world in an attempt to explain or forecast collective phenomena emerging from the interaction of individual behaviours of virtual agents.
Figure 3-1. The mindset of a multi-agent system (source: Ferber, 1999)
System of interactions
Agents Organization
– Software design: using agents to develop computing systems capable of evolving through the interaction, adaptation and reproduction of virtual agents.
The characteristic that all three categories have in common is the notion of having a collection of agents who together achieve a set of tasks or goals in a largely non- deterministic environment, while each agent represents a specific set of problem solving knowledge and skills. The intention of MAS is to coordinate the skills, knowledge, plans and experience of different agents to pursue a common high-level system goal. Complexity and diversity is handled by modularity, i.e., the physical and/or mental distribution of problem solving knowledge and capabilities. The way in which this distribution is arranged depends on the types of problems to solve. Together with the exact knowledge and capabilities of agents, this aspect determines the main differences between the three categories of application.
3.2.1 Agents for user assistance
When serving the purpose of user assistance, agents intend to solve problems on behalf of the user. Because such problems are likely to be too complex for any agent to perform in isolation, the total expertise required to solve the problem is usually distributed among multiple agents, each specialized – in terms of their representation and problem-solving paradigm – at solving a particular aspect of it. In order to solve the complete problem, the agents must cooperate to ensure that interdependencies are properly managed. This situation can thus be denoted as “cooperation between specialists” (Ferber, 1999, pp. 32). The decomposition of the overall problem into a number of smaller and simpler components – easier to develop and maintain – allows each agent to employ the most appropriate paradigm for solving its particular problem, rather than being forced to adopt a common uniform approach that represents a compromise for the entire system, but which is not optimal for any of its subparts (Jennings and Wooldridge, 1998).
Because of the strong emphasis on cooperation (with other agents) these agents are often denoted as collaborative agents, while having the typical characteristics of being static, large, and coarse-grained (Nwana and Ndumu, 1998). The way in which they communicate with the user can be either direct (‘face to face’) or through intermediate agents that forward user tasks. These intermediates – usually denoted as interface agents – represent another type of user assisting agents. They offer active assistance in the user
interface by providing alternative views to a problem, context-sensitive suggestions and critics, learning and predicting the needs of the user, and/or automating repetitive or semi- repetitive procedures (Angehrn and Dutta, 1998; Lieberman, 1998). Their primary concern is the interaction between system (component) and user, and frequently include an animated interface tool that can engage the user in an interaction, e.g., aimed at eliciting and solving user goals (Hendler, 1999). In order to improve or ease the interaction, interface agents tend to hide the complexity of difficult tasks, while they can also train and teach the user, or help different users collaborate (Maes, 1994). An interesting aspect to the notion of interface agents is that they can be applied to ‘wrap’ valuable legacy software for purposes of enhancing its use or incorporating it into larger systems (Lieberman, 1998; Jennings, 2001). The most important aspect of interface agents, however, is their learning capability as this determines their competence and gain of trust from users. This emphasis on learning, together with their common operation as individuals, clearly distinguishes them from collaborative agents.
3.2.2 Agents for micro-simulation
A different approach to the use of multi-agent technology is to have agents represent members of a population inhabiting an environment for the purpose of studying how individual (i.e., micro) behaviours generate aggregate (i.e., macro) regularities from the bottom up (e.g., Epstein, 1999). This brings about very natural instruments to anticipate on trends in the environment through monitoring and early warning as well as to predict and value the short-term and long-term consequences of implementing certain policy measures – i.e., modifications in environmental conditions – in attempts to either encourage or discourage those trends. Or, as Ferber (1999, pp. 36) stated:
“MAS bring a radically new solution to the very concept of modelling and simulation in environmental sciences, by offering the possibility of directly representing individuals, their behaviour and their interactions (…) it is thus possible to represent a phenomenon as the fruit of the interactions of an assembly of agents with their own operational autonomy.”
As opposed to collaborative agents (section 3.2.1), who interact because of sharing a common higher-level goal, agents in a micro-simulation interact because of sharing the same environment. To take a car traffic simulation as an example, motorists share the road network as the environment in which they behave. Besides the flexibility of his or
her planned activity schedule and the characteristics of the network, the decisions of an agent (motorist) regarding use of the road network will be based on his or her (aggregated) expectations regarding the use of the network by others. So to say, the agents will be primarily driven by explicit personal goals rather than common goals (that could still exist implicitly). The interaction mechanism underlying micro-simulations is thus based on mainly competitive instead of cooperative (or collaborative) considerations. Furthermore, agents in micro-simulations mostly appear in much larger numbers than collaborative agents do, while they are also smaller sized in the sense of the number of rules used to capture their behaviour.
3.2.3 Agents for software design
Both in appearance and operation, agents do not necessarily need to be noticeable to the user; they can also fulfil important tasks at the background to serve the purpose of software design. Whereas user assistance agents solve problems that originate from the user and micro-simulation agents solve their own individual problems, agents for software design facilitate or optimise the operation and use of the system in which they reside. Two general applications of these agents are distinguishable. On the one hand, there are software design agents that facilitate the interaction between, and the operation of, other agents within MAS. Similar to how interface agents (section 3.2.1) play the role of intermediates between user and system (or other agents), so-called middle agents (e.g., Sycara, 1998) are entities to which other agents advertise their capabilities in order to help any arbitrary agent in finding agents with certain capabilities. Other frequently used names for this type of agents are facilitators, mediators, brokers, or yellow pages agents (Flores-Mendez, 1999). Middle agents are especially useful in open systems where organizations (section 3.1.2) tend to vary over time. Similar tasks are performed by
control agents, who primarily provide control services to other agents to help them
function together, and translation agents, who remove problems of incompatibilities between agents or systems with different data standards (Hendler, 1999).
On the other hand, there are software design agents that operate at a level of higher abstraction, serving the purpose of coupling MAS with various kinds of software components and information sources. Multi-agent technology offers a flexible way to interconnect components and to have these components interact effectively. Agent
interoperability with other components (e.g. Lieberman, 1998). Furthermore, multi-agent technology can provide solutions to efficiently use distributed information sources (Sycara, 1998), which implies the use of mobile agents (Nwana and Ndumu, 1998), i.e., agents that are capable of roaming wide area networks.