Smart cars transition multi-agent simulator created in Julia
This is a repository containig a simulation model accompying the paper:
Multi-agent routing simulation with partial smart vehicles penetration
by Bogumił Kamiński, Łukasz Kraiński, Atefeh (Atty) Mashatan Paweł Prałat and Przemysław Szufel
Journal of Advanced Transportation, Volume 2020 DOI
Agent-based Simulation Framework for modelling transport systems with partial smart vehicles penetration
The framework was optimized in terms of performance. Major performance tweaks include:
- Yen's algorithm is based on custom, fast A-star implementation - 5 times performance improvement over a standard Julia implementation,
- routes calculated by the k-shortest paths algorithm are saved for future re-use (memoization technique) - leading to up to 15 times faster simulation execution in comparison to no-memoization,
- simulations use common, separately generated agents pools - halved overall running time.
We have designed the simulation tool in such a way that the simulations can be executed in a distributed fashion. Additionally the simulation model has been adjusted to work with KissCluster software KissCluster that can be used to manage the distributed simulation execution and the data collection process in the Amazon Web Service cloud.
In order to run the simulation please execute the following julia commnads:
using Pkg Pkg.add(PackageSpec(url="https://github.com/KrainskiL/SmartTransitionSim.jl"))
Once the simulation package with its dependencies is installed get the run_sweep_v4_NoSerial-1.jl (available in the
example project subfolder) to actually run the simulations.
In order to to parallelize the simulation over a computational cluster you need to use external software. To start simulation, run the command:
julia run_sweep_v4_NoSerial-1.jl 1
1 is the value that will be parsed as the sweep parameter