A Framework for Evolutionary Computation in Agent-Based Systems

For agent-based systems to reach their full potential, an important capability for individual agents is adaptation. An adaptive technique that is particularly well suited to the agent-based paradigm is provided by evolutionary computation (EC). EC systems have been shown to develop complex groups of coevolved structures. In fact, Holland’s original vision of artificial adaptive systems was more like an agent-based system than the typical centralized genetic algorithms (GAs) used today. Moreover, the EC techniques employed today are naturally distributable to an agent-based system. However, no standardized agent-based framework that includes EC capabilities is currently available. This paper introduces such a framework, based on Java, and IBM’s Aglets. This framework provides a foundation for giving general agents EC capabilities. These capabilities are demonstrated in a basic optimization application, illustrating that the decentralized agents have emergent behavior which is equivalent to that of a centralized GA. The paper will also discuss the range of applications made possible by a standardized EC capability for agents. EC’s Potential Impact On Agent Based Systems The key qualities that agent-based components and systems exhibit are: autonomy, reactivity, proactivity, and social behavior. Moreover, agents have the possibility of mobility in complex network environments, putting software functions near the computational resources they require. Agents can also explicitly exploit the availability of distributed, parallel computation facilities (Franklin & Graesser, 1997; Wooldridge & Jennings, 1996) However, these qualities ultimately depend on the potential for agent adaptation. For instance, if an agent is to operate with true autonomy in a complex environment, it may have to react to a spectrum of circumstances that cannot be foreseen by the agent’s designer. Autonomous agents may need to explore alternative reactive and proactive strategies, evaluate their performance online, and formulate new, innovative strategies without user intervention. Moreover, for systems of agents to behave in this manner, social interactions between agents may also need to adapt and emerge as conditions change. Areas where agents could benefit from adaptation are addressed by active research in machine learning (e.g., classification of unforeseen inputs, strategy acquisition through reinforcement learning, etc.). However, many machine learning techniques are focused on centralized processing of databases to formulate models or strategies. In contrast, EC techniques are inherently based on a distributed paradigm (natural evolution), making them particularly well suited for adaptation in agents. Motivation For Melding Agents And EC As is illustrated in past genetics-based machine learning (GBML) systems (Smith & Dike, 1995), complex, innovative, multi-component adaptive systems can emerge from EC processes. Moreover, these EC processes implicitly exploit parallelism, while remaining trivial to explicitly parallelize (Holland, 1975). Therefore, EC methods are one of the most natural machine learning techniques to transfer general-purpose adaptive capabilities to agent-based systems. Although there is a large body of extant work on the application of parallel and distributed EC algorithms (Kapsalis, Smith & Rayward-Smith, 1994), these studies differ substantially from the agent-based work introduced here. Specifically, past parallel GAs: · usually consist of a number of centralized GAs running on separate computational nodes · are restricted to optimization, rather than coevolutionary (GBML) applications, and · are often designed for particular parallel computer configurations, and · are not standardized to fit in with other distributed software systems. There is no currently available, generalized, agent-based EC system. The work introduced here seeks to provide and test such a system. Design of the Framework To design an agent-based EC system, one must turn the typical GA software design on its head. In common GA software, a centralized GA program stores the GA individuals as data structures, and imposes the genetic operations that generate successive populations (Figure 1). Centralized GA program population Evaluation/Interaction w/ external applications