Abstract
Complex systems are collections of independent agents interacting with each other and with their environment to produce emergent behaviour. Agent-based computer simulation is one of the main ways of studying complex systems. A naïve approach to such simulation can fare poorly, due to large communication overhead, and due to the scope for deadlock between the interacting agents sharing a computational platform. Agent interaction can instead be considered entirely from the point of view of the environment(s) within which the agents interact. Structuring a simulation using such Environment Orientation leads to a simulation that reduces communication overhead, that is effectively deadlock-free, and yet still behaves in the manner required. Additionally the Environment Orientation architecture eases the development of more sophisticated large-scale simulations, with multiple kinds of complex agents, situated in and interacting with multiple kinds of environments. We describe the Environment Orientation simulation architecture. We report on a number of experiments that demonstrate the effectiveness of the Environment Orientation approach: a simple flocking system, a flocking system with multiple sensory environments, and a flocking system in an external environment.
Similar content being viewed by others
References
Andrews P, Sampson A, Bjørndalen J, Stepney S, Timmis J, Warren D, Welch P (2008) Investigating patterns for the process-oriented modelling and simulation of space in complex systems. In: Artificial life XI. MIT Press, Cambridge, pp 17–24
Andrews PS, Polack FAC, Sampson AT, Stepney S, Timmis J (2010) The CoSMoS process version 0.1: a process for the modelling and simulation of complex systems. Technical Report YCS-2010-453. Department of Computer Science, University of York
Arnold K, Gosling J, Holmes D (2005) The Java programming language, 3rd edn. Pearson, London
Barnes FRM, Welch PH, Sampson AT (2005) Barrier synchronisation for occam-pi. In: Arabnia HR (ed) PDPTA. CSREA Press, Las Vegas, pp 173–179
Dijkstra EW (1971) Hierarchical ordering of sequential processes. Acta Inform 1(2):115–138
Fielding RT, Taylor RN (2002) Principled design of the modern web architecture. ACM Trans Inter Tech 2(2):115–150
Fowler M (2002) Patterns of enterprise application architecture. Addison-Wesley, Boston
Freeman E, Hupfer S, Arnold K (1999) JavaSpaces principles, patterns and practice. Addison-Wesley, Boston
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston
Gelernter D (1985) Generative communication in Linda. ACM Trans Program Lang Syst 7(1):80–112
Gray J (1981) The transaction concept: virtues and limitations. In: Proceedings of the 7th international conference on very large databases. IEEE, pp 144–154
Gray J, Reuter A (1993) Transaction processing: concepts and techniques. Morgan Kaufmann, San Francisco
Hansen PB (1977) The architecture of concurrent programs. Prentice-Hall, Englewood Cliffs
Hejlsberg A, Wiltamuth S, Golde P (2006) The C# programming language, 2nd edn. Addison-Wesley, Boston
Hoare CAR (1985) Communicating sequential processes. Prentice Hall, Englewood Cliffs
Holmevik JR (1994) Compiling SIMULA: a historical study of technological genesis. IEEE Ann Hist Comput 4:25–37
Hoverd T (2011) Environment oriented simulation. PhD thesis, University of York
Hoverd T, Stepney S (2011) Energy as a driver of diversity in open-ended evolution. In: ECAL 2011. MIT Press, Cambridge, pp 356–363
Jefferson DR (1985) Virtual time. ACM Trans Program Lang Syst 7(3):404–425
Lehman TJ, Cozzi A, Xiong Y, Gottschalk J, Vasudevan V, Landis S, Davis P, Khavar B, Bowman P (2001) Hitting the distributed computing sweet spot with TSpaces. Comput Netw 35:457–472
Martin JMR, Welch PH (1997) A design strategy for deadlock-free concurrent systems. Transput Commun 3(4):215–232
Meyer B (2000) Object-oriented software construction, 2nd edn. Prentice Hall, Englewood Cliffs
Microsoft (2007) SQL Server technical bulletin—how to resolve a deadlock. http://support.microsoft.com/kb/832524. Accessed 1 Apr 2013
Milner R (2009) The space and motion of communicating agents. CUP, Cambridge
Oaks S, Wong H (2004) Java threads, 3rd edn. O’Reilly, Sebastopol
Park S, Zhou Y, Xiong W, Yin Z, Kaushik R, Lee KH, Lu S (2009) PRES: probabilistic replay with execution sketching on multiprocessors. In: SOSP ’09. ACM, New York, pp 177–192
Railsback SF, Grimm V (2011) Agent-based and individual-based modeling: a practical introduction. Princeton University Press, Princeton
Reynolds CW (1987) Flocks, herds, and schools: a distributed behavioral model. Comput Gr 21(4):25–34
Sampson AT (2010) Process-oriented patterns for concurrent software engineering. PhD thesis, University of Kent
Seki M (2009) dRuby and Rinda: implementation and application of distributed ruby and its parallel coordination mechanism. Int J Parallel Program 37(1):37–57
Stepney S (2007) Chapter 12: Embodiment. In: Flower D, Timmis J (eds) Silico immunology. Springer, New York, pp 265–288
Welch PH, Justo GRR, Willcock CJ (1993) Higher-level paradigms for deadlock-free high-performance systems. In: Transputer applications and systems ’93. IOS Press, Amsterdam, pp 981–1004
Wikipedia (2013) Sombrero function. http://en.wikipedia.org/wiki/Sombrerofunction. Accessed 6 Apr 2013
Acknowledgments
The work described here was part of the CoSMoS project, funded by EPSRC Grant EP/E053505/1 and by a Microsoft Research Europe PhD studentship.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Hoverd, T., Stepney, S. Environment orientation: a structured simulation approach for agent-based complex systems. Nat Comput 14, 83–97 (2015). https://doi.org/10.1007/s11047-014-9449-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11047-014-9449-2