Tristan West - Large scale agent-based simulations | PyData London 2023

Explore the power of large-scale agent-based simulations using Python and discover how to optimize complex situations, develop robust mental models, and inform decision-making while navigating complexity and uncertainty.

Key takeaways
  • Simulations can be used to optimize complex situations, such as rolling out fiber to millions of premises, by testing various scenarios and predicting outcomes.
  • Large-scale simulations can be done using pure Python and libraries such as SymPy and Mesa, which allow for parallelization and efficient computation.
  • The onion architecture is a useful design pattern for building simulations, as it separates concerns and allows for decoupling of components.
  • Infrastructure, such as BigQuery, can be used to store and manage large datasets for simulation purposes.
  • Reinforcement learning can be used to optimize decisions by training agents to take actions based on predicted outcomes.
  • Monte Carlo simulations can be used to estimate uncertainty in outcomes.
  • Complexity can be managed by identifying critical components and focusing on those first.
  • Simulations can be used to make better decisions by testing various scenarios and predicting outcomes.
  • Key principles include using mental models to reason about complex systems, externalizing mental models through simulations, and using simulations to inform decision-making.
  • The process of building simulations is iterative and requires close collaboration with stakeholders.
  • Simulations can be useful for optimizing complex systems, such as power grids, financial models, and particle physics experiments.
  • Ray is a useful library for building simulations, as it provides parallelization and cluster management capabilities.