Skip to main content

A parser for project scheduling instances.

Project description

PyPI version CI

PSPLIB

This library implements parsers for various project scheduling benchmark instances, including:

  • Resource-Constrained Project Scheduling Problem (RCPSP)
  • Multi-Mode RCPSP (MMRCPSP)
  • RCPSP with Minimal and Maximal Time Lags (RCPSP/max)
  • Resource-Constrained Multi Project Scheduling Problem (RCMPSP)
  • RCPSP with flexible project structure (RCPSP-PS) and RCPSP with alternative subgraphs (RCPSP-AS)
  • Multi-skilled RCPSP (MSRCPSP)

psplib has no dependencies and can be installed in the usual way:

pip install psplib

Example usage

>>> from psplib import parse
>>> instance = parse("data/j301_1.sm", instance_format="psplib") 
>>> instance.num_resources
4

>>> instance.resources
[Resource(capacity=12, renewable=True, skills=None), ..., Resource(capacity=12, renewable=True, skills=None)]

>>> instance.num_activities
32

>>> instance.activities
[Activity(modes=[Mode(duration=0, demands=[0, 0, 0, 0])], successors=[1, 2, 3], delays=None, skills=None, name=''), 
 Activity(modes=[Mode(duration=8, demands=[4, 0, 0, 0])], successors=[5, 10, 14], delays=None, skills=None, name=''),
 ...,
 Activity(modes=[Mode(duration=0, demands=[0, 0, 0, 0])], successors=[], delays=None, skills=None, name='')]

See this notebook for a slightly longer example demonstration of PSPLIB.

Instance formats

psplib implements parsers for commonly used project scheduling instance formats, listed below. To parse a specific instance format, set the instance_format argument in parse.

  1. psplib: The PSPLIB format is used by the PSPLIB library to describe RCPSP and MMRCPSP instances.
  2. patterson: The Patterson format: used for RCPSP instances, mostly used by the OR&S library. See this website for more details.
  3. rcpsp_max: The RCPSP/max format is used for RCPSP/max instances from TU Clausthal.
  4. mplib: The MPLIB format is used for RCMPSP instances from the MPLIB library.
  5. rcpsp_ps: The RCPSP-PS format is the format used by Van der Beek et al. (2024). Specifically, we included an extra line that defines for each task whether it is optional or not.
  6. aslib: The ASLIB format is the format used by RCPSP-AS instances from the ASLIB instance set at OR&S project database. ASLIB consist of three different parts (a, b, c). To use this parser, you have to merge parts (a) and (b) into a single file - part (c) is not parsed. See this gist.
  7. mslib: The MSLIB format is the format used by MSRCPSP instances from the MSLIB instance set at OR&S project database.

Instance databases

The following websites host widely-used project scheduling benchmark instances.

  • PSPLIB contains different problem sets for various types of resource constrained project scheduling problems as well as optimal and heuristic solutions.

  • OR&S project database is the research data website of the Operations Research and Scheduling (OR&S) Research group of the Faculty of Economics and Business Administration at Ghent University (Belgium). OR&S is very active in the field of project scheduling and has published instances for many project scheduling variants.

  • TU Clausthal provides RCPSP/max benchmark instances.

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

psplib-0.4.0.tar.gz (55.0 kB view details)

Uploaded Source

Built Distribution

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

psplib-0.4.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file psplib-0.4.0.tar.gz.

File metadata

  • Download URL: psplib-0.4.0.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.27

File hashes

Hashes for psplib-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b3599e42676e01bd6ba34bb75bd8ad5d0984b98f4d03f4404a238d481cc52c38
MD5 a0f8245e63624ec3f84530ece26bb49d
BLAKE2b-256 ee424df811843336e63c56f6e14d19d803ee32782c535dca8d7ca052ba6cb6f7

See more details on using hashes here.

File details

Details for the file psplib-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: psplib-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.27

File hashes

Hashes for psplib-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9fd00599762befed2a04d45b64c1bbd3328a6614598a18d84345de5d3f488dbd
MD5 e2ffb6575b034b9eea6242333e3fd41e
BLAKE2b-256 edcf00b6913b1b02808b78b1781fffce3b58e709cb6a1c11b4080a50b09046bc

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