To boldly go: an occam-π mission to engineer emergence
Future systems will be too complex to design and implement explicitly. Instead, we will have to learn to engineer complex behaviours indirectly: through the discovery and application of local rules of behaviour, applied to simple process components, from which desired behaviours predictably emerge through dynamic interactions between massive numbers of instances. This paper describes a process-oriented architecture for fine-grained concurrent systems that enables experiments with such indirect
... ngineering. Examples are presented showing the differing complex behaviours that can arise from minor (non-linear) adjustments to low-level parameters, the difficulties in suppressing the emergence of unwanted (bad) behaviour, the unexpected relationships between apparently unrelated physical phenomena (shown up by their separate emergence from the same primordial process swamp) and the ability to explore and engineer completely new physics (such as force fields) by their emergence from low-level process interactions whose mechanisms can only be imagined, but not built, at the current time. Keywords complex systems · emergent behaviour · emergent relations · emergent discovery · process orientation · mobile processes · occam-pi Introduction The thesis underlying this paper is that there is a growing need for systems with emergent behaviour and that this will make rather different demands on our skills as software engineers. The aims for this paper are to make the case for this thesis and to explore ways to meet those demands. Some new approaches are needed since behaviours required for future systems will be so complex that they will be beyond our capabilities for direct engineering. One reason for this is that the only way to program them will be not to program them, but to let them emerge in a way that has been researched (through simulations in a designed infrastructure that can be directly engineered), from which a theory has been discovered (quantified and supported by experiment), and through which they can be safely controlled. The emerging phenomena will have no representation in any directly engineered software entity -hence, the need for investigation and for scientific method. The paper develops simple and familiar case studies (boids and nanobots) to explore these ideas. These studies do not reflect, as yet, real applications but they allow focus on essential difficulties, dangers and opportunities. The observed system behaviours are certainly emergent, no aspect of them being explicitly programmed. For example, there are no programming entities corresponding to flocks, squabbles, streams, shock waves, feeding frenzies, feeding caution, turbulence, maze solving, free traffic This work is part sponsored by the CoSMoS project (EPSRC grants EP/E053505/1 and EP/E049419/1) http://www.cosmos-research.org/. The Software Engineering Institute, Carnegie Mellon University, also hosted and sponsored a sabbatical visit from one of the authors (PHW) at the start of this work.