Communicating sequential processes
Communicating sequential processes
A bridging model for parallel computation
Communications of the ACM
The computational beauty of nature
The computational beauty of nature
Swarm intelligence: from natural to artificial systems
Swarm intelligence: from natural to artificial systems
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
A Pheromone-Based Utility Model for Collaborative Foraging
AAMAS '04 Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems - Volume 1
Birds on the wall: distributing a process-oriented simulation
CEC'09 Proceedings of the Eleventh conference on Congress on Evolutionary Computation
Communicating mobile processes
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
Hi-index | 0.01 |
This paper explores a process-oriented approach to complex systems design, using massive fine-grained concurrency, mobile channels and mobile processes. The complex systems studied are self-organising, with emergent and evolving behaviours (apparent at the global level) arising from massive interactions between relatively simple components (that have only local knowledge). Classical ant foraging is used as a case study. Processes are used to represent space, environmental factors and the ants themselves. Ant processes (like all processes) only have knowledge of their internal state (looking for food, looking for their nest) and what they can glean from their local neighbourhood (by interacting with the processes making up that neighbourhood). The networks constructed are dynamic, changing as the ants move around and environmental factors are introduced and modified. The paper reports on two mechanisms for achieving this: channel mobility and process mobility. The language for implementation is occam-π, which has the necessary concurrency mechanisms built in as fundamental primitives and whose semantics is rooted in the process algebras of CSP and the π-calculus. Performance figures are given, including speedup curves for multicores, and some conclusions drawn.