A dominant trend in modern software design is the movement toward agents, software processes that respond autonomously to changes in their environment and their own inner state. Agents are motivated by the need to modularize the increasingly large tasks that computers are being asked to perform, but one reasonably fears that increasing entropy in large collections of individual components may lead to incoherent behavior. The real world exhibits mechanisms to coordinate multiple agents, such as pheromone-based communication among insects, or the flow of goods in the marketplace. The latter mechanism enjoys a theoretical foundation in microeconomics, and recently a few architects of artificial agent-based systems have drawn on this theory to coordinate their agents. Eleven research teams have contributed the chapters in this volume, documenting how computational mechanisms based on economic models can support a wide range of applications.
Clearwater’s preface leads from real markets to abstract market mechanisms for controlling distributed systems. He responds to three common criticisms of such mechanisms: they are not real markets (but they could be); natural markets are susceptible to unscrupulous agents (but implementors of an artificial market can impose controls); and it is difficult to explain why a market performs as it does (but the gain in performance can compensate any loss of insight). To make the concepts widely accessible, he has selected papers that concentrate on applications rather than theory, and has arranged the chapters roughly from abstract to concrete examples.
Three of the chapters describe general concepts, experiments, and tools applicable across many domains. Chapter1, “A Computational Market Model Based on Individual Action” (by Steiglitz et al.), simulates a population of agents, each of which can produce one or both of two commodities (“food” and “gold”) with varying skill levels. An economy containing only these producer/consumers fluctuates cyclically in both prices and volumes traded, but speculator agents damp out these fluctuations. The architecture is intentionally schematic and artificial, but it illustrates some models that are useful in more concrete applications. Chapter 2, “Valuation of Network Computing Resources” (by Gagliano and Mitchem), does not deal with computing resources per se; it surveys market ideas as applied to discrete element methodology models (based on cellular automata). The authors’ experiments show how the market behavior of an individual agent can be tuned to change the behavior of the whole system. Chapter 4, “Market-Oriented Programming: Some Early Lessons” (by Wellman), summarizes experience with WALRAS, a platform for implementing market-based systems. The system has been applied to transportation networks, product configuration, and information service configuration. Based on this experience, Wellman offers valuable guidelines and caveats for other systems builders.
Four chapters apply markets to managing computer and communications resources. Chapter 3, “An Equilibratory Market-based Approach for Distributed Resource Allocation and its Applications to Communication Network Control” (by Kuwabara et al.), explores agent strategies for developing paths through a network. In this architecture, the seller of a resource integrates various sources of demand into a posted price, thus eliminating the need for bidding protocols. Chapter 5, “An Automated Auction in ATM Network Bandwidth” (by Miller et al.), describes an architecture developed by Agorics, a company that is developing and marketing tools for market-based information system management. It strictly separates the producer, consumer, and auctioneer to avoid fraud in an open multiparty economy, and includes a scheme for fractal reserve banking to help organizations manage the tradeoffs between spending internal funds and purchasing services on the external market. Chapter 6, “A Market Approach to Operating System Memory Allocation” (by Harty and Cheriton), uses a marketplace to assign RAM to large simulation models. Chapter 7, “Economic Models for Allocating Resources in Computer Systems,” (by Ferguson et al.), is a review paper covering both economic mechanisms and example applications of those mechanisms in the computing domain.
Two studies apply market methods to the problem of scheduling a manufacturing system for discrete parts. Both use the contract net, a structured negotiation protocol. Chapter 8, “Metaphor or Reality: A Case Study where Agents Bid with Actual Costs to Schedule a Factory” (by Baker), reports the quantitative benefits over conventional scheduling approaches achieved by a market-based advance scheduler for a sizeable fraction of a real factory. Chapter 9, “Machining Task Allocation in Discrete Manufacturing Systems” (by Tilley), is a more abstract study that examines the computational and communication constraints imposed by the contract net in a manufacturing environment.
The last two chapters apply market methods to environmental management. Chapter 10, “Saving Energy Using Market-based Control” (by Clearwater et al.), describes an operational HVAC system in which the difference between an office’s temperature and thermostat setting does not directly actuate the air damper setting, but formulates a bid in a market that includes the other offices. This system outperforms a hand-tuned conventional system. Chapter11, “The User of Computer-assisted Auctions for Allocating Tradeable Pollution Permits” (by Marron and Bartels), describes how a computerized auction improves the operation of recently-established markets in pollution permits.
Too often, proponents of agent architectures expect coordination to emerge among their agents without either understanding possible coordination mechanisms or seeking to implement them. This volume is an excellent primer on the theory and use of one class of such mechanisms. While most of the systems described are simulations in academic venues rather than operational real-world implementations, they are all a step beyond the last generation of multi-agent systems. This volume should be required reading for anyone responsible for specifying, designing, implementing, or operating multi-agent systems.
Each chapter has its own list of references, and there is no integrated bibliography, but the book does include a unified index of about 400 terms.