Skip to main content
Version: 1.5.0

Use Cases

The Almanak Simulator provides the capabilities to run Web3 simulations on state machines (only Ethereum for now). These capabilities can be summarized in 3 different use cases. Each use case can independently be activated by using the simcli tool or the simulation sdk.

  1. Single Simulation
  2. Montecarlo Simulation
  3. Optimization Simulation

Please review each use case to get a good understanding of the platform capabilities.

Single Simulation

A single simulations is exaclty how it sounds. It allows you to run a single simulation using a single congiguration in the stack. This usually is helpful for testing purposes and if you don't require different price series to be tested in your simulation.

To run a single simulation you need to have a configuration ready. You can read more about writing a configuration here. The configuration is the brains of the simulator which you have to specify. The simulator will do all the hard work (keeping the body trend going, it will run laps and lift heavy weights).

Running a simulation without some kind of output wouldn't really be useful. There are 3 output methods:

  1. Metrics
  2. Logs
  3. Result

Metrics is basically a way of logging but a lot more structured. And because it's structured you can use the data (which can easily be more than 10K metrics) at the end of a simulation to create graphs of what happened.

Logging is as it sounds. A log can be as simple as a print statement that you can retrieve after the fact. Logs are usually used for informational purposes, not analytical.

Result - You can specify how a result of a simulation will be calculated. When outputted the simulator will store it for you and you can easily retrieve the result after a simulation has finished.

Montecarlo Simulation

A montecarlo simulation in short is a multitude of single simulations using a specification of what is different between the different single simulations. This means you can create anywhere from 2 to hundreds of simulations that run at the same time using a set of parameters of configuration changes.

Usually running the exact same simulation twice doesn't give a lot of difference in the results, and that's not what the montecarlo simulation is meant for. But it can do that too. It's super flexible and allows you to specify exactly what is different between each simulation.

Optimization Simulation

An optimization here refers to the concept in Machine Learning called Optimization. You can read a quick intro about that here.

Optimization is the process where we train the model iteratively that results in a maximum and minimum function evaluation. It is one of the most important phenomena in Machine Learning to get better results.

Using this concept you can build simulations with a goal of achieving the perfect happy medium between a parameter set. The simulator offers the capabilities to preform this on your behalf by giving you all the flexibility to run certain optimization algorithms.