Agent-Oriented Software Engineering

Get Complete Project Material File(s) Now! »

Complex Adaptive Systems

We live in a remarkable world, full of uncertainties to which we constantly adapt without really thinking about it. We are examples of systems called complex adaptive systems, which are complex systems that can learn from and adapt to their dynamically changing environments. In the computer world, open distributed environments, such as the Internet, place a growing demand on complex computer systems to be able to adapt to their environments. The uncertainty in these environments is mostly due to the behaviour of other complex adaptive systems such as users browsing web pages, the behaviour of buyers and sellers on the Internet and the behaviour of autonomous agents bidding on behalf of persons in Internet auctions. The ability to adapt implies emergent behaviour. Adaptive agents are the basic building blocks of a complex adaptive system. These agents act together, interact with each other and the environment, and collectively adapt to changing environmental conditions. The interactions between the agents and the environment and the interactions between the agents themselves comprise a complex set of causal relationships. All complex adaptive systems maintain internal models, consisting of hyperstructures representing “regularities” in the information about the system’s environment and its own interaction with that environment. Hyperstructures are higher-order structures that emerge from the collective behaviour of the agents. Complex adaptive systems use these hyperstructures to act in the real world (Gell-Mann, 1994) (Holland, 1995).

Adaptive Agent Architectures

Agent architectures are software engineering models of agents (Wooldridge & Jennings, 1995). These architectures provide a new and natural way to analyse, design and implement complex software systems (Jennings, Sycara & Wooldridge, 1998). An agent architecture can be a single-agent system or a multi-agent system, composed of agents, coordinated through their relationships with one another. There are three types of agent architectures, namely deliberative, reactive and adaptive agent architectures. Fundamentally, deliberative agent architectures differ from reactive and adaptive agent architectures with respect to the presence or absence of emergence.
Emergence is one of the main characteristics of reactive and adaptive agent architectures, but is absent from deliberative agent architectures. Deliberative agent architectures have internal world models that they manipulate. These world models are explicitly represented symbolic models of the world and decisions (for example what actions to perform next) are usually made using logical reasoning, based on pattern matching and symbolic manipulation (Wooldridge & Jennings, 1995). An example is the well-known and popular Belief-Desire-Intention (BDI) architecture (Rao & Georgeff, 1995). Deliberative architectures cannot function as complex adaptive systems as time constraints within complex, dynamic environments render them incapable of responding in time. The translation of the world into an accurate symbolic representation in time for it to be useful cannot realistically be achieved.
Complex real-world processes are difficult to represent symbolically and to then reason about them using extensive deliberative processes cannot be done within the time constraints imposed by complex, dynamic environments (Wooldridge & Jennings, 1995). Deliberative agent architectures cannot handle emergence and can therefore not function as complex adaptive systems. Reactive agent architectures are agent architectures that are situated in the world and that are embodied in that their actions are part of a dynamic interaction with the world (Brooks, 1991). These architectures do not include any kind of symbolic world model and they do not use complex symbolic reasoning (Wooldridge & Jennings, 1995). Examples include the Subsumption Architecture (Brooks, 1985) and autonomous adaptive agents developed by Maes (1990). Emergence is the most important characteristic of these agent architectures. Adaptive agent architectures are agent architectures that can function as complex adaptive systems. These architectures maintain internal models consisting of hyperstructures in order to learn from and adapt to their dynamically changing environments. These architectures are usually reactive agent architectures that can learn from experience.

Agent-oriented software engineering

Agent-oriented software engineering refers to the software engineering approach followed in an agent architecture. This software engineering approach commonly focuses on two aspects, namely the design of the individual agents and the design of the interactions between different agents. These interactions are usually restricted to symbolic communication protocols. For example, in the Gaia methodology (Wooldridge, Jennings & Kinny, 2000), a system is analysed in terms of roles and interactions between roles and then designed in terms of complex agents, the services to be provided by each agent and the lines of communication between different agents (acquaintances). The coordination-oriented methodology (Zambonelli, Jennings, Omicini & Wooldridge, 2000) added global laws that agents in an agency must obey when interacting with other agents. Agent-oriented software engineering is commonly viewed as an extension to conventional component-based software engineering approaches (Griss & Pour, 2001). As most agent architectures are deliberative (Wooldridge & Jennings, 1995), agent- oriented software engineering is mostly concerned with the analysis and design of agents that are complex due to their complex reasoning capabilities. These agents are commonly viewed as “next-generation” components (Griss & Pour, 2001), as the current component architectures are too limited to implement components that exhibit flexible (reactive, pro- active, social) behaviour. These limitations are due to the fact that components and objects are passive in nature and the patterns of interactions between them are rigid and predetermined (Jennings, 2001).
No principled software engineering methodology exists for reactive and adaptive agent architectures (Jennings et al., 1998). These architectures are usually based on ad hoc principles as it is not clear how one should reason about them or what their underlying theory is (Wooldridge & Jennings, 1995) – the side effects of emergence. In most of these architectures, the engineering of emergence is a manual iterative process as in Brooks (1985), Maes (1994) and Bryson (2001) in which a human observer places the agent in its environment and observes its behaviour using a laborious process of experimentation, trial and error (Jennings et al., 1998). In a complex adaptive system, this becomes an impossible task for a human observer to perform.

READ  Mobile Laboratory Measurement of Black Carbon

Table of Contents

  • Acknowledgements
  • The Engineering of Emergence in a Complex Adaptive System
  • Table of Contents
  • List of Figures
  • List of Tables
  • Chapter 1 Introduction
    • 1.1 Complex Adaptive Systems
    • 1.2 Adaptive Agent Architectures
    • 1.3 Agent-oriented software engineering
    • 1.4 Goal of this Thesis
    • 1.5 Research Contribution
    • 1.6 Thesis Organization
  • Chapter 2 Complex Adaptive Systems, Emergence and Engineering: The Basics
    • 2.1 Introduction
    • 2.2 Properties and Mechanisms of Complex Adaptive Systems
    • 2.3 The Engineering of Emergence
      • 2.3.1 What is Emergence?
      • 2.3.2 Hyperstructures
      • 2.3.3 External Observation Mechanisms
      • 2.3.4 Internal Observation Mechanisms
    • 2.4 Conclusion
  • Chapter 3 Bayesian Networks as Hyperstructures
    • 3.1 Introduction
    • 3.2 Basic Concepts
      • 3.2.1 Propositions
      • 3.2.2 Variables
      • 3.2.3 Probabilities
      • 3.2.4 Conditional Independence
    • 3.3 What is a Bayesian Network?
    • 3.4 Dynamic Bayesian Networks
    • 3.5 Conditional Independence in Bayesian Networks
      • 3.5.1 Conditional Independence involving the Parents of a Node
      • 3.5.2 D-Separation
    • 3.6 Bayesian Learning
      • 3.6.1 Known Structure
      • 3.6.2 Unknown Structure
    • 3.7 Bayesian Inference
      • 3.7.1 Belief Propagation
    • 3.8 Bayesian Networks as Hyperstructures
    • 3.9 Conclusions
  • Chapter 4 Agent Architectures
    • 4.1 Overview
    • 4.2 Agents: what Confusion!
    • 4.3 Agencies – Order out of Chaos
    • 4.4 Hierarchies and Heterarchies
    • 4.5 Multi-agent Systems
    • 4.6 Agent Architectures
      • 4.6.1 What is an Agent Architecture?
      • 4.6.2 Deliberative Agent Architectures
      • 4.6.3 Reactive Agent Architectures
      • 4.6.4 Adaptive Agent Architectures
      • 4.6.5 A Comparison between the Different Agent Architectures
    • 4.7 Conclusion
  • Chapter 5 Agent-Oriented Software Engineering
    • 5.1 Introduction
    • 5.2 Managing Complexity
    • 5.3 Component-based Software Engineering – A Brief Overview
      • 5.4 A Comparison between Objects, Components and Complex Agents
      • 5.4.1 Overview
      • 5.4.2 Similarity between Objects, Components and Complex Agents
      • 5.4.3 Difference between Objects, Components and Complex Agents
    • 5.5 Component-Based Agent Architectures
    • 5.6 Agent-Oriented Software Engineering Methodologies
      • 5.6.1 Overview
      • 5.6.2 The Gaia Methodology
      • 5.6.3 Coordination-Oriented Methodology
    • 5.7 Conclusion
  • Chapter 6 BaBe: An Adaptive Agent Architecture
    • 6.1 Overview
    • 6.2 Bayesian Behaviour Networks
    • 6.3 Competence Sets
    • 6.4 Pearl’s Belief Propagation Algorithm
    • 6.5 The BaBe Components
      • 6.5.1 The Node Component
      • 6.5.2 The Link Component
      • 6.5.3 The Belief Propagation Agents
    • 6.6 Bayesian Agencies
    • 6.7 Bayesian Agencies in Web Personalization
    • 6.8 Applicability, Use and Value of the BaBe Agent Architecture
      • 6.8.1 A General Application of the BaBe Agent Architecture
      • 6.8.2 The Limitations of the BaBe Architecture
      • 6.8.3 The Benefits of the BaBe System
      • 6.8.4 How and where can the general BaBe application be used?
    • 6.9 The BaBe Agent Architecture: A Complex Adaptive System
    • 6.10 Conclusion
  • Chapter 7 The BaBe Methodology
    • 7.1 Overview
    • 7.2 The Gaia Models
    • 7.3 Coordination Models
    • 7.4 The BaBe Models
      • 7.4.1 Overview
      • 7.4.2 The Environment Model
      • 7.4.3 The Roles Model
      • 7.4.4 Interactions Model
      • 7.4.5 Agency Model
      • 7.4.6 Internal Behaviour Model
      • 7.4.7 External Behaviour Model
      • 7.4.8 The Emergence Model
    • 7.5 The BaBe Methodology
      • 7.5.1 Graphical Diagrams
      • 7.5.2 The Analysis Process
      • 7.5.3 The Design Process
      • 7.5.4 The Execution Phase
      • 7.5.5 The Limitations of the BaBe Execution Phase Application
      • 7.5.6 The Benefits of the BaBe Execution Phase Application
      • 7.5.7 How and where can the BaBe Execution Phase Application be used?
    • 7.6 Conclusion
  • Chapter 8 BaBe: The Prototype
    • 8.1 Overview
    • 8.2 Configuring the Bayesian Behaviour Network
    • 8.3 Querying the Bayesian Behaviour Network
    • 8.4 Learning the Bayesian Behaviour Network
    • 8.5 The Limitations of the BaBe Prototype
    • 8.6 Conclusion
    • Chapter 9 Conclusions and Future Research
    • 9.1 Future Research: The BaBe Architecture
    • 9.2 The Complex Adaptive Enterprise: Sustaining the Competitive Advantage using Bayesian Agencies
      • 9.2.1 Introduction
      • 9.2.2 The Chain of Sustainability
      • 9.2.3 The Relationship between Emergence and Knowledge in the Complex Adaptive Enterprise
      • 9.2.4 Future Research: BaBe and the Engineering of Emergence in the Complex Adaptive Enterprise
  • 9.3 Conclusion
  • Bibliography
  • APPENDIX A SOFTWARE LISTINGS

GET THE COMPLETE PROJECT

Related Posts