Obtaining data is always cumbersome: collected data is almost always dirty and requires lots of work to extract the features that you are after. Also, collected data is almost always myopic in its scope: you observe only a portion of all the interactions that happen in any given environment.
However, you can simulate certain situations. Simulations come in handy when, among other things, it is impossible to observe every single part of the environment, if you want to test your models in various situations, or you want to validate your assumptions.
A number of other books will teach you simulations of financial data. In this book, we will not be doing this. In contrast, we will focus on agent-based simulations. This type of simulation creates a virtual world (or environment) where we place our agents. Agents can represent almost anything that you can think of: in our simulations, an agent will be a gas station, car, recharge station, or a sheep and wolf. Throughout the simulation...