Skip to main content

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.

Release files for psplib 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psplib 0.4.0
File Size Uploaded
psplib-0.4.0.tar.gz 55.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for psplib 0.4.0
File Interpreter ABI Platform
psplib-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.9 kB

Release files / psplib-0.4.0.tar.gz

Download URL psplib-0.4.0.tar.gz
Size 55.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b3599e42676e01bd6ba34bb75bd8ad5d0984b98f4d03f4404a238d481cc52c38
BLAKE2b-256 checksum
How to use checksums
ee424df811843336e63c56f6e14d19d803ee32782c535dca8d7ca052ba6cb6f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.4.27

Release files / psplib-0.4.0-py3-none-any.whl

Download URL psplib-0.4.0-py3-none-any.whl
Size 13.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9fd00599762befed2a04d45b64c1bbd3328a6614598a18d84345de5d3f488dbd
BLAKE2b-256 checksum
How to use checksums
edcf00b6913b1b02808b78b1781fffce3b58e709cb6a1c11b4080a50b09046bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.4.27

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page