The ongoing development of BharatSim — India’s first ultra-large-scale simulation of 100 million to 1 billion agents representing the population of India with a detailed synthetic population — by Ashoka University is a cutting-edge multi-disciplinary initiative. This billion agent simulation can help governments, NGOs and others in the healthcare sector to understand areas where targeted interventions may make a difference. These simulations, played out by agent-based modelling using synthetic data (which includes the details of economic activity as well), can potentially help other fields such as business and logistics, economics and banking.
The BharatSim framework has three core components — a core synthetic population, a simulation engine and a visualisation engine.
The synthetic population
The synthetic population is created by combining and processing data from various sources to generate a representative population with characteristics similar to the real population.
Data from diverse sources such as surveys (for example, IHDS, NSS), census data and population density maps (for example, GPW) are collected. These datasets provide information on demographics, socio-economic factors, employment, geographic distribution and other relevant attributes. The collected data is processed to remove inconsistencies, errors and missing values so that it is clean and ready for further analysis and modelling.
Relevant features such as age, gender, location, socio-economic status and health conditions are extracted from the datasets. These serve as the basis for defining the attributes of the synthetic population. Statistical techniques are used to match the distributions of key variables in the synthetic population to those observed in the real population.
Methods such as Iterative Proportional Updating (IPU) and machine learning models are also employed to use the processed data and statistical matching to create individuals with attributes that closely resemble those of the real population.
The quality of the synthetic population is then evaluated to ensure that they accurately represent the target population.
The Simulation engine
The simulation engine is a system to conduct experiments, analyse scenarios and study complex systems. Researchers can use this by specifying their models using a domain-specific, high-level language provided by the simulation engine. This allows researchers to define agent-based models with specific attributes, behaviours and relationships.
Behaviours of agents specifying the actions to be executed at each simulation time-step are also defined. These can be based on probabilistic rules, agent attributes or external factors. For example, agents may exhibit behaviours like vaccination decisions based on their age, socio-economic status or health history.
Specialised extensions of the agent class, such as stateful agents, can also be used to model agents that transition between different states over time. This is particularly useful for modelling systems where agents can exist in distinct states and undergo state transitions based on certain conditions.
Throughout the simulation, researchers will be able to collect data on agent behaviours, states, interactions and system dynamics. This provides insights into the evolution of the simulated system and allows researchers to analyse the outcomes of different scenarios. The simulation results are then validated by comparing them to real-world data or known benchmarks. This also helps in calibration of the simulation parameters to ensure that the model accurately represents the dynamics of the system under study.
The Visualisation Engine
Researchers can transform complex simulation data into meaningful visual representations using the visualisation engine. It can serve as a valuable tool for interpreting simulation results, identifying trends and communicating findings to a wider audience.
Particularly useful and effective are the representations for time-series data and geographical data allowing them to track changes over time and spatial relationships and identify trends or patterns in the simulated system. This helps in understanding temporal and spatial dynamics within the simulated environment and also to forecast future behaviour.
Anyone can use it
BharatSim is an open-source collaborative project between Ashoka University and Thoughtworks, funded by the Bill & Melinda Gates Foundation. The ongoing development of BharatSim at Ashoka University is funded by the Mphasis F1 Foundation.
Agent-based modelling frameworks like BharatSim can have various applications in the business domain. Some potential applications are:
Market analysis, product development and innovation: Simulate market dynamics by modelling individual agents as consumers, producers, and/or investors to make informed decisions about product development, marketing campaigns and investment opportunities;
Risk assessment and management: Different risk scenarios and interactions between agents can be simulated to identify potential vulnerabilities, evaluate risk exposure and develop strategies to minimise risks;
Customer relationship management: By modelling individual agents as customers with different characteristics and decision-making processes, one can optimise marketing strategies, personalise customer experiences and improve customer retention;
Scenario planning and strategic decision-making: Agents can be modelled as stakeholders, competitors or regulatory bodies to evaluate outcomes of strategic choices, test alternative scenarios and inform long-term planning and decision-making processes.