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.
psplib: The PSPLIB format is used by the PSPLIB library to describe RCPSP and MMRCPSP instances.patterson: The Patterson format: used for RCPSP instances, mostly used by the OR&S library. See this website for more details.rcpsp_max: The RCPSP/max format is used for RCPSP/max instances from TU Clausthal.mplib: The MPLIB format is used for RCMPSP instances from the MPLIB library.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.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.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.
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| psplib-0.4.0.tar.gz | 55.0 kB | Without provenance | Details for psplib-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| psplib-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for psplib-0.4.0-py3-none-any.whl |
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
|
Security for psplib 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.