Skip to main content

Implementation of Flexibile Any-Start-Time Safe Interval Path Planning

Project description

Replanning in Advance for Instant Delay Recovery

This project has the following directories:

  • src/flexsipp: Python module to generate the FlexSIPP search graph
  • src/search (atSIPP): C++ module to search for flexible any-start-time plans in the FlexSIPP search graph
  • tests: Tests and examples for how to use the flexsipp code.
  • experiments: Folders containing experiments with code specific to the implementation that is being tested.
    • mapf: Multi Agent Path Finding problems, replanning agents in a 2d grid world.
    • railways: Replanning delayed trains specific to the Dutch railway network.

Dependencies (version tested):

  • msvc (14.3)
  • boost (1.90)

FlexSIPP can be installed in two ways, using pip install flexsipp or by building the package from the source code. We recommend using a virtual environment. To build the flexsipp from source code, in the root folder run pip install . FlexSIPP can now be imported in python using import flexsipp.

Building flexsipp requires boost to be installed using msvc. On Windows this can be accomplished by installing the boost binaries msvc version 14.3. Install these binaries in C:\Boost or set the BOOST_PATH_DLL environment variable to the folder that contains the .dlls files.

To run a specific scenario on a matching location for a specific agent (id=1):

python experiments/railways/main.py -s tests/scenario_test.json -l tests/location_test.json -a 1

Or for a MAPF scenario, you need to pass the agents paths:

python experiments/mapf/main.py -s data/mapf/maze/scen-even/maze-128-128-1-even-1-k50_paths.txt -l data/mapf/maze/maze-128-128-1.map
python experiments/mapf/main.py -s data/mapf/corridor/corridor-2agents_paths.txt -l data/mapf/corridor/corridor.map

To run an experiment with several sequential delays, run:

python experiments/mapf/sequential_delays.py -l data/mapf/corridor/corridor.map -s data/mapf/corridor/corridor-2agents_paths.txt -d data/mapf/corridor/delays.csv -e 20
python experiments/mapf/sequential_delays.py -l data/mapf/simple/simple.map -s data/mapf/simple/6agents_paths.txt -d data/mapf/simple/delays.csv

To run the tests use:

python -m unittest discover -s tests

To cite, please use:

Issa Hanou, Eric Kemmeren, Devin Wild Thomas, and Mathijs de Weerdt.Precomputing Multi-Agent Path Replanning using Temporal Flexibility: A Case Study on the Dutch Railway Network. (2026). [In Proceedings: International Conference on Automated Planning and Scheduling](https://arxiv.org/abs/2601.04884).

Benchmarks

MovingAI

The Moving AI benchmark set can be used with FlexSIPP, more information on the map format can be found here. FlexSIPP requires some initial solution for each instance, and the scenario_file provided to experiments/mapf/main.py should be a list of paths for each agent, for example the output from PBS, which is formatted as follows:

Agent <id0>: (y0,x0)->(y1,x1)->(y1,x1)->(y1,x1)->(y2,x2)->...->(yN,xN)->
Agent <id1>: (y0,x0)->(y1,x1)->(y1,x1)->(y1,x1)->(y2,x2)->...->(yN,xN)->
...

New Benchmark

To add a new benchmark with a different file structure, the Graph class must be implemented for this type of location and the Agents must be initialized with their initial routes and predefined flexibility. See generate_mapf.py for an example with the Moving AI benchmarks.

Railways

TODO explain file structures

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flexsipp-1.0.0.tar.gz (17.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flexsipp-1.0.0-cp314-cp314-win_amd64.whl (76.5 kB view details)

Uploaded CPython 3.14Windows x86-64

File details

Details for the file flexsipp-1.0.0.tar.gz.

File metadata

  • Download URL: flexsipp-1.0.0.tar.gz
  • Upload date:
  • Size: 17.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for flexsipp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c25d7ea90932fddd18e7c627aa958507e92ad37c21a39748123c88621177b237
MD5 23416b251acc229ef97dc86374eca18e
BLAKE2b-256 a97a70e4254597fb17980da43330c90727bcb6246ffd409830877c4d4876d780

See more details on using hashes here.

File details

Details for the file flexsipp-1.0.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: flexsipp-1.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 76.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for flexsipp-1.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bb2e276edf5d4a7117d8cd23aedbd3f355a8e2064d800b82a3ffc272493de259
MD5 76f113231391f75ada5eb202bcd91a02
BLAKE2b-256 6af1f039f7d8dceecf8c2338d6cadba8aad8c266cc4739656f8d840e613f439a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page