||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: complexity theory, artificial intelligence, intelligent agents
Title: Emergence: The Connected Lives of Ants, Brains, Cities and Software
Author: Steven Johnson
Publisher: PenguinISBN: 0140287752
Verdict: A good read
What do ant colonies, slime moulds and the teeming streets of Victorian Manchester have in common? They are all, according to Steven Johnson, examples of emergent systems. Emergent phenomena, such as the division of a city into discrete neighbourhoods or the apparent collective intelligence of an ant colony, are by products of the interactions of thousands of simpler 'agents'. An individual ant is fairly unintelligent and is largely driven by instinct. An ant follows a few simple rules: get food, dump waste, tend young, defend the colony. It has limited means of communications with its fellow ants, and what there is is largely based on pheromone signalling. However when thousands of these simple agents interact with each other, what you get is not teeming chaos but a global behaviour that can solve problems, keep the colony fed, protect it from attack and can adapt to a changing environment. This is what emergence is all about, this qualitative difference in behaviours at the micro and macro levels.
Slime moulds, a favourite example of Johnson's, exhibit even greater levels of emergent behaviour. Slime moulds, and biofilms in general, are formed by individual bacterial cells who somehow get together and organise themselves to act as a collective mass. To all intents and purposes the individual bacteria group together and start acting as though they are a single organism. Who organises this grouping together of individuals? Who controls the pseudo-organism? The answer, surprisingly, is no one. Just as the ant colony is not controlled and direct by the queen, so the slime mould is not controlled and directed by any single bacterium or group of bacteria. The group behaviour emerges naturally from the simple interactions between the individuals which make it up.
There are other examples which are much closer to home, of course, and Johnson ranges quite widely, switching from bacterial colonies to city streets to global economies to the Internet. An economy, for example, is also an emergent system, in that it is made up of many thousands of individual agents: consumers, investors, corporations and workers. What emerges from the interactions between these many millions of agents is not a predictable, controllable market but an endlessly evolving marketplace that is never at stasis.
What has all this got to do with software? In the first place complexity theory, which is what this area of study falls under, uses software as its principle research tool. Cellular automata, neural networks, artificial life simulations and other types of software tools have been, and are still being, used to model and learn about complex systems and their emergent properties. However, complexity theory and emergence also provide a rich source of metaphors and ideas for the next generation of distributed applications.
Software is increasingly about creating 'agents' which interact with each other to produce a resulting application. Piecing together a fully distributed application is as much about understanding the different agents, the rules they follow and how they communicate with each than it is with designing the front end. To this end, stepping back a little to take a broader view, as Johnson does, has much to commend it.
Besides, all this talk of ants is not completely off the wall. Recent work in Belgium has shown that a software simulation of ant colony behaviour is able to solve The Travelling Salesman problem as well as the best of the specialist techniques available. British Telecom, amongst others, are now using software ants to solve network routing problems.