Agent-based fleet simulator to test strategies
Project description
SimFleet
SimFleet is a multi-agent simulation platform for the orchestration and execution of transportation services. All actors of a transportation system are represented by agents whose behaviours define the operation of the service and its internal communication, enabling users to configure and test their own agent strategies. This platform facilitates the study of mobility in realistic scenarios without the need for physical testing.
SimFleet includes predefined agent classes that represent the core components of any transportation service: Customers, Transports, Fleet Managers, and Stations.
Customer Agents: People or goods that require transportation.
Transport Agents: Vehicles that provide displacement services to Customers.
FleetManager Agents: Service provider that manages a fleet of Transports.
Station Agents: Locations representing transportation infrastructure, such as bus stops or charging stations.
These agents can be extended and customized to represent a specific transportation mode. Currently, the platform provides two predefined transportation services: Taxi/Electric Taxi service, and Urban Bus. These systems count with their own implementation of Transport and Customer agents, as well as the necessary infrastructure: Electric Charging Stations and Bus Stops. Using the predefined agents, SimFleet users may easily create and execute their own simulation scenarios.
As for advanced users, however, the extension of predefined agents is encouraged to develop new agent types. SimFleet’s architecture, based on modularity, simplifies the implementation of custom agents and agent behaviours tailored to the user’s specific needs.
Free software: MIT license
Documentation: https://simfleet.readthedocs.io.
Features
Open Fleets simulator
Strategy pattern
Continuous simulator
Load scenarios
Multi-agent system built with SPADE
XMPP communications
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
2.0.1 (2025-01-28)
Minor bug fixes
Updated documentation
2.0.0 (2025-01-23)
New brand release
Upgraded to SPADE 4
Full code refactor
New class hierarchy
New documentation
1.0.3 (2022-12-13)
Update third-party libs
1.0.2 (2021-02-14)
Fixed bug with Vuex version
1.0.1 (2019-11-07)
SPADE and pandas version upgraded.
Stop simulation fixed.
Aesthetic changes.
Minor bug fixes.
Updated documentation.
1.0.0 (2019-11-05)
Moved from a taxi simulator to a generic fleet simulator.
Updated documentation.
Added support for different cities.
Directory agent now sends all the info.
Fixed bug of staying the corresponding time in the station when charging.
Changed logger to loguru library.
Removed fuel from transport popup, now is current_autonomy/max_autonomy.
Concurrent charging in stations now allowed through TimeoutBehavior.
Custom icons added.
Removed agents introduction from GUI.
Added specific parameters in scenario file (now config file).
CLI simplified.
Changed cli to config file.
Control of free places and status for StationAgent.
Fuel refill behavior between TransportAgent and StationAgent.
Refactoring from passenger to Customer
Refactoring from taxi to Transport
Refactoring from coordinator to fleet manager
0.4.1 (2019-01-07)
Fixed bug when checking if the simulation is finished.
0.4.0 (2018-10-25)
Improved the concurrent creation of agents.
Added stop and clear buttons to the interface.
Added download button for getting results in excel and json formats.
Documentation updated.
0.3.0 (2018-10-01)
Migrated to SPADE 3.
Documentation highly improved.
Helper functions added and refined.
Javascript framework included: VueJS
Routes centralized with a Route agent.
UI improved.
0.2 (2017-11-15)
Added scenario loading feature.
0.1.3 (2017-11-15)
Fixed minor bugs.
0.1.1 (2017-11-14)
Added documentation.
0.1.0 (2017-11-03)
First release on PyPI.